Linuxファイル改ざん検知の実践:AIDEとTripwireの比較と設定ガイド

Linuxサーバー向けファイル改ざん検知ツールAIDEとTripwireを比較。導入方法、設定例、監視のポイントを解説。侵入検知(IDS)としての実践的な活用法。

Linux侵入検知AIDETripwire改ざん検知IDS2026/5/25

はじめに

Linuxサーバーを運用する上で、ファイルの改ざん検知はセキュリティの基本です。侵入検知システム(IDS)の一環として、ファイル整合性チェックツールは重要な役割を果たします。本記事では、代表的なツールであるAIDEとTripwireを比較し、それぞれの特徴、導入方法、運用のポイントを解説します。

ファイル改ざん検知とは

ファイル改ざん検知は、システム上の重要なファイルが不正に変更されたかどうかを監視する手法です。初期状態のハッシュ値や属性をデータベースに保存し、定期的に現在の状態と比較することで、改ざんを検出します。

主な機能

  • ファイルのハッシュ値(MD5、SHA1など)の計算と保存
  • ファイル属性(パーミッション、所有者、サイズ、タイムスタンプ)の監視
  • 新しいファイルや削除されたファイルの検出
  • レポート生成とアラート通知
  • AIDE(Advanced Intrusion Detection Environment)

    AIDEは無料で利用できるオープンソースのファイル整合性チェックツールです。設定が比較的シンプルで、軽量に動作します。

    インストール

    <h1>Debian/Ubuntu</h1>
    sudo apt update
    sudo apt install aide
    

    <h1>RHEL/CentOS/Fedora</h1> sudo yum install aide <h1>または</h1> sudo dnf install aide

    初期設定

    インストール後、設定ファイル /etc/aide/aide.conf を編集します。デフォルト設定でも動作しますが、監視対象をカスタマイズすることを推奨します。

    <h1>設定ファイルのバックアップ</h1>
    sudo cp /etc/aide/aide.conf /etc/aide/aide.conf.bak
    

    <h1>設定ファイルを編集</h1> sudo vi /etc/aide/aide.conf

    設定例:

    <h1>監視するディレクトリとルール</h1>
    /etc p+i+u+g+n+md5+sha1
    /bin p+i+u+g+n+md5+sha1
    /sbin p+i+u+g+n+md5+sha1
    /var/log p+i+u+g+n+md5
    <h1>除外するパターン</h1>
    !/var/log/.*
    !/var/spool/.*
    

    各フラグの意味:

  • p: パーミッション
  • i: inode
  • u: ユーザー
  • g: グループ
  • n: ファイル数
  • md5: MD5ハッシュ
  • sha1: SHA1ハッシュ
  • データベースの初期化と検査

    <h1>データベースの初期化</h1>
    sudo aideinit
    

    <h1>初期データベースを所定の位置にコピー</h1> sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

    <h1>検査の実行</h1> sudo aide --check

    定期実行(cron)

    <h1>crontabを編集</h1>
    sudo crontab -e
    

    <h1>毎日午前3時に実行(例)</h1> 0 3 * * * /usr/bin/aide --check | mail -s "AIDE Report" admin@example.com

    特徴

  • 設定が簡単で初心者向け
  • 軽量でリソース消費が少ない
  • デフォルトで多くのルールが用意されている
  • カスタマイズ性が高い
  • Tripwire

    Tripwireは商用版とオープンソース版(Tripwire Open Source)があります。ここではオープンソース版を扱います。AIDEに比べて設定がやや複雑ですが、詳細なポリシー設定が可能です。

    インストール

    <h1>Debian/Ubuntu</h1>
    sudo apt update
    sudo apt install tripwire
    

    <h1>RHEL/CentOS/Fedora</h1> sudo yum install tripwire <h1>または</h1> sudo dnf install tripwire

    初期設定

    インストール時にサイトキーとローカルキーの作成を求められます。これらはデータベースの署名に使用されます。

    <h1>パスワードの設定(プロンプトに従う)</h1>
    sudo tripwire-setup-keyfiles
    

    設定ファイルは /etc/tripwire/twpol.txt です。ポリシーファイルを編集し、監視ルールを定義します。

    <h1>ポリシーファイルの編集</h1>
    sudo vi /etc/tripwire/twpol.txt
    

    ポリシーの例:

    (
      rulename = "Critical System Files",
      severity = 100,
    )
    {
      /etc        -> $(SEC_CRIT);
      /bin        -> $(SEC_BIN);
      /sbin       -> $(SEC_BIN);
      /usr/bin    -> $(SEC_BIN);
      /usr/sbin   -> $(SEC_BIN);
    }
    

    ポリシーファイルを編集したら、バイナリ形式に変換します。

    sudo twadmin --create-polfile /etc/tripwire/twpol.txt
    

    データベースの初期化と検査

    <h1>データベースの初期化</h1>
    sudo tripwire --init
    

    <h1>検査の実行</h1> sudo tripwire --check

    <h1>レポートを表示</h1> sudo twprint --print-report --twrfile /var/lib/tripwire/report/$(ls -t /var/lib/tripwire/report | head -1)

    定期実行(cron)

    <h1>スクリプトを作成</h1>
    sudo vi /etc/cron.daily/tripwire-check
    

    <h1>内容</h1> #!/bin/bash /usr/sbin/tripwire --check | mail -s "Tripwire Report" admin@example.com

    <h1>実行権限を付与</h1> sudo chmod +x /etc/cron.daily/tripwire-check

    特徴

  • ポリシーベースの詳細な設定
  • キーによるデータベース署名で改ざん防止
  • レポートが詳細で分析しやすい
  • 学習曲線がやや高い
  • AIDE vs Tripwire 比較表

    項目AIDETripwire
    インストールの容易さ簡単やや複雑
    設定の柔軟性高い非常に高い
    デフォルト設定すぐ使えるカスタマイズが必要
    データベースの保護ファイル権限のみ暗号キーによる署名
    リソース消費軽量やや重い
    レポートの詳細度標準詳細
    コミュニティサポート活発安定
    ライセンスGPLGPL(オープンソース版)

    実践的な導入のポイント

    1. 監視対象の選定

    以下のファイル・ディレクトリは必ず監視対象に含めましょう。

  • /etc/passwd, /etc/shadow, /etc/group(ユーザー管理)
  • /etc/ssh/sshd_config(SSH設定)
  • /etc/sudoers(権限昇格)
  • /bin, /sbin, /usr/bin, /usr/sbin(実行ファイル)
  • /etc/cron*(ジョブ定義)
  • /etc/init.d/, /etc/systemd/(サービス設定)
  • /var/log/(ログファイルは変更が多いので注意)
  • 2. データベースの保護

    データベースファイルは改ざんされると検知不能になります。読み取り専用メディア(CD-ROMなど)に保存するか、リモートの安全な場所にコピーすることを推奨します。

    3. アラートの通知

    検査結果はメールやSlack、監視ツール(Zabbix、Prometheusなど)に通知する仕組みを構築しましょう。

    4. 定期的な更新

    システム更新時には、データベースも更新する必要があります。更新手順をドキュメント化し、チームで共有しましょう。

    AIDEのデータベース更新例

    sudo aide --update
    sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
    

    Tripwireのデータベース更新例

    sudo tripwire --update --twrfile /var/lib/tripwire/report/レポートファイル名
    

    侵入検知(IDS)全体への組み込み

    ファイル改ざん検知はホスト型IDS(HIDS)の一部です。以下のような他のセキュリティ対策と組み合わせることで、より強固な防御が可能です。

  • ネットワークIDS(Snort、Suricata)
  • ログ監視(rsyslog、Logwatch)
  • 脆弱性スキャン(OpenVAS)
  • ファイアウォール(iptables、nftables)
  • 定期的なセキュリティ監査

  • *この記事はArch Linux/btrfs/LUKs環境で実際に検証した内容を基にしています。セキュリティ設定は環境によって異なるため、本番環境への適用前に必ずテスト環境で検証してください。*

    まとめ

    AIDEとTripwireはどちらも強力なファイル改ざん検知ツールです。小規模環境や導入が簡単なものを求めるならAIDE、大規模環境や詳細なポリシー制御が必要ならTripwireが適しています。まずはどちらかを導入し、定期的なチェックと通知を設定することで、セキュリティレベルを大きく向上させることができます。

    ファイル改ざん検知は「備えあれば憂いなし」の典型です。今すぐ導入を検討しましょう。