[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[port139:00441] オフラインでの整合性チェック



こんばんは、Port139 伊原です。

#stalk にも投げてますが、いちおうこちらにも ;)

昨日の AD200x に参加された皆様お疲れ様でした。
それで、20分程度(だったのかしら?)私がお話させていただいた内容について
簡単にですがまとめてみました。
会場でもいろいろとご意見いただきましたが、そこはこうだろう、こういう方法
もあるんでは?などありましたらご意見いただけると嬉しいです。
#不審プロセスの検知とは切り離してます。

オフラインでの整合性チェック

1)概要

システムの整合性(Integrity)をチェックするツールとして、Tripwire[1] や
AIDE[2] など様々な整合性チェックツールが存在する。
これらのツールは、ハッシュ(MD5、SHA、HAVAL等)を利用することで、システ
ムファイルなどになんらかの変更が行われたことを検知することができる。
しかし、システムにカーネルモードの悪意のあるプログラムが存在している場
合、整合性チェックツールがそれらのファイルや改ざんを検知できない危険性
がある。

2)チェックできないケース

例えば、NTrootkit[3]では、ファイルやディレクトリに _root_ というファイ
ル名が付与されている場合、それらのファイルがエクスプローラなどで表示し
ないようにする機能が含まれている。
このファイルを隠す機能は、カーネルモードのドライバで実現されている為、
ユーザーモードで実行されている整合性チェックアプリケーションは NTrootkit
の影響によりファイルシステムの正常な状態を確認することができない。

このようにシステム上でカーネルモードで動作する悪意のあるプログラムが実
行されている場合、システム起動スクリプトにバックドア起動用のスクリプト
が追加されていたり、悪意のあるプログラムファイルがシステムに追加された
としても検知することができない。

3)オフラインによるチェック

悪意のあるプログラムが実行されている状態では、この問題を解決する簡単な
方法が存在しない。
この為、整合性チェックを行うプログラムが悪意のあるプログラムの影響を受
けずにシステムの整合性をチェックするには、システムに悪意のあるプログラ
ムが仕掛けられていないかをオフラインで定期的にチェックする必要がある。
オフラインでシステムをチェックした結果、異常が発見されなければオンライ
ンで実施されている整合性チェックの結果を信用することができる。

4)オフラインチェックの問題点

オフラインでチェックを行うためには、一旦システムを停止する必要がある。
この為、オフラインで整合性チェックを実施している間そのシステムはサービ
スを提供することができない。

システム停止時間を最小にするには、整合性チェックを行う際にその対象とし
て、システム ファイルの追加/変更/削除を集中的に確認するように整合性チェ
ックツールのポリシーを調整する必要がある。
整合性チェックツールによっては、ファイルのハッシュだけでなくアクセス権
などもチェックすることができるが、これらのチェックを行うとそれだけ停止
時間が長くなってしまう。
システムに異常が無いことを確認できれば、オンラインで行われている整合性
チェックの結果を信用できるので、オフラインでのチェックはハッシュ値の
チェックに絞ってしまうという方針もあると考えられる。

5)その他の問題点

そもそも日本では整合性チェックを行っているサイトが少ない。商用のサービ
スを提供している企業などのサーバ群などにおいても整合性チェックが行われ
ていることはあまりない。(FireWall や IDS があれば侵害はないと考えてい
るサイトは意外に多く、そのようなサイトではシステムに変更がないかを確認
するという考えはあまりないようである)
最近話題の Code Red などの攻撃を受けた際に、ログの確認だけを行いシステ
ムの整合性チェックを行わないサイトが多いことには驚かされる。(ログに何
もなければ侵害は発生してないと考える管理者が多いのだろうか...)

6)整合性チェックツール = 侵入検知システム?
さらに困ったことに Tripwire などの整合性チェックツールを侵入検知システ
ムとしての役割だけで捉えている管理者も多い。
整合性チェック ツールはファイルの追加/変更/削除を検知することでホスト
ベースの IDS としての役割も持つが、侵害の有無の確認、ミスオペレーショ
ンの発見、侵害や異常発生時における復旧などで大きな役割を果たすツールで
もあり、侵入検知だけが目的のツールとは異なると考えられる。
システム全体の整合性チェックは日に数回程度実施されるのが一般的である。
例えば、12時間に一度システム全体の整合性チェックを実施している場合、整
合性チェックがファイルの異常を検知するのは侵害の発生から 12時間経過して
からという場合ありえる。この為、”12時間も経過してから発見するのでは遅
すぎる、すぐに検知して欲しい”という管理者もいるが、そういった役割は専
用の IDS ツールなどを利用すべきである。整合性チェックツールは、IDS など
のツールが異常を検知した際にシステムに変更がないかを確認したり、事前対
策のツールが見落として発生した侵害や異常を検知する役割で利用することが
本来の役割だと思われる。
むしろ、事前対策ツールや IDS を信頼しきってしまい、整合性チェックを怠る
ことの方がセキュリティ上は危険性が高いと考えられる。

[1]
Tripwire
オープンソース版 http://www.tripwire.org/
商用版 http://www.tripwire.co.jp/

[2]
AIDE http://www.cs.tut.fi/~rammer/aide.html

[3]
NTrootkit http://www.rootkit.com/


---

Hideaki Ihara <hideaki@xxxxxxxxxxxxx>
Port139 URL: http://www.port139.co.jp/
PGP PUBLIC KEY: http://www.port139.co.jp/pgp/