整理ありがとう

 

攻撃者想定がTarikiさんと辻さんとで違っていて、客観的な統計などなしで攻撃者はバナーを見ないといくら反論してもあまり意味が無いと思うんですよね。

 そうそう。その通り。関連したエントリで私も書き散らかしていますが、そういう統計とか実験データってないですよね。
 
 なので、同じようにこういうこともできるのです。
 「客観的な統計なしで攻撃者はバナーを見ていると主張してもあまり意味が無いと思うんですよね。」
 
 なら、意味がハッキリしないことを対策でございと持ち出さないほうがいいんじゃないの?っていうのが私の趣旨。
 
 なので、実は防御者像っていうのは想定していなかったりするのです。強いて言えば、サーバ運用担当ではなく、セキュリティ屋としての言い分。むしろ攻撃者としての視点をできるだけ持とうとしています。
 俺ならこうアタックする。その手法はこう防ぐ。そうやって考えていくと、バナーなんて出ていようが出ていなかろうがあんまり関係ないんですよ。
 
 セキュリティ屋はサーバを効果的に守る方法やシステムを提供してその対価でメシ食ってます。
 バナー隠しをしていても撃ってくるどころか、Apache 相手に IIS 向けの Exploit をガシガシ打ち込んでくるガキもいました。
 DDNSサブドメイン借りて動的 IP アドレスでちまちまやってたウチのサーバにすら、ですよ。*1
 
 全てやれることはやった後のおまじないなら問題ありません。ただ、効果もはっきりしていないようなものをセキュリティ対策かのように扱うのは、どうなんだろうなあ。
 
 

セキュリティ問題が発生したらできるだけ早く根本的対策をとるのは大前提ですが、すぐに根本的な対策が取れないケースを考えておくべきです。
 
根本的対策だけではなく、攻撃対象にされにくくしたり攻撃されても影響を受けにくくしたりする保険的な対策を積み上げておくべきだと思います。


 
 すぐにパッチをあてることができず、メンテナンスのために引っ込めることもできないサーバで、「攻撃者に見逃してもらえる」ことを期待してバナー隠しなんてことまでやらなきゃいけない状態になっちゃうくらいなら、WAF なり IPS なり入れてそっちで対応するなりしましょうよ。そこまでやって攻撃に備えていられる上で、バナー隠しを「したほうが良い」理由ってあります?統計的根拠すらない「見逃してもらえるだろう」という希望的観測しかないんじゃないですか?
 
 バナー隠す前に IPS 入れてもいいしリバースプロキシ入れてもいい。バナー隠していたってクリティカルなサーバなら止められずにすぐパッチ適用ができないんでしょ?なら撃たれて終わりじゃん。ツール配布されたら厨房がガンガン来るじゃん。PoC出たらコンパイルして喜んで撃つ犬厨なんか世界中にいるじゃん。バナー隠しても意味ないじゃん。出しっぱなしでもおんなじじゃん。それって保険になるの?気休めじゃないの?気休めっていつからセキュリティ対策の仲間入りになったの?
 
 繰り返しになりますが、バナーを隠してはいけないとは言っていません。隠したっていいのです。でもそれって「セキュリティ対策」じゃないよね、所詮は「気分の問題」だよね、ということです。
 バナーが出ていても出ていなくても「客観的な統計なしで攻撃者はバナーを見て攻撃対象を決めていると主張してもあまり意味が無い」んじゃないですか?それって本当に対策なの?ということなのです。
 実証されていない以上、バナー遮蔽は「おまじない」と同レベルじゃないでしょうか。おまじないで攻撃者を多少なりとも退けられるなら、神社仏閣はかなりセキュアになります。
 
 隠すことがセキュリティ対策として効果があるかどうか怪しいということをちゃんと理解しとくべきなんですよ。効果が実証されていない以上、バナー遮蔽は「おまじない」と同レベルじゃないでしょうか。だから私は最初からずっとそう言ってました。

 それでもバナーを隠したければ隠せばよい。ただしそれはセキュリティ対策でもなんでもない。単なる不安解消にすぎないのだ。そのことを踏まえて、裏ではやはり常に「問題の無いバージョン*3デーモン」を使うことになる。なぜならバージョンを隠したところでセキュアにはならないからだ。

 我々セキュリティ屋は「不安解消」と「セキュリティ対策」は分けて考えなければならない。カウンセリングや占いではセキュアなサーバを作れない。



  
 保険的手法は確かに必要です。ただし、効果があるものであれば、ですが。保険に入ったつもりでいたのにイザってときに保険金おりませんでした!なんて辛すぎますよね。ちゃんと「いざというとき頼りになる保険」をかける必要があります。
 
 私も辻さんもhiro-tさんも「攻撃者全てがバナー見てるわけじゃない」「攻撃者全てがバナー見ないわけじゃない」という観点は同じなのです。立脚点も似たようなもの。鯖まもろーぜっつうモチベーションも似たようなもんでしょう。
 最大の違いは、辻さんもhiro-tさんも「攻撃者が見逃してくれる【だろう】」と判断して「だからバナー遮蔽には意味がある」と結論付けていること。私は「攻撃者が見逃してくれない【かもしれない】」と判断して「だからバナー遮蔽は意味が無い」と判断していること。加えて言うなら、とくに元ネタ記事の辻さんは「物語のハッカー」のイメージに少しひきずられているようにも思いますが。
 
 リスクマネジメント的には、脆弱性を攻撃される可能性を減らす効果が充分にあるならバナーを遮蔽する意味はあると思いますよ。
 でも。それって実証されてないでしょう。hiro-tさん。なら、少なくとも実証されていない効果を期待する、【だろう】運転は避けるべきだと思うんですよ。*2
 
 それがセキュリティってもんじゃないんでしょうか。
 

*1:今見たらその手のログがすっかり現れなくなってた。当然バナー出しっぱなしなわけですが、HEADリクエストもなければ、GETやPOSTで存在しないコンテンツ見たりもしていません。偽装してるんだYO!と言われたらそうかもしれませんが、バナー情報を取得しようという動きすらありませんでした。たぶん侵入できそうなツールが今はまだ出てないからではないかと妄想。

*2:なので、実証実験の結果バナー遮蔽でたとえばハッキングされるまでの平均時間に有意な差で充分な時間差が現れたりしたら、私はバナー遮蔽推進派に趣旨換えします。疑う理由がなくなって、おまじないじゃないことがハッキリしたら、たかが数個の設定変更で効果が期待できるなら、適用しない手は無いでしょう?