
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
ベストプラクティス Auditd 設定
この auditd 設定のアイデアは、以下のようなベストプラクティスのベースラインを提供することです。
簡略化されたルールセットは、特にプロセス作成、ソケット作成、ファイルアクセス失敗イベントなど、価値は高いがボリュームが大きくなる可能性のあるテレメトリを意図的に一部保持しています。必要に応じて、環境に合わせてこれらのセクションを調整してください。
現在の設定は、以下のカバレッジ領域に焦点を当てています。
ptrace、memfd_create、bpf、名前空間、io_uring、userfaultfd などの特殊プリミティブexecve、execveat、ソケット作成、ファイル削除、32 ビット ABI 使用などの高ボリュームテレメトリこのルールセットは、後続の検出ロジックから独立していることを意図しています。広く有用な監査テレメトリを収集することに重点を置いており、その後、例えば Sigma ベースのツールや SIEM クエリなどを用いてさまざまな方法で分析できます。
この監査データを利用できるオープンソースプロジェクトの一つに Aurora Linux があります。これは軽量でカスタマイズ可能な Sigma ベースの Linux エージェントであり、eBPF ベースのテレメトリとユーザ空間でのエンリッチメント、Sigma ルールマッチングを組み合わせています。
このルールセットは意図的に -i を含めており、一部のバイナリやディレクトリが存在しないシステムでも、ディストリビューション固有のパスがロードを中断しないようにしています。これによりデフォルトのデプロイが簡単になりますが、ルールのロードエラーは無視されることになります。
厳格なデプロイ前検証を行いたい場合は、-i 行を削除した一時的なコピーをテストしてください。例:
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
リポジトリには、ルールをリントし、ポータブルな CI コピーと厳格なコピーの両方が Ubuntu で読み込めることを検証する GitHub Actions チェックも含まれています。
audit.rules 内のいくつかのルールは、auid>=1000 -F auid!=unset を使用して、インタラクティブユーザーのアクティビティに焦点を当て、未設定のログインセッションを除外しています。
1000 は多くの Linux ディストリビューションで一般的な UID_MIN ですが、普遍的なわけではありません。ホストが異なる UID_MIN を使用している場合は、/etc/login.defs を確認し、デプロイ前に audit.rules 内の 1000 を置き換えてください。
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
2026 年 4 月 29 日、Xint は Copy Fail (CVE-2026-31431) を公開しました。これは、カーネル暗号ユーザ空間インターフェース (AF_ALG) を splice() と組み合わせて悪用し、ページキャッシュにバックアップされたファイルをメモリ上で破損させるローカル権限昇格手法です。
このルールセットには、その設定のうち安定した低ノイズの部分を、属性可能なユーザーセッションから収集するための小さな af_alg ブロックが含まれています。
socket(AF_ALG, ...)struct sockaddr_alg を用いた bind()setsockopt(..., SOL_ALG, ...)これは、authencesn(hmac(sha256),cbc(aes)) のような一回限りのシグネチャよりも意図的に汎用的です。監査システムコールフィルターは文字列引数をマッチングできないためです。実際には、アルゴリズム名は bind() によって生成される SOCKADDR レコードに含まれます。そのため、推奨される下流での検出は次のとおりです。
key=af_alg でフィルタリングSOCKADDR.saddr / SADDR={ saddr_fam=alg ... } を検査salg_name に authencesn( を含む salg_type=aead をフラグ付けpid、exe、または auid が短期間に多数のそのようなバインドを発行した場合、重大度を上げるXint が説明する概念実証は、繰り返しの splice() 操作にも依存しています。これらのシステムコールは多くのシステムではデフォルトのルールセットに含めるにはノイズが多すぎるため、リポジトリにはコメントアウトされた splice_user オーバーレイのみが audit.rules に含まれています。splice / vmsplice が環境内で一般的でない場合にのみ有効にし、同じプロセスまたはユーザーセッションからの最近の af_alg アクティビティと関連付けてください。
この設定は、以下のソースと、デフォルトのルールセットに対する長年にわたる改善の統合に基づいています。
Gov.uk auditd ルール https://github.com/gds-operations/puppet-auditd/pull/1
CentOS 7 ハードニング https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Linux audit リポジトリ https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditd 高性能 Linux 監査 https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail: 732 Bytes to Root on Every Major Linux Distribution. https://xint.io/blog/copy-fail-linux-distributions
Linux カーネル暗号ユーザ空間インターフェース (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
これらのルールのすべてが含まれているわけではありません。
PCI DSS 準拠については、以下を参照してください。 https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
NISPOM 準拠については、以下を参照してください。 https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
IppSec は、auditd を使用して OMIGOD 脆弱性の悪用を検出する方法を説明するビデオを撮影しました。そのビデオの core auditd の概念は今でも役立ちますが、このリポジトリのルールセットはその後大幅に簡略化されています。ビデオは歴史的な背景および auditd ベースの検出アイデアの入門として扱い、現在の audit.rules の行単位のドキュメントとしては扱わないでください。
https://www.youtube.com/watch?v=lc1i9h1GyMA
変更はプルリクエストとして送信してください。