「改ざん検知」とは何でしょうか?
1、どこで、監視プログラムを動かすのか?
WEBサーバのOS上での監視

WEBサーバ上にモジュールをインストールして、WEBサーバのリソースを使って監視を行います。
メリットとデメリット
- リアルタイム検出が可能
- サーバの負荷が大きい
- 監視対象ファイル数だけメモリを使う
- 運用に管理者権限が必要(専用サーバ、VPS)
- 共有型WEBサーバには使えない
- OSアップデート時の検証が大変
別サーバからのリモート監視

改ざん検知用サーバーにシステムを構築し、WEBサーバーのリソースを使用せずに監視・検知します。
メリットとデメリット
- 共有型サーバーに使える
- WEBサーバの負荷が軽い
- HTTP又はFTP等が開いていればよい
- 管理アカウント不要(共有レンサバOK)
- SaaSに向いている
- 定期的な検査になる
2、どうやって、見て回るのか?
巡回プロトコル(リモート監視)による分類
HTTPによる巡回

WEBサーバに対し、通常のブラウザの操作をするように、
指定されたトップページからリンクをたどる
または、指定のURLにアクセスして監視します。
- メリット
- 設定が簡単 URLを指定するだけ
- デメリット
- .htaccess など設定系のファイルが対象外
- 公開ドキュメント以外の内部ファイルは検査できない。
- IP指定の標的型攻撃に弱い
- 内部リンクのないページは検出できない(例:フィッシングの設置、SEOポイズニング)
- ロードバランサ等でサーバの冗長化をしている場合に、改ざんされてないサーバに割り当てられるとは、限らない
- 認証、フォーム画面から先が見えない
- 改ざんされたファイルの特定が難しい
FTP/sFTPによる巡回

WEBサーバに対し、FTPまたはsFTPクライアントとして接続し、
見えるファイルすべて及びサブディレクトリを再帰的に監視します。
- メリット
- HTMLにリンクに依存しない
- CGIなどの動的ファイル対象になる
- 全てのファイルが対象に出来る
- デメリット
- 設定に手間がかかる
3、どうやって、改ざんと認識するのか?
パターンマッチ型(ソース解析型)

過去の事例に基づいた、予め登録された不正ファイルパターンとマッチすれば、改ざんとみなします。
Wordpress・Drupalなど動的生成コンテンツに対応しますが、パターンがまだ無い攻撃対応が難しく、画像ファイルや未対応フォーマットが監視対象外です。
振舞い分析型

仮想PCにブラウングさせ、振舞いを監視不正な動きを検出します。
Wordpress・Drupalなど動的生成コンテンツに対応しますが、仮想PCのOS/バージョン/ブラウザの組み合わせが膨大なことと、ファイルの特定ができない点で、ウェブ改ざん検知には構造上の無理があると言えます。
ハッシュリスト比較型

取得ファイルをハッシュ計算し、定期的に再取得&再計算してファイル変更を検出します。計算に誤差が出た時、更新が行われたとみなします。
改ざんされたファイルが特定できますが、改ざんと更新の区別を運用で判断する必要があります。
原本比較型

原本ファイルを保管、定期的にWEBサーバファイルと比較差分があったとき改ざんと判定します。
改ざんファイルを特定できる、改ざんと更新を容易に区別できます。
また、自動復旧も可能ですが、WEBサーバー上のプログラムで更新されるファイルに対して、改ざんと更新が区別できません。