Los 25 errores de programación mas peligrosos
Posted on February 16th, 2009 in ArtÃculos, Programación | No Comments »

CWE/SANS nos ofrece la lista de los 25 errores de programación mas peligrosos que pueden provocar serias vulnerabilidades en nuestro software. Ocurren frecuentemente, se encuentran fácilmente y se pueden explotar sin problemas.Estas vulnerabilidades pueden provocar acceso a nuestros sistemas, robo de información o baja en el servicio.
El objetivo es educar a los programadores a eliminar estos errores comunes para ofrecer software con mayor calidad y seguridad. Les recomiendo leerlo a detalle y tenerlo como referencia.
Cada uno de los puntos cuenta con información muy detallada incluyendo descripción detallada, parámetros, ejemplos, mitigadores y mucha otra información. Esto nos permite no solamente conocer a detalle la vulnerabilidad sino que nos permite justificar su importancia e impacto.
Interacción insegura entre componentes.
1. Validación incorrecta de datos.
2. Manejo incorrecto de la salida de datos.
3. Falla de mantener la estructura de un Query SQL (Sql Injection).
4. Falla al preservar la estructura de la página web (XSS)
5. Falla en mantener la estructura de los comandos del Sistema Operativo
6. Transmisión de información en texto entre componentes en la red.
7. Manipulación de la identidad del usuario, Cross-Site Request Forgery (CSRF)
8. Manipulación de un proceso para afectar los demás procesos corriendo.
9. Filtrar información en mensajes de error.
Administración de recursos riesgosa.
10. Errores de sobrecarga del buffer de la memoria.
11. Manipulación de información sobre el estado de una sesión
12. Control externo en el nombre de archivos o dirección.
13. Manipulación del Path
14. Fallas de control al momento de generar código
15. Descarga de código sin comprobación de integridad
16. Manejo incorrecto de liberación de recursos
17. Inicialización incorrecta de datos
18. Cálculos incorrectos
Fallas en las defensas existentes
19. Falla en la Autorización
20. Usar un algoritmo de encriptación con fallas o débil.
21. Contraseñas “Hard-Codeadas”
22. Asignación insegura de permisos para el acceso de recursos crÃticos
23. Uso de valores aleatorios insuficientes
24. Ejecución con privilegios insuficientes
25. Comprobar la seguridad solamente en el cliente.
Al finalizar denle una checada a la página del CWE (Common Weakness Enumeration) ya que contiene muchos recursos útiles sobre vulnerabilidades.


