web-dev-qa-db-ja.com

ハートブリードの脆弱性はクライアントに深刻な影響を及ぼしますか?

パッチを適用していないOpenSSLのバージョンを使用して、悪意のあるhttpsサイトに接続するように接続できるWebクローラーがある場合、プロセスメモリからすべてを取得できますか?サーバーを攻撃するには、再接続を続けて64 KBのブロックを増やすことができます(正しく理解している場合)が、クライアントに何度も再接続を強制して、ブロックを増やすことはできますか?

61
Gurgeh

はい、クライアントは攻撃に対して脆弱です

最初のセキュリティ通知は、悪意のあるサーバーcanがハートブリードの脆弱性を使用して影響を受けるクライアントを侵害することを示していました。以下のソース(すべての強調は私のものです)。

それ以来、 概念実証 攻撃によってこの位置が確認されました-TLS接続にOpenSSLを使用するアプリを実行しているクライアントが脆弱である可能性があるのは完全に確かです

heartbleed.com

... [Heartbleed]が悪用されると、メモリの内容がリークされますサーバーからクライアントへおよびクライアントからサーバーへ

buntuセキュリティ通知USN-2165-1

攻撃者はこの問題を使用して、最大64kのメモリコンテンツを取得する可能性がありますクライアントまたはサーバーから

RFC652

5。ユースケース
各エンドポイント HeartbeatRequestメッセージを送信します...

OpenSSL Security Advisory 07 Apr 2014

TLSハートビート拡張の処理における境界チェックの欠落は、最大64kのメモリを接続されたクライアントまたはサーバーに明らかにするために使用できます。


クライアントアプリケーション 報告される脆弱になる (-- @ Lekensteyn へのクレジットは、特に明記されていない限り):

  • MariaDB 5.5.36
  • wget 1.15(以前の接続と自身の状態のメモリをリークします)
  • カール7.36.0
  • git 1.9.1(テスト済みのクローン/プッシュ、リークはほとんどありません)
  • nginx 1.4.7(プロキシモードでは、以前のリクエストのメモリリーク)
  • リンク2.8(以前の訪問の内容を漏らす!)
  • KIO(Dolphin、Konqueror)を使用するすべてのKDEアプリケーション。
  • Eximメールサーバー
  • OwnCloud バージョン不明| ソース

これらのプログラムの一部はOpenSSLを使用しないことに注意してください。たとえば、curlはMozilla NSSで構築でき、EximはGnuTLSで構築できます(Debianで行われているように)。


その他の一般的なクライアント:

  • Windows(すべてのバージョン):おそらく影響を受けません( SChannel/SSPIを使用 )。ただし、個々のアプリケーションのTLS実装に注意を払う必要があります。たとえば、Cygwinユーザーは OpenSSL パッケージを更新する必要があります。

  • OSXおよびiOS(すべてのバージョン):おそらく影響を受けません。 SANSOS X Mavericksには利用可能なパッチがありません "、 butothers OSX 10.9にはOpenSSL 0.9.8yが同梱されており、影響を受けません。 Apple says : "OS XのOpenSSLライブラリは非推奨になり、OpenSSLはiOSの一部として提供されたことはありません"

  • Chrome(Androidを除くすべてのプラットフォーム):おそらく影響を受けない( NSSを使用

  • Android上のChrome:4.1.1が影響を受ける可能性があります( OpenSSLを使用 )。 ソース。 4.1.2は ハートビートが無効 でコンパイルされているため、影響を受けません。 ソース
  • Mozilla製品(Firefox、Thunderbird、SeaMonkey、Fennecなど):おそらく影響を受けず、すべて使用 [〜#〜] nss [〜#〜]
50
scuzzy-delta

はい、述べられているように、クライアントに深刻な影響を及ぼします heartbleedウェブサイト:

さらに、侵害されたサービスに接続した場合にクライアント側のソフトウェアがコンピュータに存在する可能性がありますコンピュータからデータを公開

もちろん、これはこの脆弱性や特定のクライアントだけの場合ではなく、クライアントは攻撃を受ける接続を開始する必要があります。この脆弱性により、攻撃者がWebクローラーへの接続を開始し、この脆弱性を悪用することはできません。

ただし、あなたのケースでは、OpenSSLクライアントコードを直接制御している(そして、これはあなたの投稿に基づいていると思います)ため、OpenSSLのバージョンにハートビートオプションが含まれていないことを確認する必要があります。削除します。これを行うには、次の方法があります。

  • openSSLのバージョンをコンパイルするために使用された特定のオプションを表示します。

    openssl version -o

  • または、OpenSSLバージョンのすべての情報を表示します。

    openssl version -a

  • コンパイル時にこのフラグを使用するだけで、ハートビートサポートなしでOpenSSLをコンパイルします。

    -DOPENSSL_NO_HEARTBEATS

これが完了したら、またはOpenSSLのバージョンに最初から含まれていない場合、脆弱性はありません。

編集:別の方法は、OpenSSLのバージョンを取得することです:

openssl version

そして、それを利用可能な影響を受けるバージョンのリストと比較してください heartbleed

  • OpenSSL 1.0.1〜1.0.1f(両端を含む)are脆弱
  • OpenSSL 1.0.1gは[〜#〜] not [〜#〜]脆弱です
  • OpenSSL 1.0.0ブランチは[〜#〜] not [〜#〜]脆弱です
  • OpenSSL 0.9.8ブランチは[〜#〜] not [〜#〜]脆弱です
9
ack__