Una vez más me veo sorprendido por la ignorancia que existe en el mundo TI acerca de conceptos básicos de seguridad. En los casi tres años que llevo trabajando en seguridad informática, toda aplicación que audité (desktop o web) poseía vulnerabilidades críticas y muy básicas.
Cuando recién empecé a trabajar en el rubro, creía que vulnerabilidades como buffer overflow, SQL Injection, XSS, eran raras de encontrar debido a la gran difusión que poseen y lo fáciles que son de evitar, sin embargo, tres años de experiencia y trato con una cantidad considerable de desarrolladores y empresas (más de 15), me demostraron lo contrario.
Lo peor no es encontrar que toda aplicación que analizo es vulnerable a ataques simples, sino que al tratar con los desarrolladores me encuentro con una ignorancia espeluznante. Muy pocos de los programadores con los que traté conocían al menos de nombre los ataques, y la gran mayoría no tenía ni idea de cómo solucionar los problemas.
Es así como me encuentro una y otra vez explicando ataques, explicando métodos para mitigarlos, demostrando dónde están los errores. Cada proveedor de software con el que tengo contacto tengo que volver a explicar lo mismo. Lo más indignante es que la gran mayoría te termina tratando como que lo que pedís es exagerado, que controles así no se utilizan, que la seguridad no se encuentra en los requerimientos! (WTF!) La defensa de las empresas de desarrollo es atacar en lugar de reconocer su ignorancia. Pedir más dinero por lo que debería haber estado contemplado desde el principio, culpar al auditor de retrasar la puesta en producción de productos incompletos y de baja calidad, porque recuerden amigos, la seguridad forma una parte esencial del software de calidad.
Al principio creía que la falta de conocimiento era local en la ciudad donde vivo, pero luego de tratar con muchas empresas de Buenos Aires y, recientemente, extranjeras, me terminaron de demostrar que la ignorancia es general.
El catalizador de este post es que en estos días me tocó auditar una aplicación web provista por una importante empresa de Brasil. Lo raro no fue encontrar que el sitio era vulnerable a distintos ataques, sino que al entablar conversaciones con los desarrolladores encontré la mayor ignorancia en seguridad que vi en estos tres años. No tenían absolutamente idea de nada relacionado a seguridad web, no habían escuchado ni nombrar ataques de SQL Injection, XSS, XSRF, ni OWASP, ni mucho menos prepared statements o como escapar caracteres HTML, NADA! En la conferencia que tuvimos tuve que improvisar una suerte de cátedra en seguridad Web. Realmente se hace muy muy difícil que alguien entienda los riesgos de lo que estas exponiendo si no tienen idea de lo que estás tratando. Decían que yo era un genio por lo que había descubierto y que el 99.9% de la gente no podría encontrar esos errores... si bien me sentí alagado, me causó mucha gracia, dado que las técnicas que emplee eran tan simples que cualquiera siguiendo un tutorial de la web podría hacerlo.
En una era donde todo está informatizado y poco a poco todo se va moviendo hacia servicios cloud, tener tanta información en la web en manos de desarrolladores que no tienen ni idea de cómo protegerla, o peor aún, no les interesa, realmente da miedo.
Por favor, si estás leyendo esto y sos desarrollador, toma conciencia, capacitate en seguridad, como mínimo date una vuelta por la web de OWASP. La seguridad es MUY fácil de implementar, y aprender, sólo necesitas saber conceptos básicos, no necesitas ser un experto en el tema, basta con estar interesado en mejorar como programador.
Yo seguiré aportando mi granito de arena desde este blog y dando conferencias donde pueda, espero lograr aunque sea un pequeño cambio. Algo es seguro, ninguna empresa que haya desarrollado para la empresa que trabajo se olvidará de los conceptos que les enseñé y sabrán que mientras esté ahí no podrán obviar la seguridad en sus programas, así me hayan odiado por ello =)
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
Mira en donde estudio hace unos meses le mencione a un profesor (ingeniero en sistemas) la palabra backdoor... y me dijo "repetime? no te entiendo" cuando le dije... haa pero eso no pasa casi nunca.
Con la misma persona le dije por que determinadas aplicaciones que el mismo desarrollaba trabajaban en un entorno de usuario admin y me dijo que no hace falta poner limites... sino la app no funciona y lo importante es que funcione.
Yo un simple estudiante procuro buscar security en los entornos que trabajo.
Saludos
Es muy triste, pero en la universidad a la que asistí sucede algo similar, nadie sabe de seguridad. Incluso estuvieron armando una carrera nueva de software y no querían incluir seguridad como una de las materias! obvio, después que se les puede pedir a los estudiantes que se reciben, si los profesores carecen del conocimiento.
Algo por lo que estoy luchando es por recortar la distancia entre lo académico y la realidad, porque los profesores no viven en la realidad, sino encerrados en su ambiente académico.
Gracias por compartir tu experiencia!
Es lamentable!
Muy buen blog, maestro... De mis preferidos en mi larga lista de feeds de seguridad!
Gracias por compartir y por no mezquinar info!
:)
Saludos,
Juan.
Publicar un comentario