「auditd」の版間の差分

提供: セキュリティ
移動: 案内検索
行91: 行91:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
-a exit,always -F arch=b64 -F uid=10 -S socket -k socket
 
-a exit,always -F arch=b64 -F uid=10 -S socket -k socket
 +
</syntaxhighlight>
 +
==== /etc/etc のディレクトリを監視する例 ====
 +
/etc に対する open [[システムコール]] が失敗した場合にログを落とす例です。
 +
<syntaxhighlight lang="bash">
 +
-a exit,always -F arch=b64 -S open -S truncate -F dir=/etc -F success=0
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==== /etc/passwd のファイルを監視する例 ====
 
==== /etc/passwd のファイルを監視する例 ====

2015年12月19日 (土) 23:59時点における版

auditd とは、監査サービスデーモンです。

読み方

auditd
おーでぃっと でぃー

概要

auditd とは、監査サービスデーモンです。

Linux Audit は、 Linuxカーネルシステムコールなどのイベントを監視する機構です。Linux Audit を使用すると、システムコール が実行された状態をログに記録できます。システムがダウンした場合、攻撃を受けた場合に、原因の究明に役立ちます。

プロセス、カーネルauditd の関係を以下に簡単に示します。

プロセス -システムコール-> カーネル -イベント-> auditd -イベント-> audispd -イベント-> IDS/IPS

auditdは、システムコールをフックして情報を取得します。auditdで取得したイベントは、audispd でほかのアプリケーションやネットワーク上のほかのノードに転送できます。 auditdは、イベントを監査ログ(Audit Log)として蓄積します。監査ログから情報を検索・表示するツールとして ausearch が提供されます。監査ログの統計情報を得るには aureport を利用します。auditdがどのシステムコールをフックするかは、 auditctl で指定します。

インストール

Ubuntu/Debinan 系

sudo apt install auditd

CentOSにインストールする場合

CentOSyum コマンドでインストールする場合。

sudo yum -y  install auditd

設定

auditd の設定

Ubuntu は、 /etc/audit/auditd.conf です。

auditd.conf
項目 説明
log_file 監査ログの出力先
log_format 監査ログの形式
flush 監査ログをディスクに書き込むときの方法
freq 監査ログをディスクに書き込む頻度
max_log_file 監査ログの最大サイズの設定
max_log_file_action 監査ログが最大サイズになったときの動作の設定
space_left 最小のディスクサイズ
space_left_action ディスクが不足したときの動作

システムコールの監視の条件の設定

Ubuntu は、 /etc/audit/audit.rules です。

ログファイル

auditd の監査ログは、 /var/log/audit/autid.log です。

audit.rules
オプション setumei
-D すべてのルールを削除します
-b サイズ Linux Audit の利用できるカーネル内のバッファサイズを設定します
-S システムコール名 監査ログを出力するシステムコールを指定します
-F 監査ログを出力する条件を指定します。条件は key=value 形式で指定します。演算子は = , !=, <, > などが利用できます。
-k 作成するルールに、そのルールを一意に特定できる名前を指定します
-w 監査するファイルを指定します。ファイルの変更などを関ししたい場合に利用します。
-p 監査ログを取得するファイルアクセスパーミッションを指定します。書き込み時に関連する監査ログを取得する場合には、 w 、読み込み時には r, 実行時の場合は x , 属性が変更された場合は a を指定します。

audit.rules の設定方法

64bit 環境の場合

-F arch=b64

socketシステムコールを監視する例

uid=10 のユーザが socket システムコール を実行したときに、監査ログを出力します。

-a exit,always -F arch=b64 -F uid=10 -S socket -k socket

/etc/etc のディレクトリを監視する例

/etc に対する open システムコール が失敗した場合にログを落とす例です。

-a exit,always -F arch=b64 -S open -S truncate -F dir=/etc -F success=0

/etc/passwd のファイルを監視する例

以下の設定は、 ファイル /etc/passwd に対する

  • 書き込み
  • 属性の変更

を行う システムコール 終了時に 監査ログ を出力します。

-a exit,always -F arch=b64 -w /etc/passwd -p wa -k passwd_watch

使い方

ツール

auditctl
auditdが「どのシステムコールをフックするか」の設定を行います。
aureport
監査ログの統計情報を表示します。
ausearch
監査ログから検索・表示します。

auditd の制御

Linuxservice コマンドで操作する場合。

auditd サービスの開始。

sudo service auditd start

auditd サービスの停止。

sudo service auditd stop

auditd サービスの再起動。

sudo service auditd restart
 

関連項目