ファイルの改ざん対策用にTripwireを導入

Webコンテンツの改ざんやコマンドの置き換えなどのセキュリティ対策としてTripwireを導入しました。

下記サイトを参考にして構築しました。
ゼロから始めるLinuxセキュリティ(8):Tripwireによるホスト型IDSの構築
 

1)Tripwireのインストール


 
Tripwireのオープンソース版のrpmを入手し、インストールします。
 
# rpm -i tripwire-2.4.2.1-1.el6.x86_64
 

2)キーファイル作成


 
tripwireの設定ファイル、ポリシーファイルを暗号化するためのキーファイルを作成します。
 
下記コマンドを実行します。
# /usr/sbin/tripwire-setup-keyfiles
→何度かパスフレーズの入力を求められます。
→/etc/tripwireディレクトリに、”site.key”と”ホスト名-local.key”という名前のキーファイルが作成されます。
 

3)設定ファイル


 
/etc/tripwireディレクトリに下記設定ファイルがありますので、適宜変更します。
 
①twcfg.txt:設定ファイル
②twpol.txt:ポリシーファイル
 

4)動作確認


 
ポリシーファイルに簡単な設定を追加し、動作確認します。
 
①ポリシーファイルに下記設定を追加
 
/var/www/html -> $(SEC_CONFIG) ;
→apacheのコンテンツが変更されたら、その変更ファイルを検知するようにします。
 
②設定ファイルを暗号化
 
上記設定ファイルの内容が読まれるのを防ぐため暗号化します。
# twadmin -m P -S site.key twpol.txt
 
③ベースラインデータベースを作成
 
改ざん又は変更を検知する際の比較対象とするベースラインデータベースを作成します。
# tripwire -m i
 
④整合性チェック
 
ベースラインデータベースと比較して整合性をチェックします。
ここでは、動作確認のため、/var/www/htmlディレクトリにファイルを追加してから実行します。
改ざん又は変更があったか調べるため、整合性チェックを行います。
# tripwire -m c
→結果抜粋

Rule Name Severity Level Added Removed Modified
--------- -------------- ----- ------- --------
Invariant Directories 66 0 0 0
Tripwire Data Files 100 0 0 0
Critical devices 100 0 0 0
User binaries 66 0 0 0
Tripwire Binaries 100 0 0 0
Critical configuration files 100 0 0 0
Libraries 66 0 0 0
Operating System Utilities 100 0 0 0
* Temporary directories 33 1 0 0
Critical system boot files 100 0 0 0
 
-------------------------------------------------------------------------------
Rule Name: Temporary directories (/var/www/html)
Severity Level: 33
-------------------------------------------------------------------------------

Added:
"/var/www/html/httpd.conf"

上記のように追加されたファイルが”Added:・・・”とレポートされました。

関連記事の目次
 
ネットワーク、ポート番号
  • iptablesを使ってCentOSのファイアウォール設定
  • 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でバッファーオーバーフロー脆弱性に対する防御機能が有効になっているか確認する

  • コメントを残す

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