Los Ingenieros de Prueba de Seguridad (IPS) deben aplicar diferentes tipos de pruebas según el contexto específico del sistema bajo prueba (SSP). En una de las secciones del programa de estudios del ISTQB (sección 2.1) se detallan dos clasificaciones principales para estas técnicas:
- por su conocimiento del sistema (caja negra, gris y blanca)
- y por la naturaleza de su ejecución (estática y dinámica)
2.1.1. Prueba de caja negra, prueba de caja blanca y prueba de caja gris
Esta subsección clasifica los tipos de prueba en función del nivel de conocimiento que el tester tiene sobre la estructura interna del sistema. La elección de la técnica adecuada depende de los objetivos de la prueba y de la información disponible sobre el sistema.
- Prueba de Caja Negra: Se realiza sin conocimiento de la estructura interna del sistema. El probador se enfoca en las interfaces externas del sistema y las interacciones con el usuario, intentando hallar vulnerabilidades como lo haría un atacante externo, sin tener acceso al código fuente o la arquitectura.
- Prueba de Caja Blanca: En este enfoque, el IPS tiene acceso completo a la información interna del sistema bajo prueba, incluyendo su arquitectura, código fuente, flujos de datos, y mecanismos de autenticación. Este conocimiento le permite realizar pruebas exhaustivas y dirigidas, analizando el funcionamiento interno para descubrir fallos y vulnerabilidades de seguridad que podrían no ser visibles desde el exterior.
- Prueba de Caja Gris: Es una metodología híbrida que se sitúa entre la caja negra y la caja blanca. El tester cuenta con un conocimiento parcial de la estructura interna y los detalles de implementación del SSP. Ejemplos de esta información limitada incluyen mapas de direccionamiento de red parciales, documentación de arquitectura incompleta o acceso como un usuario interno. Este enfoque es valioso porque simula el comportamiento de un atacante que ha logrado obtener información inicial sobre el sistema, pero aún no tiene acceso total.
La elección entre estos enfoques es una decisión estratégica para el IPS, que debe considerar la profundidad de las pruebas requeridas y si el objetivo es simular amenazas externas o internas.
Aquí te comparto una herramienta más para que la pruebes y evalúes si te ayuda a mejorar tu aprendizaje: NotebookLM – Tarjetas Didácticas.
2.1.2. Prueba de seguridad estática y dinámica
Esta subsección distingue las pruebas de seguridad según el estado del sistema: si está en reposo o en ejecución. Ambas son cruciales para proteger el sistema a lo largo de su ciclo de vida.
- Prueba de Seguridad Estática: Se realiza sin ejecutar la aplicación o sistema. El IPS revisa el código fuente y otros artefactos de trabajo, como la documentación de análisis de riesgos, los requisitos de seguridad y la configuración de la infraestructura. El objetivo es encontrar defectos de seguridad que a menudo están relacionados con la falta de diseño seguro. Los mecanismos de seguridad que se revisan incluyen la gestión de usuarios, la autenticación, la autorización, la confidencialidad, la integridad y la seguridad en el transporte. Esta prueba es una forma de «desplazamiento a la izquierda» en el ciclo de desarrollo, permitiendo la detección temprana de problemas.
- Prueba de Seguridad Dinámica: Se lleva a cabo con el sistema en ejecución. El objetivo principal es verificar que las funciones de seguridad se han implementado correctamente y no pueden ser eludidas. Se puede realizar mediante pruebas de caja negra y, en el contexto de la integración continua/entrega continua (CI/CD), puede funcionar como un escáner de seguridad o de vulnerabilidades. El material sugiere realizar pruebas dinámicas en diferentes entornos (desarrollo, prueba/preproducción y producción). En el entorno de producción, las auditorías de seguridad son esenciales para mantener el sistema seguro y verificar que las vulnerabilidades conocidas han sido corregidas.
La integración de ambas pruebas, estática y dinámica, es fundamental para una estrategia de prueba de seguridad robusta. La prueba estática detecta problemas en la fase de diseño y codificación, mientras que la dinámica valida la funcionalidad y el comportamiento de seguridad en tiempo real, proporcionando una visión integral de las defensas del sistema.
Pregunta que me hice en su momento: ¿No se superponen las categorás?
Las pruebas de caja negra y caja gris casi siempre se ejecutan de forma dinámica. La clave para entender esto es que no son clasificaciones opuestas, sino dos formas diferentes de categorizar el mismo tipo de prueba en función de criterios distintos.
- La clasificación por conocimiento del sistema (caja negra, gris, blanca) responde a la pregunta: «¿Qué tanto sé sobre la arquitectura y el código del sistema?» Este es el enfoque del tester.
- La clasificación por estado del sistema (estática, dinámica) responde a la pregunta: «¿El sistema está en ejecución o en reposo?» Este es el momento o naturaleza de la prueba.
Por lo tanto, una prueba de seguridad puede tener ambos «apellidos». Un tipo de prueba muy común en el ámbito profesional es la prueba de penetración, que se puede describir como una prueba dinámica (el sistema está en ejecución) y de caja negra (el tester no tiene acceso al código interno).
Aquí hay una tabla que combina las dos clasificaciones para mayor claridad:
Tipo de Prueba | Conocimiento del Sistema | Estado del Sistema | Ejemplo de uso |
Análisis de Código | Caja Blanca | Estático | Revisar el código fuente en busca de vulnerabilidades antes de la compilación. |
Análisis de Vulnerabilidades | Caja Gris | Dinámico | Escanear una aplicación web en un entorno de desarrollo. |
Pruebas de Penetración | Caja Negra | Dinámico | Simular un ataque externo a una aplicación en producción para encontrar puntos de entrada. |
Revisión de Requisitos de Seguridad | Caja Blanca | Estático | Revisar los documentos del proyecto para asegurar que los requisitos de seguridad están completos y bien definidos. |
En resumen, no son categorías excluyentes, sino dimensiones complementarias que describen completamente una actividad de prueba de seguridad. Un tester elige su enfoque (cuánto conocimiento tendrá) y decide cuándo y cómo aplicarlo (estáticamente o dinámicamente).
Fuente de consulta/estudio/inspiración: Programa de estudios ISTQB CT-STE (v2.0 31/01/2025)