CentOSでホストベースの侵入検出システム(IDS)を構成する方法のチュートリアル
すべてのシステム管理者が本番サーバに最初に導入したいセキュリティ手段の1つは、ファイルの内容だけでなく、プロパティも含むファイルの改ざんを検出するメカニズムです。
AIDE(「高度な侵入検出環境」の略称)は、オープンソースのホストベースの侵入検出システムである。AIDEは、多数のファイル属性の不一致をチェックすることによって、権限、ファイルタイプ、インデックスノード、リンク数、リンク名、ユーザー、グループ、ファイルサイズ、ブロック数、変更時間、追加時間、作成時間、acl、SELinuxセキュリティコンテキスト、xattrsを含むシステムバイナリファイルと基本プロファイルの整合性をチェックします。およびmd 5/sha検査値を含む様々な特徴。
AIDEは、(改ざんされていない)Linuxサーバのファイルシステムをスキャンしてファイル属性データベースを構築し、その後、サーバファイルの属性をデータベースと照合し、サーバの実行時に変更されたインデックスされたファイルに警告する。このため、AIDEは、システムの更新後またはそのプロファイルを合法的に変更した後、保護されたファイルをインデックス化する必要があります。
一部のお客様では、セキュリティポリシーに基づいてサーバに侵入検出システムを強制的にインストールする場合があります。しかし、お客様が要求するかどうかにかかわらず、システム管理者は侵入検出システムを導入する必要があります。これは通常、良い方法です。
CentOSまたはRHELにAIDEを取り付けるAIDEの初期インストール(同時に初回実行)は、システムのインストールが完了したばかりで、インターネットやローカルエリアネットワークに露出するサービスがない場合が望ましい。この初期段階では、外部からのすべての侵入と破壊リスクを最小限に抑えることができます。実際には、AIDEが初期データベースを構築するときにシステムが清潔に保たれる唯一の方法でもあります。(LCTT訳注:もちろん、インストール元自体にセキュリティ上の危険性がある場合は、信頼できるデータ記録を作成できません)
以上の理由から、システムのインストールが完了したら、次のコマンドを実行してAIDEをインストールできます。
# yum install aide
ネットワークからマシンを切断し、以下に説明する基本的な構成タスクを実施する必要があります。
AIDEの設定デフォルトのプロファイルは/etc/aideです。confは、FIPSR、NORMAL、DIR、DATAONLYなどのいくつかの保護ルールの例を紹介し、各ルールの後ろには等号とチェックするファイル属性のリスト、またはいくつかの事前定義されたルール(+で区切られている)が付いています。このフォーマットを使用してルールをカスタマイズすることもできます。
FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256NORMAL = FIPSR+sha512
たとえば、上記の例では、NORMALルールは、権限(p)、インデックスノード(i)、リンク数(n)、ユーザ(u)、グループ(g)、サイズ(s)、修正時間(m)、作成時間(c)、ACL(acl)、SELinux(selinux)、xattrs(xattr)、SHA 256/SHA 512チェックサム(sha 256およびsha 512)の属性の不一致をチェックします。
定義されたルールは、異なるディレクトリおよびファイル(正規表現で表される)に柔軟に使用できます。
エントリの前の感嘆符(!)AIDEにサブディレクトリ(またはディレクトリ内のファイル)を無視するように伝え、これらについてルールを別途定義できます。
上記の例では、PERMSは/etcマシンのサブディレクトリとファイルに使用されるデフォルトのルールです。ただし、/etcのバックアップファイル(例えば/etc/.*~)については、ルールは適用されず、/etc/mtabファイルに使用されるルールもありません。/etcの他の選択されたサブディレクトリまたはファイルの場合、デフォルトのルールPERMSの代わりにNORMALルールを使用します。
正しいルールをシステム内の正しい位置に定義して適用することはAIDEを使用する上で最も難しい部分であるが,良い判断を下すことは良いスタートである。最も重要なルールとして、不要な属性をチェックしないでください。たとえば、/var/logまたは/var/spool内のファイルの変更時間をチェックすると、多くのアプリケーションおよびデーモンプロセスがその場所にコンテンツを書き込むことが多いため、これらのコンテンツは問題ありません。また、複数のチェック値をチェックするとセキュリティが強化される可能性がありますが、AIDEの稼働時間の増加に伴います。
オプションで、MAILTO変数を使用して電子メールアドレスを指定すると、チェック結果をメールボックスに送信できます。次の行を/etc/aideに配置します。confの任意の位置でいいです。
MAILTO=root@localhostAIDEの初回実行
AIDEデータベースを初期化するには、次のコマンドを実行します。
# aide --init
/etc/aide.conf生成/var/lib/aide/aide.db.new.gzファイルは/var/lib/aide/aideと名前を変更する必要があります。db.gzは、AIDEがそれを読み取ることができるようにします。
# mv /var/lib/aide/aide.db.new.gz /var/lib/aide.db.gz
今、私たちのシステムとデータベースを初めて校正する時です。タスクは簡単です。実行するだけです。
# aide
オプションがない場合、AIDEは--checkオプションを使用していると仮定します。
データベース作成後にシステムを変更しなかった場合、AIDEはOKメッセージで今回の校正を終了します。
初期AIDEデータベースを構築した後、継続的なシステム管理活動として、保護されたサーバをいくつかの合法的な理由で更新する必要があります。サーバが更新されるたびに、AIDEデータベースを再構築してデータベースの内容を更新する必要があります。タスクを完了するには、次のコマンドを実行します。
# aide --update
AIDEを使用して本番システムを保護するには、タスク・プランでAIDEを呼び出すことで、一貫性を周期的にチェックすることが望ましい場合があります。たとえば、AIDEを1日に1回実行し、その結果をメールボックスに送信するには、次のようにします。
# crontab -e
0 0 * * * /usr/sbin/aide --check | /usr/bin/mail -s "AIDE run for $HOSTNAME" [email protected]AIDEのテストファイルの改ざん
次のテスト環境では、AIDEがファイルの整合性を確認する方法を示します。
テスト環境1/etc/fakeなどの新しいファイルを追加しましょう。
# cat /dev/null > /etc/fake
ファイル権限を変更し、検出されたかどうかを確認します。
# chmod 644 /etc/aide.confテスト環境3
最後に、ファイルの内容を変更します(たとえば、/etc/aide.confにコメント行を追加します)。
echo "#This is a comment" >> /etc/aide.conf
上のスクリーンショットでは、1番目の欄にファイルのプロパティが表示され、2番目の欄はAIDEデータベースの値で、3番目の欄は更新後の値です。3番目の欄の空白部分は、この属性が変更されていないことを示します(この例のACLなど)。
の最後の部分もしあなたが自分がシステムが侵入されたと確信する良い理由があることに気づいたら、最初の目では何が変更されたのか確定できません。AIDEのようなホストベースの侵入検出システムは、推測で貴重な時間を浪費するのではなく、何が変更されたのかをすぐに認識するのに役立つからです。読んでくれてありがとう。皆さんの役に立つことを望んでいます。引き続き注目してください。私たちはもっと優秀な文章を分かち合うように努力します。