パスワードを忘れた? アカウント作成
16227 story
PHP

サーバのバージョンは隠すのが常識? 193

ストーリー by yoosee
いっそApache100.0とか表示しとけばいいじゃない 部門より

Anonymous Coward曰く、

技術系ブログ「ウノウラボ」に「5分でできるウェブサーバのセキュリティ向上施策」という記事が掲載されて話題になっています。ApacheやOSのバージョンを表示しないようにする方法や、PHPでX-Powered-Byを応答しなくする方法が紹介された記事ですが、コメント欄や260件以上の登録を集めたはてなブックマークでは賛否両論になっています。「セキュリティがみじんも上がっていない」という意見や「セキュリティの甘さが見え見え」という意見がある一方で、隠さないでいると「こんな基本的なこともやっていないサイトと思われるよ」という意見も。そういえば、7月の@ITの記事「たった2行でできるWebサーバ防御の「心理戦」」にも同様のことが書かれていました。セキュリティ会社でペネトレーションテストに従事する著者は

「バナー情報が露呈していても、アプリケーションを常に最新版を使用するよう心掛けて実行していれば問題ないのでは?」という考え方もあるが、答えはNoである。(...) バナー情報が抑制されていることで攻撃者は、「このサイトは、セキュリティを考慮した運用を行っているのではないか?」という判断をする可能性が高いといえるのである。
と述べています。この記事にもたくさんのはてなブックマークが付いていて賛否両論です。さて、サーバのバージョンは隠すのが吉でしょうか、隠さないのが吉でしょうか。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by coward-chan (25689) on 2007年09月03日 12時19分 (#1213408) 日記
    いつも思うのですが、こういうのって「常識/非常識」「良し悪し」「優劣」じゃなくて、好みやポリシーの世界だと思うのですが、どうなんでしょう。自分の好みやポリシーに賛同する意見を集めてそれを常識とし、論点のズレた理屈をつけてまで他者に押し付けようとしたり、自己の正当性を主張しようとするケースを見かけますが、個人的にあまり気分のよいものではありません。他人の意見を聞いて自分の視野を広げることは大切だと思いますが、えてして相手を攻撃するような場面が目立つように思います。気のせいかな?

    #ちなみに私は概ね隠します。理由は、なんとなく (笑
    • by Anonymous Coward on 2007年09月03日 12時28分 (#1213418)
      > 好みやポリシーの世界だと思うのですが、どうなんでしょう

      一応これはセキュリティ的に良い悪いの話なので…。
      バージョン情報みたいに実際には毒にも薬にもならないものであれば好みやポリシーでも構わないんですが、
      例えば「脆弱性のあるバージョンのapacheを放置するかどうか」を好みやポリシーだといわれるとちょっと困ります。

      今回の話はどちらかというと「バージョン情報を隠すのがセキュリティ確保に有効」と言う話に対して、
      「おいおいちょっとまてよ、隠すのは構わんけど隠しても大した効果はないぞ」と言うコメントがついているんでしょう。
      親コメント
  • 論点間違ってない? (スコア:5, すばらしい洞察)

    by Anonymous Coward on 2007年09月03日 12時21分 (#1213410)
    >サーバのバージョンは隠すのが吉でしょうか、隠さないのが吉でしょうか。
    じゃなくて、
    サーバのバージョンを隠すことがセキュリティ対策になるのか。という話では?
    隠さないのが吉でしょうか、が変。
    個人的には、隠して支障がないなら隠せばいいと思う。
  • by masaru (2119) on 2007年09月03日 12時09分 (#1213397) ホームページ
    いつごろだったか忘れたのですが、Apacheのセキュリティーホールを突くワームがあって、そのワームが Apache が返す ServerName を見て、ServerName に一致した exploit code を流し込むという動きをしていました。 ServerName を隠された環境で Exploit code を流す場合、try and error で複数の種類を挑戦するようにすればよいのでしょう。 ServerName が隠されていない場合ならば ServerName に合ったパターンで流し込めばいいので、能率がよいといえばよいと。

    ディストリビューション屋にしてみれば、自社の名前を Apache のレスポンスヘッダに入れておくことで、Netcraft とかの統計で自社の製品がどれぐらい使われているといったマーケティング用途になる、なんていう話もありますが。 ディストリビューション屋としてはマーケティングの材料にしたいが、利用者にしてみれば迷惑なお話で。
    • Apacheのセキュリティーホールを突くワームがあって、そのワームが Apache が返す ServerName を見て、ServerName に一致した exploit code を流し込むという動きをしていました。


      ワームではありませんし、セキュリティでもありませんが。

      システムの設定がちゃんとしているかどうかを調べる際に、最初に相手のバージョンや誰が設定したのかを調べて、それに応じてテスト順序を入れ替える、というのならやったことがあります。

      通らなさそうなテストを先に実行する事で、問題点を早い目に発見するのが目的だったのですが、同じ発想を使うと同じ総当たり戦であっても
      「より短期間でアタックに成功する可能性の高い順序」
      でアタックできそうな気がします。

      バージョン番号を隠す事で、これを「ランダムな順序で実行した場合」と同じ程度まで耐久時間を延ばせるならば、その間に攻撃を検知・対処できる可能性が高くなります。

      というわけで、バージョン番号はやはり隠しておいたほうがよいでしょう。
      --
      fjの教祖様
      親コメント
    • 一方、別のワームは (スコア:1, すばらしい洞察)

      by Anonymous Coward on 2007年09月03日 13時20分 (#1213462)
      一方別のワームは、2つのexploitを同時に突くパケットを流し込んだ。
      親コメント
  • RFC 2616 によると (スコア:4, 参考になる)

    by hisama2 (8993) on 2007年09月03日 12時56分 (#1213439)
    RFC 2616 の "14.38 Server" に以下の注意書きがありますね

    Note: Revealing the specific software version of the server might allow the server machine to become more vulnerable to attacks against software that is known to contain security holes. Server implementors are encouraged to make this field a configurable option.

    • by Anonymous Coward on 2007年09月03日 13時15分 (#1213459)
      念のため日本語訳しときますね。

      註: サーバの明確なソフトウェアバージョンをあらわにすることは、セキュリティホールを有するとして知られたソフトウェアに対する攻撃についてより脆弱なものとさせかねない。サーバ実装者は、このフィールドを設定可能なオプションとすることが推奨される。

      ただ、このRFCは1999年に書かれたものだということに注意したいところです。
      当時は実際、脆弱性パッチの適用があまり常識になっておらず、脆弱なバージョンのサーバが大半を占めるという時代でした。
      その頃は確かに、バージョンを隠すのが常識という空気があり、脆弱性スキャナにもバナーチェックの機能が搭載され、セキュリティコンサルも「お宅、バナー出してますね」などとしたり顔で言っていたものでした。

      しかしその後21世紀に入ると、ワームによる攻撃が盛んになり、攻撃ツールの自動化も進んで、バージョンを隠すことは常識ではなくなりました。

      親コメント
  • 単に心理的な理由で (スコア:3, すばらしい洞察)

    by Anonymous Coward on 2007年09月03日 11時43分 (#1213377)
    隠すのが吉
    隠しても隠さなくても気にしないでアタックしてくる奴はいるがね
    それでもまあダミー監視カメラ程度の効果は期待できる

    #てか表示させておくべきな理由がない
    • by Anonymous Coward on 2007年09月03日 11時51分 (#1213383)
      だねぇ。
      攻撃側にも無駄な手間をかける事ができるし、地味に有効かも。

      # もちろん他のセキュリティ対策と併用だし
      親コメント
    • by Anonymous Coward on 2007年09月03日 11時55分 (#1213387)
      > てか表示させておくべきな理由がない

      そもそも表示するのは何のため?
      採用されてるソフトの広告?
      親コメント
  • いたずら心が疼くので (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2007年09月03日 12時09分 (#1213399)
    こういった物は出来るだけ隠密であるべきだとは思いますが、
    いたずら心が疼くので、どうしても明らかに嘘のソフト名と
    バージョン番号を返信したくなります。

    OS: /.J ver 2.0
    WWWServer: Oliver copy version.

  • by uxi (5376) on 2007年09月03日 13時35分 (#1213477)
    自分ならどうやって攻略するか考えた方が良いと思う。

    結局、みんなが正しくバージョンを返さないという前提になった場合、
    バージョンのマッチは余り意味がないため
    メジャーなサーバーの
    最新のセキュリティホールから順にスキャンするのが一番効率的なんじゃないかと思う。

    時間稼ぎが出来るといってる人もいるが、
    そう言ってる人にしてもスキャンされてる間に気がつける程いつも見張ってるわけじゃないわけで、、、
    そもそも、攻撃が成功したら、早々に証拠一掃してして潜伏状態にするのが常道。
    攻撃の兆候を自動検出して早期に自動 ban する機能がない限り、
    バージョン隠した事で期待できる時間稼ぎも有用に活用できないわけで、
    たいした効果は期待できるとは思えない。
    結局、攻撃する側としても、大して痛くも痒くもないんじゃないかと、、、

    しかし ban するにしても botnet とか使われてると IP 単位の個別 ban では全く効果がない、、、

    こうなってくると、
    ゼロデイも考慮した場合、
    最新の security patch が当たってる奴よりも
    下手をすると、枯れて風化しかかってるやつとか、
    凄いマイナーなサーバーの方が断然有利な場合もありそう。
    # こいつらはこいつらで、大穴がありそうで怖いけど、、、
    # どちらにせよ、メジャーなのに最新パッチ当たってないのは論外

    結局の所、バージョン隠すのは
    成田山のお守り程度のご利益と考えるのが妥当ではなかろうかと、、、
    # あってもなくても一緒、、、
    # あれば、幾分心は落ち着く?
    --
    uxi
    • by Anonymous Coward on 2007年09月03日 14時32分 (#1213500)
      >みんなが正しくバージョンを返さないという前提になった場合、バージョンのマッチは余り意味がない
      >メジャーなサーバーの最新のセキュリティホールから順にスキャンする

      なるほど、それを防ぐためにバージョンはノーガードで行こうと言ってる人がいるのですね!
      他のサーバーが流れ弾に当たってくれないと困りますからね。
      実は、隠すなと言ってる人が一番良く効果を解っている?!

      マジレスすれば、「順にスキャンするのが一番効率的」であるとなれば、
      1台毎にかける判断、時間は余分にかかることにはなるし、
      総当りになれば対象台数は増える。
      世のサーバーにかたっぱしからスキャンすれば、情報が流れる [srad.jp]事になり、
      攻撃者にとっては警戒されるリスクが高まる。

      まあ、順にスキャンすれば目的を果たせるスキルがある奴なら最初からやる。
      (そういう奴は、バージョン情報で判断がつくサーバーを狙いたいよりも、
      そのサーバーを攻略する必然性を持ってやるほうが多いと思うが。)
      バージョン情報を欲する人間と、スキャンから有効な攻撃に結びつける人間とは、
      最初から住むレイヤーが違うわけで、前者に対して有用なら前者への対策として行い、
      後者への対策は別途考える必要があるのではないかな。

      バージョン情報の隠蔽が、狼男はもちろんドラキュラにまで有効な、
      銀の弾丸であるとでもいう前提があるから当然、発散してしまって、
      効果が無いという結論を持ち出す人がいるんじゃないだろうか。

      #ここでは、サーバー管理者が他のすべき事をやっていて、やれなくても把握している、
      #という最低限の運用が守られていることは前提で、隠す効果に限定しての話。
      親コメント
      • by Anonymous Coward on 2007年09月03日 15時39分 (#1213540)
        > #ここでは、サーバー管理者が他のすべき事をやっていて、やれなくても把握している、
        > #という最低限の運用が守られていることは前提で、隠す効果に限定しての話。

        正しく管理されている前提で隠す効果を考えると全く無いのでは。なぜならそもそも突く穴が無いだろうから。

        残念ながら現実はそう理想的にはいかないから、パラノイア的なことでもできることは全てやっておくのが(必須ではないが)better、という結論に落ち着くのだと思う。
        親コメント
  • 隠したほうがいい (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2007年09月03日 13時49分 (#1213485)
    隠したほうがいいです。

    ・おっぴろげで全部丸見え
    ・見えそうで見えない

    またはこれ。

    ・大声で「おーいえーかもーん」
    ・押し殺した声で「…ん、…ん」

    どちらが相手の興味を引くか明白です。

    なお、嗜好には個人差があり「食えりゃ何でもいい」主義もありますのでご注意を。
  • by sasasa (5925) on 2007年09月03日 22時37分 (#1213777)
    そもそも、5年位前にApacheのバッファオーバーランを突くworm(名前知る念)が
    流行ったとき、そのwormのコードはRedHatLinuxのインストールCDからrpmで
    インストールされるデフォルト状態のApacheばかりを狙う仕組みになっていたと
    思います。

    何故かと言うと、バッファオーバーランでは基本的に攻撃用のコードを発動できる
    メモリの位置が確定していないと意味がない(場所が違うとせいぜいsegmentation
    faultでcore dumpするだけ)なので、当時最もユーザの多かったRHLのデフォルト
    rpmばかりを狙うというのは非常に意味があったものの、ソースからbuildした
    ユーザにとっては意味がないというものでした。
    (猫も杓子もLinuxの頃だったので、up2dateなんてかけたことのないデフォルト
    設定の野良サーバがゴロゴロしてた時代です)

    で、そのときに少しでも「うちは対策してるから攻撃しないでね」という牽制を
    行うために、ServerVersionを表示しないようにしてたりしてました。

    そういえば、bind8の脆弱性が見つかったときも、「今すぐversion.bindで
    返されるバージョン番号に別のものが表示されるように変更しよう」という風潮が
    あり、今もほとんどのサーバはそれに従っているのではないかと思うのですが、
    こちらも世間的には実効性がないという判断なんでしょうかね。
  • by Anonymous Coward on 2007年09月03日 11時55分 (#1213386)
    バージョン番号だけみて、セキュリティースキャナの結果をそのまま投げてくる
    あほ管理者がいるので隠してます。

  • by Anonymous Coward on 2007年09月03日 13時01分 (#1213448)
    「性別情報が露呈していても、女性らしさを常に演ずるよう心掛けて実行していれば問題ないのでは?」という考え方もあるが、答えはNoである。(...) 男性である事がばれていることでカモ男は、「こいつには、アイテムを貢いでもエロゲ的展開は期待できないのではないか?」という判断をする可能性が高いといえるのである。
    さて、性別の情報は隠すのが吉でしょうか、隠さないのが吉でしょうか。

    #すんません思いつきと勢いで書きました
  • by Anonymous Coward on 2007年09月03日 13時31分 (#1213474)
    バージョンは隠すべきだ派の人のブログ [hatena.ne.jp]を読んでみたのですが、

    パッチをすぐに当てられる環境であればこのような考え方で問題ない。しかし、世の中にはパッチをすぐに当てたくても当てられないシステムもたくさんある。(snip) そういった根本的対策が取れないケースがあるからこそ、あまり意味がないかもしれない保険的対策でも、いろいろ積み上げて少しでもリスクを小さくするのである。

    やはりパッチの適用体制が整っていないところが隠すようですね。

  • 「偽造する」ってのはいかがでしょうか。
    私の場合、10年ぐらい前にサーバーのOS名を「OS/2 V2.11 LAN Server」と変えただけで、アタックが無くなった経験があります。
    簡単にハックできないようなアーキティクチャとかの名前に偽造すれば、なおさら効果的な気もします。
    例:OS/400とか

    たいてい、アタックされるのは攻略が判ってるCPU、OS、アプリ群だから、手をつけた事の無いようなCPUやOSとかの名前を出されれば、手の出しようもないと思うし。
    稀に、攻略したいと思ってアタックをしつこくしてくる連中もいるかもしれないけど、全体から見れば0に等しいでしょうし。
    でも、この手法はサーバー立ち上げの最初の時からやっておかないと意味が無いかも。アタックが増えたからといって、途中でCPUやOS換えるなんて事は、そう簡単にはできないからバレやすいし。

    #詳細は知らないが、pingのレスポンスでOSを特定できる手法もあるから、この手法も完璧とはいえませんが。
    --

    /* Kachou Utumi
    I'm Not Rich... */
  • by classic-blue (15284) on 2007年09月03日 12時19分 (#1213407)
    効果はわかりませんが、昔からかかわるサーバーでは設定してますねぇ。
    Webサーバーに関係した話しか出てないですが、OpenSSHとかでも隠せるんでしょうかね。
    ProFTPとかPostfixとかは隠し方しってるんですが、OpenSSHだけわからず。
    • by Anonymous Coward on 2007年09月03日 22時01分 (#1213759)
      > Webサーバーに関係した話しか出てないですが、OpenSSHとかでも隠せるんでしょうかね。
      > ProFTPとかPostfixとかは隠し方しってるんですが、OpenSSHだけわからず。

      設定では変えられないので、ソース修正して構築しなおしですね。おすすめしませんが。

      理由は FAQ 読め。 [openssh.com]

      親コメント
    • by druaga (13366) on 2007年09月03日 13時02分 (#1213449) 日記
      ソースのヘッダファイルをいじってビルドすれば簡単に好きな名前にできます。
      ただ、そのせいかどうか詳細は不明ですがSolaris のssh クライアントと上手く
      話ができなかったことがありました。
      親コメント
  • バージョンを (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2007年09月03日 13時29分 (#1213472)
    隠すのも晒すのも
    自由だーーっ!

    バージョンisフリーダム
    バージョンisフリーダム
    • Re:バージョンを (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2007年09月03日 18時20分 (#1213641)
      でもぉ、パッチをちゃんとあててないと、隠しても晒しても意味ないで。

      ♪ジャジャーン、センキュー!
      親コメント
  • 10年前にWebサーバを共同管理することがあって、自分この部分をそのままにしていた。それどころか、トップページにOSとApacheのバナーを「Powered by」の形式で飾るべきだ、提供者への謝意だ、と主張。もう1名は、セキュリティの観点から出力するべきではないと主張。

    結局相手方の意見を通しましたが、今から考えると正当だったかな、と。今でも「払いのいいお客」には、この「出力切る機能」を入れています。
    --
    -- gonta --
    "May Macintosh be with you"
typodupeerror

計算機科学者とは、壊れていないものを修理する人々のことである

読み込み中...