12.7.6 セキュリティインシデント発生時の調査
次に示すセキュリティインシデントが発生したときの調査例を説明します。
- セキュリティインシデントの発生状況
-
A社のECサイトを利用しているユーザの個人情報が,インターネット上に流出している可能性があるとの連絡があり,確認したところ,A社の情報分析システムで管理していた顧客情報であることが判明しました。そこで,DB管理担当者と監査証跡機能の管理担当者が,顧客情報の漏えい経路の確認,漏えい時期,漏えいしたデータの規模についての調査を行うことに決定しました。調査方法の例を以降で説明します。
- 〈この項の構成〉
(1) 情報の漏えい元を特定する
インターネット上に流出した情報には,顧客の性別や誕生日などの情報が含まれていることが調査の結果わかっています。これらの情報は,情報分析システムのデータベースのCUSTOMERS_ANALYSIS表に格納されている情報であることから,この表のデータが情報の漏えい元であると特定しました。
(2) 漏えい元の情報にアクセスしたHADBユーザを調査する
漏えい元の情報を格納しているCUSTOMERS_ANALYSIS表にアクセスしたHADBユーザ,アクセス元IPアドレス,アクセス日時,およびアクセス件数を調査します。
次のSQL文を実行すると,CUSTOMERS_ANALYSIS表にアクセスしたHADBユーザなどの情報を確認できます。
SQL文の実行例
SELECT "USER_NAME","CLIENT_IP_ADDRESS","EXEC_TIME","ACCESS_COUNT" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/savearea/audit_bak/*.aud', ...2 '/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "OBJECT_SCHEMA_NAME"='ANALYSIS_SYSTEM' ...3 AND "OBJECT_NAME"='CUSTOMERS_ANALYSIS' ...3 AND ("EVENT_SUBTYPE"='SELECT' OR "EVENT_SUBTYPE"='ADBEXPORT') ...4 AND "EVENT_RESULT"='SUCCESS' ...5
[説明]
-
CUSTOMERS_ANALYSIS表にアクセスしたHADBユーザの認可識別子(USER_NAME),表へのアクセスを依頼したマシンのIPアドレス(CLIENT_IP_ADDRESS),アクセス日時(EXEC_TIME),およびアクセス件数(ACCESS_COUNT)の一覧を出力するために指定します。
-
不正アクセスの実行時期が不明なため,すべての監査証跡を調査対象にします。そのため,次のディレクトリ下の全監査証跡ファイルを入力情報にします。
-
監査証跡の保存先ディレクトリ(/mnt/audittrail/savearea/audit_bak)
-
監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)
-
-
漏えい元のCUSTOMERS_ANALYSIS表のスキーマ名と表識別子を検索の条件に指定します。
-
実行された操作(SELECT文による表検索,adbexportコマンドによる表データのエクスポート)を検索の条件に指定します。
-
4.の操作(イベント)が成功したという条件を,検索の条件に指定します。
- 重要
-
-
DB監査担当者が,監査参照権限を持っているHADBユーザの認可識別子(ADBAUDITVIEWER)でHADBサーバに接続してこの操作を行います。
-
現用ファイル中の監査証跡も調査対象にする場合は,adbaudittrail --swapコマンドで現用の監査証跡ファイルを切り替えたあとにSQL文を実行してください。
-
(3) 不正アクセスを実行したHADBユーザが,ほかの表にアクセスした形跡がないかを調査する
「(2) 漏えい元の情報にアクセスしたHADBユーザを調査する」で,不正アクセスを実行したHADBユーザを特定したあとに,そのHADBユーザがほかの表にアクセスした形跡がないかを調査します。不正アクセスを実行したHADBユーザが,ほかの表にもアクセスしている場合,その表に格納されている情報も漏えいしているおそれがあります。
次のSQL文を実行すると,不正アクセスを実行したHADBユーザがアクセスした表を確認できます。
SQL文の実行例
不正アクセスを実行したHADBユーザの認可識別子をADBUSER05とした場合の例です。
SELECT "EXEC_TIME","OBJECT_OWNER_NAME","OBJECT_SCHEMA_NAME", ...1 "OBJECT_NAME","ACCESS_COUNT" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/savearea/audit_bak/*.aud', ...2 '/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "USER_NAME"='ADBUSER05' ...3 AND ("OBJECT_TYPE"='TABLE' OR "OBJECT_TYPE"='VIEW') ...4 AND ("EVENT_SUBTYPE"='SELECT' OR "EVENT_SUBTYPE"='ADBEXPORT') ...5 AND "EVENT_RESULT"='SUCCESS' ...6 AND "OBJECT_NAME"!='CUSTOMERS_ANALYSIS' ...7
[説明]
-
次の項目の一覧を出力するために指定します。
-
不正アクセスを実行したHADBユーザが表(ビュー表も含む)にアクセスした日時(EXEC_TIME)
-
不正アクセスを実行したHADBユーザがアクセスした表の情報
-
表の所有者の認可識別子(OBJECT_OWNER_NAME)
-
表のスキーマ名(OBJECT_SCHEMA_NAME)
-
表識別子(OBJECT_NAME)
-
-
アクセス件数(ACCESS_COUNT)
-
-
不正アクセスの実行時期が不明なため,すべての監査証跡を調査対象にします。そのため,次のディレクトリ下の全監査証跡ファイルを入力情報にします。
-
監査証跡の保存先ディレクトリ(/mnt/audittrail/savearea/audit_bak)
-
監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)
-
-
不正アクセスを実行したHADBユーザの認可識別子(ADBUSER05)を検索の条件に指定します。
-
オブジェクトの種別(表とビュー表)を検索の条件に指定します。
-
実行された操作(SELECT文による表検索,adbexportコマンドによる表データのエクスポート)を検索の条件に指定します。
-
5.の操作(イベント)が成功したという条件を,検索の条件に指定します。
-
CUSTOMERS_ANALYSIS表を除外することを検索の条件に指定します。CUSTOMERS_ANALYSIS表に対して不正アクセスを実行していることがわかっているため,この条件を指定します。
- 重要
-
-
DB監査担当者が,監査参照権限を持っているHADBユーザの認可識別子(ADBAUDITVIEWER)でHADBサーバに接続してこの操作を行います。
-
現用ファイル中の監査証跡も調査対象にする場合は,adbaudittrail --swapコマンドで現用の監査証跡ファイルを切り替えたあとにSQL文を実行してください。
-
(4) 調査結果を報告する
次のような調査結果をまとめて,報告をします。
-
情報を漏えいさせたHADBユーザ
「(2) 漏えい元の情報にアクセスしたHADBユーザを調査する」で特定したHADBユーザが,情報を漏えいさせたHADBユーザの可能性があります。
-
情報が漏えいした日時
「(2) 漏えい元の情報にアクセスしたHADBユーザを調査する」および「(3) 不正アクセスを実行したHADBユーザが,ほかの表にアクセスした形跡がないかを調査する」で特定した日時が,情報が漏えいした日時である可能性があります。
-
漏えいした情報
「(1) 情報の漏えい元を特定する」および「(3) 不正アクセスを実行したHADBユーザが,ほかの表にアクセスした形跡がないかを調査する」で特定した表に格納されている情報が漏えいしている可能性があります。
-
漏えいした情報の件数(被害規模)
「(2) 漏えい元の情報にアクセスしたHADBユーザを調査する」および「(3) 不正アクセスを実行したHADBユーザが,ほかの表にアクセスした形跡がないかを調査する」で特定したアクセス件数が,漏えいした可能性のある情報の件数になります。