Aplicaciones seguras, ¿Donde?

ice Desde hace 2 días que el canal 13 de Argentina está siendo interrumpido por una señal, en la misma frecuencia, de origen desconocido hasta el momento. Ayer, el diario La Nación denunció que una de sus notas, en la que se citaban declaraciones de una jueza de la nación, había sido hackada y alterada. Esto son solo dos hechos, de gran impacto, que demuestran a las claras que si uno se va a la cama dejando la puerta abierta puede encontrarse con algunas sorpresas a la mañana siguiente.

Más allá de que estos episodios tienen el característico olor a podrido propio de los manejos políticos, estas cosas no deberían suceder. Pero me dan el impulso que necesito para escribir una entrada sobre seguridad.

Actualmente estoy coordinando una iniciativa sobre Secure Development en la empresa en la que trabajo, el objetivo es reducir la cantidad y severidad de los defectos de seguridad en el software que se desarrolla. Esta tarea es verdaderamente difícil y por eso hemos perdido muchas horas debatiendo sobre cómo se debe encarar, que capacitaciones son necesarias, que herramientas, que tareas realizar en cuales etapas del ciclo de vida, como se siguen esos defectos, como se miden, como se institucionalizan la conciencia, etc. En fin. El problema es que como siempre, hay gente que conoce muchos sobre seguridad o desarrollo en general mientras que otros solo conocen los ‘if’ y el F5. ¿Cómo se hace software con cierto nivel de confianza con gente que no sabe que es un SQL Injection?. La respuesta es muy sencilla verdad? Claramente, es imposible.

La ignorancia en cuanto a cuestiones elementales del desarrollo de software por parte de gran parte de los ingenieros de software es un tema altamente preocupante y voy a ejemplificarlo con un anécdota reciente: con el objeto de lograr que se tome conciencia sobre la importancia de mejorar la seguridad de las aplicaciones desarrolladas, me puse a probar tres cosas muy sencillas en algunas de las aplicaciones de la empresa a las que tengo acceso, estas fueron: XSS, SQLI y modificación de parámetros pasados por querystring. El resultado fue el muy desalentador. Casi todas las aplicaciones web reventaban a los pocos intentos (y ojo que lo hice a pulmón! sin herramientas). Obviamente, lo siguiente que hice fue reportar los errores cargando los tickets con la descripción de los problemas. El primero decía algo así:

“He detectado que en la pagina [URL] de la aplicación [APP], el campo ‘Search’, es posible inyectar html. Puede comprobarse con esta cadena sin comillas “<h1>hola</h1>”.”

Para mi sorpresa, el mail que envía el sistema automáticamente al usuario que cargó el tickets, decía algo así:

“Su tickets no.[NRO] ha sido asignado al [ALGUIEN] con la siguiente descripción del problema:

He detectado que en la pagina [URL] de la aplicación [APP], el campo [CAMPO], es posible inyectar html. Puede comprobarse con esta cadena sin comillas “

hola

”.

Bueno, al menos es coherente! dije. Pero el tema es cuando me llega el mail de respuesta:

“Sr. Ontivero,

¿Podría aclarar un poco más la descripción de este ticket? ¿Que está Ud. buscando exactamente? ¿Para qué quiere buscar html?…..”

A esto me refiero. ¿¡Cómo puede ser que ni siquiera se haya preguntado cómo llegó ese enorme HOLA en ese mail!?. Solo le faltó decirme “probá sin los <h1>  y avisame”.

¿Cómo se llega a esta situación?. Creo que si tus productos se venden de a miles seguramente la reputación de tu software será bien conocida, y la de la seguridad de tus aplicaciones será todavía más comentada, ahora, si haces sistemas a medida el nivel de seguridad de ese software será desconocida para el cliente y en el peor de los casos, será desconocido para ti también. Todos felices.

El software seguro y el inseguro se venden por igual solo que el software más seguro lleva un mayor esfuerzo de desarrollo. Porque es un aspecto invisible para el cliente, y gracias a la ignorancia reinante en el medio, para alguno de nosotros también. Ya sé, ya sé, vos no sos ignorante en este tema y existen miles más como vos, pero eso lo sé porque estás leyendo blogs de desarrollo, este y probablemente otros más de geeks.ms; me alegro por vos pero ¿qué porcentaje de desarrolladores leen blogs o mantienen uno?, ¿cuantos testers solo hacen tests funcionales y nada más que eso?, ¿cuántos managers saben algo de seguridad?, ¿cuánto cuestan los defectos de seguridad?, ¿lo sabemos?, ¿nos importa?, ¿y qué hay del ROI, nos conviene o no?

Creo que estamos mal pero por otro lado creo también que es muy difícil que esto empeore. Ahora, en el futuro inmediato esto debería cambiar a medida que la gente lo demande. Para ello deben ser defraudados y hasta tomar conciencia. Las empresas solo demandarán aplicaciones seguras (y estarán dispuestas a pagar el precio) una vez que vean los números.

Lucas Ontivero

Sin categoría

2 thoughts on “Aplicaciones seguras, ¿Donde?

  1. Me parece que le falto garra Mr. Onti 🙂

    Saquese todo ese enojo, sabemos que hay mucho mas de lo que describe :p

    No, en realidad, muy bueno.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *