とーますメモ

Ruby on Rails / Goなどの学習メモ

【セキュリティ】Ubuntu上で、Auditを使用しファイル監視を行ってみた。

以下のサイトがすごくまとまっている。
第7章 システム監査 - Red Hat Customer Portal

Auditを使用することで、システム上のファイルやディレクトリの読込/書込情報を追跡し、監視ログを出力することができる。
またそれに付随するログ検索ツール(ausearch)とレポート出力ツール(aureport)を使用できる。

セキュアなシステムでは、このような原因究明につながる対策を行うことは非常に重要。

Audit以下のような用途で使用できる。

・ファイルアクセスの監視。ファイルやディレクトリがアクセス、修正、実行されたか、またファイル属性の変更も追跡可能
・システムコールの監視
・ユーザーが実行したコマンドの記録
・セキュリティイベントの記録(ex: 失敗したログイン試行)

インストール

$ sudo apt-get install auditd

設定

設定ファイルの場所は「/etc/audit/auditd.conf」
例)

#
# This file controls the configuration of the audit daemon
#

log_file = /var/log/audit/audit.log
log_format = RAW
log_group = root
priority_boost = 4
flush = INCREMENTAL
freq = 20
num_logs = 10
disp_qos = lossy
dispatcher = /sbin/audispd
name_format = NONE
##name = hostname
max_log_file = 30
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
action_mail_acct = root
admin_space_left = 50
admin_space_left_action = SUSPEND
disk_full_action = SUSPEND
disk_error_action = SUSPEND
##tcp_listen_port =
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key

ルール定義

7.5. Audit ルールの定義 - Red Hat Customer Portal

ルール定義をすることで、どのイベントの記録をとるかを設定する。
ルール定義の方法はauditctlで動的に設定変更もできるが、
永続化するならルールファイルに記述する方が良い。

ルール定義ファイルの場所:「/etc/audit/audit.rules」

現在設定されているルールの確認

$ auditctl -l
No rules

初期設定時は何もルールが設定されていないので、No rulesとなる。

ルールの書式は以下。

-w path_to_file -p permissions -k key_name
  • w: 監視するファイルもしくはディレクトリを指定
  • p: 監視アクション許可 r – 読込, w – 書込, x – 実行, a – ファイル属性の変更.
  • k: ログ内でルールを識別するために割り当てる任意の文字列。監視ルールが提要されるとこの文字列がログ内に表示される。

設定例)/etc/passwd への書き込みアクセスと属性変更を passwd_changes というキーをログに記録する例
/etc/audit/audit.rules

-w /etc/passwd -p wa -k passwd_changes

設定後は、auditdの再起動

$ service auditd restart

再起動後、/etc/passwdファイルを編集すると、以下のようなログが/var/log/audit/audit.logが出力されていることがわかる。

type=CONFIG_CHANGE msg=audit(1479097266.018:224): auid=500 ses=2 op="updated_rules" path="/etc/passwd" key="passwd_changes" list=4 res=1
type=CONFIG_CHANGE msg=audit(1479097266.018:225): auid=500 ses=2 op="updated_rules" path="/etc/passwd" key="passwd_changes" list=4 res=1

設定例は「/usr/share/doc/auditd/examples」の場所にあるので参考にすると良いだろう。
自分の場合は、以下の4つの設定例があった。

・capp.rules.gz・・・Controlled Access Protection Profile (CAPP)
・lspp.rules.gz・・・Labeled Security Protection Profile (LSPP)
・nispom.rules.gz・・・NISPOM (National Industrial Security Program Operating Manual)
・stig.rules.gz・・・セキュリティ技術実装ガイド (STIG: Security Technical Implementation Guide)

ログ検索ツールの使い方

以下のサイトが詳しい。
7.7. Audit ログファイルの検索 - Red Hat Customer Portal