El culpable equivocado

Seba Bortnik —  12 agosto 2009 — 6 comentarios

Hoy leo una noticia en el blog de Segu-Info. Resulta que un muchacho, Zerial, “ha encontrado vulnerabilidades críticas en el sitio web del Ministerio de Ciencia, Tecnología e Innovación Productiva (MinCyT – Argentina) y, como lamentablemente luego de denunciar las mismas no ha obtenido respuesta, ha decidido publicar dichas vulnerabilidades”. Pueden ver en el enlace a su sitio información técnica sobre las vulnerabilidades.

Es interesante saber que, luego de la publicación en Segu-Info; aparentemente ArCERT ha anunciado que trabajará en la vulnerabilidad.

De todas formas lo que me interesa comentar es otra cosa. Hay una tendencia de aquellos que quizás no estén en el mundo de la seguridad (el hacking, el pen testing, el diagnóstico de vulnerabilidades) a pensar que aquel que encuentra una vulnerabilidad y la publica es el principal responsable de que después se cometa un ataque explotando dicha vulnerabilidad. Y aquí surgen dos debates que obviamente son más extensos de lo que podré comentar aquí.

En primer término, yo no acuerdo con esta idea. Es decir, no creo que cualquier vulnerabilidad deba ser publicada, y la discusión puede ser muy fina. Pero sí creo que pensar que el culpable de un ataque sea quien descubrió y publico la vulnerabilidad es, al menos, una reducción errónea del problema. Y digo esto principalmente porque hay dos actores a los que no se les puede desligar la responsabilidad probablemente mayor en la materia: quien programó un software con esa vulnerabilidad y quién realizó el ataque. En el primero de los casos la discusión se vuelve más fina aún, porque las vulnerabilidades ocurren tanto por la naturaleza propia del ser humano, que se equivoca, como por la ineficiencia o poca importancia a la seguridad que dedican algunas empresas de software (sería negligencia). Obviamente un caso y otro son distintos. En el caso del atacante, creo que desligar la culpabilidad a otra persona antes que a este es un error. Quién tiene una intención maliciosa no deja de ser el principal responsable, tanto desde el punto de vista técnico como desde el punto de vista moral.

Pero todo esto es preámbulo, y no lo digo por la longitud de lo que vengo diciendo. Si leen la noticia con la que arranque el post, hay un factor preponderante que escapa a todo el análisis que les dejé anteriormente: antes de publicar la vulnerabilidad, Zerial informó las mismas a la institución sin obtener respuestas. Repito, este me parece un factor de alta preponderancia. Si en una situación sin este factor, la discusión puede ser fina, creo que en estos casos la enorme negligencia de quien recibe un alerta y hace caso omiso debe simplificar la discusión. Acá hay negligencia por donde se lo mire. No hay error involuntario. De una u otra forma, alguien está ignorando un alerta de un potencial peligro.

Digo, es hora de que las organizaciones dejen de enojarse con un montón de gente que busca vulnerabilidades porque es su trabajo, y en muchos casos su pasión. Denles un poquito de bolilla nomás que muchos están predispuestos más a ayudar que a molestar.

¿O me equivoco? 😉

Anuncios

6 comentarios para El culpable equivocado

  1. 

    Saben que es lo mas feo de todo? que a veces le hablas a las paredes.

    Hace 2 semanas que intento conectarme con alguien que responda. Encontré una vulnerabilidad super banal y bien feita de SQLinjection en un sitio del govierno y todavìa nadie me respiondiò. (demas està decir que no hay en el sitio ningùn tipo de informaciòn sobre los responsables tècnicos, asì que ando tratando de ver si por telèfono alguin sabe con quin contactarme)

  2. 

    Yo lo pude vivir de ambos lados… lamentablemente (o quizás con suerte) de que primero me tocó sufrirlo como el desarrollador y luego como el que encontraba las fallas.

    La verdad es que como desarrollador muchas veces hacemos caso omiso a cosas que creemos insignificantes, pero que pueden convertirse en problemas mucho mayores si alguien le saca provecho (y peor aún, si lo mezcla con alguna otra falencia propia del sistema en sí). En mi caso, no respondí un correo donde me avisaban del error (un componente de Mambo que había hecho), y luego hice caso omiso a un segundo correo que me llegó de la misma persona. A la semana siguiente, varios correos me llegaron de personas afectadas por el problema… (y como era de esperarse, estaban enojados).

    Desde ese día (y dado que gané interés en seg. inf.) cada vez que encuentro “algo” lo informo… aunque me encuentro siempre con ese paredón del ego de un programador.

    De cierre… si alguien te reporta un error y no sabés como solucionarlo… es mejor bajarse de la moto (ser modesto!) y preguntar, antes que sufrir las consecuencias por no haber escuchado (lección aprendida, je!).

    Saludos!

  3. 

    El correo que se les envio a las personas encargadas fue el siguiente (escrito por un amigo Argentino, para que tuviese mayor relevancia):

    — INICIO —
    La vulnerabilidad es del tipo LFI (también conocida como Path/File
    Disclosure) y permite que cualquiera pueda: (i) obtener archivos que
    por su naturaleza resulta más conveniente que se mantengan privados
    (incluyendo configuraciones y archivos con claves), (ii) inspeccionar
    el árbol de directorios del servidor, (iii) potencialmente ejecutar
    órdenes en el servidor, ya sea con o sin fines maliciosos, (iv)
    potencialmente insertar código en el sitio web, (v) emplear el
    servidor como una pasarela para comunicarse con otro servidor, ya sea
    éste interno o público o de acceso restringido.

    El problema se observa con facilidad al prestar atención a cómo se
    cargan los distintos recursos en el sitio web.

    Pongamos, por ejemplo, la dirección
    http://www.mincyt.gov.ar/index.php?contenido=indicadores/banco_indicadores/presentacion
    Está diciendo que el contenido está en un subdirectorio llamado
    indicadores, otro llamado banco_indicadores y finalmente hay un
    fichero llamado presentacion que se debe buscar. Sin embargo, como no
    se filtra de ninguna manera esta variable, si un usuario ingresara
    http://www.mincyt.gov.ar/index.php?contenido=indicadores/banco_indicadores/../banco_indicadores/presentacion
    obtendría el mismo fichero, diciendo indicadores -> banco_indicadores
    -> subir un directorio (a indicadores) -> banco_indicadores ->
    presentacion. Esta vulnerabilidad permite acceder a un archivo
    arbitrario en el servidor.

    Por otra parte, si se ingresara una URI, por ejemplo
    http://youruseragent.info/ip.php (que devuelve la dirección IP que
    realiza la petición), y se pone esta dirección para contenido más el
    carácter ASCII 0 para terminar la cadena (y evitar que se añada “.htm”
    al final de la dirección), puede descubrirse que la salida es
    200.9.244.13 (que es una IP registrada a nombre de la Red Cientifica y
    Tecnologica Nacional) para
    http://www.mincyt.gov.ar/index.php?contenido=http://youruseragent.info/ip.php%00,
    es decir, que está actuando como una pasarela (“proxy”) para
    comunicarse con otros servidores.

    Esto se puede resolver con facilidad verificando el contenido de la
    variable “contenido” (por ejemplo usando una expresión regular) y
    filtrando todos los caracteres que no sean alfanuméricos o “/”, y
    eliminando además el caracter / si empieza la cadena. Además, me
    gustaría agregar que estoy dispuesto a ofrecerle la asistencia
    necesaria, en caso de necesitarla, para su pronta resolución.

    Sin más, saludo a Ud. muy atentamente.
    — FIN —

Trackbacks y pingbacks:

  1. Un problema de seguridad muy serio « Un Mundo Binario - enero 27, 2010

    […] el dilema de reportar o no reportar una vulnerabilidad (tema que ya he tocado en el post “El culpable equivocado” y creo que en alguno otro también). Digamos que la idea se resume muy sencilla: uno […]

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s