auditdによってどのようにシステムの監査ができ、どのように利用するかの概要をまとめました。
下記資料を参考にしてまとめました。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
(1)auditdによるシステム監査の概要
1)概要と注意点
・auditdは、SELinuxのAVC拒否、システムログイン、アカウント変更、sudoなどを使った認証結果などを監査する事が出来ます。
・デフォルト設定ではディスク使用量などを制限する設定もあります。ログが増え続けてディスク使用量を圧迫するなどシステム性能に影響を与えないように注意します。
・SELinuxの使用如何に関わらず少なくてもデフォルトルールを使って利用することが望ましいようです。
2)auditdで出来ること
auditdで適宜設定すると下記のような監査、運用をする事が出来ます。
●ファイルアクセスの監視
・ファイルやディレクトリーに対するアクセス、修正、実行、属性変更を追跡することができる。
重要なファイルへのアクセスを検出し、これらのファイルが破損した場合に監査証跡として有用。
●システムコールの監視
・特定のシステムコールが使用されるたびにログエントリーを生成するように設定できる。
settimeofdayやclock_adjtime、その他の時間関連のシステムコールを監視することで、システム時間に対する変更を追跡できる。
●ユーザーが実行したコマンドの記録
・ファイルが実行されたかどうかを追跡できるので、特定のコマンドの実行を毎回記録するようにルールを定義することができる。
ログをユーザーIDで検索すると、ユーザーごとに実行されたコマンドの監査証跡を生成することができる。
●セキュリティイベントの記録
・pam_faillock認証モジュールは、失敗したログイン試行を記録することができる。
・Auditで失敗したログイン試行も記録するように設定すると、ログインを試みたユーザーについての追加情報が提供される。
●イベントの検索
・ausearchユーティリティーを使うと、ログエントリーをフィルターにかけ、いくつもの条件に基づく完全な監査証跡を提供することができる。
●サマリーレポートの実行
・aureportユーティリティーを使うと、記録されたイベントのデイリーレポートを生成することができる。
システム管理者は、このレポートを分析し、疑わしいアクティビティーをさらに調べることができる。
●ネットワークアクセスの監視
・iptablesとebtablesユーティリティーはAuditイベントを開始するように設定でき、これでシステム管理者はネットワークアクセスを監視できるようになる。
●システムイベントを記録
・printコマンドの使用情報の記録、開始・終了イベントの記録。
●監査イベントを記録
・イベントの日時、イベントを駆動したユーザーID、イベントのタイプ、イベントの成功・失敗の結果、リクエストのソース
●具体的な設定例
・ファイルが、少なくても一週間以内に異なるシステムまたはバックアップメディアにバックアップされている事をチェックする
・日次で古いログファイルから新しいログファイルへ切り替える。
・設定ファイルが意図せず変更されていないことをチェックする。
”-e 2″の設定では、auditルールを変更するにはリブートが必要。
・監査データファイルのパーミッションは、”640″またはそれ以上に制限されているかをチェックする。
(2)auditdサービスの構成
1)auditdサービスの構成
auditdサービスは”audit”というRPMパッケージで提供されていて下記のような構成になっています。
パッケージ名:audit
設定ファイル:/etc/audit/auditd.conf
監査ルール定義ファイル:/etc/audit/audit.rules
ログ:/var/log/audit/audit.log
2)auditdサービスの自動起動の設定
OS起動時にサービスを自動で有効にするには、下記設定を行います。
# chkconfig auditd on 関連記事の目次
-
OpenSSH
- レンタルサーバー(VPS)にSSHでログイン
- VPS(レンタル)サーバー上のssh初期設定確認
- SSH接続の仕組み
- OpenSSHの設定ファイル
- OpenSSHの設定をよりセキュアに
- CentOS Stream9のSSH設定(OpenSSH)
- WinSCPを使ってファイル転送
- iptablesを使ってCentOSのファイアウォール設定
- nmapでオープンしているポート番号とバージョンを確認
- CentOSで不要なサービスは起動しないようにする
- RPMパッケージのインテグリティチェック
- CentOSのumaskの設定
- cronで使用するファイルのパーミッション設定
- ユーザーホームディレクトリ内の権限設定をセキュアにする
- CentOSのパスワードファイルのパーミッション設定
- findコマンドでファイル書込権限をいっせいにチェック
- findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック
- findコマンドで所有者、グループが存在しないファイルを抽出
- ログイン時などに表示されるシステムバナーを変更するには?
- CentOSのユーザーアカウントのパスワードポリシーを設定
- pam_cracklibモジュールでパスワードポリシーを設定
- pam_unix.soモジュールを使って過去のパスワード再使用を制限する
- システムコンソールでのrootログインを制限する方法
- suコマンドによるrootへのスイッチを制限する
- root権限でのコマンド実行、sudoだと監査ログが取得できる
- デーモン用アカウントなどに対しシェルを使用を無効にする
- パスワード認証を失敗時にアカウントをロックアウトする設定
- rootアカウントのPATH環境変数のセキュリティについて
- auditdを使ってシステム監査
- auditdのログ容量の設定
- auditd監査ルールの設定方法
- auditdで時間設定変更操作を監査する
- auditdでユーザー・グループ設定ファイル変更操作を監査する
- auditdでネットワーク関連の設定変更を監査する
- auditdでログイン記録のログファイルの変更を監査する
- auditdでファイル所有者や権限の変更に関するイベントを監査する
- auditdでsetuid、setgidプログラムの実行を監査する
- auditdでマウント操作を監査する
- auditdでファイル削除操作を監査する
- auditdでsudo設定ファイルに対する操作を監査する
- auditdでカーネルモジュールのロード、アンロードを監査する
- マシン再起動後にauditdの設定変更を有効にする設定
- ausearch、aureportで監査ログのサマリレポートを作成
- NTPのセキュリティを考慮した設定
- セキュリティを考慮してX Windowsを設定または削除する方法
- ファイルの改ざん対策用にTripwireを導入
- CentOSにホスト型侵入検知ソフトAIDE(Advanced Intrusion Detection Environment)を導入
- アイドルのシェルを自動で強制終了させるには?
- CentOSでコアダンプを無効にする方法
- Linuxのbash脆弱性CVE-2014-6271、Shellshockを修整
- CentOSでバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する
ネットワーク、ポート番号
rpmパッケージ、サービス
パーミッション
ログイン、認証、パスワード、アカウント制御
auditdでシステム監査
ツール
トラブルシューティング
- auditdを使ってシステム監査
- auditdのログ容量の設定
- auditd監査ルールの設定方法
- auditdで時間設定変更操作を監査する
- auditdでユーザー・グループ設定ファイル変更操作を監査する
- auditdでネットワーク関連の設定変更を監査する
- auditdでログイン記録のログファイルの変更を監査する
- auditdでファイル所有者や権限の変更に関するイベントを監査する
- auditdでsetuid、setgidプログラムの実行を監査する
- auditdでマウント操作を監査する
- auditdでファイル削除操作を監査する
- auditdでsudo設定ファイルに対する操作を監査する
- auditdでカーネルモジュールのロード、アンロードを監査する
- マシン再起動後にauditdの設定変更を有効にする設定
- ausearch、aureportで監査ログのサマリレポートを作成