auditdを使ってシステム監査

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

関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • CentOS6のTCPラッパーの概要と設定方法
  • nmapでオープンしているポート番号とバージョンを確認
  •  
    yum、rpmパッケージ、サービス
  • CentOSで不要なサービスは起動しないようにする
  • RPMパッケージのインテグリティチェック
  •  
    パーミッション
  • cronで使用するファイルのパーミッション設定
  • CentOSのumaskの設定
  • ユーザーホームディレクトリ内の権限設定をセキュアにする
  • 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でファイル所有者や権限の変更に関するイベントを監査する
  • 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でバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です