Linuxで「AIDE」を使用してファイルとディレクトリの整合性をチェックする方法
CentOS 7 の強化とセキュリティに関するメガ ガイドの「システムを内部的に保護する」セクションで、ウイルス、ルートキット、マルウェア、および不正なソフトウェアの検出に対する内部システムの保護のためにリストされている便利なセキュリティ ツールの 1 つです。活動はAIDEです。
AIDE (高度な侵入検知環境) は、小型ながら強力な無料のオープンソース侵入検知ツールであり、事前定義されたルールを使用して Unix 系オペレーティング システムでファイルとディレクトリの整合性をチェックします。 Linuxなど。これは、簡素化されたクライアント/サーバー監視構成用の独立した静的バイナリです。
機能が豊富です。プレーンテキストの構成ファイルとデータベースを使用しているため、使いやすくなっています。 md5、sha1、rmd160、tiger などのいくつかのメッセージ ダイジェスト アルゴリズムをサポートしますが、これらに限定されません。一般的なファイル属性をサポートします。また、スキャン対象のファイルやディレクトリを選択的に含めたり除外したりするための強力な正規表現もサポートしています。
また、Gzip 圧縮、Posix ACL、SELinux、XAttrs、および拡張ファイル システム属性を例外的にサポートしてコンパイルすることもできます。
Aide は、構成ファイルで定義された正規表現ルールからデータベース (ファイル システムの選択された部分のスナップショットにすぎません) を作成することによって機能します。このデータベースが初期化されると、それに対してシステム ファイルの整合性を検証できます。このガイドでは、Linux に Aide をインストールして使用する方法を説明します。
Linux に AIDE をインストールする方法
Aide は、主流の Linux ディストリビューションの公式リポジトリにパッケージ化されており、インストールするには、パッケージ マネージャーを使用してディストリビューションのコマンドを実行します。
apt install aide [On Debian/Ubuntu]
yum install aide [On RHEL/CentOS]
dnf install aide [On Fedora 22+]
zypper install aide [On openSUSE]
emerge aide [On Gentoo]
インストール後の主な設定ファイルは /etc/aide.conf になります。インストールされているバージョンとコンパイル時のパラメーターを表示するには、ターミナルで以下のコマンドを実行します。
aide -v
サンプル出力
Aide 0.14
Compiled with the following options:
WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"
お気に入りのエディターを使用して構成を開くことができます。
vi /etc/aide.conf
これには、データベースの場所、レポートの場所、デフォルトのルール、データベースに含めるディレクトリ/ファイルを定義するディレクティブがあります。
デフォルトの補助ルールについて
上記のデフォルト ルールを使用すると、たとえばaide.conf ファイルに新しいカスタム ルールを定義できます。
PERMS = p+u+g+acl+selinux+xattrs
PERMS ルールはアクセス制御のみに使用され、ファイル/ディレクトリのアクセス許可、ユーザー、グループ、アクセス制御アクセス許可、SELinux コンテキスト、およびファイル属性に基づいてファイルまたはディレクトリへの変更を検出します。
これにより、ファイルの内容とファイルの種類のみがチェックされます。
CONTENT = sha256+ftype
これは前のルールの拡張バージョンで、拡張コンテンツ、ファイル タイプ、およびアクセスをチェックします。
CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs
以下のDATAONLYルールは、すべてのファイル/ディレクトリ内のデータの変更を検出するのに役立ちます。
DATAONLY = p+n+u+g+s+acl+selinux+xattrs+sha256
ファイルとディレクトリを監視するルールの定義
ルールを定義したら、監視するファイルとディレクトリを指定できます。上記の PERMS ルールを考慮すると、この定義ではルート ディレクトリ内のすべてのファイルのアクセス許可がチェックされます。
/root/\..* PERMS
これにより、/root ディレクトリ内のすべてのファイルに変更がないかチェックされます。
/root/ CONTENT_EX
/etc/ にあるすべてのファイル/ディレクトリ内のデータの変更を検出するには、これを使用します。
/etc/ DATAONLY
AIDE を使用して Linux でファイルとディレクトリの整合性をチェックする
まず、--init
フラグを使用して実行されるチェックに対してデータベースを構築します。これは、システムがネットワークに接続される前に実行されることが想定されています。
以下のコマンドは、構成ファイルで選択したすべてのファイルを含むデータベースを作成します。
aide --init
次に、次のコマンドを使用して、続行する前にデータベースの名前を /var/lib/aide/aide.db.gz に変更します。
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
データベースを安全な場所 (読み取り専用メディアまたは別のマシン) に移動することをお勧めしますが、そこから読み取るように構成ファイルを更新するようにしてください。
データベースの作成後、--check
フラグを使用してファイルとディレクトリの整合性をチェックできるようになります。
aide --check
データベース内のスナップショットを読み取り、システム ディスクで見つかったファイル/ディレクトリと比較します。予期しない箇所で変更が見つかった場合は、レビューできるレポートが生成されます。
ファイル システムには変更が加えられていないため、上記のような出力のみが得られます。ここで、ファイル システムの構成ファイルで定義された領域にいくつかのファイルを作成してみます。
vi /etc/script.sh
touch all.txt
次に、もう一度チェックを実行すると、上で追加されたファイルが報告されるはずです。このコマンドの出力は、チェック用に構成したファイル システムの部分によって異なり、長時間かかる場合があります。
aide --check
補助チェックを定期的に実行する必要があります。また、既に選択されているファイルに変更が加えられた場合、または構成ファイルに新しいファイル定義が追加された場合には、常に --update
オプションを使用してデータベースを更新してください。
aide --update
データベースの更新を実行した後、今後のスキャンで新しいデータベースを使用するには、必ずデータベースの名前を /var/lib/aide/aide.db.gz に変更します。
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
それは今のところすべてです!ただし、次の重要な点に注意してください。
- AIDE を含むほとんどの侵入検知システムの特徴の 1 つは、システム上のほとんどのセキュリティ ループ ホールに対する解決策を提供しないことです。ただし、システム管理者がシステム ファイル/ディレクトリへの変更を調査できるようにすることで、侵入への対応プロセスを容易にします。したがって、常に警戒し、現在のセキュリティ対策を更新し続ける必要があります。
- 新しく作成したデータベース、構成ファイル、および AIDE バイナリを、読み取り専用メディア (ソースからインストールする場合は可能) などの安全な場所に保管することを強くお勧めします。
- セキュリティを強化するには、構成やデータベースに署名することを検討してください。
追加情報と設定については、マニュアル ページを参照するか、AIDE ホームページを確認してください: http://aide.sourceforge.net/