Pentesting: hackeando sistemas por un bien común
Definimos una prueba de penetración como una práctica ética de ciberseguridad cuyo fin es descubrir, estudiar y remediar vulnerabilidades dentro de una red de sistemas informáticos. El sentido detrás de las pruebas de penetración es que recurre a las mismas tácticas y argucias que los ciberdelincuentes para atacar un sistema informático. De esta forma, los ingenieros podrán cerciorarse del grado de resistencia de los protocolos de ciberseguridad establecidos a la hora de responder eficazmente ante amenazas potenciales.
En este artículo de EducaOpen te hablaremos sobre los diferentes tipos de pruebas de penetración que hay y cómo los equipos de ciberseguridad las ponen en práctica en su espacio de trabajo. Además, si te interesa formarte en ciberseguridad, te recomendamos que le eches un vistazo a nuestro catálogo de másteres en ciberseguridad.
Tipos de pruebas de penetración
Según el software o el aspecto de la red en la que nos queramos centrar, podemos categorizar los tipos de pruebas de penetración de la siguiente forma:
Pruebas de red
Se centran en identificar vulnerabilidades en la infraestructura de red, como:
- Enrutadores: Explotación de vulnerabilidades de firmware o configuración para obtener acceso no autorizado.
- Conmutadores: Suplantación de direcciones MAC o ataques de denegación de servicio (DoS) para interrumpir el tráfico.
- Firewalls: Escaneo de puertos y protocolos para encontrar rutas de acceso no autorizadas.
- Dispositivos inalámbricos: Intercepción de datos o ataques de fuerza bruta contra claves WPA/WPA2.
Pruebas de aplicaciones
Evalúan la seguridad de aplicaciones web, móviles y de escritorio. Se buscan vulnerabilidades como:
- Inyección SQL: Manipulación de consultas a la base de datos para obtener acceso no autorizado a datos confidenciales.
- Cross-site scripting (XSS): Inyección de código JavaScript malicioso en páginas web para robar cookies o redirigir a usuarios.
- Cross-site request forgery (CSRF): Engañifas a usuarios para que realicen acciones no autorizadas en aplicaciones web.
- Vulnerabilidades de autenticación: Contraseñas débiles, falta de autenticación de dos factores o errores en la gestión de sesiones.
Pruebas de ingeniería social
Se basan en la manipulación psicológica para obtener información sensible o acceso a sistemas. Algunas técnicas son:
- Phishing: Envío de correos electrónicos o mensajes fraudulentos para engañar a usuarios y obtener sus credenciales.
- Baiting: Dejar dispositivos infectados o memorias USB en lugares públicos para que usuarios los recojan y los conecten a sus equipos.
Pruebas en la nube
Se enfocan en la seguridad de plataformas y servicios en la nube, como:
- Amazon Web Services (AWS): Búsqueda de configuraciones erróneas de permisos o vulnerabilidades en los servicios S3 o EC2.
- Microsoft Azure: Vulnerabilidades en la infraestructura de Azure o en las aplicaciones desarrolladas para la plataforma.
- Google Cloud Platform (GCP): Análisis de la seguridad de los contenedores de Google Kubernetes Engine o de las bases de datos Cloud SQL.
Pruebas de hardware
Evalúan la seguridad del hardware de los dispositivos, como:
- Impresoras: Intercepción de datos sensibles o manipulación del firmware para obtener acceso no autorizado.
- Smartphones: Ataques a través de interfaces USB o Bluetooth, o análisis de vulnerabilidades en el sistema operativo del dispositivo.
- Dispositivos IoT: Vulnerabilidades en el firmware o en la configuración de dispositivos como routers, cámaras IP o smart TV.
Caja negra vs. caja blanca vs. caja gris
El hecho de que el tester conozca en menor o mayor medida cómo están construidas las redes informáticas de la empresa y sepa dónde se aloja la información puede hacer que los resultados del pentesting varíen enormemente. En este aspecto, diferenciamos entre caja negra (black box), caja blanca (white box) y caja gris (grey box).
Caja blanca
La prueba de penetración de caja blanca consiste en compartir con el tester toda la información del sistema, como los mapas de redes y las credenciales (contraseñas, IP, etc.). De esta forma, podemos evaluar de forma más directa y certera las medidas de ciberseguridad de un sistema en su totalidad en un menor tiempo. También es útil para simular un ataque cibernético si proviniese de alguien de dentro de la empresa.
Pentesting de caja negra
Al contrario que en la caja blanca, en el pentesting de caja negra, al tester no se le proporciona ninguna información, como si fuera un atacante totalmente anónimo. Así pues, el tester se las tiene que apañar para poder franquear todos los controles de seguridad y obtener las credenciales necesarias para detectar alguna vulnerabilidad. Aunque esta opción sea la más cara, es la que más se asemeja a un ataque cibernético real externo.
Pentesting de caja gris
En este caso, ni una cosa ni la otra; se le proporciona al tester información parcial sobre la estructura de red del sistema. Esta táctica se emplea cuando nuestro sistema informático tiene permisos de acceso estratificados por niveles. Con esta, se quiere comprobar hasta qué punto podría navegar un usuario que posea unas determinadas credenciales y descubrir en qué medida podría causar daño en el sistema.
Proceso de pentesting
Si bien todas las empresas tienen sus propios protocolos de pentesting, todas siguen un proceso parecido para planificar, documentar y sacar sus conclusiones de las pruebas de penetración que deciden implementar.
- Planificación y reconocimiento: El primer paso es definir qué se va a evaluar, qué partes de los sistemas o aplicaciones de la empresa, el tipo de pruebas que nos conviene en cada caso y el nivel de profundidad que se quiere explorar. Se recopila información sobre la empresa y sus tecnologías, y se realiza un análisis de riesgos para identificar posibles amenazas y vulnerabilidades.
- Escaneo: Se utilizan herramientas automatizadas para identificar vulnerabilidades en los sistemas y aplicaciones. Posteriormente, se realizan pruebas manuales para verificar las vulnerabilidades encontradas y hasta qué punto podría afectar negativamente al sistema si tuviera que responder ante un ataque.
- Explotación y acceso: Se intentan burlar las medidas de ciberseguridad del sistema a toda costa aprovechando las vulnerabilidades encontradas para obtener acceso a los sistemas y datos confidenciales. Se evalúa el impacto potencial que un atacante podría causar, incluyendo el robo de datos confidenciales, la interrupción del funcionamiento de la red y el perjuicio que sufriría la reputación de la empresa.
- Registro: Se documentan todos los pasos del proceso de pentesting y otros detalles relevantes, como las herramientas y técnicas utilizadas, las vulnerabilidades encontradas y los resultados de las pruebas. Finalmente, se genera un informe con los resultados de las pruebas y las recomendaciones para mejorar la seguridad.
- Automatización de pentesting: Para ahorrar tiempo y mejorar la productividad, se utilizan herramientas de automatización para configurar las mismas pruebas de penetración de forma periódica.
Artículos relacionados
Aprende a crear una clave SSH
El uso de claves SSH (Secure Shell) es una práctica fundamental para garantizar la seguridad y autenticación en la conexión a servidores.
Creación y gestión de formularios con HTML y PHP
Un formulario es una de las herramientas más utilizadas e importante en el desarrollo web, ya que permite recopilar y enviar datos de los usuarios para procesarlos
Sistemas MES: qué es, origen y funciones
Un Sistema de Ejecución de Manufactura (MES, por sus siglas en inglés) es una solución de software que proporciona una visión en tiempo real de los procesos de manufactura