El año pasado, concretamente durante el mes de Julio, se anunció el
nacimiento de Google Project Zero, una iniciativa de seguridad de
Google para auditar en busca de vulnerabilidades en aplicaciones de otros fabricantes, incluyendo en esta lista software libre y software de código cerrado. El año pasado fue especialmente vertiginoso en términos de seguridad informática, todavía convulso por las revelaciones de todos los
hackeos provenientes de la NSA, la aparición de fallos como
Heartbleed,
ShellShock,
Poodle o el resto de b
ugs en software criptográfico, hicieron que las inversiones en seguridad empezaran a crecer.
Google montó su equipo en busca de fallos en el software que ellos utilizan que, dicho sea de paso, pensando en una compañía del tamaño de
Google es algo así como decir casi todo el software importante del planeta. En sus filas hay
hackers de gran nivel y reconocimiento internacional, con varios
Pwnie Awards entre ellos, e incluso
GeoHot ha pasado a formar parte de este equipo que se dedica a buscar vulnerabilidades.
|
Figura 1: Es Google Project Zero (i)rresponsable publicando 0days y exploits? |
La polémica viene con este grupo ha venido por otro lado, no con la búsqueda de los
bugs, sino con la
"medida de responsabilidad" que han añadido a la publicación de sus descubrimientos, en
0days de Windows y de
OS X recientemente.
Un resumen de la publicación de bugs
Recordemos que hace años atrás, los hackers eran acusados con el dedo por la publicación de sus descubrimientos en Full Disclosure, es decir, se encuentra un fallo de seguridad y se publica. Los fabricantes de software se quejaban de que no estaban ayudando a la seguridad de sus clientes con esta forma de publicar, sino que los estaban poniendo en riego porque cualquier atacante podría con ese conocimiento publicado hacer daño a sus usuarios.
La posición de los investigadores era que los que estaban poniendo en riesgo a sus clientes eran ellos no auditando correctamente el software, además de que no tenían ninguna garantía de que antes de que se hiciera público este fallo no estuviera siendo utilizado por ningún malo de verdad. Ahora que se conoce el fallo, todo el mundo deberá trabajar en pro de solucionarlo. El gran investigador argentino Juliano Rizzo, en la presentación que hizo en Ekoparty del bug BEAST en SSL lo explicó con una de las frases que quedará para la historia:
|
Figura 2: Juliano Rizzo sobre la publicación del bug BEAST en SSL |
En aquel entonces el mundo de Internet estaba preocupado por las consecuencias en el e-commerce que pudiera tener la publicación de un bug en la capa de cifrado, y lo que consiguieron los investigadores publicando el bug es que todo el mundo se preocupara por el fallo y lo subsanara.
Los fabricantes de software siempre reclaman el Responsible Disclosure, es decir, que los investigadores les comuniquen a ellos el fallo y les dejen tiempo para arreglarlo antes de hacerlo público. Esto tiene dos preguntas a responder por parte de los fabricantes de software:
1) ¿Por que una investigación que ha llevado tiempo y dinero te la voy a tener que dar a ti y no a otros?
Los hackers comenzaron una campaña llamada "No more free bugs" en la que exigían que se reconociera su esfuerzo de investigación y el valor que tenía para todos el descubrimiento de los bugs. En Internet había empresas de todo tipo de reputaciones dispuestas a pagar a los investigadores por ese conocimiento, así que los grandes software vendors deberían ponerse las pilas.
|
Figura 3: Alex Sotirov y Dino Dai Zovi apoyando al campaña No More Free Bugs |
2) ¿Cuál es exactamente la medida de responsabilidad?
Cuando un investigador encuentra un bug se hace un time-stamp. Ese día el hacker toma constancia de que hay un bug en un producto que pone en riesgo muchas cosas. Tal vez incluso cosas críticas que afectan a nuestra seguridad como ciudadanos si hablamos de un bug en un software que se usa en instalaciones críticas. Ese día, por desgracia, no es el tiempo que tiene ese bug. Ese bug es mucho más viejo y existe desde el día que alguien lo introdujo por error o conscientemente. Ese sería el tiempo de verdad que tiene el bug.
Entre el tiempo que va desde que el bug se introdujo hasta el tiempo en el que el hacker lo descubrió hay por medio a veces mucho tiempo, lo que aumenta las posibilidades de que otro hacker lo haya encontrado antes y lo haya usado para vendérselo a los malos o para explotarlo en su provecho.
|
Figura 4: Tiempos, riesgo y responsabilidades |
En el momento en que el hacker lo comunica al fabricante de software empieza a correr otro cronómetro hasta que se arregla, lo que obligará al fabricante a meter personas y trabajo en pro de solucionar este fallo. A veces esto puede costar mucho, por lo que los fabricantes prefieren acumular"varios parches en cada actualización para ahorrar esfuerzos y dinero.
Sin embargo, mientras sucede este parcheo masivo del fallo, el tiempo sigue creciendo. Crece el tiempo desde que se introdujo, crece el tiempo desde que el hacker lo descubrió y crece el tiempo desde que el fabricante es consciente de él. Pero lo más importante, también puede crecer el tiempo en el que otro lo esté utilizando - por ejemplo una agencia de inteligencia internacional o un grupo de cibermalos que lo quiere usar para cibermalas cosas -. Y esto debe tener un límite.
La medida de responsabilidad para Google Zero Project
¿Cuándo debe parchearse algo? La respuesta es cuanto antes, y es el fabricante del software el que lo debe hacer. ¿Cuál es el límite de tiempo que el investigador debe darle al fabricante antes de decir basta? Pues el equipo de Google Project Zero ha determinado que 90 días.
A partir de ese momento, para forzar a la actualización se hace público, aumentando masivamente el riesgo de los clientes, pero al mismo tiempo dándoles la oportunidad de poner
workarounds, es decir, medidas de mitigación del bug en
WAF,
Firewalls, configuraciones de software, políticas de seguridad e el
Active Directory o directamente deshabilitando componentes en piezas del sistema como los navegadores. Es decir, transfiere a los clientes la responsabilidad, y al mismo tiempo la oportunidad, de hacer algo para protegerse contra un fallo que puede que esté siendo explotado actualmente.
|
Figura 5: Exploit publicado por Google Project Zero para atacar OS X |
¿Es necesario que publique también exploits? ¿Es 90 días el tiempo adecuado para publicar? Cada cuál tendrá sus opiniones. ¿Cuál es la tuya?
Saludos Malignos!