Está en la página 1de 10

Traducido del inglés al español - www.onlinedoctranslator.

com

http://dx.doi.org/10.14236/ewic/ICS2018.12

PLCBlockMon: Registro y extracción de datos


en PLCs para la Detección de Intrusión Cibernética

Mislav Findrik y Paul Smith AIT Kevin Quill y Kieran McLaughlin


Instituto Austriaco de Tecnología Centro Queen's University Belfast Centre for
de Seguridad y Protección Digital Secure Information Technologies
Viena, Austria Belfast, Reino Unido

nombre.apellido@ait.ac.at kieran.mclaughlin@qub.ac.uk

El panorama de amenazas para los sistemas de control industrial está en constante expansión y estos sistemas han
demostrado ser objetivos atractivos para los atacantes cibernéticos. Los controladores lógicos programables son
componentes principales en los ICS y, por lo tanto, deben estar bien protegidos y monitoreados. Al examinar la
investigación existente en este campo, descubrimos que existe un vacío en el análisis integral de las funciones de
registro y extracción de datos en dispositivos industriales. Sin embargo, el análisis de estas características y la
evaluación de su aplicabilidad para la detección de intrusos cibernéticos facilitaría significativamente su adopción
por parte de las herramientas de detección de intrusos. Para cerrar la brecha, analizamos las capacidades de
registro y extracción del panel HMI y PLC Siemens S7-1200. Implementamos una lógica de PLC para el registro de
datos llamada PLCBlockMon. En este papel,

Palabras clave:Sistemas de Control Industrial, Seguridad Cibernética, Registro y Extracción, PLC, Detección de Intrusos

1. INTRODUCCIÓN Redes de distribución de electricidad de Ucrania. Uno de ellos


ocurrió en diciembre de 2015, lo que provocó un gran
Las industrias confían cada vez más en máquinas y procesos apagón (Informe E-ISAC (2011)), mientras que el otro,
automatizados. Para que estas máquinas funcionen de forma denominado Crashoverride (Informe Dragos (2017)), ocurrió
fiable, los sistemas de control industrial (ICS) se han diseñado casi exactamente un año después, y provocó un corte de
para funcionar con alta disponibilidad, fiabilidad y seguridad, energía de una hora de duración.
lo que hace que la seguridad de estos sistemas carezca
normalmente. En el pasado, la industria de ICS se ha basado Para detectar ciberataques en redes ICS, muchas empresas
en el aislamiento ("espacios de aire") para hacer que su red de seguridad ahora ofrecen soluciones de monitoreo de
de ICS sea segura. Sin embargo, en la última década, las tráfico de red (por ejemplo, Silent Defense (2018), Dragos
infraestructuras de las redes ICS comenzaron a integrarse Platform (2018), SCADAguardian (2018), Darktrace Industrial
estrechamente con las redes de TI estándar. Esto tiene la (2018)). Además, muchos investigadores están proponiendo
ventaja de permitir el acceso y control remoto de los diferentes métodos de análisis sobre protocolos industriales
dispositivos por parte de los ingenieros que aprovechan el (Ponomarev (2016)) proporcionando nuevas formas de
conjunto de protocolos TCP/IP y el hardware comercial detección de ataques. Sin embargo, el monitoreo de
estándar (COTS). Además de estos beneficios, esto también dispositivos finales, controladores lógicos programables
ha abierto las puertas para que usuarios maliciosos (PLC), que son responsables del control de procesos
implementen vectores de ataque remotos en ICS inseguros. industriales, con fines de seguridad es en gran medida un
área inexplorada. De hecho, estos dispositivos son
monitoreados principalmente por ingenieros de control
Hay múltiples ejemplos de ataques cibernéticos en durante chequeos regulares, para consultar el estado del PLC
ICS, el más famoso de ellos es Stuxnet. Este malware (por ejemplo, tiempo de ciclo, modo operativo, etc.) (Copy
fue diseñado para destruir centrifugadoras de gas en (2015)). Esto generalmente se hace utilizando herramientas
la planta de enriquecimiento de uranio de Irán, específicas del proveedor para el diagnóstico de PLC.
sobrepresurizándolas y acelerando sus rotores
(Lagner (2011)). Esto se logró modificando la lógica de En este documento, exploramos diferentes métodos de registro y
control en ciertos controladores PLC en la planta. extracción de datos en dispositivos industriales que están disponibles
Otros ejemplos de ataques ICS con consecuencias en nuestro banco de pruebas ICS y exploramos su uso con fines de
físicas son dos ciberataques a detección de intrusiones cibernéticas. Por lo tanto, en

©
CFindrik et al. Publicado por
BCS Learning and Development Ltd. Actas de Actas 102
de ICS y SCADA 2018
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

En la primera sección, presentamos el entorno ICS experimental arquitectura correspondiente a los Niveles 0 a 2 en el modelo de
utilizado en los experimentos. En la Sección 3, se proporciona un Purdue (Obregon (2014)), como se muestra en la Fig. 1.
análisis de diferentes capacidades de registro y extracción de
datos. La principal contribución de este artículo es una lógica La figura 2 ilustra la arquitectura de nuestro banco de pruebas.
para el registro de datos en un PLC, que se presenta en la Sección En el futuro, planeamos ampliar el banco de pruebas para incluir
4, junto con un análisis de sus escenarios de aplicación para la sistemas de nivel 3 que son responsables de las operaciones de
detección de intrusos cibernéticos en la Sección 5. la planta, como un historial de datos y una HMI basada en
escritorio, que son responsables del registro de datos de toda la
planta en todas las zonas de celdas y también se pueden utilizar
para la detección de ciber-intrusos.
2. ENTORNO EXPERIMENTAL DEL SCI

Los ICS son entornos grandes y complejos que se usan comúnmente en industrias, como la

fabricación, la generación de energía eléctrica, las plantas químicas, las refinerías de petróleo y las

instalaciones de tratamiento de aguas residuales para el control de procesos. La implementación

de un entorno ICS a gran escala únicamente con fines de investigación puede ser una tarea

abrumadora y costosa, por lo tanto, para realizar experimentos científicos, es común construir

bancos de pruebas ICS utilizando solo unas pocas piezas representativas del equipo que es

necesario para responder preguntas de investigación (Survey (2014)). ). Para analizar las funciones

de registro y extracción de datos en dispositivos industriales, hemos construido un banco de

pruebas a pequeña escala que se compone de componentes de software y hardware de Siemens

que se utilizan en instalaciones reales de ICS. Siemens es uno de los mayores proveedores de ICS

junto con Honeywell, Rockwell/Allen-Bradley y Schneider Electric. por lo tanto, su equipo ha sido

elegido para el banco de pruebas. Los dispositivos Siemens incluidos en el banco de pruebas son

un controlador S7-1200, un panel HMI KTP-700 y una máquina de escritorio con Windows 7 con la

aplicación de software TIA portal v14, que se utiliza como estación de trabajo de ingeniería para la

programación y configuración de PLC/HMI. Si bien los experimentos realizados en este trabajo se

limitan al S7-1200, este dispositivo ofrece información sobre el conjunto de productos S7 más
Figura 2:Arquitectura del banco de pruebas ICS experimental.
grande, ya que todos comparten características similares. La arquitectura de nuestro banco de

pruebas está diseñada para reflejar la supervisión y el control locales de un proceso físico, por lo
Todos los dispositivos antes mencionados están conectados
que representa las zonas de celdas de un ICS general. que se utiliza como estación de trabajo de
a un conmutador de red. Además, se utiliza una
ingeniería para la programación y configuración de PLC/HMI. Si bien los experimentos realizados
computadora portátil que ejecuta Kali Linux (Kali (2018)) en
en este trabajo se limitan al S7-1200, este dispositivo ofrece información sobre el conjunto de
una máquina virtual para la generación de escenarios de
productos S7 más grande, ya que todos comparten características similares. La arquitectura de
ataque experimentales, que se describen en secciones
nuestro banco de pruebas está diseñada para reflejar la supervisión y el control locales de un
posteriores. El PLC S7-1200 utilizado como simulador de
proceso físico, por lo que representa las zonas de celdas de un ICS general. que se utiliza como
procesos y controlador de nivel de agua de un tanque de
estación de trabajo de ingeniería para la programación y configuración de PLC/HMI. Si bien los
refrigerante. El depósito de agua tiene tres válvulas (llenado,
experimentos realizados en este trabajo se limitan al S7-1200, este dispositivo ofrece información
vaciado y refrigerante) con un caudal fijo. El nivel de agua
sobre el conjunto de productos S7 más grande, ya que todos comparten características similares.
actual se simula en el PLC como una entrada analógica, y su
La arquitectura de nuestro banco de pruebas está diseñada para reflejar la supervisión y el
valor se calcula en función del estado actual de las válvulas
control locales de un proceso físico, por lo que representa las zonas de celdas de un ICS general.
(ON o OFF) y el conocimiento de sus caudales. La figura 3
muestra la visualización del proceso en el display de la HMI.

El agua del tanque se utiliza como refrigerante para otro


proceso, por lo que se supone que la válvula de refrigerante
se abre o se cierra en momentos aleatorios para simular la
demanda de refrigerante. Para compensar la falta de agua
en el tanque, la válvula de llenado se abre después de que el
nivel del agua cae por debajo de cierto nivel (el indicador
naranja en el tanque) y se apaga después de alcanzar cierto
nivel de agua (el indicador rojo en el tanque). tanque). La
válvula de drenaje no se controla automáticamente y sirve
para el vaciado ocasional del tanque relacionado con el
mantenimiento. El operador también puede anular
manualmente las acciones de control mediante los botones
de la pantalla HMI.

Figura 1:La arquitectura de referencia de Purdue para ICS.

103
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

valor en un tipo diferente. Los registros se formatean con el


formato de registro CSV, lo que facilita mucho el análisis de la
información de los registros. Como la creación de este
registro requiere la programación de la funcionalidad en la
lógica de escalera, este método de registro requiere el mayor
esfuerzo para implementar de todas las funciones
analizadas. Este cambio de lógica daría lugar a la necesidad
de validación del sistema. Por esta razón, el uso de esta
función de registro sería más aplicable para las instalaciones
que se están diseñando desde cero o que están en proceso
de reemplazo de equipos. Como estos registros están
programados en la lógica del PLC, son tan seguros como la
memoria de carga del PLC. Afortunadamente, los
controladores SIMATIC S7 de Siemens producidos más
recientemente (por ejemplo, las series de PLC S7-300 y
S7-400 entregadas desde abril de 1998, Siemens Security
Bulletin (2011)) ofrecen mecanismos de protección
Figura 3:Visualización HMI del proceso de nivel de agua del tanque. integrados para restringir el acceso a áreas de memoria. El
acceso a la memoria se puede configurar en tres niveles
diferentes (escritura, escritura/lectura y protección completa)
3. CAPACIDADES DE REGISTRO Y y está protegido por contraseña (seguridad S7 (2000)). Por lo
EXTRACCIÓN DE DATOS tanto, la memoria de los registros programados en la lógica
del PLC debe protegerse adecuadamente contra posibles
Esta sección presentará las funciones de monitoreo que alteraciones maliciosas estableciendo al menos un nivel de
están disponibles en los dispositivos del banco de pruebas, protección contra escritura.
es decir, el controlador S7-1200 y el panel HMI. Además, las
capacidades específicas de las funciones de registro se 3.1.2. Registros de búfer de diagnóstico
elaborarán junto con sus características de seguridad contra losBúfer de diagnósticoes un registro de eventos a nivel del
la manipulación y sus capacidades para la extracción de sistema PLC y se almacena localmente en cada CPU.
datos registrados. Originalmente, el búfer de diagnóstico está diseñado para
proporcionar a los usuarios registros para la detección rápida
3.1. Registro y extracción de datos de PLC de errores y la evaluación de eventos que provocaron la
detención del PLC (es decir, la entrada del PLC en modo
3.1.1. Bloques de datos de registro de PLC
STOP) (S7-1200 (2014)). El registro tiene un tamaño de 50
Los bloques de datos de registro del PLC permiten almacenar
eventos, en el caso de S7-1200, de formato de registro
registros de etiquetas lógicas y datos en la memoria local. Los bloques
circular. Se puede habilitar un ajuste de configuración que
de registro de datos incluidos en el TIA Portal proporcionan las
permite recopilar algunos eventos del sistema del mismo
funciones básicas necesarias para construir un sistema de registro.
tipo, lo que aumenta el tiempo hasta que se sobrescriben los
Esto incluye bloques para crear, abrir, borrar, eliminar y escribir en los
eventos antiguos (S7-1200 (2014)). Las características que se
archivos de registro. Esto deja que el programador decida la
registran en el búfer de diagnóstico son: (i) eventos de error
implementación del registro. Las tres funciones principales que deben
(p. ej., errores de CPU, E/S, módulo, submódulo, problemas
programarse para crear un sistema de registro que funcione
de conectividad de red), (ii) cambios de modo de CPU (p. ej.,
completamente son la transferencia de datos a DataBlock (DB), el
cambios de EJECUTAR/PARAR CPU) y (iii) mensajes definidos
manejo del estado del archivo y la activación de cuándo muestrear los
por el usuario (por ejemplo, notificaciones de nivel de tanque
datos. La funcionalidad básica de los bloques crea un solo registro
de agua demasiado alto).
circular. Se pueden crear nuevos archivos de registro con elArchivo
nuevo bloquear para evitar sobrescribir datos; sin embargo, esto Se puede acceder al búfer de diagnóstico de varias maneras
estaría limitado por el pequeño tamaño de la memoria interna. Otra utilizando las funciones existentes de Siemens. Estos son el
consideración con el tamaño de la memoria es con la frecuencia de servidor web integrado, TIA Portal ya través del panel HMI, si
muestreo del registro. El uso de un pulso cíclico para activar esto está configurado para hacerlo. Para usar el servidor web para
crearía una gran cantidad de datos duplicados y, por lo tanto, ver esta información, los derechos de usuario deben
sobrescribiría los datos mucho más rápido. Solo registrar valores de expandirse desde el mínimo para incluir diagnósticos de
etiqueta cuando ocurre un cambio es una implementación mucho consulta. Esto le da al usuario acceso al búfer de diagnóstico,
más eficiente. Este bloque puede aceptar la mayoría de los tipos de pero también al consumo de recursos del dispositivo,
datos y, por lo tanto, puede registrar la mayoría de las etiquetas, estadísticas de recursos de conexión e información sobre el
valores de base de datos y ubicaciones de memoria de forma nativa. módulo. La información de diagnóstico también se puede
Una excepción conocida a los tipos de datos aceptados es Boolean, solicitar en la lógica de escalera utilizando elOBTENER
pero esto se puede superar almacenando el Diagnósticobloque (diagnóstico S7 (2014)).

104
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

Esto permitiría al programador utilizar cualquiera de los Las opciones de registro son: al cambiar el valor de la etiqueta,
bloques de comunicación existentes (p. ej., SMTP sobre TLS) cíclicamente con un período establecido, o puede activarse por el
para transmitir la información de diagnóstico. El TIA Portal cambio en una etiqueta diferente. La HMI no depende de la
está diseñado como una herramienta de programación y lógica de ejecución para leer la memoria del PLC y, por lo tanto,
diagnóstico y solo puede haber una conexión activa en puede continuar registrando valores de memoria mientras el PLC
cualquier momento a un PLC determinado. Por esta razón, está en modo de parada. Una limitación de esta característica es
este método es menos práctico que las otras opciones, ya que la HMI no podrá registrar un pulso en un valor en el PLC que
que genera más desafíos para los ingenieros que trabajan dure menos que el ciclo de actualización de las etiquetas HMI.
con los dispositivos. El uso de la HMI de escritorio para Esto debería tenerse en cuenta para la configuración de la HMI,
guardar los registros parece ser el método más práctico. El ya que cualquier señal de control sensible que pueda causar un
búfer de diagnóstico se puede borrar restableciendo el PLC a cambio necesitaría que el período del ciclo de actualización se
la configuración de fábrica si no hay una tarjeta de memoria establezca al mínimo.
instalada; sin embargo, esto no es posible sin una contraseña
si el nivel mínimo de protección de acceso está configurado Para acceder a los registros en los paneles SIMATIC Basic
en el controlador. HMI, solo hay una opción, que es usar una llave USB
extraíble. Sin embargo, esto no es práctico para una
3.1.3. Extracción de información de registro instalación grande o para usar en un sistema automatizado.
El método principal para extraer los registros del PLC de Los paneles HMI avanzados (es decir, la serie de paneles
forma remota es con el servidor web incorporado. Para ello, SIMATIC HMI Comfort) tienen la opción de habilitar un
el usuario requiere los derechos mínimos más acceso de servidor web para la extracción remota de datos (Siemens
lectura de archivos. Esto permite al usuario descargar los HMI Web Access (2000)). La versión de escritorio de la HMI
registros de datos y recibir datos del dispositivo, pero no (Siemens WinCC (2000)), normalmente utilizada para la
eliminar datos. El servidor web tiene una configuración de implementación de pantallas de operadores de nivel 3, tiene
actualización automática y la frecuencia mínima es cada 5 capacidades para registrar etiquetas y alarmas de PLC/HMI
segundos. Esto significa que el tamaño de los registros de en la memoria del disco, por lo que ofrece muchas más
datos debe ser lo suficientemente grande como para durar la opciones para guardar y transmitir los registros a un sistema
frecuencia de actualización mínima establecida en el servidor de detección. Además de las alarmas del PLC, el panel básico
web. Otras opciones para enviar los datos a un sistema de la HMI también tiene la capacidad de mostrar alarmas
remoto incluyen el uso delT (U) ENVIAR Cbloques de analógicas (activadas por exceder/caer por debajo de un
funciones compatibles con ISO-on-TCP, TCP o UDP (S7 User valor límite previamente definido) y alarmas de bits definidas
Communication (2000)). Por ejemplo, el bloque de funciones por los usuarios en la pantalla de la HMI, y almacenar su
UDP se ha utilizado para implementar la extracción de historial en un búfer cíclico. La integridad de los registros en
registros en formato SYSLOG (S7 Syslog (2018)). Si bien estos el panel HMI y, de manera similar, la versión de escritorio
protocolos no están protegidos, pueden usarse junto con un depende de que la configuración de la HMI sea segura. Un
sistema de detección de intrusos en la red que identifique resumen de estas características se puede ver en la Tabla 1.
posibles manipulaciones de registros en la transmisión. Otra
forma de extraer registros de forma segura es enviándolos a
través de conexiones de correo electrónico seguras (SMTP
4. PLCBLOCKMON: REGISTRO DE DATOS EN PLCS
sobre TLS), que está disponible en el bloque de funciones
En esta sección, describimos la implementación de nuestro
CORREO C(Siemens SMTP, (2004)). Esta opción es una buena
bloque de registro de datos, llamado PLCBlockMon.
alternativa para los casos en que el servidor web no está
PLCBlockMon1está diseñado para registrar diferentes etiquetas
habilitado. Por último, si los registros se almacenan en una
de PLC. La idea es registrar solo las etiquetas que capturan los
tarjeta de memoria utilizada por el PLC, también podrían
estados más importantes del proceso que se está controlando y
extraerse manualmente. Esto es muy poco práctico para
los respectivos valores de entrada/salida del PLC que influyen en
instalaciones reales y solo puede ser útil para fines forenses
los estados del proceso. Por lo tanto, exactamente qué etiquetas
en caso de que el PLC se haya bloqueado.
deben registrarse depende del proceso que se esté controlando,
lo que requiere que se adapte a la lógica del PLC individual.
Además, en esta sección, ilustraremos el proceso de
3.2. Registro y extracción de datos HMI
configuración de PLCBlockMon para registrar los estados del
El panel HMI tiene la capacidad de almacenar registros localmente en proceso del tanque de agua.
un dispositivo USB o tarjeta SD de Siemens conectado. Esta
característica se llamaInformación histórica, y ofrece varias opciones
La lógica de escalera de control programada en el PLC
diferentes para configurar el comportamiento de los registros. Los
utiliza 3 entradas digitales, 3 salidas digitales, 1 entrada
registros almacenados en la HMI consisten en valores registrados de
analógica simulada y 3 entradas HMI (digitales). Las tres
etiquetas HMI y etiquetas PLC que son leídas por la HMI. Estos
entradas HMI son los botones que se pueden ver en la
registros tienen tres opciones para cuando se registran los valores de
Figura 3. Las tres entradas digitales al PLC indican
las etiquetas y esto se puede configurar individualmente para cada 1La fuente está disponible públicamente enhttps://github.com/
etiqueta que se registra. los CSR-AIT/PLCBlockMon

105
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

Registros de bloques de PLC Registros del panel HMI Registros de diagnóstico de PLC

Ubicación de almacenamiento Cargar memoria de PLC Memoria Siemens conectada Cargar memoria de PLC
a la HMI
Seguro extracción Tarjeta de memoria, servidor web Memoria USB TIA Portal, HMI o servidor
métodos o SMTP sobre TLS web
Otro extracción Bloques lógicos de - Bloques lógicos de
métodos comunicación TCP o UDP comunicación TCP o UDP
Ámbito de registro Ubicaciones de lógica y memoria Etiquetas y alarmas HMI/PLC Eventos de diagnóstico
en PLC
Método de activación Disparador cíclico o Cíclico, Bajo Demanda o Bajo Evento activado
programado Cambio
Tabla 1:Un resumen de las funciones de registro que están fácilmente disponibles en los dispositivos de banco de pruebas industriales.

posiciones de las válvulas, mientras que las salidas digitales se


utilizan para establecer su posición. Por último, la entrada
analógica al PLC es un valor simulado del nivel del tanque. Estas
son las diez etiquetas más importantes seleccionadas para
registrar, ya que influyen en el estado del PLC y, por lo tanto, en
el proceso.

Una vez que se han elegido las etiquetas de registro, la lógica de


control debe aumentarse con instrucciones adicionales para
capturar los cambios de etiqueta en las ubicaciones de memoria
a las que puede acceder PLCBlockMon. En la Figura 4, esto se
ilustra en una parte de la lógica de control responsable de
encender la válvula de llenado. Un operador puede encender la
válvula de llenado a través de la HMI (Relleno HMI ES) etiqueta de
Figura 5:Principales bloques funcionales de PLCBlockMon.
entrada o automáticamente por la lógica biestable SR, si el nivel
del agua está por debajo de un cierto umbral.

El bloque disparador primero compara los bytes de entrada y


salida con su estado anterior guardado internamente. Si se
detectan cambios, se activa el disparador para el bloque de
registro de datos subsiguiente y se guardan los cambios
actuales en el archivo CSV que reside en la memoria. En aras
de la compresión, las entradas y salidas digitales se registran
en una matriz de bytes y se representan en el archivo como
valores enteros. La figura 6 proporciona un ejemplo de un
archivo de registro de este tipo.

Figura 4:Lógica de control PLC aumentada con instrucciones de guardado


de etiquetas.

Los cambios en la entrada HMI (es decir,Relleno HMI ES


etiqueta) y la salida digital para el control de la válvula de
llenado se guardan en la ubicación de la memoria para Figura 6:Archivo de registro generado por PLCBlockMon.
salidas (M44.0) y entradas (M45.0), mediante instrucciones
resaltadas en rectángulos amarillos. Una vez capturados los
cambios, es necesario guardar los registros en la memoria de 5. DETECCIÓN DE INTRUSIÓN CIBERNÉTICA
carga del PLC. Esto se logra mediante dos bloques internos
principales del PLCBlockMon:GeneraryRegistro de datos, que Nuestra técnica de detección de intrusos se basa en la
se muestra en la Figura 5. PLCBlockMon debe colocarse al comparación de los archivos de registro generados por
final de la lógica de control principal (es decir, bloque de PLCBlockMon en el PLC y los archivos de registro recopilados en
organización). Al colocar PLCBlockMon al final, se asegura el panel HMI. Esta sección explica primero el método de registro
que la lógica de control ya no cambiará las etiquetas de utilizado en el panel HMI durante los experimentos, después de
entrada/salida en un ciclo de ejecución determinado. lo cual se presentan y explican los resultados de la validación
experimental.

106
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

5.1. Implementación de registro de datos basada en HMI 5.2. Validación Experimental

El inicio de sesión en el panel HMI estuvo disponible En esta sección se discutirán los resultados de los
mediante un dispositivo USB de Siemens conectado. Esto experimentos realizados. En primer lugar, se examinará
permitió registrar diferentes etiquetas utilizando la función la validación del uso de recursos y la resiliencia de la red
incorporada de datos históricos de HMI. Las etiquetas que se de las funciones de registro, y luego se utilizarán tres
registrarán y el tipo de modo de adquisición que se escenarios de ataque para ilustrar las aplicaciones de las
seleccionará se configuraron a través del portal TIA. Esto se funciones de registro en el ejemplo del proceso del
puede ver en la Figura 7. tanque de agua.

5.2.1. Detección de ataques DoS


Para examinar la precisión de los registros en condiciones de
red extenuantes, los registros se registraron bajo un ataque
de DOS que se genera utilizando la herramienta hping3
(Hping (2014)) desde la computadora portátil del usuario
malintencionado que se muestra en la Figura 2. Los registros
de datos históricos de HMI se basan en el información que le
transmite el PLC y, por lo tanto, son susceptibles de perder
datos cuando se interrumpe la conexión de red. Como se
puede ver en la Figura 9, donde los datos se configuraron
para registrar cuando cambia el valor, la HMI no cambia el
valor en los registros ni registra un valor predeterminado
cuando se pierde la conexión de red. El ataque de DOS se
Figura 7:Pasos del proceso de la fase de desarrollo para inició a los 100 segundos y finalizó a los 200. Esta es la razón
desarrollar aplicaciones IoT seguras. por la que el HMI FillOut se tardó en ponerse a cero, ya que
estaba esperando la conexión. Para valores de etiqueta que
Las etiquetas registradas en la HMI son: (i)Botónetiquetas
vinculadas a una etiqueta en el PLC y, por lo tanto, si la etiqueta
se cambia en un dispositivo, la etiqueta en el otro dispositivo
también se cambia, ya sea porque la HMI envía una solicitud para
cambiar la etiqueta en el PLC o si la etiqueta se cambió en el PLC,
entonces la HMI cambiará su valor cuando lea las etiquetas de
PLC, también registradas por PLCBlockMon; (ii)Prensaetiquetas
internas a la HMI que indican cuándo un operador cambia
manualmente el interruptor; (iii) Afueraetiquetas vinculadas
directamente a las etiquetas de salida de control digital en el PLC
también registradas por PLCBlockMon; (iv) Nivel del tanque
etiqueta vinculada a la variable de nivel del tanque del PLC. Es
necesario registrar las mismas etiquetas a través de
PLCBlockMon y en la HMI para poder comparar sus valores.

Figura 9:Valores de etiquetas de PLC y HMI durante el experimento DoS.

se registran cíclicamente si la conexión de red se interrumpe,


entonces el registro basado en HMI registrará el último valor
conocido pero establecerá el indicador de validez (que se
muestra en la Figura 8) en 0 para indicar que este no es un
valor válido. Además de la información de registro
proporcionada por PLCBlockMon y la HMI, este ataque
Figura 8:Archivo de registro generado por la HMI. podría correlacionarse con información de un sistema de
detección de intrusos en la red, si se implementa uno en la
misma red de control industrial.
Para los valores de etiquetas que se registran cíclicamente, si la
conexión de red se interrumpe, la HMI registrará 5.2.2. Ataques de protocolo al PLC
automáticamente el último valor conocido, pero establecerá el Este escenario se basa en una vulnerabilidad identificada por un
indicador de validez en 0 para indicar que este no es un valor atacante o similar, donde se puede usar una vulnerabilidad de
actualizado (como se muestra en la Figura 8) . protocolo conocido, debido a un firmware más antiguo en los
dispositivos operativos. Los problemas de seguridad con el
protocolo pueden permitir que un atacante reproduzca,

107
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

manipular paquetes, o incluso cambiar áreas de memoria, y al hacerlo cambiar la operación del PLC. Por cambiando el registro hasta la próxima solicitud de datos, que es
ejemplo, la explotación de vulnerabilidades de seguridad en el protocolo S7 se ha demostrado previamente un proceso cíclico de un período preestablecido y, por lo tanto,
en los siguientes documentos (Bresford (2011), Cheng et al (2017)). Las etapas de tales ataques podrían tiene un retraso mayor que la actualización inmediata para
ocurrir de la siguiente manera: (i) para producir una modificación específica a un proceso, el atacante cambios legítimos desde la HMI. La información que se muestra
necesitaría tener conocimiento de lo que está haciendo el PLC y observar los paquetes para construir un en la figura podría proporcionarse a un IDS con reconocimiento
perfil de las ubicaciones de memoria que se están configurando. la red, (ii) habiendo creado un perfil de de secuencias (Caselli et al (2015)), que puede identificar
comportamiento y adquirido conocimiento de la configuración del PLC, y el atacante podría capturar el intrusiones en función del orden de ejecución de los eventos.
paquete específico que pretende reproducir, modificarlo para evitar el rechazo y reenviarlo al PLC. O en caso

de que el área de la memoria no esté protegida contra escritura, el atacante podría simplemente emitir Además de observar la secuencia de eventos, una tercera
comandos de fuerza de memoria. Cuando la vulnerabilidad en el protocolo permita la manipulación de forma en que los registros podrían usarse para la detección
paquetes, un paso adicional en este escenario podría ser modificar los paquetes de retorno a la HMI para de ataques que manipulan paquetes de control de HMI es si
ocultar los cambios causados por el ataque de reproducción. En este caso, si se hace correctamente, ambos la HMI está configurada para registrar pulsaciones de
registros se verían normales en comparación, sin embargo, los registros del PLC mostrarían inconsistencias botones, así como cambios de lotes en la etiqueta controlada
en el control del proceso, por ejemplo, la válvula de llenado se abrió cuando debería estar cerrada (es decir, por ese. botón - como se explica en la Sección 5.1. Si esto se
cuando el nivel del agua está por encima de un cierto umbral). ). Sin embargo, si el atacante está forzando las implementa y la etiqueta en el PLC se cambia utilizando la
etiquetas de PLC que normalmente se cambian solo a través del botón HMI, sus acciones podrían detectarse función de fuerza o con el ataque de repetición, entonces la
mediante la comparación de registros, como se muestra en la Figura 10. En este caso, si se hace prensa no se registrará en los datos históricos de HMI. La
correctamente, ambos registros se verían normales en comparación, sin embargo, los registros del PLC diferencia entre un cambio de botón normal y malicioso se
mostrarían inconsistencias en el control del proceso, por ejemplo, la válvula de llenado se abrió cuando capturaría en los registros de datos históricos de HMI y se
debería estar cerrada (es decir, cuando el nivel del agua está por encima de un cierto umbral). ). Sin detectaría analizando el orden de ejecución de los eventos.
embargo, si el atacante está forzando las etiquetas de PLC que normalmente se cambian solo a través del

botón HMI, sus acciones podrían detectarse mediante la comparación de registros, como se muestra en la

Figura 10. En este caso, si se hace correctamente, ambos registros se verían normales en comparación, sin
5.2.3. Detección de carga de lógica maliciosa
embargo, los registros del PLC mostrarían inconsistencias en el control del proceso, por ejemplo, la válvula
Este escenario está diseñado para mostrar las
de llenado se abrió cuando debería estar cerrada (es decir, cuando el nivel del agua está por encima de un
limitaciones de PLCBlockMon y los registros de datos
cierto umbral). ). Sin embargo, si el atacante está forzando las etiquetas de PLC que normalmente se
históricos, al mismo tiempo que ilustra cómo se pueden
cambian solo a través del botón HMI, sus acciones podrían detectarse mediante la comparación de registros,
usar el búfer de diagnóstico y las estadísticas de recursos
como se muestra en la Figura 10.
disponibles del PLC para buscar cambios inusuales. El
ataque de carga de lógica maliciosa considera los
siguientes pasos: (i) un atacante configura un ataque de
phishing o instala un registrador de teclas en la
computadora portátil del ingeniero, (ii) el ingeniero se
conecta al PLC, ingresa la contraseña para realizar el
mantenimiento o ver información de diagnóstico con TIA
Portal, (iii) el atacante captura la contraseña y luego se
conecta al PLC con un TIA Portal diferente y descarga la
lógica existente, (iv) el atacante también puede ver la
operación en tiempo real del sistema para crear un perfil,
( v) una vez que el atacante tiene la lógica del PLC, pueden
modificarlo para llevar a cabo su objetivo mientras
simulan y muestran las condiciones normales de
operación, (vi) el atacante carga la nueva lógica. Para
lograr los pasos descritos sin modificar la configuración
de HMI, se requiere que un atacante modifique el mapeo
de los pines de salida digital en el PLC. Para hacer esto, el
Figura 10:Cambios de botones normales (izquierda) y cambios PLC debe hacer un reinicio completo que borre la
causados por forzar la memoria del PLC (derecha). memoria de las etiquetas y bases de datos. Los archivos
de registro no se eliminan en este punto; sin embargo, la
En referencia a las condiciones de funcionamiento replicadas en lógica de PLCBlockMon no podrá abrir el archivo anterior
el banco de pruebas, se simuló la capacidad de un atacante para y, por lo tanto, lo anulará con un nuevo archivo con el
modificar la etiqueta de memoria utilizando la función de fuerza mismo nombre. Una vez que la lógica se ve
en el portal TIA. Ahora se puede usar una comparación de los comprometida, la precisión de los registros programados
datos históricos de la HMI y los registros del PLC para identificar no está clara, ya que un atacante puede programar los
si el cambio de memoria se inició directamente desde la HMI. La registros del PLC para que se vean como ellos quieran.
diferencia en las marcas de tiempo puede indicar la dirección del Esto se puede ver en la figura 11,
flujo de datos, esto se puede ver en la Figura 10, donde la
demora en los pulsos de la derecha es mayor que los pulsos de la
izquierda, donde no se ve ninguna demora. Este retraso es el El mismo comportamiento vinculado a las operaciones normales
resultado de que la HMI no del PLC se puede ver en el lado derecho de la parte superior

108
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

el rendimiento en tiempo real de la lógica de control de


funcionamiento del PLC. Las pruebas del bloque de función de
registro PLCBlockMon que se agregó a la lógica de control de
tanque normal mostraron que el tiempo de ciclo era el mismo en
comparación con el PLC sin registro. Sin embargo, se usó más
memoria de carga cuando se estaba ejecutando PLCBlockMon.
Para el tamaño de registro de 100 entradas, se creó un archivo
de registro de 6 KB en el PLC que permite almacenar valores de 2
bytes (máximo de 14 valores booleanos) y un valor real (suficiente
para almacenar 9 entradas digitales booleanas y el valor del nivel
del tanque).

6. CONCLUSIÓN

El objetivo de este documento es evaluar el potencial para


Figura 11:Gráfico de datos de registro de PLCBlockMon antes y después de
usar las funciones de diagnóstico y registro que están
modificar la lógica.
integradas en los dispositivos industriales contemporáneos
ampliamente implementados, específicamente los PLC, para
la detección de intrusiones cibernéticas. Hemos encontrado
grafico. Sin embargo, en este caso, los valores morados ya no pocos trabajos de investigación relacionados (aparte de
representan el estado real del PLC (el estado real se Caselli et al (2015)) que analicen el uso de funciones y
representa con una línea negra en el gráfico superior). Los registros de datos específicos de ICS con fines de seguridad,
datos a la derecha del gráfico se registraron después de que lo que nos motivó a realizar este estudio. En particular,
se modificó la lógica y representan lo que se mostró en la hemos analizado exhaustivamente las siguientes opciones:
HMI y en los nuevos registros de PLC falsos. El espacio de los datos históricos de HMI, los bloques de registro de datos
información en el centro del gráfico representa cuando la de PLC y el búfer de diagnóstico de PLC, debido a sus
lógica se estaba actualizando y el PLC estaba en modo STOP. características para el registro de datos ICS relevantes junto
En este proceso de reinicio, donde se cambia la configuración con varias posibilidades para su extracción y uso para la
del PLC, los archivos de registro se borran de los datos detección de intrusos. Además, hemos implementado una
antiguos y esta es la razón por la cual la herramienta de lógica de PLC que permite el registro de datos en el PLC
trazado no interpola el espacio. En un entorno operativo, un Siemens S7-1200, llamada PLCBlockMon, explicó su
reinicio intencional requeriría el apagado del sistema o implementación y demostró el uso para la detección de
alguna otra medida para evitar la inestabilidad del sistema intrusos junto con los datos históricos de HMI basados en el
mientras el PLC está fuera de línea. Por esta razón, y el hecho método de comparación de registros. Además, hemos
de que es muy poco probable que cambie la lógica del PLC en mostrado cómo los registros de datos de PLC se pueden
este entorno hace que un reinicio sea muy sospechoso. Por falsificar con éxito mediante la carga de una lógica maliciosa
lo tanto, borrar el archivo de registro sería un evento inusual bien construida, pero no sin dejar rastros que puedan indicar
que ocurriría en un sistema en ejecución y podría ser una dicha actividad. También vale la pena mencionar que la
indicación de un ataque malicioso de carga de lógica. comparación de registros de diferentes dispositivos requiere
Además, la lógica adicional requerida para simular el sincronización de tiempo en el sistema, ya que las marcas de
comportamiento real del proceso aumenta el uso de tiempo se generan en los dispositivos individuales. Se
memoria del PLC. necesitaría más investigación para evaluar la resiliencia de la
- este cambio también podría servir como indicación del técnica de registro frente a ataques de tiempo como los
ataque. También se pueden encontrar indicaciones ataques de amplificación NTP (NTP Attacks (2016)). Otra área
adicionales en los búferes de diagnóstico de la HMI y el PLC. potencial para futuras investigaciones sería evaluar la
Mientras el PLC está en modo STOP, el búfer de diagnóstico aplicación de PLCBlockMon para fines forenses de ICS (Van
de la HMI registraría los problemas de conexión de red y el Vlie et al (2016)), su viabilidad para el despliegue en
reinicio del PLC se registraría en el búfer de diagnóstico del circunstancias prácticas, ampliar el trabajo actual a otros
PLC. Un sistema de monitoreo con acceso a los buffers de dispositivos industriales de Siemens y considerar otros
diagnóstico podría utilizar estas indicaciones como fabricantes de equipos ICS. Esperamos que los hallazgos de
disparador de un sistema de validación lógica similar al esta investigación sirvan como base para futuros estudios de
propuesto por (Govil et al (2017)). seguridad cibernética sobre la detección de intrusiones de
ICS, al proporcionar fuentes de información recopiladas
5.2.4. Validación de uso de recursos sobre las funciones de registro y extracción disponibles en
Para aplicaciones de control industrial, el rendimiento en una amplia gama de dispositivos S7.
tiempo real es de suma importancia, por lo que la lógica de
registro no debería tener un impacto considerable en

109
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

RECONOCIMIENTO Copy B. , Zimny M. , Milcent H., “Standards-


monitoreo de diagnóstico de PLC de código abierto
La investigación que condujo a estos resultados recibió basado en Proceedings of ICALEPCS2015, Melbourne,
financiación del OIEA como parte del CRP J02008 sobre la Australia
mejora del análisis de incidentes de seguridad informática en
instalaciones nucleares. Ponomarev S. y Atkison T., “Control industrial
Detección de intrusos en la red del sistema mediante
análisis de telemetría”, en IEEE Transactions on
REFERENCIAS Dependable and Secure Computing, vol. 13, núm. 2, pp.
252- 260, 1 de marzo-abril de 2016.
Siemens, envío de correos electrónicos a través de correo electrónico seguro
Conexiones con S7-1500 y S7-1200, https:// Obregón L., “Arquitectura segura para la industria
cache.industry.siemens.com/ dl/files/ Sistemas de control," https://www.sans.org/
803/46817803/att 926218/v2/ 46817803 Correo sala de lectura/documentos técnicos/ICS/
electrónico con CP1543-1 en.pdf securearchitecture-industrial-control-
systems-3632
Siemens, SIMATIC HMI Confort Paneles,
https://cache.industry.siemens.com/ dl/files/
Siemens, Manual de sistema SIMATIC S7-1200,
Siemens, Núremberg, 2014.
153/109476153/att 848919/v1/ 109476153
Servidor web de paneles remotos DOKU es. pdf kali linux,https://www.kali.org/
Herramientas Kali, descripción del paquete hping3,https:
Siemens, Seguridad con controladores SIMATIC, //tools.kali.org/recopilación-de-información/
https://cache.industry.siemens.com/ dl/files/ hping3
010/90885010/att 876214/v1/ 77431846
Siemens, Diagnóstico en el programa de usuario con S7-
Seguridad SIMATIC DOKU V20 es.pdf
1500, 2014.
Siemens, Configuración de mensajes y alarmas en
Holm H., Karresand M., Vidstrm A., Westring E.
WinCC (TIA Portal),https://soporte.industria.
(2015) Una encuesta de bancos de pruebas de sistemas de
siemens.com/cs/document/62121503/
control industrial. En: Buchegger S., Dam M. (eds) Secure
configuracion-de-mensajes-y-alarmas\ multa-
IT Systems. Lecture Notes in Computer Science, vol 9417.
\@M-in-wincc-(tia-portal)?dti= 0&lc=en-WW
Springer, Cham

Siemens, comunicación abierta de usuario con TSEND C


Langner R., “Stuxnet: diseccionando una guerra cibernética y TRCV C, https://caché.industria.
Weapon”, en IEEE Security & Privacy, vol. 9, núm. 3, siemens.com/dl/files/808/67196808/ att
págs. 49-51, mayo-junio de 2011. 108115/v2/net s7-1200 isoontcp en.pdf
E-ISAC, Análisis del Ciberataque a la Siemens, Envío de mensajes SYSLOG con
Caso de uso de defensa de la red eléctrica de Ucrania, 18 de marzo una CPU SIMATIC S7,https://soporte.
de 2016 Industry.siemens.com/cs/document/51929235/
- envío-de-mensajes-syslog-con-un-simatic-s7
Dragos, Crashoverride: Análisis de la Amenaza a
- cpu?dti=0&lc=en-WW
operaciones de la red eléctrica,https://dragos.com/
blog/crashoverride/CrashOverride-01.pdf Siemens, Siemens Seguridad Boletín
Respuesta al SCI Alerta (ICSA-11-223-
SecMatters, Defensa silenciosa Ficha de datos,
01A), https://www.industry.siemens.com/
https://www.secmatters.com/hubfs/
topics/global/en/industrial-security/ news-alerts/
Asuntos de seguridad-marzo de 2017/
Documents/Summary on ICS Alert
PDF/SilentDefense-Datasheet.pdf
ICSA-11-223-01A.pdf
Dragos, Ficha técnica de la plataforma Dragos,https: Beresford D., explotando Siemens Simatic
//dragos.com/media/Hoja de datos de la plataforma S7 PLCs, en Black Hat USA+2011, Las Vegas, NV,
Dragos.pdf EE. UU., 34 de agosto de 2011. [En línea]. https://
sistema inmunitario industrial darktrace,https://www.
media.blackhat.com/bh-us-11/ Beresford/BH
darktrace.com/resources/ds-iis.pdf US11 Beresford S7 PLC WP.pdf
Cheng L. et al, La lanza para romper el muro de seguridad
Hoja de datos SCADAGuardian de Nozomi Networks,
de S7CommPlus, en Black Hat EU 2017. [En línea].
https://www.nozominetworks.com/downloads/
https://www.blackhat.com/docs/eu-17/materials/
US/Nozomi-Networks-SG-Data-Sheet.pdf
eu-17-Lei-The-Spear-To-Break%20-The-Security-
Wall-Of-S7CommPlus-wp.pdf

110
PLCBlockMon: Registro y extracción de datos en PLC para la detección de intrusiones cibernéticas
Findrik•Pluma•Herrero•McLaughlin

Caselli M. et al, Intrusión consciente de la secuencia Alerta US-CERT (TA14-013A), amplificación NTP
Detección en Sistemas de Control Industrial. En Ataques usando CVE-2013-5211,https://www. us-
Actas del 1er Taller de ACM sobre Seguridad de cert.gov/ncas/alerts/TA14-013A
Sistemas Cibernéticos y Físicos (CPSS '15). ACM,
Nueva York, NY, EE. UU., 13-24. DOI=http:// Van Vlie et al. “Medicina Forense en Control Industrial
dx.doi.org/10.1145/2732198.2732200 Sistema: un estudio de caso”. (2016),https://arxiv.
org/ftp/arxiv/papers/1611/1611.01754.pdf
Govil, Naman, Anand Agrawal y Nils Ole
Tippenhauer. "Sobre bombas lógicas de escalera en
sistemas de control industrial". Preimpresión de
arXiv arXiv:1702.05241 (2017).https://arxiv.org/pdf/
1702.05241.pdf

111

También podría gustarte