Certificados SSL publicados en el informe APT1 de Mandiant

2

Probablemente escuchó sobre el excelente informe "APT1: Exponer una de las unidades de ciberespionaje de China" publicado por la compañía Mandiant (puede descargarlo aquí ). El informe es excelente y lo recomiendo a cualquier persona interesada en la seguridad informática.

Junto con el informe Mandiant publicó los certificados SSL utilizados en la comunicación entre el malware APT1 y sus servidores C2 (comando y control) en el apéndice F. Sin embargo, los certificados publicados están en formato de texto como este:

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:

Lo que creo que no es un formato muy "viable": me gustaría implementar un script para verificar mi red en busca de certificados APT1, pero para hacerlo necesitaría un certificado en formato PEM o al menos huellas digitales (sha1, md5) de Certificado para automatizar el proceso de detección de estos certificados en mi red.

¿Hay alguna forma de convertir el certificado en el formato anterior al formato PEM o al menos una forma de calcular la huella digital sha1 para el certificado?

Encontré esto , lo que sugiere que dicha conversión Es cubersome y complicado. ¿Estás de acuerdo? ¿Es mi mejor apuesta aquí solicitar a Mandiant que libere certificados en otro formato (PEM)?

    
pregunta mzet 13.03.2013 - 15:43
fuente

1 respuesta

5

No puede, genéricamente, reconstruir de manera confiable el certificado base a partir del cual se generó dicho informe (aparentemente con la herramienta de línea de comandos OpenSSL ). Por ejemplo, tiene el contenido de la cadena de los nombres del Emisor y del Asunto, pero no la información sobre cómo se codificaron.

Puede utilizar la firma como discriminante para los certificados. No encontrará un certificado "normal" con el mismo valor de firma exacto (es posible crear un certificado falso que contenga la misma firma, pero debe hacerlo a propósito).

Si conoce la clave pública del certificado que se usó para emitir este certificado específico, entonces puede usar la clave pública para realizar los primeros pasos de la verificación de firmas, lo que arroja el hash SHA-1 de "To Be Signed "(esa es una característica de las firmas RSA PKCS # 1: este es un algoritmo" con recuperación ": a partir de la firma y la clave pública, puede obtener un hash de los datos firmados). Con ese hash, podría probar si una reconstrucción putativa del certificado es correcta o no. Pero esto es un trabajo duro. Si solo desea verificar si un certificado dado es uno de los certificados en el informe Mandiant, extraiga el campo signature (por ejemplo, con OpenSSL) y búsquelo en las listas publicadas por Mandiant.

    
respondido por el Tom Leek 13.03.2013 - 15:56
fuente

Lea otras preguntas en las etiquetas