「AIDE」を使用してファイルとディレクトリの整合性をチェックする方法Linuxで


CentOS 7の強化およびセキュリティ保護に関するガイドでは、「システムを内部的に保護」というセクションで、ウイルス、ルートキット、マルウェア、および不正なソフトウェアの検出から内部システムを保護するための便利なセキュリティツールの1つを紹介しました。アクティビティは AIDE です。

AIDE 高度な侵入検知環境)は、小規模でありながら強力な無料のオープンソースの侵入検知ツールで、事前定義されたルールを使用してUnixライクなオペレーティングシステムのファイルとディレクトリの整合性をチェックします。 Linuxなど。これは、単純化されたクライアント/サーバー監視構成用の独立した静的バイナリです。

それは機能が豊富です:プレーンテキストの設定ファイルとデータベースを使いやすくします。 md5、sha1、rmd160、tigerなどのメッセージダイジェストアルゴリズムをサポートします。共通のファイル属性をサポートします。スキャン対象のファイルとディレクトリを選択的に含めるか除外するための強力な正規表現もサポートします。

また、Gzip圧縮、Posix ACL、SELinux、XAttr、およびExtendedファイルシステム属性を例外なくサポートしてコンパイルすることもできます。

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/の下のすべてのfiles /ディレクトリ内のデータの変更を検出するのに役立つように、これを使用してください。

/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

それは今のところすべてです!しかし、これらの重要な点に注意してください。

  • One characteristic of most intrusion detection systems AIDE inclusive, is that they will not provide solutions to most security loop holes on a system. They however, assist in easing the the intrusion response process by helping system administrators examine any changes to system files/directories. So you should always be vigilant and keep updating your current security measures.
  • It it highly recommended to keep the newly created database, the configuration file and the AIDE binary in a secure location such as read-only media (possible if you install from source).
  • For additional security, consider signing the configuration and/or database.

追加情報と設定については、そのmanページを参照するか、またはAIDE Homepageをチェックしてください。http://aide.sourceforge.net/