07 septiembre 2011

Reflexiones sobre DigiNotar

Mucho se ha escrito ya sobre el impacto del 'hackeo' de Diginotar, en concreto se ha hecho hincapié en los cientos de dominios afectados (de todo tipo y de diversa índole).

Pero hasta ahora no he sido capaz de encontrar información realmente profunda sobre los matices a nivel PKI de todo este asunto.

Como punto de partida vamos a usar el informe preliminar de la empresa que está llevando a cabo la auditoría de la intrusión (disponible aquí)

Empezamos:

En el punto 3.2 'Compromised CAs' aparece lo siguiente:

'Due to the limited time of the ongoing investigation we were unable to determine whether all CA servers were used by the attacker(s)' que traducido vendría a decir: en realidad desconocemos cuales CAs han sido utilizadas por los atacantes. No obstante dan una lista de CAs comprometidas, y en la lista aparece:

- DigiNotar Root CA
- DigiNotar Root CA Administrative CA
- DigiNotar Root CA G2
- DigiNotar Root CA System CA

¿Perdón? ¿ he leído DigiNotar Root CA ? increíble, una de las CAs comprometidas es la propia CA raíz, el que debería ser el eslabón mas duro e inexpugnable.

Una CA raíz únicamente se emplea en dos ocasiones, o bien para crear CAs subordinadas o en caso de compromiso de esas CAs, para invalidar las CAs subordinadas. Si este eslabón está comprometido, bye bye, no hay otro mecanismo de salvaguarda.

Grosso modo un esquema PKI funciona así:
  • Existe una CA raíz 'madre' 
  • Esta CA raíz crea otras CAs subordinadas (de nivel 2)
  • Las CAs subordinadas son las que firman y generan los certificados para usuarios / servidores finales
  • Las solicitudes de certificados se tramitan mediante una RA (registration authority)
Y esto pone sobre la mesa otra pregunta mas inquietante: ¿Habrá sido empleada la CA raíz para crear CAs subordinadas pirata? Esta pregunta no es baladí, los certificados SSL 'normales' emitidos durante el hackeo se pueden revocar, pero si alguien tiene un certificado y la clave privada de una CA subordinada, puede crear bajo demanda y sin control los que quiera

Si seguimos leyendo el informe nos encontramos con esto en el punto 4.4:

The most critical servers contain malicious software that can normally be detected by anti-virus software. The separation of critical components was not functioning or was not in place. We have strong indications that the CA-servers, although physically very securely placed in a tempest proof environment, were accessible over the network from the management LAN.

The network has been severely breached. All CA servers were members of one Windows domain, which made it possible to access them all using one obtained user/password combination. The password was not very strong and could easily be brute-forced.

Lo que quiere decir que, tanto las CAs subordinadas como la ¡ CA raíz ! eran fácilmente accesibles vía red e incluso todas formaban parte de un dominio Windows.

Y ahora me toca la tarea mas difícil: intentar recuperar la credibilidad del mundo PKI.

A tenor de lo expuesto previamente, supongo -y con razón- que mucha gente puede creer que implementar una PKI es 'un cachondeo' y que no existe rigor alguno en este campo. Pero esto no es así

De entrada, existen dos normativas que regulan como implementar una PKI y que medidas de seguridad hay que aplicar

'Policy requirements for certification authorities issuing qualified certificates' de ETSI

'Program for Certification Authorities' de Webtrust


Por ejemplo, Microsoft exige que una PKI debe estar certificada con una de esas dos normativas para añadir el certificado de la CA raíz a Internet Explorer

Ambas guías exponen de una forma MUY clara los niveles de seguridad que debe contar una PKI. Diré a modo de ejemplo que la PKI del DNI electrónico (que cuenta con ambas certificaciones) tiene la CA raíz encerrada en una celda (sí una celda con barrotes) Totalmente offline, inaccesible física o electrónicamente

Normalmente, para realizar una auditoría de este estilo se suelen crear 'check lists' con cosas a analizar, aquí se puede ver un típico check list para realizar una auditoría ETSI

De el voy a sacar unos cuantos párrafos:

'The CA shall carry out a risk assessment to evaluate business risks and determine the necessary security requirements and operational procedures. The risk analysis shall be regularly reviewed and revised if necessary'

'The CA shall have a system or systems for quality and information security management appropriate for the certification services it is providing'

'The CA shall ensure that its assets and information receive an appropriate level of protection'

'The CA shall ensure that the CA systems are secure and correctly operated, with minimal risk of failure'

'The integrity of CA systems and information shall be protected against viruses, malicious and unauthorized software'

'Audit logs shall be monitored or reviewed regularly to identify evidence of malicious activity'

'Controls (e.g. firewalls) shall be implemented to protect the CA's internal network domains from external network domains accessible by third parties'

'Continuous monitoring and alarm facilities shall be provided to enable the CA to detect, register and react in a timely manner upon any unauthorized and/or irregular attempts to access its resources'

Según el informe de la intrusión tenemos: Logs borrados e imposibilidad de tener trazabilidad en el uso de la CA, software como Cain & Abel instalado en las propias máquinas, CAs dentro de un mismo dominio Windows, etc etc.

Y la pregunta final: ¿Quien hizo la auditoría a DigiNotar y certificó que cumplían ETSI?

12 comments :

Nospam dijo...

Es que es increible. ¡Muy buen trabajo!

Ignacio Agulló Sousa dijo...

Yago Jesús: ya que te molestas en hacer un trabajo serio sobre el origen del problema, llega hasta el final.  No tengas misericordia, un fail es un fail; que tenga siempre preferencia nuestra consideración hacia los afectados (muchos) sobre los causantes (pocos).  Si hay evidencias de que DigiNotar fué indebidamente certificada por PricewaterhouseCoopers, dilo; no le tapes el culo a nadie.

Juan Aguilera dijo...

Qué viva la Pepa que es la gente. Me parece alucinante, pero como comenta Ignacio es peor todavía que una empresa que certifique que cumple la normativa cuando no lo hace ni de coña.

Espero que les cierren el chiringuito tanto a unos como a otros.

Yago Jesus dijo...

Yo creo que en ningún momento he ocultado ningún dato para 'proteger' a nadie. La información está ahí completa, cada cual que valore y saque sus propias conclusiones

Y'all know the name dijo...

Tela. Pero casi tiene más delito lo de PwC.

Maximiliano Soler dijo...

Estimados;

Comparto con ustedes este enlace:

http://pastebin.com/raw.php?i=1AxH30emUsername: PRODUCTION\Administrator (domain administrator of certificate network)
Password: Pr0d@dm1n  No se qué tanta verdad tendrá. Pero es interesante.Saludos,MS.

Cacadevaca dijo...

La PKI del DNI electrónico estará en una celda super custodiada, lo que no sabemos es donde andarán las copias de esa PKI XD

Juan David Gutierrez Reyes dijo...

Este tipo de CAs debe usar HSM (Ncipher, LunaCA, etc), los cuales cuentan con sistemas de acceso de nivel 2, es decir algo que tienes (tarjeta con chip) + contraseña. Y la copia debe estar en otro HSM en un centro de datos alterno. Es increible que una entidad de certificación tenga ese tipo de problemas, Joder! es q no fue un Hack de ensueño rompiendo llaves de cifrado o entrando fisicamente a los datacenter...la CA estaba online! que mierda!

Invitado dijo...

Muy buen post. En tu línea.

SiD dijo...

La arquitectura PKI es un sistema bastante robusto.

En este caso volvemos a descubrir el eslabón más débil de la cadena: el "amigismo", "buenrollismo" y todo tipo de "mordidas" que desgraciadamente asolan todo tipo de empresas en el mundo.

Antes llevarme mi plus a fin de año que echar para atrás una implementación de meses. Así luce el pelo a muchos.

Lo de PwC no tiene nombre, ya que no es la primera mierda que certifican más o menos del mismo modo.

Es más fácil intentar desprestigiar la arquitectura PKI que a una empresa como PriceWaterhouseCoopers.

Anónimo dijo...

Realmente no podemos saber cómo estaba montado en el momento de la certificación... q PWC lo haya certificado no quiere decir que lo hiciese en las condiciones en las DigiNotar que fue comprometido.

Y no defiendo a nadie, puede que lo hiciese mal o puede q no... hay que darle el beneficio de la duda.

Odi dijo...

PricewaterhouseCoopers, No me extraña que esta gente allá certificado algo que realmente no merecía la certificación. Son los mismo que certifican en una de  las empresas donde estoy y les puedo asegurar que la misma no puede pasar una certificación de lo que se les está contratando ni queriendo. Al final siempre es lo  mismo termina siendo un tema de DINERO y lo SARAZA de estas corporaciones que certifican.