QAUDJRNを使用した科学捜査分析、第4部:セキュリティー関連イベントの検出
システムのセキュリティーに影響を与えるアクティビティーをこなす
QAUDJRN ジャーナルを使用した科学捜査分析を扱うこのシリーズ第 4 弾では、システムでのセキュリティー関連イベント発生の検出と報告に焦点を当てることにします。本記事で言うセキュリティー関連イベントとは、システム値 QAUDLVL の値 *SECURITY を組み込む場合に監査されるイベントを指しています。システムの監査環境は、システム値 QAUDCTL、QAUDLVL、および任意で QAUDLVL2 を組み合わせて使用することで構成されます。システム上のイベントを監査するには、QAUDCTL システム値に値 *AUDLVL が組み込まれていなければなりません。この値はシステムに、システム値 QAUDLVL および QAUDLVL2 で指定されたイベントを監査するよう指示します。
セキュリティー監査を構成する場合、選択肢の 1 つとしてどのイベントを監査するかということが考えられます。例えば、保存および復元操作を監査する場合、システム値 QAUDLVL に値 *SAVRST を組み込みます。権限の障害が発生しているか監査する場合は、値 *AUTFAIL などを組み込みます。したがって、例えばどのイベントを監査するか判断したときに、次の値を組み込むことができるよう QAUDLVL システム値を設定できます。
*SAVRST *CREATE *DELETE *AUTFAIL *PGMFAIL *SECURITY *SERVICE
*SYSMGT *OBJMGT
いったん QAUDLVL システム値が設定されたら、その値はいつでも変更できます。システム値への変更内容は即座に有効になります。QAUDCTL および QAUDLVL システム値にあまり詳しくない場合は、IBM iSeries セキュリティー・リファレンス・マニュアル (iSeries Security Reference, SC41-5302-09)を参照することをお勧めします。
QAUDJRNとジャーナル項目タイプ
監査イベントが発生すると、項目がシステム・セキュリティー監査ジャーナル QAUDJRN に書き込まれます。QAUDJRN の各項目は、特定のジャーナル項目タイプで特定されます。権限障害イベントのジャーナル項目タイプは AF です。オブジェクトが削除される場合、ジャーナル項目タイプは DO、オブジェクトへの権限が変更される場合、CA 項目が QAUDJRN に書き込まれます。
イベント・タイプによりさまざまな情報を記録する必要があるため、QAUDJRN のジャーナル項目には標準のヘッダー部分がありますが、それぞれ項目固有の部分を備えています。例えば、ユーザー・プロファイルが変更された場合、CP ジャーナル項目は、システム値が変更されたことを示すため SV 項目を書き込むのとは別の情報を、その Entry Specific Data (ESD) 部分に入れる必要があります。各ジャーナル項目タイプにはそれぞれ独自のフォーマットがありますが、ヘッダー部分は項目タイプ間で同じです。
QAUDLVLの値 *SECURITYで監査されるイベントとは
値 *SECURITY が QAUDLVL に組み込まれると、多数のイベントが監査されます。どの異なるタイプのイベントも異なるタイプのジャーナル項目を生成します。*SECURITY が QAUDLVL システム値で指定されると、図 1 に示すイベントが監査されます。図 1 のリストは省略形になっています。他に多くのイベントがありますが、目立たず、ほとんどの人にとってあまり関心のないイベントもあります。前述の IBM iSeries セキュリティー・リファレンス・マニュアルの表 126 に完全なリストがあります。表 126 は QAUDJRN ジャーナルから監査およびレポートを構成する場合に参照する必要があると思います。セキュリティー・リファレンス・マニュアルの付録 F も QAUDJRN から報告する場合に参照する必要があります。この付録には各 QAUDJRN ジャーナル項目タイプのレコード・フォーマットと内容が入っています。
*SECURITY の範囲を絞るため、IBM は実質的に *SECURITY のサブタイプである QAUDLVL 値をいくつか導入しました。次のような値があります。
- *SECCFG - セキュリティー構成イベントの監査
- *SECDIRSRV - ディレクトリー・サーバー・イベントの監査
- *SECIPC - プロセス間通信の変更の監査
- *SECNAS - ネットワーク認証サービス (Kerberos) に関するイベントの監査
- *SECRUN - あるセキュリティー・ランタイム関数の監査
- *SECSCKD - ソケット・ディスクリプター・アクティビティーの監査
- *SECVFY - あるプロファイルの検証および認証機能の使用の監査
- *SECLVLD - 検証リストへの変更の監査
*SECURITY を指定する場合、サブタイプは何も指定する必要はありません。例えば、値 *SECCFG を使用して監査されたすべてのイベントは *SECURITY で指定された監査に含まれています。両方指定する必要はありません。値 *SECURITY をシステム値 QAUDLVL に組み込むことをお勧めします。サブタイプをいくつか組み込んで *SECURITY を省略すると、いくつか重要なイベントの監査に失敗します。
セキュリティー関連イベントの報告
QAUDLVL *SECURITY オプションを設定して監査を開始したら、イベントの発生とともにそれらを報告し始めることができます。QAUDJRN ジャーナル項目がジャーナルに書き込まれるとともにそれらを受信するプログラムを作成したり、ほとんどの場合従来どおり、事実の後にアクティビティーの印刷レポートを生成するプログラムを作成できます。
ジャーナル項目をリアルタイムにプルする場合、CL コマンドの Receive Journal Entry (RCVJRNE) を使用できます。このコマンドを使用して、作成する出口プログラムがジャーナル項目データを受信し、そのデータを解釈して、ある場合はどういったアクションをとるか判断します。RCVJRNE コマンドの使用に関する詳細は、IBM インフォメーション・センター をご覧ください。
*SECURITY カテゴリーで報告できるイベント・タイプの 1 つに、サービス属性またはシステム値が変更されたイベントがあります。図 1 が示すように、これらのイベントはジャーナル項目タイプ SV を使用して記録されます。SV はまた、システム・クロックへの変更を示す場合に使用されます。
これらの項目への変更に関する日次または週次のバッチ・レポートを生成する場合、まず SV ジャーナル項目をクエリーまたは他のレポート・プロセスで使用できるフォーマットに抽出する必要があります。
ジャーナル・タイプごとに IBM は、IBM 提供の Display Journal (DSPJRN) コマンドとともに使用する場合に、データを簡単にフォーマットできるモデル・データベース・ファイルを提供しました。
このシリーズの前月の記事でお話したように、まず IBM 提供のモデル・ファイルの複製を作成します。この場合、以下のコマンドを使用して SV ジャーナル項目タイプのモデル・ファイルを選択します。
CRTDUPOBJ OBJ(QASYSVJ5) FROMLIB(QSYS) OBJTYPE(*FILE) TOLIB(MYLIB) NEWOBJ(SV_MODEL)
モデル・ファイルの名前は QASYSVJ5 で、SV はジャーナル項目タイプを示します。
次に、SV 項目をすべて抽出し、出力を SV モデル出力ファイルのコピーに配置するよう指定して、DSPJRN コマンドを実行します。
DSPJRN JRN(QAUDJRN) RCVRNG(*CURRENT) JRNCDE((T)) ENTTYP(SV)
OUTPUT(*OUTFILE) OUTFILFMT(*TYPE5) OUTFILE(MYLIB/SV_MODEL)
OUTMBR(*FIRST *REPLACE)
図 2 は SV 項目のモデル出力ファイルのレイアウトを示しており、サービス属性、システム値、およびシステム・クロックへの変更を特定しています。DSPJRN コマンドが完了すると、出力ファイルには各 SV ジャーナル項目からのフォーマット済みデータが入っています。SVSYSV というファイル・フィールドには、変更されたサービス属性またはシステム値の名前が入っています。フィールド SVNVAL および SVOVAL には、それぞれ新しい値と古い値が入っています。古いまたは新しい値の長さが 250 文字を超えると、フィールドはフィールド SVNCVL および SVOCVL に続けられます。フィールド SVUSPF には、変更を行ったジョブの現行ユーザーの名前が入っています。
その他のフィールドいくつかは、レポート対象になります。例えば、ジョブ・ユーザー、ジョブ名、ジョブ番号のようにタイムスタンプが提供されます。対話式ワークステーション・セッションから変更を行った場合、ジョブの名前はワークステーションの名前になります。
また、変更を行うのに使用したプログラムの名前について報告できます。コマンド・ラインから変更した場合は、プログラム名は QCMD またはコマンド・ライン・プログラムの他の名前になります。カスタム RPG プログラムまたは CL プログラムのいずれかを使用して変更した場合、そのプログラム名は出力ファイルにリストされます。また、変更の実行元の IP アドレスについて報告できます。記録された利用可能な情報それぞれについて図 2 を調べてください。
ジャーナル・データが正しいフォーマット、つまり出力ファイルにあると、自分のレポート・プログラムを作成したり、Query または SQL を使用してコンテンツから報告できます。希望すれば、ファイルを単に Excel にダウンロードし、切り刻むことができます。
また今度
この記事が、システムに影響を与えるセキュリティー関連アクティビティーを遂行するのに必要な情報をお伝えできたと思います。科学捜査分析を扱うこのシリーズの次号であり最終号では、データベース変更に関する監査とレポートの方法について調べます。しかし、QAUDJRN ジャーナルは使用しません。その代わり、IBM i における DB2 for i データベース・ジャーナリングを取り上げ、「そのデータベース・レコードを変更した者は?」つきとめようとしてデータベース・ジャーナルから意味のあるデータを抽出できる方法を調べます。