METODOLOGÍAS PARA DESARROLLAR SOFTWARE SEGURO
El desarrollo seguro de software es un modelo de trabajo que se basa en la realización de chequeos de seguridad continuos del proyecto en construcción, incluso desde sus fases iniciales y antes de que se escriba una sola línea de código. Estas pruebas se centran en descubrir y corregir cualquier error en una etapa temprana, y comprenden test de autentificación, autorización, confidencialidad, no repudio, integridad, estabilidad, disponibilidad o resiliencia.
El objetivo es, al fin y al cabo, asegurarnos de que impediremos el acceso al programa y a los datos almacenados por parte de usuarios carentes de permiso. La lista de ciber amenazas es larga y se nutre constantemente de nuevos peligros como virus, troyanos, phishing, malware, bombas lógicas, screen scraping, amenazas avanzadas persistentes (APT),ransomware, spyware y muchos más solo basta con leer el reporte en la web del proyecto OWASP, que actualiza continuamente.
SQL Injection: Ocurre cuando una tercera parte inserta fragmentos de código intruso en, por ejemplo, el campo de entrada de un formulario. Esto le franqueará el acceso a la base de datos de la víctima.
XSS (Cross Site Scripting): Se basa en la inyección de scripts dentro de una web usando HTML, JavaScript u otro lenguaje de codificación. El script se ejecutará en el navegador del cliente con el fin de espiar sus sesiones, redirigirlo a sitios web dañinos, sustraer su información personal o manipular su actividad.
Ataques de denegación de servicios (DDoS): Tienen lugar cuando una red de dispositivos lanza un ataque simultáneo, realizando una solicitud masiva de peticiones que el servicio se ve incapaz de atender.
Metodologías para el desarrollo de software seguro
La manera en que se desarrolla software ha evolucionado, desde la forma de “code and fix” (codificar y después arreglar), en la que un equipo de desarrollo tiene la idea general de lo que quiere desarrollar, pasando a metodologías formales (RUP, Proceso Unificado, PSP/TSP, entre otras) en las que existe una planeación detallada del desarrollo, desde la elicitación, documentación, requerimientos, diseño de alto nivel y la inspección (Vanfosson, 2006).
Existen varias metodologías que establecen una serie de pasos en búsqueda de un software más seguro y capaz de resistir ataques. Entre ellas se encuentran
- Correctness by Construction (CbyC)
- Security Development Lifecycle (SDL)
- Cigital Touchpoints
- Common Criteria
- Comprehensive
- Lightweight Application Security Process (CLASP)
- TSP-Secure.
- Amey, P. (2006). Correctness by Construction. Consultado el 29 de septiembre del 2013, en https://buildsecurityin.us-cert.gov/articles/knowledge/sdlc-process/correctness-by-construction
- Brito, E. (2010). A (Very) Short Introduction to SPARK : Language , Toolset , Projects , Formal Methods & Certification (pp. 479–490). Portugal: INForum 2010 - II Simpósio de Informática.
- Croxford, M., & Chapman, R. (2005). Correctness by Construction : A Manifesto for High-Integrity Software. The Journal of Defense Software Engineering, 18(12), 5–8.
Comentarios
Publicar un comentario