El proceso de desarrollo de software requiere un conjunto de conceptos, una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de vida del software que comprende cuatro grandes fases: concepción, elaboración, construcción y transición.
ETAPAS EN EL ANÁLISIS DE SEGURIDAD DEL SOFTWARE DESARROLLADO
Análisis: En esta etapa, se deben identificar aquellos requerimientos funcionales que tendrán impacto en los aspectos de seguridad de la aplicación
Diseño: hay numerosos aspectos de seguridad que deben ser tenidos en cuenta durante el diseño de la aplicación. Algunos de ellos son:
- Diseño de autorización
- Diseño de autenticación
- Diseño de los mensajes de error
- Diseño de los mecanismos de protección de datos
Codificación: Es en este punto en donde suelen incorporarse, por error u omisión, distintos tipos de vulnerabilidades. Estas vulnerabilidades se dividen en dos grandes grupos a saber: vulnerabilidades clásicas y vulnerabilidades funcionales.
Testing: La labor de Testing/QA fue la de encontrar y reportar errores funcionales de la aplicación o software desarrollado.
Puesta en producción: En este punto se deben contemplar tareas tales como: cambio de usuarios y contraseñas iniciales o por defecto, borrado de datos de prueba y cambio de permisos de acceso
TÉCNICAS PARA PROBAR EL SOFTWARE
En general las técnicas para probar en software se dividen en dos categorías:
Técnicas de Evaluación Estáticas: Buscan faltas sobre el sistema en reposo. Así pues, estas técnicas se pueden aplicar, tanto a requisitos como a modelos de análisis, diseño y codificación.
Técnicas de Evaluación Dinámicas: Generan entradas al sistema con el objetivo de detectar fallos, cuando el sistema ejecuta dichas entradas. La aplicación de técnicas dinámicas es también conocida como pruebas de software o testing y se aplican generalmente sobre código puesto que es, hoy por hoy, el único producto ejecutable del desarrollo