Interesante estudio de varios
investigadores del Virginia Tech, en el que ponen en entredicho la calidad del
código que podemos encontrar en sitios como StackOverflow y similares, desde el
punto de vista de la seguridad.
Todo aquel que ha tenido que
tirar alguna que otra línea de código (programar), se habrá encontrado en una
situación en la que necesitaba la ayuda de alguien para soslayar un problema
determinado. “¿Cómo implemento una conexión SSL?”, “¿Cómo hago para comprobar
la validez de un certificado x.509?”, “¿Por qué no estudié gastronomía en vez
de informática?”.
A menudo, un golpe de buscador nos
arroja un listado de recursos sobre los que indagar en la implementación que “encaje”
en nuestro código y lo haga funcionar. Sobre esta suerte de mecanismo de
consultoría exprés se ha abusado tanto que incluso algunos gestores han llegado
a creer que programar se reduce a buscar un trozo de código y pegarlo en un
editor de texto (naturalmente, el Notepad).
Esa creencia, tanto por parte de la
dilatada imaginación de algunos gestores como de la poca pericia de algunos
junta-palabras-reservadas, hace que se construya una falsa concepción de lo que
significa el sacro arte del diseño y programación de computadores digitales
basados en la arquitectura Von Newmann (o en la Harvard). Es tan de chiste la
cosa, que incluso existen librerías que atrapan una excepción y te buscan la
traza en StackOverflow para que directamente copies la mejor respuesta. Verlo
para creerlo.
![]() |
Imagen de: https://github.com/gautamkrishnar/tcso |
¿Cuál es el problema?
Basado en el estudio sobre las
preguntas y respuestas dadas en torno al lenguaje y plataforma Java, los
investigadores han encontrado multitud de errores en respuestas populares que
contienen vulnerabilidades de seguridad. El problema, señalan, no se encuentra
en las librerías usadas –que no deja de ser reutilización legítima de código-,
sino en que estas no se usan de forma segura, dando lugar a la exposición de
riesgo por falta de pericia en su uso.
Hay ejemplos de todo tipo, como sugerir
deshabilitar la protección contra ataques CSRF del framework Spring para resolver un problema en la autenticación o auténticas chapuzas glorificadas acerca de la
implementación correcta de criptografía en la aplicación, como la generación de
claves sin la entropía adecuada o uso de algoritmos ya desfasados y retirados
desde hace mucho, mucho tiempo.
No nos confundamos. StackOverflow
es un recurso maravilloso para un programador; incluso debería tener su propia
festividad en el calendario. En él puedes encontrar librerías, consejos,
experiencias y algoritmos que jamás hubieses encontrado de no ser porque un
colega ya lo ha hecho antes que tú. Lo que realmente sugieren en este estudio
es que todo, absolutamente todo, ha de ser pasado por el filtro del sentido
común y la capacidad crítica de cada uno. Herramientas que parecen inmunes ante
el virus de la prisitis urgentia.
Cuando ves una respuesta que
tiene más de 10 años en la que se hace uso del hash MD5 para almacenar hashes
de contraseñas, es evidente que no es la respuesta adecuada. Hemos de ser
precavidos, levantar el pie del acelerador y observar con detenimiento tareas
que son críticas y podrían devenir en quebraderos de cabeza en un futuro. No en
vano, existe código escrito que no ha pasado a revisión en décadas, con
vulnerabilidades que estaban allí y de las que nadie se percató.
¿Os acordáis del infame ‘gotofail’?
Más información:
Secure Coding Practices in Java: Challenges and Vulnerabilities:
No hay comentarios:
Publicar un comentario