Linuxの監査システムであるAuditについて。
AuditはLinuxの監査システムとして、監査ルールを定義し、システムで発生したセキュリテイに
関するイベントをログファイルに出力。
ログファイルに出力されたメッセージを監視することで、セキュリテイに関するイベントを検知する。
Auditでは以下の監査ルールが設定可能
・制御ルール
・システムコールルール
・ファイルシステムルール
<概要>
Auditはauditdデーモンとして起動し、カーネルから受け取った監査結果をログファイルに出力。
全般的な設定は/etc/audit/auditd.confファイルで設定。
Auditを操作するための基本的なコマンド
auditctl Auditの動作に関する設定、Auditルールの定義を行う
ausearch Auditのログファイルから監査結果を検索
aureport Auditのログファイルから監査結果のレポートを作成
監査ルールはauditctlコマンドを実行するか、永続的な設定を行う場合は
/etc/audit/rules.d/audit.rulesファイルで設定を行う。
<auditctlコマンドの使用方法について>
制御ルール
Auditの動作に関する設定を行う。
・Auditの監査を無効(0)、有効(1)に設定または、設定をロック(2)し
変更不可にする(以下は有効にする場合)
# auditctl -e 1
・オプションの設定値を表示
# auditctl -s
・全てのAuditルールの削除
# auditctl -D
<システムコールに関するルール>
書式:
auditctl -a <アクション>,<リスト> -F <フィールド>=<値> -S <システムコール> -k <キー名>
・システムコールを定義
# auditctl -a always,exit -F arch=b64 -S adjtimex,settimeofday -k time-change
・システムコールルールの確認
# auditctl -l
-Sに指定するシステムコール名やシステムコール番号は、/usr/include/asm/unistd_64.hファイルを
参照するか、ausyscallコマンドで確認できる。
・openが含むシステムコール名で検索
# cat /usr/include/asm/unistd_64.h | grep open
・ausyscallコマンドでopenが含むシステムコール名で検索
# ausyscall open
<ファイルシステムに関するルール>
ファイルに対して書き込みや属性変更等が行わなれた場合はログに出力。
書式:
auditctl -w <ファイル> -p <パーミッション> -k <キー名>
・ファイルシステムルールの定義
# auditctl -w /etc/passwd -p wa -k identity
・ファイルシステムルールの確認
# auditctl -l
例としてtestというアカウントでパスワードを変更すると、以下のように/var/log/audit/audit.log
ファイルにパスワード変更のログが出力されているのが確認できる。
<ausearch>
ausearchコマンドは指定した条件に従って、監査ログからキーワードで一致したログを検索して出力する。
/etc/audit/auditd.confファイルのlog_fileで指定したログファイルを対象。
・Auditログファイルの検索(以下は-iで日時やpidをテキストテキスト変換し、-kでキーワードを指定)
# ausearch -i -k time-change
・指定したメッセージタイプに一致するイベントを検索(以下は-mでログインに関するイベント、–start todayで今日の日時を指定)
# ausearch -m USER_LOGIN –start today
・指定可能なメッセージタイプを抽出するワンライナー
# ausearch -m help 2>&1 | awk -v RS=’ ‘ ‘/^[A-Z]{2}/{ print}’ | sort
<aureport>
aureportコマンドは指定した条件に従って、監査ログのレポートを出力
・Auditレポートの生成(以下は-lでログインに関するレポート、-iで日時やpidをテキストテキスト
変換し、-tsから-teでログの検索範囲として開始日時と終了日時を指定)
# aureport -l -i -ts yesterday -te now
・Auditレポートの生成(サマリー)
# aureport –summary
<キーボード入力の監査>
aureportコマンドを活用し、ターミナルで入力したコマンドをログに記録することができる。
キーボード入力の監査を行うためには、以下のファイルに次の設定値を記述します。
・/etc/pam.d/system-auth
・/etc/pam.d/password-auth
動作確認を行うために以下のコマンドを実行し、tesユーザに変更。
・ユーザ変更
# su -l test
例として適当に以下のコマンドを実行し、ctrl + dでログアウト
$ date
$ echo “test”
$ top
以下のコマンドを実行すると、testユーザがターミナルで実行したコマンドが確認できる。
# aureport –tty –start today
</etc/audit/rules.d/audit.rules>
永続的な設定は/etc/audit/rules.d/audit.rulesファイルで設定する。
設定変更後はauditdの再起動を行うことで設定が反映される。