ファイル・ディレクトリ改ざん検査ツール”afick”

投稿日: / 更新日:

この記事は2年以上前に書かれたものです。情報が古い可能性があります。

非常に高いセキュリティを求められるシステム基盤では、ファイルやディレクトリの改ざんにも注意を払う必要があります。そのような場合には、定期的にシステムをスキャンして改ざんの有無をチェックするためのツールを導入します。良く知られたツールとして、商用製品にはTripwire、オープンソースソフトウェアとしてAIDEafickがあります。今回は、これらのうちのafickについて、簡単にご紹介します。

afickはPurePerlで書かれており、Perlが動かせる大抵の環境で動作します。また、標準モジュールのみで動作し、追加のモジュールを必要としません(その分、ファイルのコード量がかなり大きくなっています)。データベースも、DBMファイルをtieするだけの非常にシンプルなもので、外部のRDBMSを必要としません。

早速、afickのインストーラを入手してインストールしてみます。環境はCentOS 6.2(32bit)です。afickのSourceForgeサイトから最新版(現在は2.19)のRPMパッケージ(afick-2.19-1centos.noarch.rpm)を入手し、rpmコマンドでインストールします。

インストールすると、上記のように環境に合わせて補正された設定ファイルが自動的に作成されます。また、cronジョブやlogrotateの設定も併せて行われます。

次に、afickデータベースの初期化を行います。なお本格的な運用を行う場合は、ここで設定ファイルを修正し、どのファイルやディレクトリの改ざんを監視するか設定する必要がありますが、ここではデフォルトの設定のみで動かすため、省略します。ちなみにデフォルトでは、/etcや/bin、/sbinや/rootその他の主要なディレクトリ・フォルダが監視対象に設定されます。

データベースの初期化が完了すると、上記のようなログが出力されます。私の環境では、約3分かかりました。

“Dangling file”は、リンク先ファイルの存在しないシンボリックリンクですが、デバイス系のファイル(/dev/~)については、私の環境では特に監視する必要がないため、これらを監視対象から除外するよう、設定ファイルを修正します。

設定ファイルを修正したので、afickデータベースを更新します。

afickデータベース初期化時の状態から変化したファイル等が報告され、同時にデータベースが更新されます。後は、必要に応じて適宜のタイミングでafickを実行すれば、改ざんの有無を確認することができます(改ざんがあれば、上記のように詳細な情報が出力されます)。なおafickインストール時には、自動的に日次のcronジョブが登録されますので、特に何も設定しなくても、毎朝4時頃にはafickが実行されるようになっています(cronで実行された場合、出力はrootユーザーへメール送信されます)。

afickでは、ファイルの所有者やパーミッションなどの属性、更新日時やサイズ、MD5やSHA1のチェックサムなど、対象に応じて様々なパラメータを検査することができます。サーバの運用管理において重要なファイルやディレクトリをafickで定期的に監視することにより、セキュリティを高い水準に保つための助けになると思います。

ただし、より高いセキュリティを確保するためには、afick自身やその起動スクリプト等を改ざんされないよう、別の手段でそれらを監視する仕組みが必要かもしれません。また、ファイルのチェックサムを算出するハッシュ関数はデフォルトでMD5、設定変更してもSHA-1と、いずれもハッシュ衝突の脆弱性が確認されているため、将来のバージョンでの改善が期待されます。

以上、簡単ですがafickについてご紹介しました。

Hinemos導入はアトミテックにお任せください

見積もりを依頼する

最新情報発信中

Xやメルマガでも、Hinemosの保守、
開発、導入、構築やカスタマイズ等の
お役立ち情報を発信しています。
是非ご登録ください。