En la actualidad, tanto empresas como particulares utilizan ordenadores, smartphones y redes inalámbricas. Y esto les expone a una multitud de ciberamenazas por el uso de aplicaciones, páginas web, correo electrónico, redes sociales, etc.
Estas ciberamenazas surgen principalmente para robar información personal o corporativa que utilizan para cometer delitos de fraude, extorsión, etc.
Los ataques informáticos son cada vez más sofisticados, más dañinos y más difíciles de prevenir. Por eso surge la ciberseguridad cada vez con más fuerza en las empresas.
A la hora de llevar a cabo un adecuado sistema de prevención y respuesta a ciberataques en la empresa es fundamental tener en cuenta el análisis de vulnerabilidades. A través del mismo podemos garantizar que estamos protegidos frente al continuo aumento de las ciberamenazas.
Antes de analizar en qué consiste este análisis de vulnerabilidades y las herramientas para realizarlo, vamos a explicar qué son y qué tipos de vulnerabilidades existen.
Indice
¿Qué son las vulnerabilidades?
Podemos definir una vulnerabilidad de forma genérica como un fallo en un sistema que puede ser explotada por un atacante generando un riesgo para la organización o para el mismo sistema.
Existen dos tipos de vulnerabilidades.
Físicas
Las vulnerabilidades físicas son las que van a afectar a la infraestructura de la organización de manera física y se pueden mencionar en este tipo de clasificación a los desastres naturales (por ejemplo, encontrarse en una zona de alto riesgo de terremotos), ya que estos puede afectar a la disponibilidad de los sistemas.
Si la empresa está en una zona que generalmente se inunda, se tiene también otro tipo de vulnerabilidad.
Otra de las opciones físicas son los controles de acceso, en muchas ocasiones no se establecen los controles de acceso a infraestructuras críticas y
cualquier persona podría abrir una puerta, podría entrar. Esto supone un gran riesgo para la empresa porque cualquier usuario podría acceder con un USB y copiar información o podría infectar la misma infraestructura.
Lógicas
Las vulnerabilidades lógicas son las que van a afectar directamente la infraestructura y el desarrollo de la operación de esta.
Pueden ser de:
- Configuración
- Actualización
- Desarrollo
Las de configuración en el sistema operativo, pueden ser las configuraciones por defecto del sistema o incluso de algunas aplicaciones del servidor que se tenga expuestas. También puede ser la configuración de algunos firewalls que no está gestionada de una manera correcta y también de infraestructura perimetral.
Las vulnerabilidades de actualización surgen por la no actualización de sus sistemas por las empresas.
Dentro de las vulnerabilidades de desarrollo se incluyen las inyecciones de código en SQL.
Tipos
Existen algunos tipos de vulnerabilidades que son mecanismos aprovechados por los atacantes para infectar una red o robar información entre los cuales podemos mencionar los siguientes:
1. Desbordamiento de buffer
El desbordamiento de buffer ocurre cuando el programador no controla el espacio de memoria del programa, entonces alguna persona puede introducir su propio código en ese espacio de memoria y la máquina lo va a ejecutar antes que cualquier otra tarea.
Esto ocurre, por ejemplo, con los payloads, en los cuales se inyectan cierta cantidad de memoria o inclusive dentro de los backdoor o puerta trasera, los cuales inyectan en la memoria RAM una cierta cantidad de código, el cual se arranca antes, inclusive de arrancar toda la parte del sistema
operativo.
2. Errores de configuración
Otra de las principales vulnerabilidades, son los errores de configuración. Dentro de estos se pueden mencionar, por ejemplo, las contraseñas débiles, usuarios con demasiados privilegios e inclusive la utilización de protocolos de encriptación obsoletos, que pueden hackearse con una aplicación de móvil en menos de 10 o 15 segundos.
3. Errores web
Otro tipo de vulnerabilidades son los errores web. Se trata de errores de validación de input, Scripts inseguros o errores de configuración de
aplicaciones web. Esos errores son los medios para algún ataque de XSS (Cross Site Scripting) o inyección SQL.
La inyección por SQL es uno de los ataques más utilizados en la actualidad. Consiste en acceder a las tablas de la base de datos incluyendo información sobre el usuario y su clave. Este ataque se caracteriza por ser fácil de ejecutar.
Los ataques tipos Cross Site Scripting consisten en infectar un sitio web mediante scripts maliciosos con el objetivo de obtener acceso a una determinada cuenta de usuario.
4. Errores de protocolo
Por último, están las vulnerabilidades de protocolos.
Existen diversas cantidades de protocolos que normalmente fueron definidos sin la necesidad o sin tener en cuenta precisamente la parte de la seguridad y muchas veces no se tuvo en cuenta el crecimiento que estos iban a tener.
Algunos de los protocolos pueden ser un simple HTTP, el cual no es seguro, dado que realiza solamente la parte de la autenticación, pero sin la encriptación de los datos que a final intercambia. Cuando se realizan transacciones bancarias esto es muy inseguro, probablemente se requiera de alguna otra acción.
Métodos de escaneo de vulnerabilidades
Los métodos de escaneo existentes para realizar un análisis de vulnerabilidades son:
Caja blanca
El método de escaneo de caja blanca tiene una visión total de la red a analizar, así como, acceso a todos los equipos como súper usuario.
La parte de análisis de caja blanca actúa como un usuario legítimo dentro de la red, que puede utilizar los servicios de diversas formas a la que otra persona los pueda estar utilizando. De una manera más detallada, este método utilizará ciertos usuarios con ciertos privilegios dentro de la
red y accederán a los servicios, a los productos y a los softwares que quieren auditar. De esta forma, podrán verificar si se puede realizar alguna acción adicional según los privilegios concedidos.
Caja negra
También existe el método de escaneo de caja negra. Aquí se va a proporcionar a los analistas sólo información de acceso a red o al sistema, por ejemplo, una sola dirección IP, algún nombre de alguna empresa, etc. A partir de aquí empieza como tal a buscar toda la información posible de dicha dirección IP y del resto de los equipos que se encuentran dentro de algún rango de direcciones IP asociado.
No se realiza ninguna instrucción, solamente se detecta y se documenta la vulnerabilidad.
Hay una diferencia en lo que sería un método de escaneo de análisis vulnerabilidades y un pentesting. En el primero se encuentra las vulnerabilidades y se las documenta, en cambio en el pentesting se busca explotar dichas vulnerabilidades.
Reparación de vulnerabilidades
Una vez que se ha logrado detectar las vulnerabilidades hay una serie de pasos para tratar de repararlas que se indican a continuación.
1. Análisis de activos
La reparación de las vulnerabilidades se inicia con la realización de un inventario y la clasificación de activos. Esto nos servirá para mantener una lista de direcciones IP que tienen los dispositivos o bien para descubrir qué equipos se han conectado a la red sin ser detectados.
2. Escanear los sistemas
Otra de las partes fundamentales dentro del ciclo de reparación de vulnerabilidades es la de escanear los sistemas para detectar fallos. Se revisará sea el software, las configuraciones o dispositivos que tenga cada dirección IP y determinará si existe alguna vulnerabilidad reportada sobre dicho servicio o software.
El escáner revisará también el registro de la máquina para detectar las configuraciones que son inseguras. Hay que tener en cuenta que el escáner necesita tener acceso de administrador a las máquinas que se van a estar escaneando.
Al terminar, dicho escáner va a generar un informe muy completo de todas las vulnerabilidades detectadas.
3. Identificar vulnerabilidades
Otro de los pasos a realizar es verificar vulnerabilidades dentro del inventario de los activos de la empresa. Esto consiste en identificar que las vulnerabilidades que son detectadas por el escáner sean relevantes.
Los escáneres pueden generar tener falsos positivos, si un escáner genera demasiados falsos positivos, se van a utilizar muchas horas de trabajo en reparaciones que son innecesarias.
4. Clasificar y priorizar riesgos
Es imposible arreglar todas las vulnerabilidades detectadas, es por eso, que es necesario clasificar y sobretodo priorizar el riesgo que está supondría para la empresa.
No se puede arreglar todos los fallos encontrados porque se tiene poco tiempo, poco personal y sobre todo poco dinero. Por eso la empresa se debe
enfocar en arreglar primero las vulnerabilidades más graves en sistemas críticos, y para esto se debe diseñar un esquema de prioridad que combine el nivel de gravedad de una vulnerabilidad con la importancia que tiene para la empresa.
5. Probar parches y configuraciones
Una vez que se ha realizado el inventario de las vulnerabilidades dentro del sistema y se han clasificado y priorizado los riesgos que pueden producir estas vulnerabilidades, el siguiente paso es probar parches y cambios de configuración.
El proceso de parcheo puede poner en riesgo el sistema de la organización, ya que el software parcheado puede traer inclusive errores que aún no han sido detectados.
El parcheo se debe instalar principalmente en una sola máquina y hacer pruebas para verificar si se llega a detectar algún problema. Así evitaremos, si se instala en todos los sistemas o en todos los dispositivos, que ese error se propague.
Es importante descargar los parches de sitios oficiales del fabricante y sobre todo no usar parches de sitios de terceros, como, por ejemplo, up to down o zenet, los cuales al final pueden traer algún malware o versiones anteriores con errores.
Los reportes de dicho escáner incluyen en algunas ocasiones instrucciones detalladas de cómo proceder con el parcheo o con el cambio de configuración que el sistema requiere para poder estar más seguro.
6. Aplicar parches y configuraciones
Una vez que ya se ha probado los parches y los cambios de configuración, es necesario aplicarlos. Cuando se ha comprobado que dichos parches funcionan correctamente en una máquina hay que proceder a implementarlos en todas las demás máquinas en la red. Hay soluciones de implementación de manera automáticas de parches que se pueden utilizar.
Algunos escáneres tienen la posibilidad de generar automáticamente tickets para que sean asignados a ingenieros encargados de la reparación y así se puede realizar un seguimiento de todo el proceso.
Metodología de análisis de vulnerabilidades
Debe aplicarse una metodología para el análisis de vulnerabilidades con la finalidad de tratar de mitigar o reducir los riesgos que se encuentran en determinados sistemas informáticos dentro de la empresa.
Para esto se establecen una serie de pasos.
1. Acuerdo de confidencialidad
Es necesario conocer los pasos a seguir durante el análisis de los fallos para formar parte de un desarrollo de seguridad de manera general, donde el objetivo principal consistirá en hacer conocer el estado actual de la red y los riesgos que existen.
Una de las tareas principales que se debe verificar, es la parte del acuerdo de confidencialidad entre ambas partes, donde intervienen la empresa y el analista de seguridad.
Al realizar la búsqueda de vulnerabilidades es posible que se acceda a alguna información crítica para la empresa analizada. Por ejemplo, nombres de usuario y contraseñas, algunos agujeros de seguridad, documentos que se encuentran expuestos en la red, etc. Por ello es importante firmar un acuerdo de confidencialidad entre la empresa y el analista.
Toda la información a la que se acceda al realizar el análisis será usada únicamente para fines informativos, de seguridad y de mejora de servicios. Esa información no se podrá comunicar a terceros que no estén implicados en este análisis.
Desde el punto de vista de la empresa debe de existir la confianza absoluta en el analista. Si se está realizando un test de análisis de caja blanca, se deberá abrir como empresa todas las puertas a la red y ofrecerle toda la información que solicite el especialista.
Desde el punto de vista del analista, el acuerdo de confidencialidad le ofrece un marco legal sobre el cual trabajar, constituyendo un respaldo formal a la labor realizada.
En conclusión, el acuerdo de confidencialidad debe ser un acuerdo muto entre ambas partes, tanto por la empresa como por el analista de seguridad sobre la información que se va a encontrar en el análisis de vulnerabilidad.
2. Determinar las reglas del juego
Otro de los puntos que se deben de establecer, son las reglas del juego. Antes de iniciar el análisis de vulnerabilidades, debe establecerse qué tareas se van a realizar y cuáles son los límites, permisos y obligaciones que deben tenerse en cuenta.
Durante el análisis se debe de mantener informada a la menor cantidad de personas, de forma de que la utilización de la red por parte del personal sea normal, con la finalidad de evitar cambios en la forma de trabajo de los usuarios de manera regular. Si los usuarios de la red son informados que se va a realizar un cierto análisis, probablemente, lo que van a hacer es modificar algunas prácticas inseguras que normalmente realizan por miedo a que puedan ser reprendidos o despedidos. Y si esto sucede el análisis no tendrá el mismo efecto.
En este punto debe especificar:
- Actuaciones a realizar
- Límites que no pueden sobrepasarse
- Permisos y obligaciones que deben cumplirse.
Además se deberá realizar el análisis de forma prudente sin informar al personal sobre ello para que la utilización de la red se realice normalmente y el análisis sea correcto.
3. Recogida de información
Lo primero que debemos hacer al realizar un análisis de vulnerabilidades es la recopilación de información del objetivo.
En caso de utilizar un test de caja negra, el método de análisis será muy parecido al proceso utilizado por un atacante. Si usamos el test de caja blanca, debemos obtener la mayor cantidad posible de información de acceso a servicios y todo lo que consideremos necesario para realizar el análisis.
Por ejemplo, si se está realizando un test de caja blanca probablemente lo que hay que obtener son direcciones de servidores, nombres de usuarios, contraseñas, servicios que se llegan a ofrecer, esquemas de redireccionamiento, topologías de red, niveles de privilegios, etc.
Si se realiza un test de caja negra se puede obtener probablemente alguna dirección, nombres de dominio, correos electrónicos, etc.
Cuando se realiza este análisis para recopilar información, una de las técnicas utilizadas es el llamado OSINT. El modelo se divide en seis fases:
- Requisitos: deben indicarse todos los requisitos y condiciones que se tienen que cumplir, según los objetivos propuestos para solucionar el problema.
- Identificación de las fuentes de información: deben especificarse las fuentes de información más importantes para conseguir el objetivo de
hacer más efectivo el proceso de recopilación de esa información. - Adquisición: aquí conseguimos la información a partir de las fuentes indicadas.
- Procesamiento: aquí es donde se da un formato a la información obtenida para poder analizarla.
- Análisis: en esta fase se crea inteligencia partiendo de los datos recogidos y procesados.
- Inteligencia: a través de esta fase se muestra la información recopilada de forma útil, eficaz y comprensible para explotarla correctamente.
4. Análisis interior
Antes de continuar con el análisis de vulnerabilidad, se debe verificar varios tipos de test.
A través del análisis interior se pretende demostrar hasta dónde es posible llegar utilizando los privilegios de un usuario típico dentro de la empresa. Para ello es necesario que se nos proporcione un ordenador con un nombre de usuario y una clave de acceso normal de un usuario específico.
Existen varias pruebas que forman este análisis entre las que están:
Verificación de la privacidad
En este caso debe analizarse cómo se trata desde el punto de vista ético y legal el almacenamiento, comunicación y control de la información que se usa cada día por los empleados.
Testeo de aplicaciones de Internet
Existen varias maneras de efectuar el análisis de aplicaciones de Internet o de aplicaciones web. Por ejemplo, se utilizan técnicas de análisis de software para encontrar fallos de seguridad en aplicaciones que son accedidas por los usuarios dentro de la red.
Testeo de sistema de detección de intrusos
Aquí se analiza el rendimiento de los sistemas de identificación de intrusos. Para ello es preciso entrar en los registros del sistema de identificación de intrusos.
Testeo de medidas de contingencia
Con este análisis se calculan los recursos mínimos que el sistema necesita para realizar las tareas y se comprueban las medidas existentes para detectar intentos de acceso a información protegida.
Descifrado de contraseñas
Esto supone comprobar lo fuerte que es una contraseña utilizando herramientas de recuperación de contraseñas de manera automática. Con ello quedan al descubierto aquellas aplicaciones de algoritmos criptográficos débiles y mal aplicados o contraseñas débiles por falta de conocimiento de las personas para registrar una buena clave de seguridad.
Testeo de denegación de servicios
La denegación de servicio es una situación donde un hecho, intencionado o accidental, hace que el sistema no pueda funcionar correctamente.
Normalmente se realiza en base a alguna carga excesiva, algún alcance que no se llegue a cubrir o que los mismos usuarios abusen de los recursos del sistema. Es muy importante que los test o análisis de denegación de servicios reciban ayuda adicional de la empresa o de algunos otros usuarios
que también sean analistas de seguridad.
Evaluación de políticas de seguridad
En la evaluación de políticas de seguridad existen dos funciones a llevar a cabo. Lo primero es el análisis de lo establecido y el estado actual de las conexiones y lo segundo asegurar que la política esté incluida dentro de los objetivo del negocio de la empresa. Si se establece una política, por ejemplo, de que no se puede utilizar Internet y resulta que la empresa para sus ventas hace uso de este recurso la política no tendría sentido. Por eso es importante realizar un análisis acerca de las políticas de seguridad que más le benefician a la organización.
5. Análisis exterior
El principal objetivo de este tipo de análisis es acceder en forma remota a los servidores de la empresa y sobre todo obtener privilegios o permisos que no deberían estar disponibles. Este test puede comenzar con técnicas de ingeniería social para poder obtener alguna información y luego se podría utilizar en algún intento de acceso.
Los pasos a seguir en este tipo de análisis son:
Verificación de la inteligencia competitiva
Aquí debe tenerse en cuenta toda la información recogida a partir de la presencia en Internet de la empresa.
Examen de la privacidad
En esta fase se valora el cumplimiento de aspectos legales y técnicos en el almacenamiento, comunicación y control de los datos privados de los clientes. Por ejemplo, se parte de la base de que dicha empresa no tiene el control suficiente como para hacer que toda la información o los datos que están manejando los empleados se queden dentro de la organización, lo que puede conllevar que probablemente alguno de los empleados se pueda llevar dicha información.
Análisis de solicitud
A través de este sistema podemos obtener privilegios de acceso a una empresa y sus activos, únicamente preguntando al personal de entrada usando algún teléfono, correo, chat, etc., bien desde una posición privilegiada o de manera fraudulenta. Se trata de un análisis basado en ingeniería social.
Análisis de sugerencia dirigida
Aquí se pretende conseguir que un miembro de la empresa acceda a un sitio o reciba un correo electrónico en este sitio. Sería como tener un cómplice dentro de la empresa que facilite la instalación de determinadas herramientas para que el atacante pueda posteriormente abrir una sesión con alguna de esas herramientas para gestionar sesiones desde el exterior.
Una vez que se recopila esta información se procede a realizar algunas de las siguientes pruebas:
- Sondeo de red: se analizan nombres de dominio, nombres de servidores, direcciones IP, mapas de red, información del proveedor de Internet, propietarios de sistema y servicios.
- Identificación de los servicios de sistemas: enumerar los servicios de Internet activos o sobretodo accesibles. Tras la identificación de los servicios el siguiente paso simplemente es identificar el sistema con el fin de obtener respuestas que pueden dirigir el sistema operativo y su versión.
- Búsqueda y verificación de vulnerabilidades: identificación, comprensión y verificación de las vulnerabilidades o debilidades, errores de configuración dentro de un servidor o en una red. La búsqueda de vulnerabilidades se realiza mediante herramientas automáticas para determinar agujeros de seguridad existente y niveles de parcheado de los sistemas.
- Testeo de aplicaciones de Internet: se emplean diferentes técnicas de análisis de software para encontrar fallos de seguridad en aplicaciones del cliente.
- Testeo de relaciones de confianza: La parte de enrutamiento técnicamente está diseñado para asegurar que sólo aquellos que deben ser expresamente permitidos pueden ser aceptados en la red.
- Verificación de redes inalámbricas: se utiliza un método para la verificación del Wireless que normalmente se basa en la parte de la cobertura y
el acceso de los Access Point por red ad hoc.
6. Documentación e informes
Al finalizar el análisis de vulnerabilidades se debe presentar un informe, donde se detalle cada uno de los test que se han realizado y los resultados
de los mismos. En este informe se debe incluir:
- Lista de vulnerabilidades detectadas
- Lista de dispositivos y servicios vulnerables
- El nivel de riesgo derivado de cada vulnerabilidad encontrada en cada servicio y dispositivo.
Herramientas para el análisis de vulnerabilidades
A continuación analizaremos las herramientas más utilizadas para el análisis de vulnerabilidades en los sistemas, los pasos necesarios para interpretar todos los fallos encontrados y sobre todo las posibles soluciones para los mismos.
Nexus
Actualmente existen muchas herramientas para el análisis de fallos y vulnerabilidades en el mercado. Una de estas aplicaciones tipo escáner más populares es Nessus.
Esta solución es un escáner de vulnerabilidades desarrollado por la empresa Tenable Network Security. Ofrece distintas soluciones no solo de escaneos de redes para encontrar fallos, sino, aplicaciones más completas como Nessus Security Center. Esta evalúa las vulnerabilidades de una organización o empresa clasificando estas deficiencias de acuerdo al riesgo, incluso proporciona reportes continuos, datos estadísticos y posee un plugin que genera alertas y notificaciones. También apoya a la organización en el cumplimiento de estándares regulatorios y es posible integrarla con otras soluciones.
Una versión más completa de Nessus Security Center es la que se enfoca en el monitoreo constante. Este paquete permitirá monitorear continuamente la infraestructura permitiendo recopilar los datos a partir de múltiples sensores que apoyará en el análisis de vulnerabilidades, monitoreo de las amenazas y el tráfico de la red.
También es posible realizar:
- Cumplimiento de estándares
- Detección de Malware
- Escáner de vulnerabilidades
Acunetix
Esto es un escáner de vulnerabilidades web que se orienta principalmente en el OWASP TOP TEN, en las principales vulnerabilidades o fallos que hay.
Acunetix también trabaja con vulnerabilidades que pueden tener un impacto muy grande las cuales están integradas en su escáner, esta herramienta que tiene varias posibilidades de trabajo para su utilización, se instala y se trabaja de manera local o se realizan los escaneo en línea.
Es una herramienta que tiene una interfaz gráfica vía web, diseñada para encontrar agujeros de seguridad en todas las aplicaciones de Internet o de forma local implementadas en una organización con el objetivo de descubrir dichas vulnerabilidades, para que el atacante no ingrese al sistema y robe información del mismo.
Entre esas vulnerabilidades puede encontrar ataques de SQL Injection, Cross Site Scripting o Password débiles.
Para la descarga de la herramienta se tiene que acceder a la página web https://www. acunetix.com/ en la cual se puede descargar una versión DEMO o sino comprar una licencia de la aplicación para el análisis de las vulnerabilidades.
De manera muy general en esta herramienta se puede seleccionar a un objetivo y con ello se puede realizar un escaneo para detectar vulnerabilidades. Se puede seleccionar un rango determinado de direcciones IP y comenzar la detección de los posibles fallos dentro de la empresa. Entre los diferentes tipos de escaneo que se pueden aplicar dentro de la organización están los escaneos completos o los personalizados.
GFI Languard
GFI Languard es un escáner de vulnerabilidades que tiene algunas ventajas sobre otras herramientas. Permite escaneos de forma local y en red, para los escaneos se pueden necesitar algunos datos como pueden ser las credenciales de un usuario, el cual puede ser administrador local o administrador de dominio y a partir de ahí se puede ir realizando los análisis.
Entre las múltiples ventajas de esta herramienta se puede mencionar:
- Automatizar la actualización de múltiples sistemas operativos
- Buscar vulnerabilidades
- Auditar hardware y software
- Realizar informes de cumplimiento
El sitio web principal de esta herramienta se puede localizar en la siguiente dirección https://www.gfihispana.com/products-and solutions/network-securitysolutions/gfi-languard.
Esta herramienta se basa en la automatización de las actualizaciones sin importar el tipo de sistema operativo. Las brechas de seguridad de la red son
comúnmente causadas por la falta de actualizaciones, y LanGuard escanea y detecta estas vulnerabilidades en la red antes de que queden expuestas de acuerdo a las políticas de cada organización. Esto ayuda a reducir el tiempo para actualizar los equipos en la red ya que, cuando detecta que un sistema operativo no tiene una actualización envia una alerta.
Nexpose
Esta herramienta es bastante interesante para la explotación de las vulnerabilidades, la cual va a trabajar sobre la parte web y de red.
Entre las ventajas que tiene esta aplicación sobre otras, es que puede interactuar directamente con Metasploit para la explotación de las vulnerabilidades. La herramienta se puede descargar directamente del sitio de www.rapid7.com.
Esta herramienta trabaja directamente sobre una consola web, se inician los servicios y se puede trabajar con Metasploit directamente una vez que ya se identifican las vulnerabilidades. La herramienta va a indicar si existen Exploits o no, ya sea en Metasploit solamente o se tenga que descargar algún código directamente de la página web. En esta aplicación se pueden generar algunos reportes los cuales van a permitir trabajar con reportes tipos, ejecutivos o técnicos.
La ventaja principal sobre otras herramientas es que ofrece una demo de 30 días para probar y detectar muchas vulnerabilidades en el PC o red del usuario.