Webサーバ防御の「心理戦」に関する自分の体験

セキュリティスタジアム2004に参加した時の話。私は防御側としてIISをセットアップしたWindows 2000 Server(SPなし、パッチなし)を用意した。セキュリティスタジアムには、セキュリティの技術を持った人達が集まっているので、さすがにそのままじゃあっという間にやられるだろうと思い、ホストファイアウォールを動作させておき、ポート80だけ開けて置くことにした。
パッチなしのIIS 5.0と言えば、山ほどセキュリティホールがあり特殊なツールを使わなくてもブラウザ一つだけでサーバを攻略することも可能なもので、やられるまで数時間持たないだろうと予想していた。
ところが、アクセスを監視しているとポート80へのアクセスがほとんどない。ホワイトボードに攻撃ターゲットとなるIPが書かれているわけだから、攻撃側がアクセス出来ないわけではない。準備に手間取っているのかと思い数時間放置したが状況が変わらないので、攻撃側の様子を見てみた。
そこでようやく謎が解明した。ある人のメモ用紙を見ると、IPアドレスとオープンポートの状況がメモしてあった。よくよく見ると私が用意したサーバのIPアドレスに×がついているではないか。
なんと私の用意したサーバはファイアウォールpingの応答をしないようにしていたために、ある人の攻撃対象リストから外れていたようだ。確かにnmapなどのポートスキャナのデフォルトの動作では最初にpingで対象が動作しているか確認する。pingの応答がないとポートスキャンをしない。おそらくコレが原因でパッチなしのサーバにほとんどアクセスがなかったのである。
そのあと、ファイアウォールの設定を全開にしたが、その後も攻撃を仕掛けてくる人はあまりおらずパッチなしのWindows 2000 Serverで丸1日守りきってしまった*1
このように、pingの応答を返さないという、ほとんどセキュリティの役に立たないと思われることでも有効に働くこともある*2。セキュリティスタジアムの環境とインターネット環境とでは違うだろうし、pingの応答を返さないことがサーバ防御に特に有効に働くとも思えないが、ちょっとしたことの積み上げで攻撃対象になりにくくすることは出来ると考えている。

*1:攻略して欲しくてパッチを当てなかったわけなので、当然想定外である

*2:ホントはもっと攻撃して欲しかったので、単なる偶然で意図してなかったことだが