web-dev-qa-db-ja.com

バージョンの非表示-価値のあるものか、それとも単なるセキュリティによるセキュリティですか?

多くの自動セキュリティスキャナーには、ソフトウェアバージョンの存在を警告するルールが組み込まれており、多くのセキュリティリストでは、システムにアクセスしている任意の人物がバージョンにさらされることがセキュリティ問題の1つとして挙げられています。

だから私の質問は-それは本当の問題ですか?バージョンを非表示にすると、セキュリティに本当の何かが追加されますか?

バージョンを非表示にすると、標的型エクスプロイトの使用が難しくなると言われていますが、ほとんどの攻撃者は、ターゲットに対して何百回もエクスプロイトを試行するのに時間がかからない自動化されたエクスプロイトキットを使用しているため、情報に通じた攻撃者の違いはほぼゼロです。そして、知らされていない人は、バージョン情報の使い方を知りません。バージョンを非表示にすると、置き忘れられた脆弱なインストールを自己スキャンすることも難しくなります。

また、この慣行が広く無視されていることもわかります。たとえば、 これをセキュリティテクニックとして説明しているOWASPのページ は、サーバーソフトウェア(OS、Apache、PHP)とWikiソフトウェアのバージョンを公開しています。しかし、たとえそれを隠そうとしても、ほとんどのWebアプリケーション(特に複雑なもの)は、生成するさまざまなコンテンツのフィンガープリントによって簡単にバージョン管理されます。

それでは、Webアプリケーションのバージョンを非表示にする価値はありますか?または、アプリケーション/ OS /プラットフォームについてはどうですか?

11
StasM

隠蔽によるセキュリティの問題は、セキュリティを取得するために隠蔽に依存している場合です。それがあなたの唯一または主要な防御形態である場合、問題があります。

そうは言っても、あいまいな場合は、すでにより優れたセキュリティ戦略を使用しているシステムにセキュリティを追加できます。その情報を公開する理由はないので、公開しないでください。これは攻撃者にとって有用な情報であるため、可能な限り必ず非表示にしてください。問題は、「まあ私はこの情報を隠しているので、攻撃者がそれを見つけてシステムを攻撃するのに使用できないので、私は安全だ」という考えに沿って考え始めるときです。

システムは、その情報が秘密にされているかどうかに関係なく安全である必要がありますが、それをリリースすることによって攻撃者に不利益を与えるべきではありません。

11
Oleksi

あいまいさによるセキュリティは、多層防御に適しています。唯一の/主要な防御モードとして、または覆い隠しが通常の操作を妨害する場合は、良くありません。

アプリケーションに0日間の脆弱性が出て、アプリケーション/バージョン番号をどこにでも(たとえば、Google検索で、HTTP応答ヘッダー 'Server:nginx 0.7.1'で)アドバタイズした場合、攻撃者はそれを簡単に認識できます。セキュリティパッチを適用する時間がなくなる前に、サイトを見つけて悪用しようとする新しい脆弱性。この情報(または他のエラーメッセージ)を提供しない場合、機能によってアプリケーションのID /バージョンを推測する(そして、機能の不明瞭なチェックにより、原則として、fail2banなどのプログラムが進行中の攻撃に振り回される可能性があります)すべての可能なアプリケーション/バージョンの組み合わせに対するすべての既知のエクスプロイト。これは、攻撃者にとってはるかに厄介です。

はい、アプリケーションソフトウェアをすべてのセキュリティパッチで最新の状態に保つことが最善です。しかし、現実の世界では、これはしばしば遅れます。アプリケーションが稼働したら、不要なデバッグ情報を提供しないでください(ただし、デバッグ中は、情報を利用できるようにしておくと役立ちます)。

5
dr jimbob

人気のあるWebアプリケーションに有用な脆弱性が出てくると、攻撃者は Google Hacking (または Google dork と呼ばれることもあります)を使用して、そのソフトウェアを実行している全員のリストを取得します。このGoogleハックにはバージョン番号が含まれている可能性がありますが、通常は「 Powered By Wordpress 」のように単純なもので十分です。バージョン番号を確認する理由は、エクスプロイトを起動して成功するかどうかです。

したがって、バージョン番号を隠すことは、アプリケーション自体を隠すことほど重要ではありません。

1
rook

これは(あまりない)隠蔽によるセキュリティです。

スクリプトキディ/ワームは、攻撃を開始する前にバナーをチェックする必要はありません。 IMEは、さまざまなベンダー、およびバナー情報を返さないサーバーソフトウェアのリリースを特定することも比較的簡単です(あまり一般的でない機能やエラー状態への応答をマッピングすることにより)。唯一の脅威モデルは、攻撃者がサードパーティの検索エンジンを使用してターゲットを特定しているところからの保護を提供します-ただし、ほとんどの検索エンジンはバナー情報にインデックスを付けません-多くの場合、URLだけに多くの情報があります

1
symcbean

2つのシナリオを見てみましょう。どちらのバージョンでも、バージョンはエクスプロイトに対して脆弱です(0日またはパッチ未適用)。

攻撃者はバージョンを知っています。攻撃者はあなたのサイトに行き、簡単なチェック(HTTPヘッダーの確認、グーグル検索、エラーメッセージの確認など)の後にこのバージョンを実行していることがわかります。それから彼はそれのためのエクスプロイトを見つけて実行しますこれだけエクスプロイト。その結果、システムが危険にさらされます。実行されたエクスプロイトは1つだけなので、IDSが攻撃を検出する可能性は大きくありません。また、検出される悪意のある活動はそれほど多くなかったため、ログを見て攻撃者を見つけることは困難になります。

攻撃者はバージョンを知りません。攻撃者はサイトにアクセスして、バージョンを見つけることができません。したがって、彼は1つのexoloitしか実行できません。彼はたくさん走らせるべきだ。このアクティビティは検出および記録される可能性が高く、そのIPはIDSによってブロックされる可能性があります。攻撃者に1つだけではなく多くのエクスプロイトを実行させるため、システムが危険にさらされることはありません。

1
Andrei Botalov