Las pruebas de penetración se pueden definir como un intento legítimo y autorizado de encontrar yexplotar vulnerabilidades de seguridad en los sistemas informáticos para mejorar la seguridad de estos sistemas. Este proceso incluye probar vulnerabilidades, así como proporcionar evidencia completa de un ataque de "vulnerabilidad". POC (prueba de concepto). Esto es para confirmar que los errores de seguridad notificados son utilizables. Además, las pruebas de penetración terminan con recomendaciones específicas. Estos incluyen cómo corregir los errores detectados durante una prueba. En resumen, este proceso está diseñado para ayudar a proteger los equipos y las redes de futuros ataques. Las pruebas de penetración también se conocen bajo nombres como pentesty, PT, Hacking,Ethical Hacking,White Hat Hacking. Una selección importante es ver la diferencia entre las pruebas de penetración y la evaluación o auditorías de riesgos. El auditor le pregunta "¿tiene copias de seguridad?" y el pentester le informa, "tenemos sus copias de seguridad" ????. Muchas personas (y empresas) de la comunidad de seguridad utilizan estas nociones indistintamente.La evaluación de riesgos es un proceso de revisión de servicios y sistemas que se centra en posibles problemas de seguridad, mientras que las pruebas de penetración a través de la explotación y los ataques reales indican errores de seguridad que realmente existen. La realización de pruebas de penetración va más allá de la evaluación de vulnerabilidades mediante la simulación de la actividad de los piratas informáticos y la entrega de vectores de ataque ya hechos. Las pruebas de penetración se pueden dividir en varias categorías, teniendo en cuenta los siguientes factores:
- el nivel de conocimientos disponibles;
- el alcance de la prueba;
- la composición del equipo de pruebas;
- cómo se llevan a cabo las pruebas;
- ubicación de las pruebas;
- ubicación en el ciclo SDLC (ciclo de vida de desarrollo);
A continuación figura una clasificación de las pruebas de penetración basada en los criterios anteriores: a) el nivel de conocimientos disponibles:
- blackbox – un método en el que el probador tiene una cantidad mínima de información sobre el sistema atacado. Normalmente, esto es sólo información sobre el ámbito de las pruebas. Esto es para simular un ataque de hackeo desde el exterior (el atacante intenta hackear un sistema del que no sabe nada);
- greybox – un método en el que el probador tiene un cierto nivel de conocimiento sobre el sistema, pero sin acceso a los códigos fuente. Normalmente tiene visibilidad en la estructura de datos, por ejemplo, a través de una cuenta de usuario con pocos privilegios que se comparte con él. Este ataque está destinado a simular un ataque de piratería desde dentro de la empresa (el atacante es un empleado de la empresa, o tiene una cuenta en el sistema);
- whitebox – un método en el que la persona de prueba tiene acceso completo a la documentación técnica. Esta prueba está destinada principalmente a revisar el código fuente y localizar errores de seguridad en él;
b) el alcance de la prueba:
- pruebas invasivas, que consisten en simular un ataque real, por ejemplo, modificar datos o bloquear el servicio. Por lo tanto, afectan al funcionamiento del sistema;
- pruebas no invasivas, que son lo contrario de las pruebas invasivas, por lo que no afectan el funcionamiento del sistema. Se basan en la búsqueda de vulnerabilidades sin verificación práctica, por ejemplo, mediante la revisión del código fuente.
c) la composición del equipo de ensayo:
- pruebas realizadas por los empleados internos de la empresa;
- investigación de terceros;
- las pruebas realizadas por composición mixta, es decir, los empleados internos de la empresa y los empleados de un tercero;
d) la forma en que se lleven a cabo las pruebas:
- pruebas periciales, realizadas manualmente, es decir, manualmente por un especialista cualificado;
- pruebas automatizadas realizadas utilizando herramientas dedicadas, por ejemplo, escáneres de red, analizadores de código fuente;
- las pruebas mixtas implicaron pruebas manuales y automatizadas;
e) lugares de ensayo:
- pruebas internas, consisten en simular un ataque desde dentro de la empresa evitando la seguridad como firewalls, la mayoría de las veces utilizando intranets;
- pruebas externas, consisten en simulaciones sobre un ataque externo, por ejemplo, a través de Internet. En este caso, el atacante tiene en su camino para superar los mecanismos de firewall o filtros de aplicación;
f) ciclo de vida del desarrollodel sistema (SDLC):
- pruebas durante el desarrollo de software. el llamado desarrollo basado en pruebas;
- pruebas de aceptación, realizadas en el software ya creado.