blog

NSEスクリプトでハートビートのサポート有無を判断する

サーバ側でハートビートをサポートすることは、脆弱性が存在するための必要条件であり、あるSSLポートがハートビートをサポートしていないと判断されれば、基本的にリスクを除外することができます。...

Jan 10, 2014 · 2 min. read
シェア

サーバ側でのハートビート対応はハートブリード脆弱性の存在に必要な条件であり、あるSSLポートがハートビートをサポートしていないと判断されれば、基本的にリスクは排除できます。

SSLハンドシェークフェーズで、クライアントがハートビートをサポートしていることをクライアントハローで宣言した場合、サーバもハートビートをサポートしているかどうかをサーバハローで宣言します。

ssl-enum-ciphers.nseに基づくnseスクリプトを変更し、上記の機能に基づいてSSLがハートビートをサポートしているかどうかを判断するようにしました。このスクリプトはnmap 6.40では正常に動作しますが、5.xでは間違っているようで、いくつかの定義が競合しています。

[kussa@Kussa scripts]$ nmap --script ssl-heartbeat -p 443 login.taobao.com

Starting Nmap 6.40 at 2014-04-10 10:00 CST Nmap scan report for login.taobao.com Host is up . PORT    STATE SERVICE 443/tcp open  https |_ssl-heartbeat: yes

このスクリプトは、クローズド・ソースのソリューションを使用しているような企業にとって、より有用かもしれません。主にnmapのより成熟したスキャン・メカニズムを利用することで、潜在的なリスクを除外するために企業のフル・ネットワーク・スキャンを行い、その後、hearbeatをサポートするスキャン・ポートに焦点を当て、キー・チェックを行うことができます。

nmap --script ssl-heartbeat -Pn -p 443,993,995 -iL ip.txt -oN hb.txt

もちろん、スクリプトの最後にハートビート・リクエストを追加することは、あのパイソンのPoCと同じでしょう......。

追記(以下の記述は厳密な検証はされていません)。

1.今pythonのPoCは、サーバーハロー要求からいくつかのサーバーに対処するように思われることは間違っているだろう、サーバーは明らかにサーバーハローを送り返したが、フォーマットがスクリプトと互換性がないため、無視され、サーバーハローこのステップの待ち時間に立ち往生し、ハートビートパッケージを送信しませんでした。だからPoCは、問題がある必要がありますが、問題のない検出は必ずしも問題ではないことを検出します。

2.このスクリプトは正反対です。

3.特にOpenSSLを導入しない限り、クライアントもサーバーも、マイクロソフト製品はハートビートをサポートしていないようです。

Read next

マルチSSIDのWi-Fi構成はパフォーマンスの問題を引き起こすか?

新しい無線使用事例が発生するたびに、多くの組織は無線 LAN インフラストラクチャに新しいサービス・セット識別子を追加します。実際、ネットワーク管理者はSSIDをダイナミック・ポリシー・コントローラと統合すべきです。

Jan 10, 2014 · 3 min read