El listado de las Top 25 errores de software más peligrosos publicado por CWE/SANS en el 2011 es una lista de los errores más generalizados y críticos que puede llevar a una vulnerabilidad en el software. A menudo son fáciles de encontrar o fáciles de explotar. Son peligrosos porque con frecuencia permitirá a los atacantes tomar por completo el software, robar datos o causan que el software funcione en absoluto.
Esta lista es una ayuda para educar y tomar conciencia de los tipos de vulnerabilidad que afectan a la industria del software, identificando y evitando la mayoría de estos errores más comunes que se producen incluso antes de que el software sea lanzado.
Esta lista es un resultado de la colaboración entre el instituto SANS, MITRE y las compañías lideres en seguridad en Europa y USA. MITRE administra el sitio web de CWE, con el apoyo de la división de Seguridad Nacional Cibernética del departamento de Seguridad Nacional de USA, en el cual presenta una descripción detalla de los Top 25 principales errores de programación.
Lista de los Top 25 errores de programación
- Inadecuada neutralización del uso de comandos SQL inadecuado (SQL Injection)
- Inadecuada neutralización del uso de comandos del Sistema Operativo (OS Command Injection)
- Copia de buffer sin verificación del tamaño de entrada (Buffer Overflow)
- Inadecuada neutralización del uso de escript en el cliente
- Acceso a páginas de función crítica sin verificar el acceso
- Falta de autorización
- Uso de credenciales escritas en el código
- Falta de encriptación de datos sensibles
- Carga de archivos peligrosos al sistema sin restricción
- Confiar en ingresos no verificados para información de Verificación
- Ejecución de funcionalidad sin tener privilegios
- Falsificación del elemento Request en el website
- Inadecuada restricción de acceso a directorios restringidos
- Descarga y uso de código sin la respectiva validación
- Autorizaciones incorrectas
- Inclusión de funcionalidad en el código de lugares no seguros
- Permisos inadecuados para el uso de recursos críticos
- Uso de funciones potencialmente peligrosas
- Uso de un algoritmo de encriptación roto o con riesgo
- Calculo incorrecto del tamaño del buffer
- Restricción inadecuada de intentos de autenticación excesivos
- Redirección de URL a site no confiables
- Formatos de String no controlados
- Ingreso no adecuado de enteros u otros valores númericos
- Uso de cifrado de claves sin dificultad
Artículo basado en Top 25 Most Dangerous Software Errors. Desde mi punto de vista, esta lista es una lista de verificación obligatoria a ser considerada en el desarrollo de software.
¿Que otras consideraciones se deben tener al desarrollar software? ¿Que otros errores incluiríaen esta lista?