
Para completar este honeypot necesitamos simular conexiones serie debido a que muchos dispositivos industriales utilizan RS-232/485, es posible, utilizando el modulo programado en python llamado pySerial. De esta forma presentamos un interfaz de protocolo a un atacante que se conecte por el puerto serie.
Este honeypot no solo nos puede servir de estudio de ataques que puede sufrir una red industrial, aplicando las cualidades de Honeyd nos permite utilizarlo como tƩcnica de camuflaje ante ataques de Fingerprinting. Ya que entre las opciones de Honeyd es posible configurar que solo responda a un rango de IP determinado o que responda en una franja horaria concreta.
SCADA Honeynet Project: Creación de Honeypots para redes industriales
Objetivos
El objetivo a corto plazo del proyecto es determinar la viabilidad de la construcción de un marco basado en software para simular una variedad de redes industriales tales como SCADA, DCS, PLC y arquitecturas. Tenemos la intención de documentar los requisitos y la prueba de liberación de código de tipo conceptual (en forma de honeyd secuencias de comandos) para que un Ćŗnico servidor Linux puede simular mĆŗltiples dispositivos industriales y redes de topologĆas complejas. Dada la variedad de implementaciones y la falta de la norma, definida por las arquitecturas y de las redes industriales, este proyecto propone crear los bloques de construcción para que los usuarios pueden simular sus redes propias redes - no hacer suposiciones acerca de lo que el "mundo real" SCADA / DCS / PLC aspecto. Suponiendo que el despliegue de "SCADA redes trampa" nunca alcanzar una masa crĆtica, el objetivo a mĆ”s largo plazo del proyecto es recopilar información sobre los patrones de ataque general y explota especĆficos que podrĆan ser utilizados para escribir la firma con fines comerciales y de código abierto productos IDS.Introducción
TodavĆa hay poca información acerca de las vulnerabilidades SCADA y ataques, a pesar de la creciente conciencia de los problemas de seguridad en las redes industriales. Como es el caso de la seguridad informĆ”tica, los propietarios-operadores son a menudo reacios a liberar o incidente de datos ataque. Sin embargo, a diferencia de los productos y protocolos, hay no el tipo de repositorios pĆŗblicos de los avisos de los proveedores y las vulnerabilidades en los dispositivos industriales. Aunque algunas investigaciones vulnerabilidad estĆ” siendo llevado a cabo en este Ć”mbito, muy poco se ha lanzado pĆŗblicamente y no "las herramientas de seguridad SCADA" (sea lo que podrĆa significar) han sido liberados al pĆŗblico.Para hacer frente a estas limitaciones, este objetivo de este proyecto es proporcionar herramientas y para simular una variedad de redes industriales y los dispositivos. Vemos varios usos para este proyecto:- Construir una red trampa para los atacantes, para recopilar datos sobre las tendencias atacante y herramientas
- Proporcionar un protocolo industrial simuladores de secuencias de comandos para probar un live implementación del protocolo real
- medidas de investigación, tales como el endurecimiento de dispositivos, pila de ofuscación, la reducción de información de la aplicación y eficacia de los controles de acceso a la red
Requisitos de caracterĆsticas de
Basado en nuestro conocimiento de las aplicaciones de red industrial, productos y protocolos, se identificaron los siguientes requisitos:Simulación de dispositivos individuales
Para simular los dispositivos individuales, las siguientes funciones es necesario:- nivel de pila: Para simular la pila TCP / IP de un dispositivo basado en dispositivo Ethernet a un atacante para niños de tipo script que estÔ escaneando la red con herramientas de detección de sistema operativo como Nmap y Xprobe.
- nivel de Protocolo: Para la simulación de protocolos industriales para los atacantes calificados que cuenten con las herramientas que los protocolos de interrogar y quieren hacer algo significativo con el protocolo de caracterĆsticas
- Nivel de aplicación: Para la simulación de diferentes aplicaciones en un dispositivo de SCADA, tales como servidores web y aplicaciones de gestión tales como SNMP y Telnet.
- nivel de hardware: Muchos de los dispositivos SCADA utilizar interfaces en serie, como módems y RS232 para la comunicación de protocolo de SCADA y con fines de gestión. Un atacante que, o bien "se registra en" un dispositivo de SCADA o tiene acceso a la red de serie, es necesario presentar con un dispositivo de serie y / o un protocolo de comunicación sobre un dispositivo de serie.
Simulación de redes
Tenemos que simular los puntos de entrada diferentes para que cuando un atacante se encuentra con un dispositivo perimetral, que se presentarĆ” la misma red que una verdadera red SCADA en ese punto de la red de entrada particular,Varios puntos de acceso de red que tenemos que simular incluyen:
- Un router directamente conectado a Internet: sistema de redes de control son por lo general no directamente conne una red de control se encuentra dentro de una red corporativa. Suponiendo que la red corporativa como en Internet, tenemos que simular el punto de entrada de un router que separa la red de control y la red corporativa. Los dispositivos que normalmente se conectan a los routers como serĆa switches Ethernet industriales o de dispositivos industriales con una pila IP, tales como algunos IP activado PLC y puntos de acceso inalĆ”mbricos.
- de serie del dispositivo directo: Algunos de los dispositivos industriales tiene un módem que puede ser directamente de marcado en la red pública. Tenemos que simular un "servidor de módem" que puede tomar conexiones y se comporta como un dispositivo industrial o estÔ conectado a un dispositivo industrial.
- Un dispositivo habilitado para Ethernet industrial directamente conectado a Internet: Este escenario debe ser la misma que la simulación de la pila, los protocolos y aplicaciones en el dispositivo y la conexión a Internet que
- Una serie de puerta de enlace Ethernet estĆ” conectado directamente a Internet: Ethernet de serie una puerta de enlace es un puente entre la red IP y la interfaz en serie. El lado IP del dispositivo estarĆa conectado a la red, ya sea un interruptor industrial o un router para que otros industriales dispositivos IP estĆ”n conectados. El equipo de serie del dispositivo estarĆa conectado a un dispositivo serial o una red de serie.
- InalĆ”mbrica: Wireless es uno de los puntos de entrada en una red industrial. La mayorĆa de los dispositivos inalĆ”mbricos para uso industrial, propiedad de protocolos inalĆ”mbricos y algunos de ellos el uso estĆ”ndar 802.1b. Normalmente la interfaz de serie del dispositivo que se conecta a un puente inalĆ”mbrico.
- Acceso remoto de escritorio y HMI: La mĆ”quina de Interfaces Humanos y el software que se comunica con dispositivos industriales que generalmente se ejecuta en una mĆ”quina Windows. Los administradores que desean tener acceso remoto a estos dispositivos normalmente serĆa un visor de escritorio remoto, como VNC o PC en cualquier lugar. Un atacante normalmente se encuentra a travĆ©s de un escaneo de puertos "despuĆ©s de que Ć©l se mete en la red de control y podrĆa llegar a ella mediante un cliente VNC. Simulación de esto probablemente necesitarĆa un encargo del protocolo VNC simulación.
- Servidor de acceso remoto (RAS): Otro posible punto de entrada en una red de control es marcar en la red a travƩs de PPP y el uso de la contraseƱa PPP para autenticarse en un servidor de acceso de red y luego acceder directamente al dispositivo industrial.
Captura de las herramientas atacante y las pistas
Nuestra necesidad de capturar secuencias de comandos de las herramientas atacante y las pistas. Que debe incluir registro de pulsaciones y las instalaciones para captar las herramientas y los binarios que podrĆa ser hasta de carga, si el ataque. Nuestros guiones tambiĆ©n tienen que capturar el trĆ”fico de red.Examen de las tecnologĆas existentes y relavency
Honeyd
Honeyd cuenta con instalaciones para la simulación fĆ”cil de pilas TCP / IP y aplicaciones.Honeynet se Nmap y firmas Xprobe a travĆ©s de los archivos de configuración de paquetes y envĆa las respuestas a las exploraciones correspondientes a las firmas. Los usuarios pueden configurar los perfiles, asignación de direcciones IP que Honeyd debe responder a un perfil de dispositivo correspondiente. Cuando los atacantes Nmap o Xprobe escanear la dirección IP que Honeyd estĆ” cuidando, le serĆ” devuelto con paquetes que coincidan con el perfil del dispositivo correspondiente.Por lo tanto el uso Honeyd, serĆa posible simular simultĆ”neamente mĆŗltiples pilas de base industrial dispositivos IP, siempre que la herramientas de anĆ”lisis correspondiente (Nmap o Xprobe) tiene el conocimiento de la firma. A partir de ahora, no hay firmas de dispositivos industriales en la base de datos de Nmap.
Honeyd permite al usuario escuchar en un puerto y ejecutar un script en ese puerto en particular cuando alguien se conecta a ese puerto. A partir de ahora, hay muchos guiones han contribuido al proyecto, que puede simular las pƔginas web, servidores de telnet WSFTP y servidores de Cisco.
Usando esta caracterĆstica en Honeyd, es posible escribir secuencias de comandos que simula diferentes protocolos de Ethernet Industrial.Por ejemplo, serĆa posible simular una Modbus / servidor TCP en el puerto 502 y EtherNet / IP en los puertos 44818/2222.
simulación de interfaz de serie
Muchos dispositivos de red para uso industrial RS-232/485 para la comunicación. Normalmente, el puerto serie de un PC serĆa directamente (o indirectamente, a travĆ©s de una puerta de enlace Ethernet de serie) conectado al puerto serie del dispositivo. HabrĆa un software que se ejecuta en el PC, que envĆa comandos al dispositivo a travĆ©s de la interfaz en serie. SegĆŗn algunas versiones hay cientos de protocolos de serie en uso en las redes de SCADA. Algunos de los protocolos mĆ”s comunes son MODBUS y DNP.Tenemos que simular los protocolos a travĆ©s del puerto serie, con el fin de presentar una interfaz de protocolo de un atacante que se conecta al puerto serie. Muchos lenguajes de apoyo a la programación de interfaz de serie incluyendo Python y Java. Hemos sido capaces de lograr una comunicación serie a travĆ©s de un módulo de código abierto de programación Python serie (pyserial.sf.net).Simulación de 802,11
El controlador HostAP (http://hostap.epitest.fi/), las respuestas para los paquetes de gestión 802.1b y convierte un adaptador de cliente de un punto de acceso. El conductor puede ser utilizado para simular un punto de acceso que estÔ dentro de un sistema de automatización o de una red SCADALa captura de herramientas de ataque y la captura de la pista de los atacantes
Aunque no forma parte de Honeyd, hay un montón de capturadores de teclado disponibles. Necesitamos un mecanismo para el seguimiento del atacante en la interfaz web del dispositivo. No sabemos de ninguna herramienta que puede proporcionar esa funcionalidad, sin embargo hemos explorado algunas posibilidades que el applet de Java (que se ejecutan en los atacantes "navegador web") es capaz de comRetos
Implementación y pruebas
Un sitio ideal para la implementación de una secuencia de comandos serĆa un primer plano de subred a una verdadera Industrial / red SCADA o un nĆŗmero de telĆ©fono perteneciente a un SCADA / planta de automatización.SCADA Honeynet
PLC Conceptos de simulación, diseño, e implementación
antecedentes
Controladores Lógicos Programables (PLC) son comunes en algunas aplicaciones industriales (especialmente de manufactura discreta) y tienen cada vez mĆ”s interfaces de red que soporte Ethernet y TCP / IP, asĆ como interfaces de comunicación mĆ”s tradicionales, tales como Modbus, DeviceNet, ContrlNet, Foundation Fieldbus, etcComo es el caso con cualquier dispositivo de red, proveedores de diferentes aplicar sus propias conchas de telnet y soporte varios comandos FTP, dependiendo de sus necesidades de aplicación. El módulo de comunicación Ethernet del PLC normalmente se ejecuta un sistema operativo integrado que incluye el protocolo de red estĆ”ndar, asĆ como las implementaciones de protocolos de red industriales, tales como Modbus / TCP o EtherNet / IP. Por ejemplo, telnet y servidores FTP son comunes y tienen información de identificación que se puede utilizar para determinar el proveedor y la versión del software. Incluso en el lado protocolo industrial, vimos que no todos los PLCs de apoyo todos los comandos de un protocolo industrial dado, por lo que las implementaciones pueden ser las huellas digitales. Dependiendo del tipo (y capacidades) del dispositivo puede haber ligeras diferencias en el protocolo.Todas estas caracterĆsticas hacen posible que los atacantes para identificar versiones especĆficas y vendedores de dispositivos y nos permite ser capaces de simular los dispositivos tambiĆ©n.
La aplicación del Enfoque
Seguimos el siguiente enfoque al simular un PLC:Componentes necesarios
Los siguientes son los componentes de la red en un PLC que deben ser simulados:Tenga en cuenta que las secuencias de comandos anteriores se pueden utilizar junto con independiente y la necesidad de permisos de la raĆz o honeyd porque tienen que obligarse a los puertos previleged por debajo de 1024.
Simulación de la pila TCP / IP del módulo de comunicación PLC
Para que Honeyd para simular la pila TCP / IP de un PLC, aƱadiendo el protocolo TCP / IP de la firma del dispositivo a la honeyd denmap.prints archivo serĆa suficiente. Pero en oder para el atacante a sentir que la pila es un autómata de pila, la firma tiene que estar en la base de datos de la herramienta de anĆ”lisis que se estĆ” utilizando. Aunque hemos probado que al poner la firma en nmap-os-huellas digitales de archivo (que es la base de datos de huellas dactilares de Nmap), no sabemos de ningĆŗn escĆ”ner que tiene la firma de cualquier PLC en el momento de escribir este documento.Simulación de la Modbus / TCP servidor
El PLC puede tener múltiples implementaciones del protocolo industrial que va a escuchar en sus puertos correspondientes para los paquetes de los clientes correspondientes.Decidimos simular el Modbus / TCP como servidor de una prueba de concepto ya que el protocolo es muy sencillo. ModbusSrvr.py comienza con escuchar () método, que une el puerto 502 y espera a que las conexiones de cliente. Una vez que un cliente se conecta a ella, se inicia un hilo de servir al cliente y sigue escuchando en el puerto para conexiones de cliente adicional. El subproceso llama a la ProcessData () método que extrae la parte superior Modbus los datos de cabecera y llama al método SendResponse () para enviar la respuesta correcta.En el protocolo MODBUS, la respuesta depende del código de la función de la consulta. Puesto que no somos los expertos del protocolo y no necesariamente esperar a los usuarios y desarrolladores de red trampa SCADA para ser expertos en protocolos industriales, seguimos y recomendar el enfoque de crudo de observar y analizar los paquetes de comunicación entre algunos clientes y el PLC. Con base en la observación y el anÔlisis se optó por aplicar las "respuestas de arriba" y para enviar un "código de error" para el resto de las consultas. Las siguientes son las observaciones:
- Hay dos tipos de consultas utiliza en gran medida, la escribe y lee, y el objetivo puede ser bobinas o de los registros.
- Para las respuestas a las solicitudes de lectura, la respuesta serĆa la de devolver los datos, lo que equivale al nĆŗmero de bits se pide en la solicitud de lectura. Si su lectura a varios objetivos, a continuación, por lo general dan mĆŗltiples cabeceras modbus.
- Para las respuestas a las solicitudes de escritura, le darĆ” el bit / byte / palabra c uente de los datos por escrito
Simulación del servidor FTP
honeyd ha depósito FTP basados en la simulación, la escritura, decidimos volver a escribir en él, ya que Python es un lenguaje y mÔs fÔcil para los que queremos agregar mÔs funcionalidad a la misma. El Implementamos los siguientes comandos:Cuenta con varios puntos donde se escribe la información en el archivo de registro y el usuario tiene que cambiar a la habitación que sus propias necesidades con sólo invocar el método writelog y pasÔndole la cadena a escribir. El methos writelog abre "/ var / log / scadahoneynet.log" y añade información para de forma predeterminada. El usuario debe cambiar las respuestas dadas como variables dadas en la parte superior (como ListCommandResponse y CommandResponse Syst el archivo que las suites de sus necesidades . La secuencia de comandos se puede encontrar en plc / VxWorks-ftpd.py
Simulación del servidor Telnet
Decidimos escribir un guión telnetd especĆfica porque la mayorĆa de los PLCs de ejecución de sistemas integrados y la cĆ”scara tiene un conjunto Ćŗnico de comandos. Implementamos ayuda y ls y comandos cwd y el usuario obtiene la lista de comandos cuando Ć©l sólo golpea a cambio. La secuencia de comandos se pueden encontrar en plc / VxWorks-telnetd.pySimulación del servidor Web
Con frecuencia, el usuario se conecta al servidor web del dispositivo y un applet de Java se descarga en el cliente y se ejecuta dentro del navegador web. En algunos casos, el applet que hacer la conexión de vuelta al PLC a travĆ©s de protocolos como Modbus / TCP y FTP para la recopilación de datos. El concepto de un applet de seguimiento de la información de la descarga es nuevo en el mundo Honeynet, los llamamos "Miel Applet ". El problema con los applets es que no se les permite comunicarse con todos los hosts de otros entonces el host que sirve el applet (http://java.sun.com/sfaq/). AsĆ que asegĆŗrese de que tiene la variable hosIP como el suyo el nombre de host tof exacta. Dado que cada PLC tiene sus propias interfaces de usuario, una vez mĆ”s nuestro diseƱo y los objetivos de la aplicación son suficientes para escribir una prueba de concepto genĆ©rico que afecta a la mayorĆa de las caracterĆsticas de los applets de PLC. Se utilizó clases Java Swing para dibujar el applet y se usa Java de SUN 1.4.2 para el desarrollo.La secuencia de comandos se puede encontrar en plc / StatusApplet.java Tiene que ser debatido si el applet puede ser sustituido por un script PHP y lo mucho que un atacante conocer si se tratara de un script PHP
pySerial escrito en python de simulación de RS-232/485
Follow Us