ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (セキュリティサービス) Oracle Solaris 10 8/11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
13. Oracle Solaris の暗号化フレームワーク (概要)
14. Oracle Solaris の暗号化フレームワーク (手順)
19. Oracle Solaris Secure Shell の使用 (手順)
20. Oracle Solaris Secure Shell (参照)
Oracle Solaris 監査の障害追跡 (作業マップ)
監査トレールを管理することによって、ネットワーク上のユーザーの動作を監視することができます。監査プロセスを行うと、大量のデータが生成される可能性があります。次の手順では、さまざまな監査データを使用して作業を行う方法について説明します。
必要な監査データを検索するスクリプトを作成するためには、監査イベント内のトークンの順番を知る必要があります。bsmrecord コマンドは、監査イベントの監査イベント番号、監査クラス、選択マスク、およびレコード書式を表示します。
-a オプションを指定すると、すべての監査イベントレコードの書式が表示されます。-h オプションを指定すると、ブラウザで表示できる HTML 形式で一覧が出力されます。
% bsmrecord -a -h > audit.events.html
ブラウザで *html ファイルを表示する場合は、ブラウザの検索ツールを使用して特定のレコードを検索します。
詳細は、bsmrecord(1M) のマニュアルページを参照してください。
例 30-26 プログラムの監査レコード書式を表示する
この例では、login プログラムによって生成されたすべての監査レコードの書式を表示します。login プログラムには、rlogin、 telnet、 newgrp、 Solaris 管理コンソールへの役割ログイン、および Oracle Solaris Secure Shell も含まれます。
% bsmrecord -p login login: logout program various See login(1) event ID 6153 AUE_logout … newgrp program newgrp See newgrp login event ID 6212 AUE_newgrp_login … rlogin program /usr/sbin/login See login(1) - rlogin event ID 6155 AUE_rlogin … SMC: role login program SMC server See role login event ID 6173 AUE_role_login … /usr/lib/ssh/sshd program /usr/lib/ssh/sshd See login - ssh event ID 6172 AUE_ssh … telnet login program /usr/sbin/login See login(1) - telnet event ID 6154 AUE_telnet …
例 30-27 ある監査クラスの監査レコード書式を表示する
この例では、fd クラスに属するすべての監査レコードの書式を表示します。
% bsmrecord -c fd rmdir system call rmdir See rmdir(2) event ID 48 AUE_RMDIR class fd (0x00000020) header path [attribute] subject [use_of_privilege] return unlink system call unlink See unlink(2) event ID 6 AUE_UNLINK … unlinkat system call unlinkat See openat(2) event ID 286 AUE_UNLINKAT …
すべての監査ディレクトリ内のすべての監査ファイルをマージすると、監査トレール全体の内容を分析できます。auditreduce コマンドを使用すると、入力ファイルのすべてのレコードが 1 つの出力ファイルにマージされます。マージが完了すると、入力ファイルを削除できます。出力ファイルが /etc/security/audit/server-name/files という名前のディレクトリに配置されている場合、完全パスを指定しなくても、auditreduce コマンドは出力ファイルを検索できます。
注 - この手順は、バイナリ監査レコードだけに適用します。
System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (作業マップ)」を参照してください。
# mkdir audit-trail-directory
# chmod 700 audit-trail-directory # ls -la audit-trail-directory drwx------ 3 root sys 512 May 12 11:47 . drwxr-xr-x 4 root sys 1024 May 12 12:47 ..
ディレクトリを audit-trail-directory に変更して、指定した接尾辞を持つファイルに監査レコードをマージします。ローカルシステム上にある audit_control ファイルの dir 行に指定されているすべてのディレクトリがマージされます。
# cd audit-trail-directory # auditreduce -Uppercase-option -O suffix
大文字オプションを auditreduce コマンドに指定すると、監査トレール内のファイルを操作できます。次の大文字オプションがあります。
監査トレール内のすべてのファイルを選択します。
完全ファイルだけを選択します。このオプションは、接尾辞 not_terminated を持つファイルを無視します。
特定の接尾辞を持つファイルを選択します。接尾辞はマシン名、またはサマリーファイルに指定した接尾辞です。
開始時刻と終了時刻を示す 14 文字のタイムスタンプおよび接尾辞 suffix が付いた監査ファイルを現在のディレクトリに作成します。
例 30-28 サマリーファイルに監査ファイルをコピーする
次の例では、System Administrator 役割 sysadmin は、すべてのファイルを監査トレールからマージされたファイルにコピーします。
$ whoami sysadmin $ mkdir /var/audit/audit_summary.dir $ chmod 700 /var/audit/audit_summary.dir $ cd /var/audit/audit_summary.dir $ auditreduce -A -O All $ ls *All 20100827183214.20100827215318.All
次の例では、完全ファイルだけが監査トレールからマージされたファイルにコピーされます。
$ cd /var/audit/audit_summary.dir $ auditreduce -C -O Complete $ ls *Complete 20100827183214.20100827214217.Complete
次の例では、完全ファイルだけが example1 マシンからマージされたファイルにコピーされます。
$ cd /var/audit/audit_summary.dir $ auditreduce -M example1 -O example1summ $ ls *summ 20100827183214.20100827214217.example1summ
例 30-29 監査ファイルをサマリーファイルに移動する
auditreduce で - D オプションを指定すると、監査ファイルをほかの場所にコピーしたときにその監査ファイルを削除します。次の例では、あるシステムの完全監査ファイルを、あとで調べるためにサマリーディレクトリにコピーします。
$ cd /var/audit/audit_summary.dir $ auditreduce -C -O daily_example1 -D example1 $ ls *example1 20100827183214.20100827214217.daily_example1
このコマンドが正常に完了すると、*daily_example1 ファイルへの入力となった example1 システムの監査ファイルが削除されます。
調べる監査レコードをフィルタリングすることができます。フィルタリングオプションの一覧については、auditreduce(1M) のマニュアルページを参照してください。
System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (作業マップ)」を参照してください。
auditreduce -lowercase-option argument [optional-file]
小文字オプションが必要とする特定の引数。たとえば、-c オプションは、ua などの監査クラスの argument を必要とします。
特定の日付のイベントをすべて選択します。argument の日付の形式は、yyyymmdd です。ほかの日付オプション -b と -a は、特定の日付の前と後のイベントを選択します。
特定のユーザーのイベント属性をすべて選択します。argument はユーザー名です。もう 1 つのユーザーオプション -e は、実効ユーザー ID のイベント属性をすべて選択します。
事前選択された監査クラス内のイベントをすべて選択します。argument は監査クラス名です。
特定の監査イベントのインスタンスをすべて選択します。argument は監査イベントです。
監査ファイルの名前です。
例 30-30 監査ファイルを結合して削減する
auditreduce コマンドを使用すると、入力ファイルの結合時に不要なレコードを除外できます。たとえば、auditreduce コマンドを使用して、1 か月以上経過した監査ファイルから、ログインレコードとログアウトレコード以外のレコードを削除することができます。監査トレール全体が必要になった場合は、バックアップメディアから監査トレールを復元します。
# cd /var/audit/audit_summary.dir # auditreduce -O lo.summary -b 20100827 -c lo; compress *lo.summary
例 30-31 na 監査レコードをサマリーファイルにコピーする
この例では、監査トレール内の、ユーザーに起因しない監査イベントのすべてのレコードが、1 つのファイルに収集されます。
$ whoami sysadmin $ cd /var/audit/audit_summary.dir $ auditreduce -c na -O nasumm $ ls *nasumm 20100827183214.20100827215318.nasumm
マージされた nasumm 監査ファイルは、na レコードの開始時刻と終了時刻のタイムスタンプが記録されます。
例 30-32 指定した監査ファイル内で監査イベントを検索する
監査ファイルを手動で選択して、指定された一連のファイルだけを検索できます。たとえば、前の例の *nasumm ファイルをさらに処理して、システムブートイベントを検索できます。これを行うには、auditreduce コマンドの最後の引数にファイル名を指定します。
$ auditreduce -m 113 -O systemboot 20100827183214.20100827215318.nasumm 20100827183214.20100827183214.systemboot
20100827183214.20100827183214.systemboot ファイルは、システムブート監査イベントだけを含みます。
例 30-33 ユーザー監査レコードをサマリーファイルにコピーする
この例では、特定のユーザー名を含む監査トレール内のレコードがマージされます。-e オプションを指定すると実効ユーザーが検索されます。-u オプションを指定すると監査ユーザーが検索されます。
$ cd /var/audit/audit_summary.dir $ auditreduce -e tamiko -O tamiko
このファイル内の特定のイベントを検索できます。次の例では、2010 年 9 月 7 日にユーザーがログインした時間が確認されます。接尾辞にユーザーの名前が付いたファイルだけが確認されます。日付の短い形式は、yyyymmdd です。
# auditreduce -M tamiko -O tamikolo -d 20100907 -u tamiko -c lo
例 30-34 選択レコードを 1 つのファイルにコピーする
この例では、特定の日付におけるログイン、ログアウトのメッセージが監査トレールから選択されます。これらのメッセージは対象ファイルにマージされます。対象ファイルは、通常の監査ルートディレクトリ以外のディレクトリに書き込まれます。
# auditreduce -c lo -d 20100827 -O /var/audit/audit_summary.dir/logins # ls /var/audit/audit_summary.dir/*logins /var/audit/audit_summary.dir/20100827183936.20100827232326.logins
praudit コマンドを使用すると、バイナリ監査ファイルの内容を表示できます。auditreduce コマンドから出力をパイプしたり、特定の監査ファイルを読み取ったりできます。さらに処理する場合に -x オプションが役立ちます。
System Administrator 役割には、 Audit Review プロファイルが含まれます。Audit Review プロファイルを含む役割を別々に作成することもできます。役割を作成する方法と役割をユーザーに割り当てる方法については、「RBAC の構成 (作業マップ)」を参照してください。
次の例は、同じ監査イベントからの praudit 出力を表示します。監査ポリシーは、sequence トークンと trailer トークンを含むように設定されています。
praudit -s コマンドを使用して、短い書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。
$ auditreduce -c lo | praudit -s header,101,2,AUE_rlogin,,example1,2010-10-13 11:23:31.050 -07:00 subject,jdoe,jdoe,staff,jdoe,staff,749,749,195 1234 server1 text,successful login return,success,0 sequence,1298
praudit -r コマンドを使用して、監査レコードの raw 書式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 行に各レコードを配置します。
$ auditreduce -c lo | praudit -r 21,101,2,6155,0x0000,192.168.60.83,1062021202,64408258 36,2026700,2026700,10,2026700,10,749,749,195 1234 192.168.60.17 40,successful login 39,0,0 47,1298
praudit -x コマンドを使用して、XML 形式で 1 行につき 1 トークンの監査レコードを表示します。-l オプションを指定して、1 レコードの XML 出力を 1 行に配置します。
$ auditreduce -c lo | praudit -x <record version="2" event="login - rlogin" host="example1" time="Wed Aug 27 14:53:22 PDT 2010" msec="64"> <subject audit-uid="jdoe" uid="jdoe" gid="staff" ruid="jdoe" rgid="staff" pid="749" sid="749" tid="195 1234 server1"/> <text>successful login</text> <return errval="success" retval="0"/> <sequence seq-num="1298"/> </record>
例 30-35 監査トレール全体を印刷する
lp コマンドにパイプすると、監査トレール全体の出力がプリンタに送られます。プリンタへのアクセスを制限してください。
# auditreduce | praudit | lp -d example.protected.printer
例 30-36 特定の監査ファイルを表示する
この例では、サマリーログインファイルを端末ウィンドウで調べます。
# cd /var/audit/audit_summary.dir/logins # praudit 20100827183936.20100827232326.logins | more
例 30-37 監査レコードを XML 形式に変換する
この例では、監査レコードを XML 形式に変換します。
# praudit -x 20100827183214.20100827215318.logins > 20100827.logins.xml
*xml ファイルはブラウザを使って表示できます。スクリプトを使えば、XML ファイルの内容を操作して目的の情報を抽出できます。
注意事項
次のようなメッセージは、praudit コマンドを使用するために必要な権限がないことを示しています。
praudit: Can't assign 20090408164827.20090408171614.example1 to stdin.
監査ファイルが開いている状態で監査デーモンが終了することがあります。また、サーバーがアクセス不能になって、強制的に別のサーバーに切り替わってしまうことがあります。このような場合、その監査ファイルは監査レコードとして使用されなくなりますが、監査ファイルの終了タイムスタンプとして文字列 not_terminated が付いたままになります。auditreduce -O コマンドを使用して、ファイルに正しいタイムスタンプを付けます。
# ls -R1t audit-directory*/files/* | grep not_terminated
サブディレクトリ内のファイルを一覧表示します。
最新のファイルからもっとも古いファイルの順で一覧表示します。
1 列でファイルを一覧表示します。
古いファイルの名前を auditreduce -O コマンドに指定します。
# auditreduce -O system-name old-not-terminated-file
# rm system-name old-not-terminated-file
例 30-38 閉じた not_terminated 監査ファイルを整理する
次の例では、not_terminated ファイルを検索し、名前を変更して、元のファイルを削除します。
ls -R1t */files/* | grep not_terminated …/egret.1/20100908162220.not_terminated.egret …/egret.1/20100827215359.not_terminated.egret # cd */files/egret.1 # auditreduce -O egret 20100908162220.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Input (old) audit file 20100827215359.not_terminated.egret # rm 20100827215359.not_terminated.egret # ls -1t 20100908162220.not_terminated.egret Current audit file 20100827230920.20100830000909.egret Cleaned up audit file
新しいファイルの開始タイムスタンプは、not_terminated ファイル内にある最初の監査イベントの時間を反映します。終了タイムスタンプは、そのファイル内にある最後の監査ファイルの時間を反映します。
セキュリティーポリシーの関係ですべての監査データを保存する必要がある場合は、次の手順に従います。
ファイルをオフラインのメディアにバックアップして、監査ファイルを保管します。これらのファイルを保存ファイルシステムに移動することもできます。
syslog ユーティリティーを使用してテキスト監査ログを収集している場合、テキストログを保管します。詳細は、logadm(1M) のマニュアルページを参照してください。
監査レコードの解釈に必要な情報を、監査トレールとともに格納します。
監査トレールからサマリーファイルを抽出するには、auditreduce コマンドのオプションを使用します。サマリーファイルには、指定された種類の監査イベントのレコードだけが含まれます。サマリーファイルを抽出するには、例 30-30 および例 30-34 を参照してください。