No
por su funcionalidad, sino por el salvoconducto con el que viene acompañado:
está firmado por Microsoft. Esto es
el sueño de todo creador de malware, por la forma en la que actúan las casas
antivirus ante esta garantía, es seguro que se trata de parte de la clave del éxito por la que TheFlame
ha permanecido oculto durante al menos 5 años.
Microsoft publicó
el domingo una actualización de su repositorio de certificados. Revocaba
(marcaba como "no confiables")
a tres autoridades de certificación intermedias. La explicación oficial deja
algunas lagunas. En algún momento, alguien consiguió manipular un certificado que
se usa para licencias de Terminal Server, y firmar código con él. Esto es un grave error por parte de Microsoft. Como
explica SecurityByDefault, los certificados tienen unas funciones concretas
cuando son creados, y no deben mezclarse.
Microsoft habla también de "older criptography", lo que lleva inmediatamente
a pensar en MD5. Al comprobar que los certificados revocados usan ese tipo de
hash, más o menos encaja. Si unimos las dos piezas, tenemos que de alguna
manera los atacantes han forzado un certificado destinado a Terminal Server y
han conseguido firmar código con él, validando hacia arriba la cadena de
certificación por ser "débil"
la validación de las autoridades certificadoras intermedias. El hecho de que
haya revocado toda una autoridad
intermedia, en vez de un simple certificado, indica que el problema podría
ir más allá. De hecho, lo
inquietante del
comunicado de Microsoft es:
"The Flame malware used a cryptographic collision attack in combination with the terminal server licensing service certificates to sign code as if it came from Microsoft. However, code-signing without performing a collision is also possible. This is an avenue for compromise that may be used by additional attackers on customers not originally the focus of the Flame malware. In all cases, Windows Update can only be spoofed with an unauthorized certificate combined with a man-in-the-middle attack."
O sea, es posible, sin necesidad
de colisión, firmar código con este tipo de certificados que vienen de las
licencias de Terminal Server. Por eso preventivamente
han revocado las entidades a ese nivel.
El certificado
En concreto hablamos de 1d190facf06e133e8754e564c76c17da8f566fbb,
el usado para firmar el componente de TheFlame. Ya todo el mundo sabe que fue
firmado el 28 de diciembre de 2010. Pero lo curioso es que en realidad caducó
el 19 de febrero de 2012. Esto quiere decir que el certificado ya no era
válido de por sí, aunque no estuviera revocado. También alimenta la teoría de
que el atacante no pudo elegir este dato. Si yo fuese un atacante y crease un
certificado "a la carta" no
lo haría caducar en febrero de 2012 sino mucho más adelante. Confirma la teoría de la colisión.
El secreto de su éxito
Stuxnet, también estaba firmado,pero con un certificado de una compañía a la que claramente, le habían robado
la clave privada de los certificados. El secreto del éxito de TheFlame para
pasar desapercibido, es que está firmado
no por cualquier compañía, sino por Microsoft
que, como dijo
Mikko Hypponen de F-Secure, es "el
santo Grial" del malware. Esto quiere decir que los antivirus puede
que ni se molestaran en analizarlo o que, por muy extraño que resultara su comportamiento,
no se arriesgaran a clasificarlo como malware. Al fin y al cabo, Microsoft nunca jamás firmaría malware...
¿verdad? Todo lo firmado por Microsoft está en listas blancas, casi por
definición. Cuando un antivirus ha cometido el enorme error de clasificar un software
legítimo (firmado o no) de Microsoft como malware, el sistema puede dejar de
funcionar (los componentes críticos de Windows suelen estar firmados)...
simplemente no arriesgan. Sería un gran varapalo a la imagen de la compañía si
se comete un error de este tipo.
Desinformación
Queríamos también destacar que se
está informando de una manera incorrecta sobre la actualización de Microsoft.
No corrige ninguna vulnerabilidad, y no podría permitir (o en todo caso sería extremadamente
improbable) que se usara para crear phishings. La actualización de Microsoft simplemente deja de confiar en ciertas entidades
certificadoras intermedias, y está destinado a prevenir la aparición de más
malware firmado por Microsoft.
Más información:
Microsoft certification authority signing
certificates added to the Untrusted Certificate Store
Security Advisory 2718704: Update to Phased
Mitigation Strategy
Flame y los certificados digitales
Microsoft Update and The Nightmare Scenario
Sergio de los Santos
Twitter: @ssantosv


muy buen artículo.
ResponderEliminarGracias.
ResponderEliminarDos cosas... rectificad el 19 de diciembre.
Y otra cosa... yo pondría el certificado que caducara esa fecha, porque puedo tener otro nuevo que esté certificado en 2012 y caduque en 2014... ya que si lo han podido hacer con uno, quién no dice que lo puedan hacer con más y esa sea la manera de permanecer tanto tiempo en el anonimato.
Un saludo.
En esta oración hay un problema "Ya todo el mundo sabe que fue firmado el 28 de diciembre de 2010. Pero lo curioso es que en realidad caducó el 19 de diciembre de 2012" al final no es 2012 es 2011.
ResponderEliminarEn realidad es febrero, en vez de diciembre. Corregido. Gracias.
ResponderEliminarSupongo que todos los que vienen siguiendo esta noticia no se ven asombrados por esto.
ResponderEliminarO sea, quién está detrás de The Flame? El mismo estado que dice temer ataques cibernéticos y que por lo tanto construye gigantescas instalaciones para "defenderse" (http://www.clarin.com/mundo/EEUU-construye-secreto-espionaje-mundo_0_704329613.html)?
Justo tiene un certificado de Microsoft?
Y Microsoft da explicaciones poco creibles...
MMMMMMMMMMM
Gran artículo, muchas gracias.
ResponderEliminarTe quería hacer una pregunta en relación a la validación "débil" que comentas.
Más exactamente, en la frase "se ha conseguido firmar código validando hacia arriba la cadena de certificación por ser "débil" la validación de las autoridades certificadoras intermedias."
Estoy intentando buscar los certificados de las CAs intermedias que se ha revocado, y no lo encuentro. Qué tipo de validación tienen para considerarlos como "débil"? Entiendo que tanto CRL como OCSP son métodos válidos. Quizás no tienen ningún método (ni AIA ni CRLDP).
¿Nadie ha podido llegar a pensar que esto puede ser algo "consentido" por parte de Microsoft (por ejemplo presionado por el gobierno de EEUU) y que les hemos pillado con las manos en la masa... Microsoft dice que la culpa es suya y el año que viene todo el gobierno de EEUU renueva todas las licencias de Microsoft que tengan... ¿fácil, no?
ResponderEliminarJoder, lo último que esperaba de visitantes de un sitio serio como este era que publicaran teorías conspirativas...
ResponderEliminar@Mercurio
ResponderEliminarLos certificados deben estar en el certmgr.msc de tu Windows. Las autoridades firman hashes, y el tipo de validación que me refiero es que utilizan MD5.
Teorías conspirativas?
ResponderEliminarPrimero: el sitio es serio y respetable.
Segundo: cada uno opina a su parecer. No se puede prohibir ni molestar eso, verdad?
Tercero: cierto, me olvidé, vivimos en un mundo perfecto, donde todos somos buenos, nadie acumula poder, nadie hace lobby, nadie bombardea países basándose en información mentirosa, etc.