ciberseguridad
penetration testing
La identificación de sistemas y servicios vulnerables es un paso crítico en las pruebas de penetración y la evaluación de seguridad. Aquí se describen los pasos generales y algunas herramientas comunes utilizadas para llevar a cabo esta tarea:
💡 Es fundamental que todas las actividades se realicen con el consentimiento del propietario del sistema y en conformidad con las leyes y regulaciones aplicables. Además, los resultados deben ser documentados de manera clara y comunicados al cliente de manera ética y profesional.
Una evaluación de vulnerabilidad analiza y estima los riesgos de las debilidades en seguridad de los sistemas de una organización. Se conocen más de 180.000 vulnerabilidades de seguridad y cada año se descubren nuevas. Con tantas brechas potenciales en la infraestructura y tantas posibilidades de ataque en los sistemas, no es sorprendente que la ciberdelincuencia haya aumentado considerablemente en los últimos años. Sin embargo, cuando se realizan de forma regular y correcta, las evaluaciones de vulnerabilidad pueden actuar como medida preventiva contra estas crecientes amenazas a la seguridad. Hay que considerar que, incluso con defensas de seguridad de primera calidad, los sistemas de información y seguridad de una organización pueden ser atacados, pirateados o secuestrados por los ciberdelincuentes.
Una evaluación de la vulnerabilidad es el proceso de revisión y estimación de todas las posibles debilidades de seguridad en la infraestructura de un sistema de información. Este tipo de evaluación se utiliza para identificar, priorizar y mitigar vulnerabilidades y para minimizar potenciales amenazas a la seguridad. Estas evaluaciones también descubren y analizan las vulnerabilidades dentro del entorno físico de la organización. Los objetivos de una evaluación de la vulnerabilidad pueden desglosarse en tres ideas principales:
Las evaluaciones de vulnerabilidad deben realizarse regularmente, especialmente cuando se instalan nuevos equipos, se añaden puertos o se introducen servicios. Además, las evaluaciones de vulnerabilidad pueden prevenir ataques al sistema en dispositivos -nuevos y antiguos- debido a amenazas como:
💡 En el caso de las organizaciones de riesgo -como los bancos, los sistemas gubernamentales y aquellos que tienen acceso a información personal, como centros sanitarios-, las evaluaciones de vulnerabilidad pueden ayudar a identificar y reducir los puntos débiles antes de que sean explotados por los hackers.
Los diferentes tipos de evaluaciones de vulnerabilidad utilizan herramientas individuales para identificar los puntos débiles del sistema y de la red. Los sistemas independientes pueden necesitar varios tipos de evaluaciones para identificar todas sus posibles vulnerabilidades.
Las evaluaciones de vulnerabilidades y las pruebas de penetración no son lo mismo, pero como las evaluaciones de vulnerabilidad también pueden incluir un test de penetración, ambas pueden confundirse fácilmente. Estas evaluaciones duales se conocen a menudo como evaluación de vulnerabilidades/test de penetración o VAPT, pero no tienen por qué realizarse siempre juntas.
Las pruebas de penetración se utilizan específicamente para encontrar debilidades en el personal, en la organización y en sus procedimientos y es un proceso adicional que puede añadirse a toda la evaluación de la vulnerabilidad. Las pruebas de penetración también intentan crear un daño en una aplicación o red explotando posibles debilidades en un entorno controlado, a fin de demostrar que las vulnerabilidades existen realmente.
Las pruebas de penetración utilizan maniobras tanto automáticas como manuales para comprobar las vulnerabilidades. Esas debilidades luego son analizadas por los investigadores para poder crear protecciones y defensas específicas. Sin embargo, no son suficientes por sí solas y deben ir seguidas de una evaluación completa de la vulnerabilidad.
Si se realiza una evaluación de la vulnerabilidad sin una prueba de penetración, hay cuatro etapas principales.
La identificación es la primera etapa cuando se realiza una evaluación de vulnerabilidades: antes de comenzar un escáner, debes identificar los activos escaneables, incluyendo herramientas populares, como dispositivos móviles, dispositivos del Internet de las Cosas y programas basados en la nube. A continuación, la infraestructura es escaneada por herramientas automatizadas o manualmente por analistas de seguridad. Se elabora un informe de evaluación de vulnerabilidad que describe los puntos débiles identificados.
En la etapa de análisis de una evaluación de vulnerabilidad, el objetivo es encontrar el origen y la causa de cada debilidad. Para identificar la causa raíz, los componentes de la infraestructura que son responsables de cada vulnerabilidad deben ser verificados y analizados más a fondo. En la etapa de análisis también se comprueba si hay sistemas mal instalados o actualizados.
Los escáneres de vulnerabilidad -y sus bases de datos integradas de vulnerabilidades conocidas- pueden señalar posibles puntos débiles del sistema, dispositivos vulnerables y software de riesgo para ayudar a completar esta etapa. Dado que muchas vulnerabilidades se comunican públicamente, se pueden identificar rápidamente y analizar su causa original.
Después de haber identificado y analizado las vulnerabilidades de tu organización, es el momento de llevar a cabo una evaluación de riesgos y determinar la priorización. La primera etapa debería haber proporcionado informes de evaluación, que pueden utilizarse para determinar qué vulnerabilidades son más peligrosas para una organización. Durante una evaluación de riesgos, los analistas de seguridad asignan a cada vulnerabilidad una puntuación de gravedad; los números más altos indican puntos débiles que deben abordarse lo antes posible. Las vulnerabilidades se clasifican en función de una serie de factores, entre ellos:
La etapa final al realizar una evaluación de vulnerabilidad es la de remediación y mitigación. Esta etapa suele estar a cargo de los profesionales de la seguridad y los equipos de operaciones, y se centra en encontrar formas de aliviar las debilidades mientras se desarrollan planes para disminuir la posibilidad de que vuelvan a aparecer las vulnerabilidades. Al crear planes de remediación y mitigación, los profesionales deben centrarse en dos factores:
Si se publican parches del sistema o correcciones de la vulnerabilidad, el proceso de evaluación de la vulnerabilidad debe comenzar de nuevo. Es importante ejecutar una evaluación cuando se instala cualquier tipo de sistema o parche nuevo para así identificar, analizar, priorizar y remediar rápidamente cualquier nueva vulnerabilidad que pueda surgir.
Con frecuencia las herramientas de evaluación de la vulnerabilidad son procesos automatizados que pueden ser utilizados por cualquiera, desde los expertos en ciberseguridad y los cazadores de amenazas hasta el trabajador que se conecta en su casa. Estas herramientas escanean los sistemas en busca de vulnerabilidades existentes y de nuevos puntos débiles no comunicados. Además, cada herramienta de evaluación tiene un propósito específico basado en el tipo de evaluación que debe realizar.
Tipos de herramientas de evaluación de la vulnerabilidad:
Además del tipo de evaluación que realiza cada herramienta, éstas tienen características propias que el usuario debe tener en cuenta. A la hora de elegir una herramienta de evaluación, ten en cuenta estas características:
Si bien las evaluaciones de vulnerabilidad son una parte necesaria del proceso de ciberseguridad, hay precauciones adicionales que puedes tomar para mantener mejor protegida la infraestructura. Invertir en una VPN puede ayudar a proteger tu navegación en redes públicas y privadas, mientras que un antivirus puede ayudar a mantener seguros tanto los dispositivos móviles como de sobremesa.
Como vemos, nmap nos permite detectar puertos que están escuchando en una IP o un rango. Posteriormente veremos además cómo se pueden definir otras técnicas de sondeo. Además, nmap nos permite intentar identificar qué tecnología (producto, versión, etc.) hay detrás de un puerto abierto, o incluso el sistema operativo instalado en un servidor, con los parámetros -O y -sV. Esta detección se basa en la “firma” (fingerprint) de las respuestas que da el servicio a determinadas llamadas.
1sudo nmap -O -sV 192.168.1.1
En este caso, no solamente sabemos que esta máquina tiene determinados puertos abiertos. También nos dice que es un linux y las versiones de los distintos puertos que están escuchando, de forma que esta información puede ser utilizada para explotar vulnerabilidades sobre versiones no parcheadas, etc.
Por defecto nmap utiliza SYN como técnica de sondeo. Es una técnica rápida y poco intrusiva / detectable, pero en ocasiones , pero soporta en total 12 técnicas distintas que podemos definir como parámetros, tal como podemos ver en el manual de uso de la herramienta. Por ejemplo, si queremos hacer un escaneo basado en llamadas UDP, podemos hacer una llamada del tipo:
1sudo nmap -sU 192.168.1.1
Usuario
Si bien existen herramientas más “cómodas” y específicas para la búsqueda de vulnerabilidades, como por ejemplo Nessus, o suites como Metasploit que consolida diversas herramientas, nmap también nos permite realizar análisis de vulnerabilidades.
Para ello, utiliza una serie de scripts Lua que están ubicados en una ruta de nuestra máquina (en el caso de Kali, en /usr/share/nmap/scripts/ ) y que se pueden invocar con –script o su equivalente -sC.
Los scripts pueden pertenecer a una o varias categorías, de forma que podemos pedir a nmap que evalúe, por ejemplo, todos los scripts de una categoría contra un host. Hay algunas categorías especialmente interesantes como “vuln” (scripts dedicados a detectar vulnerabilidades en el destino), “exploit”, etc.
Por ejemplo, si queremos escanear los scripts de categoría vulnerabilidad contra un host:
1nmap --script vuln scanme.nmap.org
Como vemos, el script ha detectado muchas vulnerabilidades. Si analizamos los scripts veremos que muchos de ellos servirán para explotar estas vulnerabilidades. En definitiva, nmap incluye incluso opciones interesantes para evaluar vulnerabilidades e incluso lanzar exploits, si bien existen otras herramientas utilizadas comúnmente para este propósito.
Siempre y cuando vamos a utilizar este tipo de programas o herramientas, debemos tener claro que esto puede ser peligroso para los usuarios. Al escanear los paquetes que se transportan por la red, podemos tener gran cantidad de información en nuestra mano. Esto hace que sea más sencillo que se produzca alguna filtración de datos. Por lo cual siempre se deben utilizar de forma adecuada, y con fines legales. Si bien el uso de este tipo de aplicaciones no es ilegal, todo lo contrario, debemos tener cuidado con su uso.
Tenemos una grandísima cantidad de programas para realizar escaneos de vulnerabilidades a nuestras redes, equipos, servicios web y otros servicios que incorporan los servidores. Dependiendo de lo que estemos realizando, tendremos que utilizar un escáner u otro.
Un aspecto importante es que las distintas soluciones de gestión de seguridad informática se valen de estas bases de datos para apoyarnos en la mitigación de los riesgos de potenciales ciberataques. Las bases de datos que encontrarás a continuación, y otras más, son los principales contribuyentes a las soluciones de gestión de seguridad. Antes de que existiesen estándares como el CVE y CVSS, las distintas soluciones tenían bases de datos propias de cada uno y con una gran disparidad de criterios a la hora de nombrarlos, clasificar su criticidad y otros aspectos más.
Es una de las fuentes más confiables a la hora de identificar, analizar y certificar una vulnerabilidad encontrada. Cada una de las vulnerabilidades presentes en esta base de datos, cuenta con número CVE. Este último es proporcionado por un grupo de autoridades especializadas del grupo de trabajo CVE. Pero, ¿por qué una vulnerabilidad tendría un número identificador? Esto permite que el manejo de la información respecto a la misma sea mucho más confiable, evitando ambigüedades o datos erróneos que perjudiquen la información respecto a la vulnerabilidad en cuestión. Este mismo número permite que sea fácilmente identificado y evaluado por las distintas herramientas de seguridad como los SIEM, que son los Sistemas de Gestión de Información y Eventos de Seguridad, para que puedan facilitar la puesta en marcha de acciones para mitigar los riesgos.
Desde su fundación en el año 1999, CVE se ha convertido en un estándar a la hora de hacer pública cualquier vulnerabilidad. Como hemos comentado, las distintas herramientas de seguridad implementadas, sobre todo en redes empresariales, personas especializadas en seguridad informática, e incluso, el público en general, logran comunicarse más fluidamente. Esto último, respecto a lo que consiste cierta vulnerabilidad y sus impactos. Estamos seguros que en algún momento, habrás leído alguna noticia, publicación o tuit respecto a una o varias vulnerabilidades. En muchos casos, hacen referencia al número CVE como una forma de respaldo seguro y confiable respecto a la información presentada.
Otra base de datos que en esta ocasión corresponde a la prestigiosa CERT (Computer Emergency Response Team). La misma provee información respecto a cualquier vulnerabilidad de software. Los datos que se incluyen son detalles técnicos, posibles formas de remediación y cuáles son los fabricantes afectados. Varios de los registros encontrados son resultado del esfuerzo de individuos. Así también, personas que trabajan fuera de las instituciones de gobierno con el fin de poner a disposición de toda la información encontrada.
En consecuencia, varios de los registros podrían dar la impresión de que falta profundidad respecto a uno o más datos. Es por eso que la propia CERT recomienda referirse a bases de datos de instituciones de gobierno como la NVD, de la cual hablaremos a continuación.
Como comentamos recientemente, esta base de datos está ligada a una institución gubernamental. La misma es la NIST, que es el Instituto Nacional de Estándares y Tecnología. Es un extenso repositorio que aloja datos respecto a vulnerabilidades que se han gestionado mediante el protocolo SCAP. Sus siglas significan Security Content Automation Protocol.
La ventaja directa de estos datos es que se hace mucho más fácil la automatización de tareas repetitivas de la gestión de vulnerabilidades, medición de indicadores de seguridad y cumplimiento. Además, podrás encontrar todo lo relacionado a fallos de seguridad encontrados en todo tipo de software. Así también, sabrás respecto a errores en la configuración, el nombre del fabricante afectado y los potenciales impactos de la vulnerabilidad o fallo encontrado.
*****
Un detalle muy importante es que, al ingresar al panel de estadísticas, nos encontraremos con las vulnerabilidades listadas con la clasificación CVE, que corresponde a la primera base de datos que hemos citado. Esto significa que prácticamente toda vulnerabilidad citada en CVE, tiene un respaldo extra de parte de la base de datos nacional. A pesar de que esta es una institución que depende del gobierno de los Estados Unidos, es una de las fuentes más consultadas para estar al tanto de las últimas vulnerabilidades.
Por otro lado, dicho panel muestra un par de gráficos basados en CVSS. Estas siglas significan Common Vulnerability Scoring System. Este es un estándar abierto que se utiliza para medir la gravedad de cada una de las vulnerabilidades encontradas. Básicamente, se cuenta con cuatro posibilidades o niveles: bajo, medio, alto y crítico. Se llega a concluir que una vulnerabilidad tiene determinado nivel en base a una serie de métricas. El estándar, así como todas las bases de datos que hemos citado, es de acceso libre y gratuito para cualquier persona interesada.