web-dev-qa-db-ja.com

サーバーがインターネットに接続されていない場合にBEAST攻撃をテストする方法は?

特にBEASTに関連する脆弱性についてサーバーをテストしたいのですが。どのコマンドラインスイッチを使用する必要がありますか?

出力には何が表示されますか(または表示されませんか)?

更新

その目的は、インターネットに接続されていないWebサーバーをスキャンするか、デフォルト以外のポートで実行されているサーバーをスキャンすることです。他のすべてのケースでは、このタスクに SSL Scan を使用できます

16

そのジョブに使用できる TestSSLServer というコマンドラインツールを作成しました。

このツールは、サーバーとのハンドシェイクを中止します(ClientHelloを送信してServerHelloを受信し、接続を閉じます)。まず、manyスイートの完全なリストを送信することにより、サーバーでサポートされている暗号スイートのリストを確立し、次に、そのスイートを1つずつ削除します。サーバーは毎回選択します。

次に、このツールは、最大TLSバージョン1.0の別のClientHello、およびCBCベースの暗号スイートを最初に送信し、その後に非CBCベースの暗号スイート(サーバーがサポートする「強力な」スイートに含まれるスイート)を送信します。サーバーが非CBCベースの暗号スイートを選択すると、「保護されている」と見なされます(サーバーは、クライアントを保護する選択を強制します)。 CBC暗号スイートを選択すると、ツールは「脆弱」と報告します(ここでも脆弱性はクライアント側にありますが、サーバーはクライアントに保護を適用できません)。

6
Thomas Pornin

背景BEAST攻撃を緩和する方法の詳細については、次の2つのブログ投稿を読むことをお勧めします。 Rizzo/Duong BEASTの対策 および TLSに対するBEAST攻撃の緩和 。本当に優れたソリューションはないことをすぐに理解できます。

スキャンする対象。現在、サーバー側の唯一の軽減策は、サーバーが他の暗号スイートの受け入れを拒否することにより、RC4の使用を強制することです。同様のバリエーションは、RC4暗号スイートを最高の優先順位として配置することです。これは、RC4をサポートするすべてのクライアントがRC4を使用することを保証するので、ほとんど同じです。

したがって、SSLサーバーをスキャンするときに、サーバーがRC4暗号スイートよりも高いブロック暗号ベースの暗号スイートを優先する場合、そのサーバーはBEAST攻撃に対して脆弱であると見なすことができます。受け入れるすべての暗号スイートがRC4を使用する場合(またはRC4暗号スイートがTLS 1.2のみの暗号スイートを除くブロック暗号暗号スイートよりも優先される場合)、おそらくBEAST攻撃から安全です。

暗号スイートに対するサーバーの優先順位を決定するのは難しい場合があり、毎回異なる暗号スイートのセットを使用してサーバーへの複数の接続が必要になる場合があります。ただし、この場合の簡単な方法の1つは、すべての(非TLS-1.2のみ)ブロック暗号スイートで始まり、いくつかのRC4暗号スイートで終わる暗号スイートのリストにクライアントを接続させることです。サーバーがブロック暗号ciphersuiteを選択する場合、サーバーはおそらくBEAST攻撃に対して脆弱です。

理想的には、サーバーはTLS 1.1以上をサポートします。クライアントとサーバーの両方がTLS 1.1をサポートしている場合、BEAST攻撃ははるかに困難になります(中間者攻撃が必要です)。したがって、サーバーがTLS 1.1をサポートしていない場合は、サーバー管理者がTLS 1.1サポートを提供するようにアップグレードすることを提案する警告/助言を出力することができます。ただし、中間者が存在する場合にダウングレード攻撃の可能性があるため、明らかに両方のエンドポイントでTLS 1.1をサポートすることはセキュリティの絶対的な保証ではないため、警告または助言として単にリストすることをお勧めします。重大な障害よりも。

SSLサーバースキャンの詳細。SSLサーバーのスキャンに SSL Labs サービスの使用を検討してください。これは、考えられる多くの構成の脆弱性をテストする優れた方法です。また、サーバーがBEAST攻撃に対して脆弱かどうかをテストしますが、他の多くの一般的で深刻な問題もチェックします。これは、BEASTの問題を探すだけではなく、おそらくもっと便利です。

10
D.W.

これは一部のオンライン検索のみに基づいており、詳細な分析はありませんが、私が収集したものから、サーバーよりもクライアント側の脆弱性のほうが多いです。もちろん、この脆弱性は、クライアントとサーバー間の通信が攻撃された場合に発生しますが、 修正は主にクライアント上にある必要があります です。私が理解しているように、主な理由は、クライアントが優先暗号を選択し、順序付きリストをサーバーに送信して「選択」させるためです。サーバーは通常、クライアント要求を受け入れる必要があります(ただし、そうする必要はありません)。それは私の握手についての私の限られた理解です これからSO答え

これを念頭に置いて、効果的と思われるサーバーの回避策がいくつかあります。その1つは、CBCを使用するブロック暗号を回避することです。代わりにRC4を使用してください。これはサーバーによって強制できます。もちろんTLS 1.1+を使用しても問題は解決しますが、私が理解しているところからは、広くサポートされていません。 RC4に関するウィキペディアの記事によると

ストリーム暗号であるRC4は、2011年のBEAST攻撃の影響を受けない唯一の一般的な暗号です[6]。

[6] serverfaultへのリンク:)

質問の詳細に戻ります。論理的なことは、サーバーがサポートする暗号をチェックすることだと思います。TLS1.0 + BEASTに対して脆弱なCBCのブロック暗号の1つをサポートする場合、サーバーはBEASTに対して脆弱であると言えます。 opensslよりも sslscan を使用する方が簡単なようです。サーバーでサポートされているすべての暗号をリストし、そこから脆弱なサーバーを発見します。

5
Yoav Aner