関 宏介/ラック サイバー救急センター

 今回は,Web管理者の対策について考える。サーバー側で実施できる対策は,信用できるクライアントか,信用できないクライアントかを区別して接続を許可することである。その方法には,IPアドレスによる方法や,FTP以外のセキュリティの高い接続方法に置き換えるといった方法がある。

 このほか,Gumblarの攻撃手順を踏まえて接続を制限する方法もある。攻撃者はFTPサーバーのアカウントを取得後,いったんFTPサーバーのindex.html(もしくはindex.htm)ファイルや「.jsファイル」をダウンロードする。その上で,不正プログラム配布サイトへ誘導するJavaScriptをファイルの文末に追記した後,再度アップロードする。このため,FTPサーバーに対するGETリクエストを拒否し,Web管理者からのPUTによるコンテンツ更新だけを許可するよう運用方法を限定しておけば,被害の発生を抑えられる。

 とはいえ,既に改ざんされてしまっているサイトもあるかもしれない。そこで次に,改ざんされたときの痕跡とそのチェック方法を見ていこう。

 Gumblarによる改ざん攻撃を受けると,ある特定パターンの痕跡が残る。最近の傾向では,HTML,JS,PHPなどのテキストで構成されるファイルの末尾に図1のような文字列が追記されることが多い。これを検知するには怪しい文字列を探せばよい。

図1●改ざんされたWebページに挿入された文字列の例
図1●改ざんされたWebページに挿入された文字列の例
[画像のクリックで拡大表示]

 ただ,文字列は非常に多くのバリエーションがあり,簡単には探し出せない。ファイルの更新時刻情報を基にして,メンテナンス時以外に更新されたファイルがないかをチェックすれば,見付かる場合があるかもしれない。

 一番良いのは,正規コンテンツのハッシュ値を事前に取っておき,これと比べることである。Tripwireのようにハッシュ化,整合性チェック,アラートを自動化するソフトウエアもある。

 ただ,正規コンテンツのバックアップやハッシュ値を取っておらず,どうしても現在のコンテンツから改ざんの有無を確認しなければならない場合があるかもしれない。その場合のために,yamagata21氏作成の「ガンブラーのチェックがんばるー」というツールを紹介しておこう(写真1)。IFRAME/SCRIPTタグの呼び出し先URLやSCRIPTタグの中身を抽出してくれるなど,バックアップやハッシュ値の手がかりなしに改ざんチェックを頑張るユーザーにとって,便利なツールになっている。

写真1●コンテンツから改ざんの有無をチェックできる「ガンブラーのチェックがんばるー」
写真1●コンテンツから改ざんの有無をチェックできる「ガンブラーのチェックがんばるー」

バックドアも痕跡の一つ

 もう一つ,Gumblar.Xと呼ばれる種の不正プログラムは,/images/ディレクトリ以下にgifimg.phpという名前でPHPバックドアをアップロードする(本特集第2回の図7参照)。これは,変数eで与えられた任意のPHPのコードを実行するもの。変数eが与えられない場合は404エラーを返して存在しないように振る舞う。

 これを検知するには,gifimg.phpなどの不審なファイルの有無をチェックすればよい。Webサイトのどこかに/images/ディレクトリがあれば,その配下にあるファイルを確認する。ただし,今後も同じファイル名で扱われるとは限らないので注意が必要である。

 改ざんの有無を把握するには,FTP転送ログを確認する手もある。転送ログ(Linuxの場合には通常/var/log/xferlog)には図2のように痕跡が残る。図では,見慣れないIPアドレスから短期間のうちに同一ファイルがダウンロードされ,その後アップロードされている。

図2●Webページを改ざんされた場合のFTP転送ログ(XFERLOG)の例
図2●Webページを改ざんされた場合のFTP転送ログ(XFERLOG)の例
[画像のクリックで拡大表示]

 検知するには,FTP転送ログやログイン・ログを確認し,まずは見慣れないIPアドレスからAnonymous以外のアカウントでログインされていないかを確認する。通常のメンテナンス作業を考えると,ダウンロード作業とアップロード作業はある程度まとまった時間に分かれているはずであり,数秒単位で切り替わるものではない。こうした点を考慮してチェックすると,異常な痕跡を見付けやすくなるはずだ。