Módulo 1
Vulnerabilidades de la Infraestructura
Última actualización en: 19 Septiembre 2024
Editar esta página en GitHubMódulo 1
Última actualización en: 19 Septiembre 2024
Editar esta página en GitHubSi bien esta Ruta de Aprendizaje se centra en la seguridad de las aplicaciones web, las aplicaciones web se ejecutan sobre numerosas piezas de infraestructura de software. Cualquier vulnerabilidad en la infraestructura subyacente de la aplicación pondrá en peligro la aplicación. Por lo tanto, comprender cierta seguridad de la infraestructura es parte de comprender la seguridad de las aplicaciones.
Al inspeccionar una aplicación web, ya sea con fines de evaluación de vulnerabilidades, monitoreo de seguridad o para investigar un compromiso, el profesional debe comprender la tecnología subyacente que proporciona el entorno necesario para que la aplicación se ejecute mientras busca vulnerabilidades en esa pila.
Después de completar este subtema, el profesional debe ser capaz de hacer lo siguiente:
Los sitios web no existen sin algún software y hardware subyacente que se encargue de las operaciones de bajo nivel de manejo de solicitudes que sirven el contenido web. Esto incluye el hardware y el firmware subyacentes, el sistema operativo, el software del servidor web, los marcos de las aplicaciones web e incluso el software no relacionado que se ejecuta en la máquina. La seguridad de una aplicación web depende de la seguridad de esta infraestructura, incluso si los desarrolladores del sitio web pueden tener poca visibilidad o control sobre esta infraestructura. Las vulnerabilidades de infraestructura generalmente afectan a una gran cantidad de sitios web (posiblemente cientos de millones) y, a menudo, se les asignan identificadores como CVE (para obtener una introducción más general a lo que son los CVE, consulte este artículo). Estas vulnerabilidades podrían pertenecer a casi cualquier clase técnica, pero desde el punto de vista de un operador de sitio web, sólo nos preocupamos por su impacto, no por los detalles técnicos subyacentes. Esto se debe a que no mantenemos el software de infraestructura, simplemente lo implementamos y configuramos.
El impacto de una vulnerabilidad en el software de infraestructura puede ser casi cualquier cosa, pero algunos problemas e impactos que probablemente surjan incluyen los siguientes tipos.
Negación de servicio (DoS)
Una vulnerabilidad puede permitir que un atacante bloquee un servidor web o haga que no responda debido al consumo excesivo de recursos. Estas vulnerabilidades generalmente se explotan para desconectar un sitio web o para extorsionar a los operadores de sitios web como parte de una funda de protección. Tenga en cuenta que un atacante decidido y financiado con frecuencia puede alquilar tiempo en una botnet de computadoras comprometidas para simplemente abrumar un sitio web con una gran cantidad de solicitudes; no se requiere vulnerabilidad. Algunos ejemplos de vulnerabilidades DoS incluyen:
Ocasionalmente, se puede obligar a un servidor web a devolver datos excesivos en una respuesta. Normalmente, esto se debe a que el servidor asigna una gran cantidad de memoria, luego escribe datos solo parcialmente en esa parte y envía la parte completa al cliente. Esta memoria no inicializada podría contener datos de otras solicitudes o respuestas, o incluso de la memoria interna del servidor web. La más famosa de estas vulnerabilidades es probablemente Heartbleed (CVE-2014-0160). Estas vulnerabilidades se pueden utilizar para robar tokens de sesión (que permiten a los atacantes hacerse pasar por otros usuarios), identidades de máquinas en entornos de nube (que permiten a los atacantes acceder a otros servicios en la nube como el servidor web), claves SSL privadas (que permiten a los atacantes hacerse pasar por el servidor web y ejecutar ataques de intermediarios) y cualquier otro dato que resida en la memoria del proceso del servidor web.
Este es el tipo más arquetípico de vulnerabilidad de infraestructura. Ocurre con mayor frecuencia cuando la solicitud de un atacante puede sobrescribir las estructuras de control de flujo de datos en la memoria del servidor, lo que hace que el objetivo ejecute código de máquina especificado por el atacante. Afortunadamente, años de pruebas y correcciones posteriores y mejoras en las prácticas de codificación segura han hecho que estas vulnerabilidades se clasifiquen en las configuraciones predeterminadas de software de infraestructura de servidor extremadamente obsoleto como Apache e IIS. Sin embargo, son mucho más comunes en configuraciones no predeterminadas de software común y en software menos obsoleto. Aquí hay dos ejemplos de 2023 (ejemplo 1, ejemplo 2). Tenga en cuenta que, si bien los desbordamientos del búfer pueden ser la forma clásica de lograr la ejecución remota de código, también existen otras formas de hacerlo. Como ocurre con todas las vulnerabilidades de infraestructura, en su mayor parte lo que más nos preocupa es cuál es el impacto y si hay una solución disponible, y menos los detalles técnicos.
El software de infraestructura con vulnerabilidades generalmente se descubre mediante software de escaneo de vulnerabilidades (hay muchos ejemplos de dicho software, consulte esta lista), notificaciones de proveedores o sistemas de gestión de configuración, o mediante inspección manual del software implementado en un servidor. Dependiendo del entorno del servidor, este software puede ser administrado completamente por un tercero, actualizado automáticamente mediante agentes de software o procesos de implementación, o administrado manualmente. Normalmente, si se parchea una vulnerabilidad, los atacantes pueden realizar ingeniería inversa al parche para descubrir el mecanismo de la vulnerabilidad subyacente, por lo que es importante mantener actualizado el software de la infraestructura.
El concepto de CVE
GratisUna buena introducción a qué son las CVE (vulnerabilidades y exposiciones comunes) y por qué son importantes
CVE con una puntuación de vulnerabilidad de 9.8, recurso 1
GratisA continuación se muestran dos ejemplos de CVE que tenían puntuaciones de vulnerabilidad muy altas, lo que significa que los atacantes que las explotaran podrían causar mucho daño
CVE con una puntuación de vulnerabilidad de 9.8, recurso 2
GratisA continuación se muestran dos ejemplos de CVE que tenían puntuaciones de vulnerabilidad muy altas, lo que significa que los atacantes que las explotaran podrían causar mucho daño
OpenCVE
GratisUn sitio web (y una herramienta independiente) que le permite suscribirse a CVE que afectan a diferentes proveedores. Tenga en cuenta que no todas las vulnerabilidades reciben CVE.
Escaneo de vulnerabilidades SAFETAG
GratisUna guía para el escaneo de vulnerabilidades que utiliza la metodología SAFETAG y contiene muchas actividades discretas.
Herramientas de Escaneo de Vulnerabilidades
GratisUna lista de herramientas automatizadas que los protectores digitales pueden utilizar para buscar vulnerabilidades dentro de las aplicaciones web. Diferentes herramientas funcionan para diferentes casos de uso y tienen diferentes modelos de precios, siendo muchas de ellas fuente abierta.
Busque 2 CVE que figuran en https://www.opencve.io/cve u otra base de datos CVE. Elija aquellos que se describan con cierta profundidad (las bases de datos CVE generalmente enlazan con artículos externos que contienen dichos detalles) y que tengan una clasificación de vulnerabilidad. Dado que los CVE a menudo pueden ser muy técnicos, seleccione aquellos que aborden un tema o tecnología con el que se sienta cómodo. Responde las siguientes preguntas:
Después de haber buscado dos CVE que le parecieron interesantes, realice una búsqueda en una base de datos de CVE de un producto tecnológico que usted o las personas a las que brinda soporte estén ejecutando, vea qué CVE recientes tenía y una vez más responda las preguntas enumeradas anteriormente.
Si usted mismo aloja un servidor web, busque vulnerabilidades recientes. Si está ejecutando algo como Drupal o Wordpress a través de un proveedor externo, verifique también las vulnerabilidades en esos servicios y, a través del panel de control de su proveedor (cada proveedor tendrá uno ligeramente diferente), asegúrese de estar ejecutando las últimas versiones de esas herramientas.
Si es posible, discuta sus respuestas a esas preguntas con un compañero o mentor que lo ayudará a verificar que haya entendido correctamente el tema.
¡Felicidades por terminar Módulo 1!
Marque la casilla para confirmar su finalización y continúe al siguiente módulo.
Marca el módulo actual como completado y guarda el progreso para el usuario.
Has completado todos los módulos en este camino de aprendizaje.