web-dev-qa-db-ja.com

MandiantのAPT1レポートで公開されたSSL証明書

Mandiant社が発行した優れたレポート「APT1:中国のサイバースパイユニットの1つを公開する」について聞いたことがあると思います(ダウンロードできます ここ )。レポートは素晴らしいです、そして私はコンピュータセキュリティに興味がある人にそれをお勧めします。

付録FにあるレポートMandiantがAPT1マルウェアとそのC2(コマンド&コントロール)サーバー間の通信に使用されるSSL証明書を公開しました。ただし、公開された証明書は次のようなテキスト形式です。

証明書:
データ:
バージョン:3(0x2)
シリアル番号:1(0x1)
署名アルゴリズム:sha1WithRSAEncryption 
発行者:C = US、ST = Some-State、O = www.virtuallythere.com、OU = new、CN = new 
 Validity 
 Not Before:Oct 23 03:25:49 2007 GMT 
後ではない:Oct 22 03:25:49 2008 GMT 
件名:C = US、ST = Some-State、O = www.virtuallythere.com、OU = new、CN = new 
 Subject Public Key Info:
 Public Key Algorithm:rsaEncryption 
 Public-Key:(1024 bit)
 Modulus:
 00:ee:48 :13:76:f1:76:4b:6a:fe:6d:8c:5e:60:44:
 19:b1:0a:b1:9e:bb:63:80:8f:c8: 43:c8:73:ae:77:
 4e:16:01:4e:8f:88:f8:a2:8c:4d:2e:b2:3d:6b:bd:
 2e:cc:1b:b0:c3:5d:d6:a6:bc:1e:1a:31:b2:27:84:
 64:9c:0b:b7:1e:b0:5e:82 :96:e8:71:f6:ca:95:cf:
 e1:40:bd:45:05:94:25:74:a0:90:ce:61:b9:8e:ba: 
 ed:aa:62:d4:10:79:68:eb:fb:31:63:0c:7b:11:2d:
 8f:cf:57:a8:c4: 6c:fd:77:c4:04:f5:46:84:e4:24:
 c6:fe:dc:3a:06:9c:3e:ed:f9 
指数:65537 (( 0x10001)
 X509v3拡張機能:
 X509v3基本制約:
 CA:FALSE 
 Netscapeコメント:
 OpenSSL生成証明書
 X509v3件名キー識別子:
 1B:C5:98:18:EB:D2:1F:3A:5B:F9:07:E0:BF:4E:C5:59:9E:FD:51:29 
 X509v3 Authority Key Identifier:
 keyid:EA:D7:8A:29:DB:FB:0A:0C:C0:85:B3:BA:8A:C3:D7:80:95:26: 11:90 
 DirName:/C=US/ST=Some-State/O=www.virtuallythere.com/OU=new/CN=new 
 serial:F2:1E:60:49 :18:68:08:B6 
署名アルゴリズム:sha1WithRSAEncryption 
 b8:2c:50:58:a8:29:ce:d1:f3:02:a3:0c:9b:56: 9f:45:24:f1:
 48:d3:53:88:d7:2e:61:67:aa:08:e4:7d:d5:50:62:ae:00:d5:
 1a:91:61:01:94:5e:ab:62:e8:53:a5:0d:6a:f4:41:81:ee:2b:
 60:8d:e2 :a6:3a:12:2d:aa:08:a5:5a:f4:d2:9e:b2:43:38:57:
 f1:c1:45:54:33:d1:05: 8c:e4:37:ad:00:a8:b3:92:3f:2d:21:
 a0:20:ea:0f:48:05:9f:2a:2c:88:da:eb :8b:12:bb:1d:73:85:
 4d:be:

あまり「実行可能な」形式ではないと私が信じていること:ネットワークでAPT1証明書をチェックするスクリプトを実装したいのですが、それを行うには、PEM形式の証明書、または少なくとも自動化する証明書のフィンガープリント(sha1、md5)が必要です。私のネットワークでこれらの証明書を検出するプロセス。

上記の形式の証明書をPEM形式に変換する方法、または少なくとも証明書のsha1フィンガープリントを計算する方法はありますか?

this を見つけました。これは、そのような変換が面倒で複雑であることを示唆しています。同意しますか? Mandiantに他の(PEM)形式で証明書をリリースするように要求することは、ここでの最善の策ですか?

2
mzet

一般に、そのようなレポートが生成されたベース証明書を確実に再構築することはできません(明らかに OpenSSL コマンドラインツールを使用)。たとえば、発行者名とサブジェクト名の文字列の内容はありますが、それらがどのようにエンコードされたかに関する情報はありません。

signatureを証明書の判別式として使用できます。まったく同じ署名値を持つ「通常の」証明書は見つかりません(同じ署名を含む偽の証明書を作成することは可能ですが、意図的に行う必要があります)。

この特定の証明書の発行に使用された証明書の公開鍵がわかっている場合は、公開鍵を使用して署名検証の最初のステップを実行し、「署名予定」のSHA-1ハッシュを生成できます(これはPKCS#1 RSA署名の機能:これは「リカバリ付き」のアルゴリズムです。署名と公開鍵から、署名されたデータのハッシュを取得できます)。そのハッシュを使用して、証明書の推定上の再構築が正しいかどうかをテストできます。しかし、これは大変な作業です。 given証明書がMandiantレポートの証明書の1つであるかどうかを確認したいだけの場合は、signatureフィールドを抽出して(OpenSSLなどを使用して)検索します。 Mandiantによって公開されたリストで。

5
Tom Leek