Un problema de seguridad muy serio

Seba Bortnik —  27 enero 2010 — 13 comentarios

Estimado lector,

Este aviso es para que usted sepa que al leer este blog está sufriendo un grave problema para su seguridad. He configurado el mismo para que, a través de un ataque denominado KLM, se robe información personal de su PC y sea enviada al autor del blog.

Me gustaría que se detengan un segundo en este tramo a pensar. ¿Qué pensaron al leer este mensaje? Este pibe está loco, es un tarado, no sabe lo que dice. O peor aún: es un paranoico, está hablando de algo súper sofisticado que sólo él puede entender.

Bueno, resulta que ayer estaba charlando con un lector del blog (chateando para ser exactos) sobre 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 encuentra una vulnerabilidad en un sitio web, la reporta por correo electrónico al webmaster y no recibe respuesta. Digamos que esta es la situación clásica. Después hay otras alternativas más alegres (y mucho menos frecuentes) de recibir una respuesta agradeciendo (aunque después no hagan nada) y otras más tristes que incluyen insultos, acusaciones (también menos frecuentes). La respuesta preferida es el silencio.

Pero no me pregunten por qué, ayer me quedé pensando que solemos equivocarnos en la conclusión que sacamos, que suele ser: a nadie le importa la seguridad.

Pero ayer me hice una pregunta que creo que es más esencial. Cuando un programador web “promedio” recibe un correo describiendo una serie de vulnerabilidades en su aplicación, ¿lo entiende?

No, no estoy jodiendo, me pregunto en serio si un programador recibe un mail que dice que un individuo X pudo probar un SQL Injection, un XSS, ¿sabe de que le hablan? Es más, voy a ser más básico. Si el correo dice “su aplicación tiene un problema de seguridad”, ¿sabe qué puede significar un problema de seguridad? Estoy seguro que muchos programadores pensarán que es un problema de que la aplicación se cuelgue, o algo por el estilo.

Porque cuando uno aprende a ser programador, lo llenan de libros de usabilidad, pero de seguridad nada. Y yo les juro, queridos lectores, que me pregunto cuántos programadores web no entenderán un corno cuando les llega un correo de un “geek” con palabras raras. La mayoría pensarán que está loco el que escribió el correo. Lo mismo que parecía sobre mi mensaje del principio del post. Que carece de sentido.

Sí, ya se que hay gente a la que no le importa la seguridad. Lo sé. Son muchos. Pero también estoy seguro que en muchos casos hay una profunda y triste ignorancia. Lo bueno, es que la ignorancia es más fácil de competir que la estupidez, sólo hay que educar. Estoy seguro que si más programadores tendrían conocimientos básicos sobre seguridad en aplicaciones, darían más atención a este tipo de avisos.

Anuncios

13 comentarios para Un problema de seguridad muy serio

  1. 

    Recuerdo una excelente charla de Andrés Riancho sobre seguridad de aplicaciones web, en la que dijo en un momento, hablando de vulnerabilidades clásicas que existen hace mil y se siguen repitiendo, que no se puede culpar al programador por problemas de seguridad en su codificación, si no se lo capacita al respecto.

    Pero ¿se puede hablar de un programador promedio? En mi opinión, difícil. El programador puede ser desde un tipo adulto con 5 años de estudio formal universitario, hasta un adolescente hijo del dueño de un videoclub que aprendió lo mínimo para armarle algunos programas a papá.

    Enfrentémoslo, la idea que tenemos de lo que debe saber sobre seguridad un programador es una loca idea nuestra. El programador programa y si funciona, listo.

    Si el programador es universitario, ¿desde cuando se incluyen materias o conceptos suficientes para programación de aplicaciones web seguras? Porque incluso programadores universitarios de hace más de 10 años aprendieron HTML y demás cosas por su cuenta o en cursos, pero la parte de seguridad, sólo si les pareció interesante. Bueno y si no es universitario listo olvidate, todo depende de donde se mueva y si alguna vez le picó el bicho de saber que es XSS o SQLi y como evitarlo.

    Quiero decir que esto está así porque en Internet todo es libre, free speech, o sea una joda, una gran joda. No se necesita demostrar nada para montar algo en Internet, no te exigen nada.

    Cualquiera que pueda hacer funcionar un sitio Web lo pone en linea y listo. Sea el hijo del dueño del videoclub o sean los de Facebook. Ambos lleno de fallas de seguridad, uno por falta de capacitación, los otros por … lo mismo y que nadie le exige gastar tiempo y dinero en eso hasta que … hasta que amenace a su negocio. (los usuarios siempre víctimas, el único interés es que no se vayan.)

    Por ejemplo, se le exige más a un gasista para instalar un calefón o una estufa que a un programador. El gasista tiene que validar su idoneidad en el oficio, dar un exámen y sacar una licencia o matrícula que lo habilita para eso. Tiene un motivo, si hay un artefacto a gas mal instalado, alguien va a morir.

    Pero en Internet, no, (por ahora). Solo te van a robar de tu banco o infectar la PC (o las dos cosas.)

    ¿Querés pedirle más a un programador? Capacitalo, enseñale, exigí que lo evalúen antes de empezar a trabajar, considerá el presupuesto de tiempo y dinero que vas a dedicar a los aspectos de seguridad del diseño, desarrollo, prueba y puesta en marcha, test de penetración y demás.

    El único control que afecta a hacer algo en nombre de la programación segura por ahora en Internet es la legislación o normativa de cada país y que se hace cumplir (LOPD, entidades financieras, SOX, HIPAA o las normas de la industria como PCI).

    Y de la actitud de como responde cada programador al reportar una falla… no nos calentemos tanto, es el resultado de las circunstancias mencionadas y otras más por el estilo.

    Para finalizar este largo comentario una anécdota (o caso para el Guiness) una vez me mandaron, como agradecimiento a reportar un problema en un sitio web, una botella de un muy buen vino.

  2. 

    Si al desarrollador le llega un correo con palabras raras como bien dices, como “xss” “sql injection” etc etc, es muy probable que no lo tome en cuenta, sin embargo, en mi caso, lo que hago antes que todo es aclararle que tiene un problema de *seguridad* y luego de eso, le expongo las vulnerabilidades. La mayoria de las veces les envio un email simplemente diciendole que tiene agujeros de seguridad importantes y que si estan interesados en corregirlos o saber cuales son, que me respondan el correo pero jamas lo hacen. Paso exactamente lo mismo cuando ocurrio lo que pusiste como ejemplo (El culpable equivocado).

    saludos

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