以下ドキュメントですが、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 関連設定ってデフォルトに手を入れないと駄目みたいですね。