Certificati SSL pubblicati nel report APT1 di Mandiant

2

Probabilmente hai sentito parlare dell'eccellente rapporto "APT1: Esporre una delle unità cinesi di spionaggio informatico" pubblicato dalla società Mandiant (puoi scaricarlo qui ). Il rapporto è ottimo e lo consiglio a chiunque sia interessato alla sicurezza del computer.

Insieme al rapporto Mandiant ha pubblicato certificati SSL usati nella comunicazione tra il malware APT1 e i suoi server C2 (command & control) nell'appendice F. Tuttavia, i certificati pubblicati sono in formato testo come questo:

Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Some-State, O=www.virtuallythere.com, OU=new, CN=new
Validity
Not Before: Oct 23 03:25:49 2007 GMT
Not After : Oct 22 03:25:49 2008 GMT
Subject: 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
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
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
Signature Algorithm: 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:

Credo che non sia un formato molto "lavorabile": vorrei implementare uno script per controllare la mia rete per i certificati APT1, ma per farlo avrei bisogno di un certificato in formato PEM o almeno di impronte digitali (sha1, md5) di certificato per automatizzare il processo di rilevamento di questi certificati nella mia rete.

C'è un modo per convertire il certificato in formato come sopra in formato PEM o almeno un modo per calcolare l'impronta digitale sha1 per il certificato?

Ho trovato questo , che suggerisce che tale conversione è cubo e complicato. Sei d'accordo? La richiesta di Mandiant di rilasciare certificati in altro formato (PEM) è la mia migliore scommessa qui?

    
posta mzet 13.03.2013 - 15:43
fonte

1 risposta

5

Non è possibile, in modo generico, ricostruire in modo affidabile il certificato di base da cui è stato generato tale rapporto (apparentemente con lo strumento da riga di comando OpenSSL ). Ad esempio, hai il contenuto della stringa del nome dell'emittente e del soggetto, ma non le informazioni su come sono stati codificati.

Potresti utilizzare la firma come discriminante per i certificati. Non troverai un certificato "normale" con lo stesso identico valore di firma (è possibile creare un certificato falso che contiene la stessa firma, ma devi farlo apposta).

Se si conosce la chiave pubblica del certificato che è stato utilizzato per emettere questo certificato specifico, è possibile utilizzare la chiave pubblica per eseguire i primi passi della verifica della firma, ottenendo l'hash SHA-1 del "Da firmare". "(questa è una caratteristica delle firme RSA PKCS # 1: si tratta di un algoritmo" con ripristino ": dalla firma e dalla chiave pubblica, è possibile ottenere un hash dei dati che sono stati firmati). Con quell'hash, potresti testare se una ricostruzione putativa del certificato è corretta o meno. Ma questo è un duro lavoro. Se si desidera solo verificare se un certificato dato è uno dei certificati nel report Mandiant, estrarre il campo signature (ad es. Con OpenSSL) e cercarlo negli elenchi pubblicati da Mandiant.

    
risposta data 13.03.2013 - 15:56
fonte

Leggi altre domande sui tag