監査ジャーナルの概要
企業の情報を守るためには、システム上のセキュリティー管理が重要です。IBM i には、セキュリティーに関する機能として、ユーザー・プロファイル/パスワードでの認証や、オブジェクトに対する権限設定による認可などのセキュリティー機能が用意されています。セキュリティー管理では、それらのセキュリティーを設定するだけではなく、設定したセキュリティーが正しく守られていることを監査する必要があります。
今回、ご紹介する監査ジャーナルは、図1で示すようにIBM i のセキュリティー機能の1つであり、システムに対して設定したセキュリティーが正しく守られているかを確認するために使用できます。監査ジャーナルで取得した情報は、内部統制を行う上で、不正アクセスや情報漏洩などのセキュリティー違反の検出に利用する重要な情報として使用できます。また、監査ジャーナルで取得した情報は、セキュリティー違反の検出以外にも、より高いセキュリティーを設定・管理を計画する目的としても使用できます。
【図1:IBM i セキュリティー機能の全体】

IBM i の監査ジャーナルには、「アクション監査」と「オブジェクト監査」の2種類があります。図2で示すように、「アクション監査」は、オブジェクトの作成や削除、変更、ジョブの取り消し、帳票印刷などユーザーの行為のログを取得します。「オブジェクト監査」は、指定したオブジェクトにユーザーが読取、変更などのアクセスを行った際にログを取得します。
「アクション監査」、「オブジェクト監査」により取得されたログには、ジョブの取り消しを行ったのか、オブジェクトを変更したのかというような行為の内容、その内容が行われた日時や、ジョブ、ユーザー・プロファイルなどの情報が取得されます。例えば、あるデータベース・ファイルにアクセスし読み取りを行った場合、読み取りが行われたオブジェクト名、日時、ジョブ、ユーザー・プロファイルなどの情報が取得されます。また、プログラムを通して、データベース・ファイルにアクセスした場合は、そのプログラム名なども取得できます。
【図2:アクション監査とオブジェクト監査】

監査ジャーナルは、OSの標準機能であり、システム値、ユーザー・プロファイル・パラメーター、 オブジェクト・パラメーターの3つを使用して設定します。図3は、設定の概要図です。設定方法については、この後、詳しく説明します。
【図3:監査ジャーナル設定の概要】

監査ジャーナルの使用手順
監査ジャーナルの使用手順の大まかな流れは以下のとおりです。
- 監査対象の計画
- 監査用のジャーナル・レシーバー、ジャーナルの作成
- 監査ジャーナルの設定
- 監査ジャーナルの表示・分析
1.監査対象の計画
監査対象の計画では、以下の順番で監査の対象となるユーザーの行為(アクション監査)、アクセスログの取得対象となるオブジェクト(オブジェクト監査)を決定します。
1-1.全ユーザーに対し、どのセキュリティーに関する行為を記録するかを決定します(アクション監査)。監査する行為の例は以下のとおりです。
- 認可の失敗(サインオンの失敗、オブジェクトのアクセス違反等)(*AUTFAIL)
- ジョブの開始/終了、他のジョブの保留、解放、停止、続行、変更 (*JOBBAS/*JOBDTA)
- オブジェクトの作成/削除/移動/名前変更 (*CREATE/*DELETE/*OBJMGT)
- 借用権限を使用したプログラム実行 (*PGMADP)
- スプールファイルの印刷/送信 (*SPLFDTA)
- オブジェクトの保管/復元 (*SAVRST) 等
※ 括弧内は、システム値「QAUDLVL」での設定値です。こちらは、「3.監査ジャーナルの設定」の際に使用する設定値となります。
設定可能な行為の一覧、詳細は下記IBM i Information Center「監査システム値:アクション監査の活動化」をご参照ください。
IBM i Information Center「監査システム値:アクション監査の活動化」
1-2.特定のユーザーに、追加の監査が必要かどうかを決定します(アクション監査)。
特定のユーザーに対するアクション監査も、全ユーザーに対するアクション監査と同じ行為に対して設定できます。特定のユーザーに対する監査は、全ユーザーに対する監査で設定可能な行為の他に、ユーザーのコマンドの実行(*CMD)のログを取得できます。全ユーザー共通のアクション監査を設定した上で、特定ユーザーに対してのみのアクション監査を設定できます。また、全ユーザーに対しては設定を行わずに、特定のユーザーにのみアクション監査を設定することも可能です。
特定のユーザーに対して設定可能な行為の一覧、詳細は下記IBM i Information Center「ユーザー監査の変更 (CHGUSRAUD)」をご参照ください。
IBM i Information Center「ユーザー監査の変更 (CHGUSRAUD)」
1-3.ユーザーからのアクセスを監査するオブジェクトを決定します(オブジェクト監査)。
ユーザーがオブジェクトを変更または読み取りした際にログを取得するオブジェクトを決定します。
1-4.「全ユーザーに対するオブジェクト監査」か「ユーザー個別のオブジェクト監査」のどちらかを決定します(オブジェクト監査)。
1-3.で決定したオブジェクトを、全ユーザーに対して監査するか、それとも特定のユーザーに対して監査するかを決定します。
2.監査用のジャーナル・レシーバー、ジャーナルの作成
監査対象として設定したユーザーの行為(アクション監査)や、オブジェクトに対するアクセス(オブジェクト監査)のログを書き込む監査ジャーナル・レシーバーと監査ジャーナルを以下の手順で作成します。ジャーナルは、監査対象のログをジャーナル項目のフォームで記録し、ジャーナル・レシーバーにジャーナル項目を書き込みます。ジャーナル・レシーバーは、ジャーナルと切り離して、保管や削除などの管理ができます。
※ 以下の手順を実行するユーザーには、*AUDIT 特殊権限が必要となります。
2-1.監査ジャーナル・レシーバー、監査ジャーナル保管用のライブラリーを作成します。
コマンド例:CRTLIB LIB(JRNLIB) TEXT(' 監査ジャーナル・レシーバー用 ')
2-2.監査ジャーナル・レシーバーを作成します。2-1.で作成したライブラリーに監査ジャーナル・レシーバーを作成します。
コマンド例:
CRTJRNRCV
JRNRCV(JRNLIB/AUDRCV0001)
THRESHOLD(100000) AUT(*EXCLUDE)
TEXT('監査用レシーバー')
監査ジャーナル・レシーバーはQSYS以外のライブラリーに作成してください。ジャーナル・レシーバー名は任意で設定できます。ただし、ジャーナル・レシーバーのしきい値を超えた際に、次のジャーナル・レシーバーを自動生成する場合は、ジャーナル・レシーバーの命名規則を作成するため、AUDRCV0001など最後の4桁が数字になるようにジャーナル・レシーバー名を設定することを推奨します。権限(AUT) パラメーターでは、 *EXCLUDE を指定し、ジャーナルに保管されている情報へのアクセスを限定した方が良いでしょう。ジャーナル・レシーバーしきい値(THRESHOLD)パラメーターでは、使用しているシステムのサイズと活動状態に応じたレシーバー限界値を指定します。トランザクション、および、監査目的に選択する処置の数に基づいて、サイズの大きさを選択してください。
2-3.監査ジャーナルを作成します。2-2.で作成したジャーナル・レシーバーを指定し、監査ジャーナルを作成します。
コマンド例:
CRTJRN
JRN(QSYS/QAUDJRN)
JRNRCV(JRNLIB/AUDRCV0001)
MNGRCV(*SYSTEM) DLTRCV(*NO)
AUT(*EXCLUDE) TEXT(' 監査ジャーナル ')
監査ジャーナルには必ず名前QSYS/QAUDJRN を使用します。権限(AUT) パラメーターでは、 *EXCLUDE を指定し、ジャーナルに保管されている情報へのアクセスを限定した方が良いでしょう。レシーバーの管理 (MNGRCV) パラメーターに*SYSTEMを指定すると、接続したレシーバーがジャーナル・レシーバーの作成時に指定したしきい値を超えた場合に、システムに、ジャーナル・レシーバーを変更して、新しいジャーナル・レシーバーを接続させることができます。このパラメーターを使用すると、ジャーナル・レシーバーのしきい値を超える際に、CHGJRN コマンドを使用して、手動でレシーバーを切断し、新しいレシーバーを作成および接続するという手間が省けます。手動でジャーナル・レシーバーを変更して命名規則を続行する場合は、CHGJRNコマンドを使用し、ジャーナル・レシーバー(JRNRCV)パラメーターを*GENに設定します。その際、レシーバーの削除DLTRCVパラメーターを使用して、切断されたレシーバーを削除しないように設定もできます。
3.監査ジャーナルの設定
「1.監査対象の計画」計画した監査対象に対して、システム値、ユーザー・プロファイル・パラメーター、 オブジェクト・パラメーターの3つを使用して監査を設定します。
3-1.全ユーザーに対するアクション監査
全ユーザーの行為に対する監査を設定するには、システム値QAUDLVL、 QAUDLVL2に監査する行為を指定します。システム値QAUDLVL2は、17個以上、監査する行為が必要な場合に使用します。システム値QAUDLVL2を使用する場合は、システム値QAUDLVLに*AUDLVL2を設定し、システム値QAUDLVL2に監査値を追加します。
設定画面(WRKSYSVAL QAUDLVLコマンドを実行後、オプション2 変更を選択)

監査オプションで指定する監査値の詳細は、下記IBM i Information Center「監査システム値: アクション監査の活動化」をご参照ください。
IBM i Information Center「監査システム値:アクション監査の活動化」
システム値 QAUDCTLに*AUDLVLを設定することで、システム値QAUDLVL および QAUDLVL2 に設定した監査を開始することができます。システム値 QAUDCTLの設定変更は即時にシステムに反映されます。
設定画面(WRKSYSVAL QAUDCTLコマンドを実行後、オプション2 変更を選択)

【参考】システム値QAUDCTLに指定できる値は以下のとおりです。
| QAUDCTLの値 | 動作内容 |
|---|---|
| *NONE | ユーザー処置またはオブジェクトに対して監査は実行されません。 |
| OBJAUD(オブジェクト単位の監査) | オブジェクト監査の変更 CHGOBJAUD コマンドの他、CHGDLOAUD, CHGAUDコマンドを使用して監査用に選択されたオブジェクトの監査が実行されます。 |
| *AUDLVL(ユーザー単位の監査) | システム値QAUDLVL と QAUDLVL2 、および個々のユーザー・プロファイルの AUDLVL パラメーターで選択された、任意の機能に対して監査が実行されます。 |
| *NOQTEMP | QTEMP 中のほとんどのオブジェクトの監査は行われません。*OBJAUD または *AUDLVL の場合、 *NOQTEMPと一緒に指定しなければなりません。 *NOQTEMP 単独で指定することはできません。 |
3-2.特定のユーザーに対するアクション監査
特定のユーザーの行為に対する監査を追加する場合、CHGUSRAUDコマンドを使用して、特定のユーザー・プロファイルに対して監査レベル(AUDLVL)パラメーターを指定します。
設定画面(CHGUSRAUDコマンドを実行後、F4)

設定可能な行為の一覧、詳細は下記IBM i Information Center「ユーザー監査の変更 (CHGUSRAUD)」をご参照ください。
IBM i Information Center「ユーザー監査の変更 (CHGUSRAUD)」
例えば、図4のように、CHGUSRAUDコマンドを使用して、ユーザーAの監査レベル(AUDLVL)パラメーターには、*NONE、ユーザーBの監査レベル(AUDLVL)パラメーターには、*CMD、*CREATE、*DELETEを設定します。この場合、ユーザーAに対しては、システム値QAUDLVL/QAUDLVL2で設定した行為が記録され、ユーザーBに対しては、システム値QAUDLVL/QAUDLVL2で設定した行為と監査レベルパラメーターに設定した*CMD、*CREATE、*DELETEの3つの行為が記録されます。
【図4:特定のユーザーに対するアクション監査の例】

システム値 QAUDCTLに*AUDLVLを設定することで、全ユーザーに対するアクション監査、および、特定のユーザーに対するアクション監査を開始できます。システム値 QAUDCTLから*AUDLVLを削除した場合、特定ユーザーのアクション監査のみの停止ではなく、全ユーザー共通のアクション監査も停止されますので、ご注意ください。特定のユーザーに対する監査のみを設定を停止したい場合は、CHGUSRAUDコマンドを使用して、ユーザー・プロファイルの AUDLVL パラメーターを*NONEに設定する必要があります。 また、全ユーザーへの設定を行わずに、特定のユーザーのみアクション監査を設定する場合は、ユーザー・プロファイルに対して監査レベル(AUDLVL)パラメーターを指定し、システム値QAUDCTLに*AUDLVL、システム値QAUDLVLに*NONEと設定してください。
3-3.全ユーザーに対するオブジェクト監査
全ユーザーからオブジェクトへのアクセスに対する監査を設定する場合、システム値 QAUDCTLに*OBJAUD指定します。
設定画面(WRKSYSVAL QAUDCTLコマンドを実行後、オプション2 変更を選択)

さらに、監査するオブジェクトにCHGOBJAUDコマンド、または、CHGAUDコマンドを使用し、オブジェクト監査値(OBJAUD)パラメーターに*CHANGE(変更のみ記録)または*ALL(読み取り+変更を記録)を指定します。
※ 監査するオブジェクトがQSYS.LIBファイル・システムの場合は、CHGOBJAUDコマンドを使用し、その他統合ファイル・システムの場合は、CHGAUDコマンドを使用します。
設定画面(CHGOBJAUDコマンドを実行後、F4)

設定画面(CHGAUDコマンドを実行後、F4)

3-4.特定のユーザーに対するオブジェクト監査
特定のユーザーからのオブジェクトへのアクセスに対する監査を設定する場合も、システム値 QAUDCTLに*OBJAUD指定します。監査するオブジェクトにCHGOBJAUDコマンド、または、CHGAUDコマンドを使用し、オブジェクト監査値(OBJAUD)パラメーターに*USRPRFを指定します。そして、特定のユーザーにCHGUSRAUDコマンドを使用し、オブジェクト監査値(OBJAUD)パラメーターに*CHANGE(変更のみ記録)または*ALL(読み取り+変更を記録)を指定します。
設定画面(CHGUSRAUDコマンドを実行後、F4)

例えば、図5のように、監査するオブジェクトのオブジェクト監査値(OBJAUD)パラメーターに、*CHANGE(変更のみ記録)と*USRPRFを設定します。ユーザーAのオブジェクト監査値(OBJAUD)パラメーターには、*NONE、ユーザーBのオブジェクト監査値(OBJAUD)パラメーターには、*ALLと設定します。この場合、ユーザーAに対しては、そのオブジェクトへの変更のみが記録され、ユーザーBに対しては、変更だけではなく読み取りも記録されます。
【図5:特定のユーザーに対するオブジェクト監査の設定】

ユーザー・プロファイルのオブジェクト監査値(OBJAUD)パラメーターに設定した値は、オブジェクトのOBJAUDパラメーターが*USRPRFになっていない限り参照されません。
4.監査ジャーナルの表示・分析
記録したジャーナルを表示します。まず一つ目の方法として、ジャーナル表示 (DSPJRN) コマンドを使用し、選択された項目を表示する方法があります。
4-1.DSPJRN JRN(QAUDJRN) と入力し、F4を押します。プロンプト画面上で各パラメーターを入力して表示される項目の範囲を選択できます。たとえば、ある特定の日付の範囲内だけの項目や、正しくないサインオンの試行 (ジャーナル項目タイプ PW) のような特定のタイプの項目だけを選択して表示できます。
コマンド例:開始日付・開始時刻(2011年7月27日15時00分)、ジャーナル項目タイプ(正しくないサインオンの試行)を指定
DSPJRN JRN(QAUDJRN) FROMTIME(20110727 150000) ENTTYP(PW)
表示設定画面(DSPJRN JRN(QAUDJRN)コマンドを実行後、F4)

DSPJRN JRN(QAUDJRN)コマンドのデフォルトでは、接続されているレシーバーだけの項目が表示されます。 RCVRNGパラメーターを*CURCHAINに指定すると、現在接続されているレシーバーを含め、 QAUDJRN ジャーナルのレシーバー連鎖内にあるすべてのレシーバーの項目を表示できます。
4-2.DSPJRN JRN(QAUDJRN)コマンドでパラメーターを設定し、実行キーを押すと、「ジャーナル項目の表示」画面が表示されます。

4-3.オプション5(項目全体の表示)を使用して、特定の項目の情報を見ることができます。

4-4.F6(項目固有のデータのみの表示)を使用すると、画面上段のオブジェクトやライブラリーの部分を非表示にし、「項目固有のデータ」の部分のみを表示することができます。F6を使用することで、より多くの特定の項目データを表示できます。また、F10(項目詳細のみの表示)を使用すると、ジャーナル項目について、実行された時間などを含めた詳細情報を表示できます。

また、ジャーナル表示 (DSPJRN) コマンドを使用して、監査ジャーナル・レシーバーから選択された項目を、出力ファイルへ書き込むことが可能です。
コマンド例:
DSPJRN JRN(QAUDJRN)
FROMTIME(20110727 150000) ENTTYP(PW)
OUTPUT(*OUTFILE) OUTFILE(AUDTEST/DSPJRNOUT)
出力ファイルは、プログラムまたはQUERYなどを使って、監査情報の表示・分析に使用できます。
表示・分析の2つ目の方法として、監査ジャーナル項目のコピー (CPYAUDJRNE) コマンドがあります。監査ジャーナル項目のコピー (CPYAUDJRNE) コマンドを使用して、選択された項目を出力ファイルにコピーします。CPYAUDJRNEコマンドでは、選択された各監査項目タイプが、それぞれのタイプ毎に出力ファイルにコピーされます。そのため、プログラムまたはQUERY、SQLを使用した分析をより簡単に行えます。
コマンド例:CPYAUDJRNE ENTTYP(*ALL)
設定画面(CPYAUDJRNEコマンドを実行後、F4)

ジャーナル項目タイプは、最大74個指定可能です。コピーするジャーナル項目タイプの種類については、下記IBM i Information Center「監査ジャーナル項目のコピー (CPYAUDJRNE)」をご参照ください。
IBM i Information Center「監査ジャーナル項目のコピー (CPYAUDJRNE)」
WRKOBJコマンドで選択された項目をコピーした出力ファイルを確認できます。
コマンド例:WRKOBJ OBJ(QTEMP/*ALL)
表示画面(WRKOBJコマンド)

赤枠で囲んだオブジェクト名の最後2文字が監査項目タイプを示しています。下記の画面では、PW(正しくないパスワードの入力)に対するアクション監査を記録した出力ファイルQAUDITPWを表示しています。
コマンド例:RUNQRY *N QTEMP/QAUDITPW
表示画面(RUNQRYコマンド)

ただし、監査ジャーナル項目のコピー (CPYAUDJRNE) コマンドは、IBM i 5.4以降で提供されるコマンドとなります。i5/OS V5R3以前は、監査ジャーナル項目表示(DSPAUDJRNE)コマンドを使用していました。監査ジャーナル項目表示(DSPAUDJRNE)コマンドは、パラメーター「ジャーナル項目タイプ」で*ALLを指定できない、IBM i 5.4以降で登場したジャーナル項目タイプには対応していないなどの考慮点があります。そのため、IBM i 5.4以降では、監査ジャーナル項目表示(DSPAUDJRNE)コマンドも使用可能ですが、監査ジャーナル項目のコピー (CPYAUDJRNE) コマンドを使用されることをお勧めします。
このように、監査項目タイプごとに作成した出力ファイルを使用し、プログラムやQUERY、SQLを使用し分析することで、監査を実施できます。以上が、監査ジャーナルの使用手順となります。
まとめ
監査ジャーナルは内部統制を実施する上で、セキュリティーを管理するための重要な機能です。監査ジャーナルは、ユーザーが行った行為(アクション監査)、オブジェクトに対するアクセス(オブジェクト監査)を記録でき、これらの情報は、次の目的で使用できます。
- セキュリティー違反の検出
- 機密ファイルなどの機密オブジェクトの使用の監視
- より高いセキュリティーの設定・管理への移行の計画
監査ジャーナルを使用する前に、セキュリティー方針に基づき監査対象を計画します。すべてのユーザー行為、オブジェクトへのアクセスの記録をとると膨大な量になります。どのユーザーの行為を監査対象とすべき、どのオブジェクトへのアクセスを監視する必要があるかなどを検討し、適切な監査対象を計画してください。
監査ジャーナルは、監査ジャーナル・レシーバーと監査ジャーナルを作成し、システム値、ユーザー・プロファイル・パラメーター、 オブジェクト・パラメーターの3つ使用して、設定できます。
記録した監査ジャーナルのデータを表示、分析するには、DSPJRNコマンド、CPYAUDJRNEコマンドを使用します。CPYAUDJRNEコマンドは、監査項目タイプごとに出力ファイルを作成するため、プログラムやQUERY、SQLを使用した分析をさらに簡単に行うことができます。
ぜひOS標準機能である監査ジャーナルを使用し、日常のセキュリティー監査にお役立てください。