|
|
情報流出の痕跡を残すために DBログを漏れなく取得ぷららネットワークス
出典:日経システム2005年3月号
58ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります)
「万が一,自社で情報流出があったとしても,アクセス・ログを見れば,すぐ誰が何をしたかが分かるようにしなければならない」(ぷららネットワークス ネットワーク管理部 次長 荒木孝広氏)――。 ISP事業者のぷららネットワークスは,約182万人の会員情報を抱える。個人情報へのアクセス・ログは以前から取得していたが,情報漏えいの証拠を残すため,ログ取得を強化した。 取得していたログは不完全ログの取得には以前から3つの問題があり,情報漏えいを見つけにくい状況だった(図1)。第1に,データベースへのアクセス・ログは必要最低限しか取得していなかった。ぷららネットワークスでは個人情報を格納するRDBMSにはOracle Databaseを利用している。Oracleへのアクセス・ログは,Oracleに備わる監査機能「Audit Trail」を用い,ユーザーのログイン/ログアウト情報のみを記録していた。これは,Audit Trailでログイン後の操作まで取得すると,RDBMSの性能に悪影響が出てしまうためだ。
操作履歴としてWebサーバーや業務アプリケーションのログがあるが,それらの書式は統一されていない。これが,2つ目の問題である。3つ目の問題は,SQL*Plusなどの管理ツールを利用した場合の操作ログは取得できていなかったことである。 DBに負荷を掛けないツールを利用問題を解決するために,2004年7月,インサイトテクノロジーの情報漏えい監視ツール「Performance Insight Security for Oracle(PISO)」の採用を決定する。OracleのAudit Trail機能を利用する製品ならほかにもあったが,経験上,Audit Trailで多くのログを取得すると負荷が高くなることは分かっていたため,Audit Trailを使わないPISOに決めた。PISOは,エージェント・ソフトがOracleの動作用のメモリー領域であるSGA(System Global Area)に直接アクセスする仕組みであるため,Oracleに与える影響は小さい。こうした仕組みなので,SQL*Plusなどの管理ツールからのアクセス・ログも取得できる。ログを一括管理できることも,PISOを採用した理由の一つである(図2)。
個人情報を格納するデータベース・システムは大規模で,ピーク時には400〜450セッションが同時に接続し,1日1000万件以上を処理する。しかし,「PISO導入による負荷はほとんどなく,導入前と比較して,スワップ・メモリーも実メモリーの空き領域もほとんど変わらない状態」(ネットワーク管理部 チーフ 長谷部勇氏)である。 誰が何をしたかを特定するPISOの導入によって,データベースへのアクセス・ログを漏れなく取得できるようになった。だが当初の狙いである「誰が何をしたかを特定する」にはPISOだけでは不十分。ログの中のSQL文の利用者を特定する工夫が不可欠だった。 そこでぷららネットワークスは,PISOのログにユーザー名を書き込むように業務アプリケーションに手を入れ,SQL文の利用者を特定できるようにした(図3上)。業務アプリケーションがOracleにセッションを張る際に,「DBMS_APPLICATION_INFO」というOracleのパッケージを利用する。Oracleのパッケージは,ストアド・プロシージャやストアド・ファンクションを一つにまとめてカプセル化したもの。PISOがDBMS_APPLICATION_INFOと連携できるので,これを利用してユーザーの情報をログに記録できた。具体的には,業務アプリケーションから「DBMS_APPLICATION_INFO.SET_CLIENT_INFO」と「DBMS_APPLICATION_INFO.SET_MODULE」という2つのプロシージャを呼び出し,OracleのV$SESSION表に情報を書き込むようにした。PISOはV$SESSION表に書き込まれたユーザー情報を読み取り,ログに記録する。
そのほか,ストレージ装置の機能を用いて,ログが改ざんされないように工夫した(図3下)。PISOがログを書き込むディスクはマウント先を限定することで機密性を高めている。それに加え,ログを格納する専用ストレージ装置に日本ネットワーク・アプライアンスのNAS装置「NetApp FAS920」を採用し,オプションでSnapLockという改ざん防止機能を利用する。過去のログ・ファイルを格納しているボリュームにはロックをかけ,ログの改ざんを防止している。 PISO導入後の調整に1カ月PISOを導入する際,「1カ月くらいはチューニングが必要」(ネットワーク管理部 チーフ 川野豊数氏)だった。PISOは,SQL文にハッシュ関数をかけ,業務アプリケーションからの定型的なSQL文はハッシュ値のみをログとして記録し,定型外のSQL文はハッシュ値とSQL文そのものを残す。新しい処理や新しくオブジェクトをコールすると,アラートが上がる。そのために,定型的なものかどうかなどアラートの精査が必要となる。
連載新着連載目次へ >>
|