データベース監査によるコントロール

汎用的に適用できると考えられる「データベース監査によるリスクコントロール」について、監査ログの具体的な活用方法も含めてまとめてみました。

リスク取得するログログの活用例
SYSDBA等、特権ユーザーの操作
(ネットワーク経由及び直接の操作)
→管理者の問題行動
特権ユーザーのアクセスログ・操作ログ *特権ユーザー接続操作申請との照合・承認
アカウント及び権限管理
→権限不正使用による漏えいや改ざん
DBユーザーの作成・削除、権限付与のログ *DBユーザー作成/削除申請との照合確認(承認)
*退職・異動の人事情報との照合確認(承認)
データベース上で稼動するプログラム(パッケージ、プロシージャ)の管理
→データベース上のプログラムの不注意あるいは意図的な書き換えによる漏えいや改ざん
パッケージ/プロシージャ作成、更新のログ *本番リリース、変更申請との照合確認・承認
*不審な変更操作、不注意の監視
不審な失敗行為
→パスワード推測や操作試行によるデータベースへの不正浸入
ログイン失敗、操作失敗のログ *連続失敗などから不審な攻撃行為の監視、検知
アプリケーション/ネットワーク層でのフィルタやコントロールをすり抜けてしまう不正行為
→SQLインジェクションなどアプリケーションの不具合をついた攻撃
重要オブジェクトに対するSQLログ *イレギュラーSQLの監視、検知

 コントロールを効かせる対策としては、防御的(予防)なものと、発見的(検知)なものとがあります。データベースでの操作ログを取得することは主に発見的コントロールです。しかし、操作記録を残されている=自分の行為は見られていると思えば、個人情報を覗き見しようとか営業数値をちょっと有利に変えてしまおうとか、そういった不正な気持ちを抑止し牽制することも期待できます。

 通常コントロールを効かせづらいDB管理者、特権ユーザーの行為に対して、特に有効といえます。データベースはIT領域の中でもデータそのものを扱うのにも関わらず、最もブラックボックス的な領域となってきました。外部委託、派遣社員なども含めたDBに特化したエンジニアの手に委ねざるを得ない状況は変わらない中では、データべース監査によって問題行動が検知されることがすなわち防御にもなる、と言えるのではないでしょうか。