内部サービスの一部を CVE-CVE-2014-016 に対してチェックする方法はありますか(できればopenssl
CLIを使用して)?
私[〜#〜]できません[〜#〜]を使用してすべてをテストします: サーバーのHeartbleedをテストします(CVE-2014- 0160) 。
あなたは試すことができます:
openssl s_client -connect domain.com:443 -tlsextdebug 2>&1 | grep 'server extension "heartbeat" (id=15)' || echo safe
https://devcentral.f5.com/questions/openssl-and-heart-bleed-vuln から
たとえば、次のスクリプトを使用できます。 http://rehmann.co/projects/heartbeat/ssltest.py
ここにいくつかのローカルHeartbleed脆弱性検出器/チェッカーがあります:
github のtitanousはまだ開発中のようで、titanousもHeartbleed検出用のGoプログラミングコードをリリースし、今朝の時点でFilippoよりも優れたメッセージを出し、最後に更新されました32分前。完全な比較はしていませんが、Goライセンスの下にあるようです。 BSD 3条項ライセンスに似ています。
githubのmusalbas がリリースされましたPythonプログラム "ssltest.py"、コードの変種@MichelZの回答リンクはこれを行うように変更されていますMusalbasはまた、約5時間前のトップ100、1000、10000、および100万のインターネットサイトをスキャンした結果のリストをリリースしました。
Filippo.ioは最初のWebサイトの1つであり、 github でMITライセンス(Goプログラミング言語)を使用して)コードをリリースしました。
Codenomicon Defensics もHeartbleedを検出しているようです。
Lekensteyn もちろん、ペースメーカーをリリースしましたpythonクライアントチェッカー、数時間前に変更、ssltest.pyのオリジナルのスタッフォードバージョン。特定のライセンスはリストされていません。
Metasploit も ここにリンクされているサーバーチェック と @ HDMooreおよび@Lekensteynからのクライアントチェック
さらに、攻撃は両方の方向に進む可能性があるため、 リアルタイムの侵害のインジケータ から新しいSnortルールをインストールすることにより、いくつかの自動攻撃検出と中断を取得することができます(クライアントは攻撃されても、脆弱であれば)。これは、誰かが過去にWebサイトを攻撃したかどうかはわかりませんが、誰かが今あなたを攻撃しているかどうかを知ることができます。
alert tcp any [!80、!445]-> any [!80、!445](msg: "FOX-SRT-不審-SSLv3ラージハートビートレスポンス"; flow:established、to_client; content: "| 18 03 00 | "; depth:3; byte_test:2、>、200、3、big; byte_test:2、<、16385、3、big; threshold:type limit、track by_src、count 1、seconds 600; reference:cve、2014- 0160; classtype:bad-unknown; sid:1000000; rev:4;)
alert tcp any [!80、!445]-> any [!80、!445](msg: "FOX-SRT-疑わしい-TLSv1ラージハートビートレスポンス"; flow:established、to_client; content: "| 18 03 01 | "; depth:3; byte_test:2、>、200、3、big; byte_test:2、<、16385、3、big; threshold:type limit、track by_src、count 1、seconds 600; reference:cve、2014- 0160; classtype:bad-unknown; sid:1000001; rev:4;)
alert tcp any [!80、!445]-> any [!80、!445](msg: "FOX-SRT-不審-TLSv1.1ラージハートビートレスポンス"; flow:established、to_client; content: "| 18 03 02 | ";深さ:3; byte_test:2、>、200、3、big; byte_test:2、<、16385、3、big;しきい値:タイプ制限、追跡by_src、カウント1、秒600;参照:cve、 2014-0160; classtype:bad-unknown; sid:1000002; rev:4;)
alert tcp any [!80、!445]-> any [!80、!445](msg: "FOX-SRT-不審-TLSv1.2ラージハートビートレスポンス"; flow:established、to_client; content: "| 18 03 03 | ";深さ:3; byte_test:2、>、200、3、big; byte_test:2、<、16385、3、big;しきい値:タイプ制限、追跡by_src、カウント1、秒600;参照:cve、 2014-0160; classtype:bad-unknown; sid:1000003; rev:4;)
Heartbleed検出ルールのセット をリリースすることについて、snort.orgにも感謝します。通常は、開始する前の最初の30日間はVRT(有料サブスクリプション)ルールリストにのみ存在していました。コミュニティへ:
アラートtcp $ EXTERNAL_NET any-> $ HOME_NET 443(msg: "SERVER-OTHER OpenSSL SSLv3ハートビート読み取りオーバーラン試行"; flow:to_server、established; content: "| 18 03 00 |"; depth:3; dsize:> 40; detection_filter:track by_src、カウント3、1秒;メタデータ:ポリシーバランスドipドロップ、ポリシーセキュリティipsドロップ、サービスssl;参照:cve、2014-0160;クラスタイプ:attempted-recon; sid:30510; rev:2; )
アラートtcp $ EXTERNAL_NET任意-> $ HOME_NET 443(msg: "SERVER-OTHER OpenSSL TLSv1ハートビート読み取りオーバーラン試行"; flow:to_server、established; content: "| 18 03 01 |"; depth:3; dsize:> 40; detection_filter:track by_src、カウント3、1秒;メタデータ:ポリシーバランスドIPドロップ、ポリシーセキュリティIPドロップ、サービスSSL;参照:cve、2014-0160;クラスタイプ:attempted-recon; sid:30511; rev:2; )
アラートtcp $ EXTERNAL_NET任意-> $ HOME_NET 443(msg: "SERVER-OTHER OpenSSL TLSv1.1ハートビート読み取りオーバーラン試行"; flow:to_server、established; content: "| 18 03 02 |"; depth:3; dsize:> 40; detection_filter:track by_src、カウント3秒1;メタデータ:policy釣り合ったipsドロップ、ポリシーsecurity-ipsドロップ、サービスssl;参照:cve、2014-0160; classtype:attempted-recon; sid:30512; rev: 2;)
アラートtcp $ EXTERNAL_NET任意-> $ HOME_NET 443(msg: "SERVER-OTHER OpenSSL TLSv1.2ハートビート読み取りオーバーラン試行"; flow:to_server、established; content: "| 18 03 03 |"; depth:3; dsize:> 40; detection_filter:track by_src、count 3秒1;メタデータ:policy釣り合ったipsドロップ、ポリシーsecurity-ipsドロップ、サービスssl;リファレンス:cve、2014-0160; classtype:attempted-recon; sid:30513; rev: 2;)
アラートtcp $ HOME_NET 443-> $ EXTERNAL_NET any(msg: "SERVER-OTHER SSLv3ラージハートビートレスポンス-可能性のあるssl heartbleed試行"; flow:to_client、established; content: "| 18 03 00 |"; depth:3; byte_test: 2、>、128,0、relative; detection_filter:track by_dst、count 5、seconds 60;メタデータ:policy Balanced-ips drop、policy security-ips drop、service ssl; reference:cve、2014-0160; classtype:attempted-偵察; sid:30514; rev:3;)
アラートtcp $ HOME_NET 443-> $ EXTERNAL_NET any(msg: "SERVER-OTHER TLSv1 large heartbeat response-可能なssl heartbleedの試み"; flow:to_client、established; content: "| 18 03 01 |"; depth:3; byte_test: 2、>、128,0、relative; detection_filter:track by_dst、count 5、seconds 60;メタデータ:policy Balanced-ips drop、policy security-ips drop、service ssl; reference:cve、2014-0160; classtype:attempted-偵察; sid:30515; rev:3;)
アラートtcp $ HOME_NET 443-> $ EXTERNAL_NET any(msg: "SERVER-OTHER TLSv1.1大きなハートビート応答-可能性のあるsslハートブリード試行"; flow:to_client、established; content: "| 18 03 02 |"; depth:3; byte_test:2、>、128,0、relative; detection_filter:track by_dst、count 5、seconds 60; metadata:policy釣り合ったipsドロップ、ポリシーsecurity-ipsドロップ、サービスssl;リファレンス:cve、2014-0160;クラスタイプ:偵察の試み; sid:30516; rev:3;)
アラートtcp $ HOME_NET 443-> $ EXTERNAL_NET any(msg: "SERVER-OTHER TLSv1.2大きなハートビート応答-可能性のあるsslハートブリード試行"; flow:to_client、established; content: "| 18 03 03 |"; depth:3; byte_test:2、>、128,0、relative; detection_filter:track by_dst、count 5、seconds 60; metadata:policy釣り合ったipsドロップ、ポリシーsecurity-ipsドロップ、サービスssl;リファレンス:cve、2014-0160;クラスタイプ:偵察の試み; sid:30517; rev:3;)
サーバーはssltest.pyツールでテストできます。クライアントはペースメーカーツールでテストできます。どちらも https://github.com/Lekensteyn/pacemaker にあります。
テストクライアントを実行すると、サーバーに脆弱性があるかどうかが表示されます。
python2 ssltest.py example.com
サーバーを起動します(デフォルトはポート4433
です):
./pacemaker.py
次に、クライアントをhttps://address.of.machine:4433/
に接続し、サーバーの出力を確認します。 MySQLもサポートされています。これを書いている時点では、まだSTARTTLSサポートを追加していません。
オプションを増やすには、どちらのツールにも必ず--help
を追加してください。