Imaginemos que Pepe es una persona con conocimientos de seguridad
informática que, por simple curiosidad, se dedica a investigar en busca
de posibles fallos de seguridad.
Una noche, a las 3.00AM, descubre un fallo de seguridad grave en un SO
para móviles que permite al atacante hacerse con el control total del
teléfono. Pepe sabe perfectamente que tiene en sus manos una
vulnerabilidad gravísima, para la que hasta donde él sabe no hay
solución posible, lo que se denomina un
0-day [1].
Nervioso, Pepe piensa en lo que podría hacer, y multitud de posibilidades saltan a su mente.
Podría simplemente publicarlo en su blog de seguridad bajo lo que se denomina
Full Disclosure (revelación completa)
[2], y directamente dar acceso a todo el mundo a la información para
que se pudiera fabricar una solución. Esto le aseguraría ser el primero
en publicarla, y ganar reconocimiento como investigador (en un mundillo
en el que la reputación cuenta, y mucho).
Pero al dar la información al mismo tiempo tanto a fabricantes como a
los posibles intrusos, Pepe provocaría una carrera en la que seguramente
los usuarios serían los damnificados (el proceso de parchear una
vulnerabilidad conlleva un proceso de control de cambios, que es por
fuerza mucho más lento que el desarrollo de un exploit que solo necesita
aprovecharse de la misma).
Otra opción sería ponerse en contacto con el fabricante del SO e informarle del fallo de seguridad bajo lo que se llama
Responsible Disclosure (revelación responsable)
[3], dándole tiempo para que pueda preparar el parche que la resuelva
antes de su publicación. De esta forma Pepe seguiría llevándose el
mérito, pero no pondría en peligro a los usuarios al disponer de la
solución al mismo tiempo de su publicación.
Puede suceder que el fabricante ignore a Pepe (ya sea por falta de
canales de comunicación eficaces, o por política de la empresa). En este
caso Pepe podría acudir a un
CERT como el del INTECO
[4], que se encargaría de contactar con la empresa (y así le daría una
cierta cobertura a Pepe en el caso de tener luego problemas)… o pasar a
la opción anterior y revelar directamente la información en Internet.
En el caso en el que Pepe estuviera más interesado en una ganancia
económica más que de prestigio (que la fama no paga la conexión a
Internet), tendría también varias opciones.
Lo primero que podría hacer Pepe es comprobar si el fabricante ofrece algún tipo de programa de
Bug Bounty (caza de fallos)
[5], en los que el fabricante ofrece recompensas por encontrar fallos
de seguridad que pueden ir desde camisetas exclusivas hasta dinero
contante y sonante. Esta opción es interesante porque en casi todos los
programas hay un “Hall of fame”, que permitiría a Pepe a su vez ganar
reconocimiento por haber encontrado el fallo.
El problema de esta opción es que casi siempre los fabricantes pagan
poco. Muy poco. Si Pepe lo que quiere realmente es el dinero (y su ética
personal es lo suficientemente laxa), tiene otras alternativas mucho
más ventajosas.
Pepe podría llevar su fallo de seguridad a sitios como
ZDI (Zero Day Initiative) [6], que ofrecen recompensas por fallos de seguridad bajo el modelo de
Responsible Disclosure.
Estas empresas luego ofrecen servicios de alerta temprana (Pepe sabe
que pocas empresas dan algo gratis), pero al final la
vulnerabilidad se
soluciona, y Pepe tiene más dinero en el bolsillo (y sobre todo, estas
iniciativas son una buena opción en caso de que el fabricante no tenga
un
Bug Bounty en activo).
Pero donde está el dinero de verdad es en la venta privada: Pepe podría
vender su 0-day a empresas especializadas en la compra de
vulnerabilidades, pero que en lugar de publicar la información la
guardan y crean exploits que pueden vender de forma privada. Algunas de
estas empresas como
Vupen
[7] tienen una política estricta de ventas (en principio solo a países
“buenos”), aunque no se sabe dónde pueden acabar ni para qué pueden ser
usados. Por tener tienen hasta
listas de precios [8].
El tema es que el precio es bueno. Muy bueno. Se rumorea que se ha
llegado a pagar hasta 250K$ por un 0-day muy similar al suyo, que puede
ser fácilmente diez veces más de lo que el fabricante o iniciativas como
ZDI podrían pagar. Eso sí, Pepe no puede decirle nunca a nadie lo que
ha hecho, por la cuenta que le trae (es lo que tiene trabajar con
empresas que trabajan con gobiernos que tienen agencias de tres letras).
Podría ser que Pepe no estuviera interesado en ser “fichado” por estas
empresas (nunca se sabe las vueltas que da la vida). En ese caso podría
acudir a algún
bróker de vulnerabilidades
[9], que por una módica comisión se encargaría de hacer de
intermediario con las empresas pertinentes y le ayudaría a mantener su
preciado anonimato.
Pero estos bróker no crecen debajo de las piedras (y no son
especialmente accesibles). Y Pepe quiere el dinero. La última opción que
le queda es
venderlo en el mercado negro
[10], en el que hay multitud de lugares en los que venderlo. Y en
algunos de ellos le pueden pagar en preciosas e irrastreables BitCoins. Y
si Pepe tiene muy pocos escrúpulos, no creo que tenga muchos problemas
en venderlo en varios lugares a la vez…
Estas son las opciones que Pepe baraja en su mente a las 3.00AM mientras toma su décimo café del día…
Si pasamos de la ficción a la realidad, el problema existente está
bastante claro: Los incentivos económicos son mucho más atractivos que
el mero reconocimiento, e incluso los programas que mezclan ambos
aspectos se quedan cortos en la parte económica.
Esta oferta viene dada por la existencia de una demanda por parte de
algunos gobiernos (principalmente de aquellas partes destinadas a la
obtención de inteligencia), que en mi opinión han valorado erróneamente
la naturaleza de doble filo de una vulnerabilidad. Si bien el estar en
posesión de una
vulnerabilidad nos permite poder usarla para atacar
otros sistemas, nuestros propios sistemas también siguen siendo
vulnerables a dichos ataques.
Y si se realiza una evaluación de la cantidad de sistemas y del valor de
la información contenida en los mismos en mi opinión se tiene más que
perder guardando que publicando…
Ante esta elección subscribo totalmente la opinión de
Bruce Scheneier
[11]: Todo el proceso de la investigación sobre
vulnerabilidades
debería estar enfocado a la mejora de la seguridad de los sistemas, el
objetivo inicial para el que fue creado.
Para ello es obligatorio reencauzar el (bastante torcido hoy) proceso,
ofreciendo una serie de incentivos tanto monetarios como de
reconocimiento que conviertan el hecho de hacer pública una
vulnerabilidad sea siempre más atractivo que venderla.
¿Qué nos haría falta?. Una idea sería crear algo similar a
BugCrowd [12], un servicio de creación de
Bug Bounties que gestiona búsquedas de
vulnerabilidades, y dotándolo de procedimientos de
Responsible Disclosure.
Esta organización debería de ser internacional, completamente imparcial y
financiada tanto por gobiernos como por las compañías de tecnología. Su
principal objetivo: mejorar la seguridad de todos los elementos que
componen Internet para todo el mundo, independientemente de qué país o
sistema sea empleado. A vista de pájaro, un posible candidato para
liderar esta iniciativa podría ser el
IAB (Internet Architecture Board) [13], que tiene una distribución de miembros suficientemente variada como para compensar los diversos intereses existentes.
El otro lado de la ecuación reside en los propios investigadores: si
nadie vendiera las
vulnerabilidades que encontrara, y si el resto de la
comunidad repudiara a aquellos que sí que lo hacen, lograríamos de una
forma sensible reducir la oferta y/o redirigirla a la iniciativa
anterior.
Cierto, el mercado negro aún seguiría actuando (y lo sigue haciendo en
la situación actual), y aún tendríamos investigadores que no tendrían
problemas éticos o morales en seguir vendiendo sus vulnerabilidades,
pero se lograría en cierta medida retomar el control de todo el proceso.
Lo que sí que es cierto es que la situación actual tiene unas
perspectivas poco halagüeñas, y es necesario hacer algo al respecto. El
cómo (y en este caso muy importante, el cuánto) es algo que tenemos que
decidir entre todos.
Referencias:
- Zero Day
- Full Disclosure
- Responsible Disclosure
- INTECO-CERT
- BugCrowd – List of bug bounty programs
- Zero day Initiative
- Vupen
- Lista de precios de vulnerabilidades
- The Grugq
- Selling exploits for bitcoins in underground market
- Scheneier :The Vulnerabilities Market and the Future of Security
- BugCrowd
- Internet Architecture Board
Fuente:
SecurityArtWork