jueves, septiembre 08, 2011

El hacker Iraní, la nota de prensa en Pastebin, Diginotar, GloblaSign, StartSSL y la FOCA. Ahí es ná el tomate.

Este año en Las Vegas no tuve mucho tiempo libre para charlas, pero tenía claro que no quería perderme la presentación de Moxie Marlinspike con el que disfruto y aprendo mucho. Al final, casualidades del destino, acabé viendo su ponencia dos veces, una en BlackHat y otra en Defcon, para que me quedaran absolutamente claros los conceptos.




En la presentación Moxie presenta el problema de los certificados digitales de forma muy clara, con situaciones que reducen al absurdo el sistema actual de certificados. Para ello, tras contar el caso del hacker de Comodo, es decir, el del hacker iraní que consiguió generar certificados digitales falsos para Gmail, Live, Google, etc... tras hackear máquinas de empleados de Comodo - y dejar claro que no podía haber sido demasiado sofisticado el ataque con mucho humor– hacía la pregunta... ¿Puedo dejar de confiar en Comodo y seguir disfrutando de Internet? La respuesta es NO.

Si dejas de confiar en una entidad de certificación, dejas de poder acceder a todos los sitios firmados por esa entidad, ya que los sitios están firmados por solo una entidad de certificación. Es decir, una vez que una entidad de certificación ha emitido 1.000 certificados digitales a 1.000 sitios, tienes 1.000 sitios atados a ella. Si se deja de confiar en una entidad de certificación, se apaga una gran parte de Internet.

La única alternativa que queda es seguir confiando ad-infinitum en la entidad certificadora y buscar alguna forma de localizar y exterminar todos los certificados maliciosos que hayan podido ser generados por el atacante. Lo más curioso es que, tras suceder el incidente de Comodo se pudo ver que el sistema pensado para revocar los certificados, OCSP no valía para nada ante ataques de man in the middle, lo que obligó a Microsoft, a Apple tanto en OSX como en iOS, a Debian, y a todo el mundo, a sacar actualizaciones de seguridad para bloquear esos certificados, lo que dejó claro que OCSP, tal y como estaba pensado, tenía utilidad cero.

Pasados unos meses de todo aquel maremagnum con las entidades de certificación, nos topamos de nuevo con el caso DigiNotar, donde, al parecer el mismo hacker, habría llegado a generar certificados digitales falsos hasta para la CIA, el MI6 o el Mossad, lo que provocó que la entidad DigiNotar haya sido intervenida por el gobierno por la criticidad de los hechos. Mientras, las compañías tecnológicas apretaron el acelerador para sacar nuevas actualizaciones de seguridad para bloquear la lista de certificados falsos, como hizo Microsoft o Firefox.

Apple por su parte se mantiene inmóvil, y deja que sus usuarios sigan siendo vulnerables a estos certificados falsos, sin que parezca importarle que además el sistema de revocación de certificados de Mac OS X Lion no funcione, por lo que ni el propio usuario puede dejar de confiar completamente en todos los certificados emitidos por una entidad que el usuario revoque...  Por supuesto, los iPad, iPhone e iPod Touch, todos ellos con el sistema iOS, tampoco han sido actualizados, pero... ¿qué más da? Si ni siquiera se puede revisar manualmente un certificado digital o acceder a la lista de entidades de certificación raíz en el dispositivo para revocarlas. Apple es diseño...

Y así andamos, en medio del caso DigiNotar, cuando el mismo hacker, al que se le ha bautizado como el hacker de Comodo ha hecho una nota de prensa por Pastebin, en la que dice tener control de otras entidades de certificación como por ejemplo GlobalSign - que ha dejado de emitir certificados ipso facto – y StartSLL, que se le ha escapado por los pelos porque el CEO estaba sentado detrás de la máquina para revisar manualmente la emisión de todos los certificados.

¿StartSSL? Glubs.

StartSSL es la compañía a la que nosotros le compramos los certificados digitales con los que se firma FOCA. Si revisas el certificado con el que se firma la FOCA, verás que está emitido por esta compañía y que su fecha de caducidad se ha pasado. No, no te preocupes, nosotros lo compramos por un periodo de tiempo y tenemos que renovarlo no es que te hayan hackeado - aún - y ahora, justo cuando la FOCA 3 está lista para salir, estamos teniendo problemas en el proceso de renovación... y ya sabemos porqué. Hoy esperamos recibir el nuevo certificado de firma de código y poder poner la FOCA 3 en circulación hoy mismo o mañana.

La pregunta que todo el mundo se hace es... ¿cómo se ha colado el hacker en estas entidades?

Pues la respuesta parece ser despejada a medias en su nota de prensa. Está claro que el tipo, en sus intrusiones mete un RAT si puede. Así es como la gente de Comodo dijo que se consiguió robar la clave de firma del registrador. En su nota de prensa en Pastebin dice tener un rootkit, para esas cosas y algún 0-day para colarlo, aunque si los empleados de la compañía no están totalmente entrenados para ser cuidadosos, con una búsqueda de las personas y direcciones de correo que trabajan en la compañía con un poquito de Hacking con Buscadores, un ataque dirigido uno a uno a ellos, un documento adjunto por correo electrónico abierto en el momento equivocado y troyano que te comiste, como le pasó a la RSA con al parecer un archivo XLS. Y es que, como decían en el twitter de 48bits... “la mejor defensa es un buen attachment”.

Al final, ahora que ha sucedido el problema con Comodo, con DigiNotar, ahora con GlobalSign y casi con StartSSL, si se deja de confiar en todas las entidades sospechosas, Internet se irá apagando poco a poco... ¿Hay que darle la razón a Moxie y cambiar hacia un sistema como Convergence?

Saludos Malignos!

11 comentarios:

  1. Joas! Otra vez me vuelves a leer la mente!!??
    Ante ayer les decia a mis amigos "Pues mirad este blog (maligno), que os enterareis de cositas, yo de mayor quiero ser como él" y ZAS me publicas al dia siguiente la entrada esa hahahahahaha.
    Ayer te mando un mail, te pregunto sobre la ultima publicación de #comodohacker en pastebin y su supuesto calc.exe firmado por Google falsamente y hoy ZAS otra vez, una primera publicación sobre certificados... muahahahahahaha me tienes el coco troyanizado! hahahahaahahaha

    Qué sistemas de confianza podríamos deribar si los certificados de las entidades individuales acaban por ser "demasiado inseguras"??
    Quizá un sistema de rings publicos? donde todos los usuarios/entidades se dediquen a repartir, certificar, compartir? Se podría implementar algun sistema "abierto" de comparticion de certificados, que sea al mismo tiempo seguro?

    Un abrazo chema y gracias un dia mas!!

    Q.

    ResponderEliminar
  2. I already reversed ENTIRE windows update protocol, how it reads XMLs via SSL which includes URL, KB no, SHA-1 hash of file for each update, how it verifies that downloaded file is signed using WinVerifyTrust API, and... Simply I can issue updates via windows update!

    Nada que decir de eso, supongo.

    ResponderEliminar
  3. @QaSaR... te espío..

    @Anónimo, Microsoft ya ha comentado esa parte. No es tan fácil hacer eso, puesto que no solo se mira que esté firmado por una entidad de confianza sino que hay una comprobación de qué entidades pueden firmar vía Windows Update... creo que ahí derrapó un poco nuestro amigo...

    Saludos!

    ResponderEliminar
  4. @Maligno, no te iba a costar mucho no... tampoco hay mucho que ver...

    Quizá, sólo quiere decir que ha hecho un ejercicio de ingeniería inversa, para deducir, recrear y descubrir qué métodos y cómo lo hace MS Windows para hacer la validación de los Updates, al menos eso entiendo yo, no que haya "rebentado" el sistema para suplantarlo completamente, pero sí analizado y descubierto los métodos, por lo que hasta cierto punto, puede "medio" suplantarlos, y si además puede "supuestamente" emitir CAs falsos... quizá (aventuro) ese era una parte de los objetivos, probar de conseguir certificados firmados por empresas que MS considerara "validas" para emitir firmas validas para los Updates, y así poder probar de suplantar los sistemas de MS Update, e intentar colar ahi MITM a una victima... es MUCHO aventurar, lo sé... sólo uno puntos (y leo mucha ciencia ficción y blogs malignos...)
    Hombre, sin duda es el "spread system" mas eficaz del mundo no? hahahahahahahaha, crees Chema que teniendo una victima infectada/troyanizada, y conocimientos de cómo funciona WindowsUpdate, se podría llegar a engañar a Windows para que descargara o ejecutara código de terceros? O es mucha complicación para algo que podria hacerse de forma mas sencilla?

    Q.

    ResponderEliminar
  5. Ya descubrieron el como, y sin forma de comprobaciones, nada que hacer que cambiar. Ahora se puede cambiar paulatinamente el sistema de certificados a un sistema de chequeo por medio de claves que vayan cambiando, no una firma fija sino una firma que cambie cada vez que se conecte a un servicio de verificación.

    ResponderEliminar
  6. Chema, que paso con la foto tuya en los speaker la Eko? Estas con el pelo atado y sin el gorro!!!! Es la que presentas en el caralibro cuando hablas con mujeres? jajaja.
    Nos vemos en la Eko!!!!!

    Gracias por tanto y perdon por tan poco.


    Abrazo. Matias

    ResponderEliminar
  7. Hombre, no es 'porto calos' pero desde Windows Vista, Microsoft le 'ha robado' al usuario final la posibilidad de bloquear a mano CAs y el proceso para averiguar en que certificados confía Microsoft ... ehm requiere pelín de ingeniería inversa

    ResponderEliminar
  8. @Yago Jesús, cierto es que inicialmente no están en el sistema todos los que son, pero sí que para que se pueda usar un certificado emitido por una de las entidades de la lista se descarga antes la clave pública de la CA... y que si la revocas, revocada queda }:))

    Saludos!

    ResponderEliminar
  9. Si y no, antiguamente -xp- si que todos los certificados estaban en el store CA y eran editables a mano, podías hacer tu propia criba a tu elección. Desde Win Vista, Windows solo mantiene una pequeña parte de esos certificados y para el resto (por ejemplo el de la FNMT) usa Certificate Trust List que es una lista bastante oscura (hace algún tiempo publiqué un post sobre como la conseguí encontrar yo ...) que NO es editable por ti (ya que va firmada por Microsoft) En esa lista aparecen un montón de CAs y Microsoft modifica a su antojo sin que el usuario lo perciba. Para bloquear, como bien dices, tienes que localizar una web donde haya un certificado emitido por la CA que pretendes bloquear, y una vez que esté cargado usar certmgr.msc para llevar ese certificado a 'Untrusted Certificates'. Vamos un proceso del todo oscuro, difícil y poco transparente

    ResponderEliminar
  10. @Yago Jesús, tus posts los tengo de referencia. Claro que me acuerdo de tu post, e incluso use el comodín del "público" para escalar una pregunta y me explicaron como revocar una CA fácilmente. Basta con ir a la web de la CA, bajarse el cert y revocarlo. No era necesario buscar el de una web firmada por ellos.

    Eso sí, reconozco que el uso de las TCL puede hacer mucho menos claro el funcionamiento para el usuario normal, pero desde que lei tu post me quedó clarísimo a mí como funcionaba. Ahí es donde un investigador de seguridad marca la diferencia... como en el tema del whatsApp (enhorabuena!) }:))

    Saludos!

    ResponderEliminar
  11. Touché, no habia caido en que evidentemente puedes ir a buscar el certificado y no esperar a que se cargue durante la navegación. Respecto a lo de Whatsapp ... Lo que ha publicado el aleman era algo que yo tenía guardadito para la rooted :(

    ResponderEliminar