QAUDJRNを使用した科学捜査分析、第2部:ユーザー・アクティビティー
ユーザーが行うアクティビティーおよびセキュリティー関連イベントの監査と報告
QAUDJRN ジャーナルを使用した科学捜査分析を扱うこのシリーズで、今回はユーザー・アクティビティーの科学捜査分析に焦点を当てることにします。特定のユーザーで行われたさまざまなアクティビティーを監査し、報告する方法をお話し、また、すべてのユーザーにより発生したセキュリティー関連イベントを監査し、報告する方法についても説明します。例として、QSECOFR がシステム値を変更するたびに監査し、報告する方法を検討したり、また任意のユーザーによる任意のオブジェクトの削除が発生するたびに監査し、報告する方法についても論じます。
監査再来
このシリーズの第1部 ("Forensic Analysis Using QAUDJRN, Part 1: Command Usage," ) を読み直すことをお勧めします。ここでは、システム・セキュリティー監査ジャーナル QAUDJRN からの監査および報告の基本について説明しています。セキュリティー関連情報を収集するため、まず、必要な監査機能を実行するようシステムを構成する必要があります。システム値 QAUDCTL と QAUDLVL は、希望のレベルの監査に設定する必要があり、QAUDJRN ジャーナルをシステムで作成しておく必要があります。
システムで発生するどのセキュリティー関連イベントも、特定のユーザーに関連しています。この記事では、ユーザーにより実行されたアクティビティーの報告に焦点を当てます。通常は、QSECOFR やシステム管理ユーザーなどのパワフル・ユーザーのアクティビティーについて報告することを考えます。コマンド行でアクセスするパワフルな IT ユーザーや他のユーザーは、さもないとメニュー・オプションで許可されたアクティビティーに限定されてしまうような、メニュー・システムの制約を離れて、自由にシステムをナビゲートします。そうは言っても、システムをナビゲートするユーザーのパワーまたはアクティビティーとは無関係に、任意のユーザーのアクティビティーを監査し、報告できるとも言わせてください。
特定のユーザーのアクティビティーを監査し、報告できるようにする場合、まず、どのイベントを収集したいかを判断する必要があります。だれかがスプール・ファイル・レポートをある出力キューから別の出力キューへ移動するか気にならない場合、また、プログラムがいつ権限を借用するか気にならない場合には、監査を構成する場合の選択肢に影響があります。新しいライブラリーがシステムで作成されるたび、またはファイルが削除されるたびに追跡できるようにする場合も同様に、監査の構成に影響があります。監査できるイベントは、システム値 QAUDLVL と QAUDLVL2 の指定可能な値と、各ユーザー・プロファイルの AUDLVL 属性の指定可能な値の組み合わせで記述されています。
オブジェクトがシステムで作成または削除されるたびに監査を行い、報告できるようにすると決めた場合、*CREATE と *DELETE をシステム値 QAUDLVL に追加します。システムで権限の障害が発生するたびにそれを認識したい場合、*AUTFAIL を QAUDLVL システム値に追加します。しかし、オプションとして、あるユーザーによりオブジェクトが作成または削除された場合のみ認識したい場合、または、あるユーザーが権限の障害に遭遇した場合のみ認識したい場合は、以下のコマンドを使用して、値 *CREATE、*DELETE、*AUTFAIL をユーザーの AUDLVL 属性に追加します。
CHGUSRAUD USRPRF(User-Profile-name) AUDLVL(*CREATE *DELETE *AUTFAIL)
ユーザー・プロファイル AUDLVL 値は、このユーザーのどのイベントが監査されるかを判断します。QAUDLVL システム値で指定されたイベントは、すべてのユーザーについてグローバルに監査されます。
QSECOFR がシステム値を変更するとき
QSECOFR がシステム値を変更するたびに監査する場合、値 *SECURITY を QAUDLVL システム値に含めるか、QSECOFR ユーザー・プロファイルの AUDLVL 属性に *SECURITY を指定する必要があります。QSECOFR ユーザー・プロファイルを変更して CHGUSRAUD AUDLVL パラメーターに監査値を含めることは気にしないでください。IBM 提供のユーザー・プロファイルを変更しないようにいつもアドバイスしていますが、そのアドバイスはユーザー監査値の変更には当てはまりません。
いったんシステム値またはユーザー・プロファイルを変更して *SECURITY 監査を含めたら、システム値への変更により特殊項目が QAUDJRN ジャーナルに書き込まれます。システム値への変更は、ジャーナル項目タイプが SV の項目として QAUDJRN で特定されます。システム・サービス属性が変更される、またはシステム・クロックが変更される場合も SV ジャーナル項目タイプが使用されます。
システム値変更の抽出と報告
このシリーズの前回の記事で説明しましたが、IBM は該当のジャーナル項目を QAUDJRN から簡単に抽出できるようにしました。まず、以下のコマンドを使用して SV ジャーナル項目の IBM 提供モデル出力ファイルの複製を作成します。
CRTDUPOBJ OBJ(QASYSVJ5) FROMLIB(QSYS) OBJTYPE(*FILE) TOLIB(MYLIB) NEWOBJ(SV_MODEL)
モデル出力ファイルは常に QASYxxJ5 です。xx は項目タイプで、この場合は SV です。
次に DSPJRN コマンドを実行します。以下のコマンドを使用して、SV 項目を抽出し、QSECOFR で生成された項目のみ必要と指定します。
DSPJRN JRN(QAUDJRN) RCVRNG(*CURRENT) JRNCDE((T)) ENTTYP(SV) USRPRF(QSECOFR) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE5) OUTFILE(MYLIB/SV_MODEL) OUTMBR(*FIRST *REPLACE)
図 1 は、システム値変更に関してモデル出力ファイルのレイアウトを示しています。ここで示すように DSPJRN コマンドを使用する場合、データのフォーマットはこのようになります。フィールド SVSYSV に変更されたシステム値の名前、フィールド SVNVAL と SVOVAL にそれぞれ新しい値と古い値が入っている点に注目してください。
フィールド SVUSPF には、システム値を変更したユーザーの名前が入っています。いったん DSPJRN コマンドを実行すると、ファイルで SQL または Query を使用し、今後のスライスやダイスに備えて、ファイルを Microsoft Excel または別のスプレッドシートあるいはデータベース・プログラムにダウンロードできるようになります。
これで、特定のユーザー QSECOFR で実行されるすべてのシステム値変更に必要なすべての情報を手に入れることができました。
すべてのユーザーによるオブジェクト削除の監査と報告
すべてのユーザーに対してオブジェクトが削除されているイベントを報告するには、システム値 QAUDLVL には値 *DELETE が入っている必要があります。いったんこの値が設定されると、ユーザーはいつでもオブジェクトを削除し、DO ジャーナル項目が QAUDJRN ジャーナルに書き込まれます。ライブラリー QTEMP のオブジェクトが削除されると、イベントは QAUDJRN に対して監査されません。
任意のオブジェクト、文書ライブラリー・オブジェクト (DLO)、または IFS のディレクトリーまたはストリーム・ファイルが削除されると必ず DO ジャーナル項目が書き込まれます。コミットメント制御下で削除が行われると、削除の保留を示すため DO 項目がさらに書き込まれます。
Delete Object イベントの抽出と報告
前述の例のように、まず IBM 提供モデル出力ファイルの複製を作成しますが、今回は以下のコマンドを使用して DO ジャーナル・タイプについて作成します。
CRTDUPOBJ OBJ(QASYDOJ5) FROMLIB(QSYS) OBJTYPE(*FILE) TOLIB(MYLIB) NEWOBJ(DO_MODEL)
今回のモデル出力ファイルは QASYDOJ5 です。DO は Delete Object モデル出力ファイルを示すのに使用されます。
次に、DSPJRN コマンドを実行します。以下のコマンドを使用して、ALL ユーザーの Do 項目を抽出すると指定します。
DSPJRN JRN(QAUDJRN) RCVRNG(*CURRENT) JRNCDE((T)) ENTTYP(DO) USRPRF(*ALL) OUTPUT(*OUTFILE) OUTFILFMT(*TYPE5) OUTFILE(MYLIB/DO_MODEL) OUTMBR(*FIRST *REPLACE)
図 2 は、オブジェクト削除イベントのモデル出力ファイルのレイアウトを示しています。フィールド DOONAM は削除されたオブジェクト名を示し、フィールド DOOLIB はオブジェクト・ライブラリーの名前を示しています。オブジェクトが DLO または IFS のディレクトリー、あるいはストリーム・ファイルの場合、もう片方の一覧フィールドを使用して、ファイルまたはディレクトリーの名前や削除されたオブジェクトへのパスを特定します。
その他のユーザー・アクションの監査
ここに示す例に加えて、ユーザーのアクションを監査する多数のオプションが他にあります。例えば、ユーザーの AUDLVL 属性に *CMD を含めることで、ユーザーにより実行されたあらゆる CL コマンドの監査を開始できます。また、「このユーザーはどのファイルを開いたか?」といった質問に回答するため、ユーザーによるオブジェクト・アクセスを報告できます。このシリーズの次号では、オブジェクト監査についてさらに詳しく説明します。第 1 部では、*CMD 使用状況の監査を詳しく説明しています。
実行時の整合性
おわかりのように、報告対象となる各ジャーナル項目タイプの IBM 提供モデル出力ファイルの複製を最初に作成するという方法を採用すると、DSPJRN コマンドを使用して、該当のジャーナル項目を正しい照会フォーマットや他の監査報告フォーマットに記入できます。次にそれらの報告書は、システムで発生しているセキュリティー関連イベントを正しく識別し、管理するのに必要な情報を提供します。