Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


12.7.5 定期監査の実施

12.7.2 設計」の「(1) 監査の方針を決める」で決めた監査方針に基づいて,次のことを定期監査で確認します。

上記の各監査項目の確認方法の例を以降で説明します。

〈この項の構成〉

(1) HADBサーバへの不審な接続がないことを確認する

A社の情報分析システムでは,BIツールからHADBサーバに接続する際に使用される,認可識別子とアクセス元のマシンのIPアドレスが,次のように決まっています。

HADBサーバへの接続時に,上記以外の認可識別子やIPアドレスが使用された場合,そのHADBサーバへの接続は,不正操作の可能性があります。

また,A社では,DB管理担当者が,データベースのメンテナンス作業などを行う場合は,事前に申請をする規則になっています。申請書には,メンテナンスの理由,作業内容,使用するマシン,作業の実施時刻,作業時に使用するHADBユーザの認可識別子などの情報を記入します。申請以外の作業を実施した場合は,実施した作業とその理由を申請先に報告します。このような規則で運用されているため,申請以外の操作や,報告以外の操作でHADBサーバへの接続が行われた場合,その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

[説明]

  1. HADBサーバへの接続に失敗したHADBユーザの認可識別子(USER_NAME),接続依頼元のマシンのIPアドレス(CLIENT_IP_ADDRESS),接続操作を実行した日時(EXEC_TIME)の一覧を出力するために指定します。

  2. 定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。

  3. 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

[説明]

  1. HADBサーバへの接続を試みたHADBユーザの認可識別子(USER_NAME),接続依頼元のマシンのIPアドレス(CLIENT_IP_ADDRESS),接続操作を実行した日時(EXEC_TIME)の一覧を出力するために指定します。

  2. 定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。

  3. HADBサーバへの接続記録を抽出するための条件を指定します。

  4. 申請内容に当てはまらない条件を指定します。申請内容に記載されているIPアドレス,認可識別子,作業時間を否定条件で指定します。

上記のSQL文の例は,申請された作業が1件の場合の例です。申請された作業が複数ある場合は,その申請内容の条件を探索条件に追加してください。

上記のSQL文の実行結果には,申請された作業以外でHADBサーバへの接続を試みたHADBユーザの認可識別子などが出力されます。これらのHADBサーバへの接続は,不正操作の可能性があるため,そのことを監査結果として報告します。

(2) データベースの不正操作がないことを確認する

A社の情報分析システムでは,次に示すデータベース操作が行われます。

上記以外のデータベース操作は,不正操作の可能性があるため,定期監査の際は次のことを確認します。

それぞれの調査方法を以降で説明します。

■不審なデータインポートが実行されていないかを調査する方法

次の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

[説明]

  1. データインポートを実行したHADBユーザの認可識別子(USER_NAME),データインポートを実行した日時(EXEC_TIME)の一覧を出力するために指定します。

  2. 定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。

  3. 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

[説明]

  1. データベースの検索(BIツールを使用した検索を除く)を実行したHADBユーザの認可識別子(USER_NAME),検索を実行した日時(EXEC_TIME)の一覧を出力するために指定します。

  2. 定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。

  3. データベースの検索記録(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

[説明]

  1. 監査証跡機能の設定変更を行ったHADBユーザの認可識別子(USER_NAME),設定変更を依頼したマシンのIPアドレス(CLIENT_IP_ADDRESS),設定変更を行った日時(EXEC_TIME)の一覧を出力するために指定します。

  2. 定期監査では,過去3か月の監査証跡を調査対象とするため,監査証跡の出力先ディレクトリ(/mnt/audittrail/outputarea/audit)下の全監査証跡ファイルを入力情報にします。

  3. 監査証跡機能の設定変更を行った際の操作記録を抽出するための条件を指定します。

上記のSQL文の実行結果を確認します。申請されていない設定変更が行われている場合,その設定変更は不正操作の可能性があるため,そのことを監査結果として報告します。