Dentro del desarrollo de aplicaciones web podemos encontrar vulnerabilidades que son comunes y que pueden ser explotadas de forma sencilla, es por eso la importancia de incluir la seguridad en el ciclo de vida del desarrollo de software (SDLC), convirtiéndose en un ciclo de vida de desarrollo de software seguro (SSDLC).
La forma más conveniente de evitar las vulnerabilidades en el desarrollo es la prevención. Los desarrolladores deben de conocer seguridad para evitar que fallas en su código que puedan permitir acceso no autorizado a datos confidenciales por parte de atacantes y, en general, poner en riesgo a la organización.
¿Qué tipos de vulnerabilidades de software existen?
Las vulnerabilidades más comunes dentro del software son las de diseño, implementación y operacionales.
Vulnerabilidades de Diseño
Estas se producen durante las fases de análisis y diseño del ciclo de vida de desarrollo. Cualquier ausencia, deficiencia o debilidad de algún requisito de seguridad se convierte en una vulnerabilidad en el diseño de la aplicación web y que puede ser aprovechada por cualquier atacante. Algunos ejemplos son:
- Uso de protocolos de cifrado de comunicación obsoletos como SSL 2.0.
- Uso de métodos de autenticación inseguros de HTTP.
- Identificador de sesión no protegido.
- Diseño inseguro de la matriz de control de accesos de la aplicación.
- Vulnerabilidades en la gestión de contraseñas.
- Vulnerabilidades en el backup y recuperación
Vulnerabilidades de Implementación
Es importante validar las entradas y salidas de las aplicaciones para evitar alguna vulnerabilidad o detectarla a tiempo y poder corregirla. Algunas vulnerabilidades de este tipo son:- Validación de entrada en el código en el servidor, como SQLinjection, Cross Site Tequest Forgery, Path Traversal, etc.
- Validación de entrada y salida del lado del cliente. Json Hijacking que se pueden encontrar en aplicativos con AJAX y que usen JSON
- Implementación de la validación de la salida en el servidor como XSS.
Vulnerabilidades de operación
Estas pueden ser de varios tipos.
- Mala gestión en la seguridad de las configuraciones.
- Mala gestión de los permisos en los recursos utilizados.
- Mala gestión de usuarios.
Todas las vulnerabilidades anteriores son solo algunos ejemplos que pueden llevar a comprometer la aplicación de una empresa y poner en riesgo la confidencialidad, integridad y disponibilidad de la información. Si requieres más información sobre esto, puedes leer el OWASP Top Ten.
Existe una lista de proyectos que apoyan en la clasificación de vulnerabilidades, algunas de ellas son:
Cualquiera de ellas puede ayudarte a mejorar la seguridad en las aplicaciones y si es que detectas vulnerabilidades asociadas a alguna clasificación, podrás obtener apoyo para corregir las debilidades.
Al final, depende de que se incluya la seguridad en tu desarrollo desde el inicio para poder disminuir las vulnerabilidades que pueda tener tu aplicativo y reducir el riesgo de que sufra algún ataque exitoso.
0 Comentarios
¿Qué te pareció esta lectura?.
EmojiNos interesa saber tu opinión. Deja un comentario.