ハートブリードの脆弱性とは何ですか?

click fraud protection

2010年代半ばの最もよく知られた脆弱性の1つは、「ハートブリード」と呼ばれていました。 Heartbleedは、非常に広く使用されているHTTPS接続の主要な暗号化ライブラリである「OpenSSL」に影響を与えるソフトウェアであるため、特に深刻でした。 さらに悪いことに、この脆弱性は2年以上前からOpenSSLに存在していました。 それは発見され、公表され、パッチが適用されました。これは、多くの人々が脆弱なものを使用していたことを意味します バージョン。

Heartbleedは、ハートビート拡張機能のデータ漏洩の脆弱性であり、RAMからサーバーからクライアントに漏洩したデータを悪用した場合に発生します。 ハートビート拡張機能は、通常のページ要求を行わずにWebサーバーとクライアント間の接続を維持するために使用されます。

OpenSSLの場合、クライアントはサーバーにメッセージを送信し、メッセージの長さを最大64KBまでサーバーに通知します。 その後、サーバーは同じメッセージをエコーバックすることになっています。 ただし、重要なことに、サーバーは、クライアントが主張している限り、メッセージが長さであることを実際にはチェックしませんでした。 これは、クライアントが10KBのメッセージを送信し、64KBであると主張し、64KBの応答を取得できることを意味し、そこに格納されているデータに関係なく、追加の54KBは次の54KBのRAMで構成されます。 このプロセスは、 XKCDコミック#1354.

画像提供: xkcd.com.

攻撃者は、小さなハートビートリクエストを多数作成し、それらが大きなリクエストであると主張することで、応答をつなぎ合わせることでサーバーのRAMの大部分の画像を作成する可能性があります。 漏洩する可能性のあるRAMに保存されているデータには、暗号化キー、HTTPS証明書、およびユーザー名やパスワードなどの暗号化されていないPOSTデータが含まれます。

注:あまり知られていませんが、ハートビートプロトコルとエクスプロイトは逆方向にも機能しました。 悪意のあるサーバーは、ハートビート要求ごとに最大64KBのユーザーメモリを読み取るように構成されている可能性があります。

この問題は、2014年4月1日に複数のセキュリティ研究者によって個別に発見され、パッチを作成できるようにOpenSSLに非公開で開示されました。 このバグは、2014年4月7日にパッチがリリースされたときに公表されました。 この問題を解決する最善の解決策はパッチを適用することでしたが、パッチをすぐに適用できない場合は、ハートビート拡張機能を無効にすることで問題を修正することもできました。

残念ながら、このエクスプロイトは一般に公開されており、一般的によく知られていますが、多くのWebサイトはすぐには更新されず、数年後でも脆弱性が発見されることがあります。 これにより、アカウントへのアクセスやデータの漏洩に使用されるエクスプロイトのインスタンスが多数発生しました。