12.7.5 定期監査の実施
「12.7.2 設計」の「(1) 監査の方針を決める」で決めた監査方針に基づいて,次のことを定期監査で確認します。
-
HADBサーバへの不審な接続がないことを確認する
A社の運用では,基本的にBIツールからHADBサーバに接続しています。データベースのメンテナンス作業などで,DB管理担当者がHADBサーバに接続する場合は,HADBサーバへの接続申請を事前に行っています。そのため,これら以外の方法でHADBサーバへの接続が行われていないかを確認します。また,HADBサーバへの接続は,申請どおりに適切に行われているかを確認します。
-
データベースの不正操作がないことを確認する
データベースの操作は,BIツールが自動的に作成したSQL文によって行われます。そのため,実行されるSQL文は定型的なものが多く,基本的には数パターンのSQL文しか実行されません。そのパターンから外れた,複雑なSQL文が実行されていないかを確認します。複雑なSQL文が実行されている場合,不正操作の可能性があります。
-
監査証跡機能の設定が不正に変更されていないことを確認する
監査証跡機能の設定変更は,社内で決められた手順に従って申請を行い,変更の許可が下りたあとに実施されます。そのため,許可されていない設定変更が実施されていないかを確認します。
上記の各監査項目の確認方法の例を以降で説明します。
(1) HADBサーバへの不審な接続がないことを確認する
A社の情報分析システムでは,BIツールからHADBサーバに接続する際に使用される,認可識別子とアクセス元のマシンのIPアドレスが,次のように決まっています。
-
認可識別子:BI_ANALYSIS
-
アクセス元のマシンのIPアドレス:11.168.xx.32
HADBサーバへの接続時に,上記以外の認可識別子やIPアドレスが使用された場合,そのHADBサーバへの接続は,不正操作の可能性があります。
また,A社では,DB管理担当者が,データベースのメンテナンス作業などを行う場合は,事前に申請をする規則になっています。申請書には,メンテナンスの理由,作業内容,使用するマシン,作業の実施時刻,作業時に使用するHADBユーザの認可識別子などの情報を記入します。申請以外の作業を実施した場合は,実施した作業とその理由を申請先に報告します。このような規則で運用されているため,申請以外の操作や,報告以外の操作でHADBサーバへの接続が行われた場合,そのHADBサーバへの接続は,不正操作の可能性があります。
以上のことから,定期監査の際は次のことを確認します。
-
HADBサーバへの接続に失敗したHADBユーザがいるか
-
申請内容(認可識別子,マシンのIPアドレス,作業時間帯)にはない,HADBサーバへの接続が行われていないか
それぞれの調査方法を以降で説明します。
- ■HADBサーバへの接続に失敗したHADBユーザがいるかどうかを調査する方法
-
BIツールからのHADBサーバへの接続は,基本的には失敗しません。そのため,HADBサーバへの接続に失敗したHADBユーザがいるかどうかを重点的に調査します。次のSQL文を実行すると,HADBサーバへの接続に失敗したHADBユーザを確認できます。
SQL文の実行例
SELECT "USER_NAME","CLIENT_IP_ADDRESS","EXEC_TIME" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "EVENT_SUBTYPE"='CONNECT' AND "EVENT_RESULT"='FAILURE' ...3
[説明]
-
HADBサーバへの接続に失敗したHADBユーザの認可識別子(USER_NAME),接続依頼元のマシンのIPアドレス(CLIENT_IP_ADDRESS),接続操作を実行した日時(EXEC_TIME)の一覧を出力するために指定します。
-
定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。
-
HADBサーバへの接続が失敗した操作記録を抽出するための条件を指定します。
上記のSQL文の実行結果を確認します。認可識別子(USER_NAME),接続依頼元のマシンのIPアドレス(CLIENT_IP_ADDRESS),接続操作を実行した日時(EXEC_TIME)が,申請の内容や,事後報告の内容と合っているかを確認します。合っていない操作記録がある場合は,不正操作の可能性があるため,そのことを監査結果として報告します。
-
- ■申請内容(認可識別子,マシンのIPアドレス,作業時間帯)にはない,HADBサーバへの接続が行われていないかを調査する方法
-
申請された作業以外で,HADBサーバへの接続が行われていないかを調査します。次のSQL文を実行すると,申請された作業以外の,HADBサーバへの接続記録を確認できます。
SQL文の実行例
SELECT "USER_NAME","CLIENT_IP_ADDRESS","EXEC_TIME" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "EVENT_SUBTYPE"='CONNECT' ...3 AND ("CLIENT_IP_ADDRESS"!='10.196.xx.122' ...4 OR "USER_NAME"!='MAINTENANCE_USER25239' ...4 OR "EXEC_TIME" NOT BETWEEN TIMESTAMP'2017/06/08 00:00:00.000000' ...4 AND TIMESTAMP'2017/06/08 00:30:00.000000') ...4
[説明]
-
HADBサーバへの接続を試みたHADBユーザの認可識別子(USER_NAME),接続依頼元のマシンのIPアドレス(CLIENT_IP_ADDRESS),接続操作を実行した日時(EXEC_TIME)の一覧を出力するために指定します。
-
定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。
-
HADBサーバへの接続記録を抽出するための条件を指定します。
-
申請内容に当てはまらない条件を指定します。申請内容に記載されているIPアドレス,認可識別子,作業時間を否定条件で指定します。
上記のSQL文の例は,申請された作業が1件の場合の例です。申請された作業が複数ある場合は,その申請内容の条件を探索条件に追加してください。
上記のSQL文の実行結果には,申請された作業以外でHADBサーバへの接続を試みたHADBユーザの認可識別子などが出力されます。これらのHADBサーバへの接続は,不正操作の可能性があるため,そのことを監査結果として報告します。
-
(2) データベースの不正操作がないことを確認する
A社の情報分析システムでは,次に示すデータベース操作が行われます。
-
表へのデータインポート(30分ごとに実行)
-
BIツールを使用したデータベースの検索
-
申請された作業によるデータベース操作
上記以外のデータベース操作は,不正操作の可能性があるため,定期監査の際は次のことを確認します。
-
不審なデータインポートが実行されていないか
-
BIツール以外の方法で,データベースの検索が実行されていないか
-
申請されていないデータベース操作が実行されていないか
それぞれの調査方法を以降で説明します。
- ■不審なデータインポートが実行されていないかを調査する方法
-
次のSQL文を実行すると,表へのデータインポートの操作記録を確認できます。
SQL文の実行例
SELECT "USER_NAME","EXEC_TIME" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "EVENT_SUBTYPE"='ADBIMPORT' ...3
[説明]
-
データインポートを実行したHADBユーザの認可識別子(USER_NAME),データインポートを実行した日時(EXEC_TIME)の一覧を出力するために指定します。
-
定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。
-
adbimportコマンドを実行した操作記録を抽出するための条件を指定します。
上記のSQL文の実行結果のEXEC_TIME列(データインポートを実行した日時)を確認します。A社では,毎時00分頃または30分頃にデータインポートが実行されます。明らかに違う時刻にデータインポートが実行されている場合は,定期的なデータインポートではない可能性があります。また,事前に申請されているデータインポートではない場合も不正操作の可能性があるため,そのことを監査結果として報告します。
-
- ■BIツール以外の方法で,データベースの検索が実行されていないかを調査する方法
-
次のSQL文を実行すると,BIツールを使用した検索を除いた,データベースの検索記録を確認できます。
SQL文の実行例
SELECT "USER_NAME","EXEC_TIME" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "EVENT_SUBTYPE"='SELECT' ...3 AND ("CLIENT_IP_ADDRESS"!='11.168.xx.32' OR "USER_NAME"!='BI_ANALYSIS') ...3
[説明]
-
データベースの検索(BIツールを使用した検索を除く)を実行したHADBユーザの認可識別子(USER_NAME),検索を実行した日時(EXEC_TIME)の一覧を出力するために指定します。
-
定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。
-
データベースの検索記録(BIツールを使用した検索を除く)を抽出するための条件を指定します。
BIツールを使用してデータベースを検索する場合,HADBサーバへの接続時に使用する認可識別子は,BI_ANALYSIS固定となっています。また,HADBサーバへの接続元のクライアントのIPアドレスは,11.168.xx.32固定となっています。したがって,この認可識別子またはIPアドレス以外でHADBサーバに接続している場合は,BIツールを使用しないでデータベースを検索しています。この検索は,不正操作の可能性があるため,そのことを監査結果として報告します。
なお,事前に申請されているデータベースの検索操作でないことも確認してください。
-
- ■申請されていないデータベース操作が実行されていないかを調査する方法
-
申請されていないデータベース操作が実行されていないかを調査するには,データベースの操作記録の一覧を出力し,申請内容と照らし合わせるなどの方法が考えられます。
(3) 監査証跡機能の設定が不正に変更されていないことを確認する
監査証跡機能の設定は,社内で決められた手順に従って変更の申請を行い,変更の許可が下りた場合に限り設定変更ができる規則になっています。したがって,申請されていない設定変更が行われた場合,その設定変更は不正操作の可能性があります。
また,申請が行われている場合であっても,申請内容と異なる設定変更が行われたときは,その設定変更も不正操作の可能性があります。これらの不正操作の可能性を監査の結果として報告します。
次のSQL文を実行すると,監査証跡機能の設定変更の操作記録を確認できます。
SQL文の実行例
SELECT "USER_NAME","CLIENT_IP_ADDRESS","EXEC_TIME" ...1 FROM TABLE(ADB_AUDITREAD(MULTISET['/mnt/audittrail/outputarea/audit/*.aud'])) "DT" ...2 WHERE "EVENT_TYPE"='AUDIT' ...3
[説明]
-
監査証跡機能の設定変更を行ったHADBユーザの認可識別子(USER_NAME),設定変更を依頼したマシンのIPアドレス(CLIENT_IP_ADDRESS),設定変更を行った日時(EXEC_TIME)の一覧を出力するために指定します。
-
定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。
-
監査証跡機能の設定変更を行った際の操作記録を抽出するための条件を指定します。
上記のSQL文の実行結果を確認します。申請されていない設定変更が行われている場合,その設定変更は不正操作の可能性があるため,そのことを監査結果として報告します。