NVT: testeando la seguridad en redes industriales
Un NVT (Network Vulnerability Test) es un pequeño programa escrito en lenguaje scripting NASL (Nessus Attack Scripting Language) utilizado por algunos escáneres de vulnerabilidades cuyo objetivo es la detección de las mismas a través de la red. Las tecnologías que utilizan estas pruebas sincronizan los NVT mediante feeds periódicamente o de forma manual si se prefiere. Las vulnerabilidades que busca pueden afectar a diversos dispositivos, sistemas o aplicaciones. A través de diferentes consultas, estas pruebas son capaces de obtener la información suficiente como para evidenciar cuales están presentes en los dispositivos industriales.
Los NVT pueden clasificarse según la familia a la que pertenezcan, entre otras formas de clasificación. La definición de estas familias no es totalmente estática, por lo que se podrían crear más familias en base a la naturaleza de la vulnerabilidad o modificar las ya existentes si se cree interesante.
Algunos ejemplos de escáneres que utilizan este tipo de pruebas son:
- OpenVAS (Open Vulnerability Assessment System): inicialmente llamada GNessUs, es un escáner open source que permite la integración con otros servicios y herramientas especializadas para el escaneo y gestión de vulnerabilidades. Posee línea de comandos e interfaz web (greenbone) para la configuración y planificación de escaneos, además los resultados pueden tanto visualizarse como consultarse desde su interfaz web.
- Nessus: se trata de otro escáner de vulnerabilidades, perteneciente a la empresa Tenable, que también permite la integración con otras herramientas como nmap o usar su propio escáner de puertos/servicios. Posee una API y una interfaz web para la configuración y planificación de escaneos, además, los resultados pueden tanto visualizarse como consultarse desde su interfaz web.
NVT para auditorías industriales
En el ámbito industrial, la detección de vulnerabilidades mediante técnicas agresivas suele llevarse a cabo en un laboratorio. Este hecho, sumado al tiempo requerido, hace que el uso de herramientas que ejecuten pruebas de manera automatizada, como es el caso de estos escáneres, también sea una implementación más que válida en estos entornos, ya que permiten realizar un análisis básico inicial de forma rápida y sin necesidad de supervisión por parte del consultor que, en paralelo, podría realizar otro tipo de pruebas, más elaboradas o manuales.
- Ejemplo de NVT: Ejecución remota de código en InduSoft Machine Edition -
Como se puede observar en la imagen, la notación utilizada para el desarrollo de estas pruebas no es muy compleja y sigue otras estructuras utilizadas en lenguajes como C, C++, etc. Una recopilación de NVT relacionados con un fabricante industrial concreto o con protocolos industriales permitiría obtener, de manera rápida, información en la fase inicial del análisis, que posteriormente será utilizada para la explotación de vulnerabilidades, o enlazar directamente con algún NVT en el que se desarrolle un código que explote una vulnerabilidad conocida ya detectada en la fase de escaneo.
Beneficios de los NVT en sistemas de control industrial
El uso de diferentes herramientas, o la combinación entre ellas, proporciona gran potencia a la hora de realizar auditorías en muchos ámbitos, incluido el industrial. En el caso de los NVT, su facilidad de adaptación con herramientas tan potentes como son OpenVAS o Nessus hacen de estos tests un arma potente bastante versátil. Otras de las grandes ventajas que proporcionan los NVT son:
- Reducción de tiempos: desarrollando un conjunto de pruebas a medida, ya sea por comunicaciones, fabricante, etc. Los consultores ahorran bastante tiempo inicialmente, lo que les hace mejorar sus habilidades elaborando pruebas que requieren de un mayor conocimiento técnico y, por lo tanto, resultan más complejas.
- Aplicación en IIoT e IoT: dada la elevada cantidad de dispositivos existentes en el mundo del Internet de las Cosas, el uso de estas pruebas permitiría a un auditor automatizar pruebas iniciales comunes entre los dispositivos desplegados en el mundo IoT e IIoT.
- Lenguaje NASL: este lenguaje de scripting fue creado con un propósito concreto, la elaboración de NVT. Gracias a este lenguaje, que no posee una gran complejidad y que tiene implementados bastantes métodos utilizados en tareas de auditoría, un consultor puede realizar sus propios desarrollos sin tener que invertir mucho tiempo en leer documentación. Sumado a todo esto, es importante comentar que ya existen en otros donde poder basarse y la comunidad que desarrolla este tipo de pruebas es bastante activa.
- Control del entorno: al ser un lenguaje con ciertos controles de seguridad en su implementación, el consultor se asegura que en ningún momento se generarán comportamientos anómalos en el dispositivo fruto del NVT (si es que su objetivo no es generar una anomalía). Además, en el caso de las comunicaciones, la construcción de paquetes a medida está bastante controlada, ya que se respeta la implementación tanto de comunicaciones TCP, como UDP. A la hora de realizar pruebas en un entorno industrial de laboratorio con más de un dispositivo a la vez, es importante realizar una buena implementación del NVT, ya que es posible que, si no se incluyen dependencias o controles de detección suficientes, el NVT se ejecute en un dispositivo para el que no ha sido diseñado, generando posibles problemas. En este caso, el control ha de ser establecido por el consultor en el desarrollo ya que, por sí mismo, y como ya se ha comentado, el lenguaje NASL posee un control de los métodos y funciones ya implementados.
- Aplicación en pruebas FAT y SAT: los NVT pueden servir como herramienta para cumplir los requisitos marcados tanto en pruebas FAT, como en pruebas SAT.
- FAT (Factory Aceptance Test): estas pruebas de aceptación en fábrica suelen realizarse en las instalaciones del fabricante antes de que este envíe los equipos a sus clientes. Este realiza una serie de comprobaciones para cumplir con las especificaciones aprobadas por sus clientes. De esta forma, el creador de los dispositivos se asegura que el sistema está a punto para ser instalado y probado por sus consumidores.
- SAT (Site Aceptance Test): las pruebas de aceptación en producción se ejecutan de acuerdo a un plan ya establecido donde se recogen todas las especificaciones que el cliente ha exigido. Tienen como objetivo demostrar que el sistema se ha instalado de forma correcta y que puede interactuar sin generar ningún tipo de incidencia con los sistemas y dispositivos que se encuentran a su alrededor.
- Ayuda del intérprete NASL en línea de comandos -
Aunque los beneficios que reporta la utilización de los NVT son bastante notables, no hay que olvidar que sería aconsejable limitar su uso a entornos industriales ubicados en redes de laboratorio controladas. Este hecho se debe a que un envío de paquetes malformados o una mala implementación de los controles en el NVT podrían originar un malfuncionamiento en redes industriales que se encuentren en producción. En ocasiones, esta herramienta, cuyo propósito principal es el escaneo de puertos y servicios, puede originar problemas en redes en producción, generando paradas no controladas con las consecuencias éstas conllevan.
Conclusiones
Los test de vulnerabilidades a medida suponen una gran ventaja a la hora de evaluar tanto dispositivos, como comunicaciones previamente analizadas. La posibilidad de incorporar los test con herramientas como OpenVAS o Nessus, bastante conocidas en el mundo de la ciberseguridad y con soporte para utilizar otras herramientas de referencia en el mercado, hacen que el uso de NVT para la ejecución de auditorías cobre mayor fuerza.
No hay que olvidar que, a la hora de realizar las auditorías, el abanico de posibilidades a la hora de usar unas herramientas u otras es muy amplio. Por lo que, a la hora de usar una herramienta u otra, todo depende de la tarea a realizar y de los conocimientos que posee el consultor en el momento de emplear alguna de ellas. Los NVT son una herramienta más a disposición de los profesionales y, por tanto, ellos deben de verificar sus beneficios antes de empezar a desarrollar e incorporar estos test en sus auditorías.