/var/log/messages

Mar 1, 2016 - 4 minute read - Comments - Linux

Audit の stig.rules

以下ドキュメントですが、stig.rules の解説があるのでなんとなくな自分メモを。

フォーマット

途中までメモ取りかけていたのですが書式が分からないので、先にそっち確認。確認したの以下です。

ええと -a はフィルタの追加、になるのかな。フィルタの追加、削除は

-a リスト, アクション [オプション]
-d リスト, アクション [オプション]

とのこと。アクションは always で出力、never で出力しない、なのか。そして auditctl の man が以下。

メモ

以下、時刻な情報が更新されたイベントの記録、とのこと。

## Things that could affect time
-a always,exit -F arch=b32 -S adjtimex -S settimeofday -S stime -k time-change
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time-change
#-a always,exit -F arch=b32 -S clock_settime -k time-change
#-a always,exit -F arch=b64 -S clock_settime -k time-change
-w /etc/localtime -p wa -k time-change
  • adjtimex あるいは settimeofday なシステムコールが発行 (x64) されたときに time-change なキーで記録
  • /etc/localtime が読み書きされたときに time-change なキーで記録

なのか。あるいは以下はアカウント情報イベントの記録。

## Things that affect identity
-w /etc/group -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /etc/gshadow -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/security/opasswd -p wa -k identity
  • ファイルが読み書きされたとき、identity なキーで記録

次はネットワーク設定の変更イベントを記録、とありますね

## Things that could affect system locale
-a exit,always -F arch=b32 -S sethostname -S setdomainname -k system-locale
-a exit,always -F arch=b64 -S sethostname -S setdomainname -k system-locale
-w /etc/issue -p wa -k system-locale
-w /etc/issue.net -p wa -k system-locale
-w /etc/hosts -p wa -k system-locale
-w /etc/sysconfig/network -p wa -k system-locale
  • sethostname, setdomainname なシステムコール呼び出しを system-locale というキーで記録
  • /etc/issue, /etc/issue.net, /etc/hosts, /etc/sysconfig/network のファイル読み書きを system-locale というキーで保存

なのか。ただ、でびあん系だと /etc/sysconfig はないですね。/etc/network/interfaces で良いのかどうか。

次は SElinux 設定の変更イベント、との事で以下。

## Things that could affect MAC policy
-w /etc/selinux/ -p wa -k MAC-policy

ログイン、ログアウトなソレはコメントアウトされています。

## - Logon (unsuccessful and successful) and logout (successful)
##
## Handled by pam, sshd, login, and gdm
## Might also want to watch these files if needing extra information
#-w /var/log/faillog -p wa -k logins
#-w /var/log/lastlog -p wa -k logins

次のセッション初期化、なソレもコメントアウトされてます。

##- Process and session initiation (unsuccessful and successful)
##
## The session initiation is audited by pam without any rules needed.
## Might also want to watch this file if needing extra information
#-w /var/run/utmp -p wa -k session
#-w /var/log/btmp -p wa -k session
#-w /var/log/wtmp -p wa -k session

アクセス権限の変更イベントは有効にされています。

##- Discretionary access control permission modification (unsuccessful
## and successful use of chown/chmod)
-a always,exit -F arch=b32 -S chmod -S fchmod -S fchmodat -F auid>=500 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F auid>=500 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S chown -S fchown -S fchownat -S lchown -F auid>=500 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F auid>=500 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b32 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=500 -F auid!=4294967295 -k perm_mod
-a always,exit -F arch=b64 -S setxattr -S lsetxattr -S fsetxattr -S removexattr -S lremovexattr -S fremovexattr -F auid>=500 -F auid!=4294967295 -k perm_mod
  • chmod, fchmod, fchmodat, chown, fchown, fchownat, lchown, *setxattr, *removexattr などのシステムコール呼び出しの記録 (uid 指定あり、perm_mod というキー

次が権限のないファイルへのアクセス試行の記録。

##- Unauthorized access attempts to files (unsuccessful) 
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=500 -F auid!=4294967295 -k access
-a always,exit -F arch=b32 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=500 -F auid!=4294967295 -k access
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EACCES -F auid>=500 -F auid!=4294967295 -k access
-a always,exit -F arch=b64 -S creat -S open -S openat -S truncate -S ftruncate -F exit=-EPERM -F auid>=500 -F auid!=4294967295 -k access
  • EACCES か EPERM な終了コードで終わった open, openat, truncate, ftruncate の呼び出しの記録なのか (access というキーで uid 指定あり

次は特権コマンドの使用記録かな。

##- Use of privileged commands (unsuccessful and successful)
## use find /bin -type f -perm -04000 2>/dev/null and put all those files in a rule like this
-a always,exit -F path=/bin/ping -F perm=x -F auid>=500 -F auid!=4294967295 -k privileged

なんか ping なんですが、ping は owner 権限で実行できる SetID bit が立ってますね。su とか mount とかなのかな。。

次が mount 実行の記録。

-a always,exit -F arch=b32 -S mount -F auid>=500 -F auid!=4294967295 -k export
-a always,exit -F arch=b64 -S mount -F auid>=500 -F auid!=4294967295 -k export
  • mount なシステムコール呼んだら export というキーで記録 (uid 制限付き

次はファイル削除なイベントの記録。

-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F auid!=4294967295 -k delete

次は /etc/sudoers へのアクセスの記録。

-w /etc/sudoers -p wa -k actions

以降は若干ドキュメントと異なります。

  • ptrace なシステムコール呼び出しの記録
  • personality なシステムコール呼び出しの記録

上記、コメントアウトされてます。

あとは以下がオマケてきに記載されていて

## Put your own watches after this point
# -w /your-file -p rwxa -k mykey

で、最後に

-e 2

が記載されてて終わりです。

まとめ

  • logins はログイン、ログアウトなイベント (コメントアウト
  • session はセッション情報初期化なイベント (コメントアウト
  • perm_mod はアクセス権限の変更イベント
  • access はアクセス権限が無いファイルへのアクセス試行
  • privileged は特権コマンド実行なイベント (これ、設定に手を加える必要あり
  • export は mount 実行
  • delete はファイル削除イベント
  • actions は /etc/sudoers へのアクセス
  • tracing は ptrace なシステムコール呼び出し (コメントアウト
  • bypass は personality なシステムコール呼び出し (コメントアウト

Audit Log 関連設定ってデフォルトに手を入れないと駄目みたいですね。