ES2905268T3 - Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas - Google Patents
Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas Download PDFInfo
- Publication number
- ES2905268T3 ES2905268T3 ES15178215T ES15178215T ES2905268T3 ES 2905268 T3 ES2905268 T3 ES 2905268T3 ES 15178215 T ES15178215 T ES 15178215T ES 15178215 T ES15178215 T ES 15178215T ES 2905268 T3 ES2905268 T3 ES 2905268T3
- Authority
- ES
- Spain
- Prior art keywords
- program
- automation component
- behavior
- threat situation
- automation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006399 behavior Effects 0.000 claims abstract description 88
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 16
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 12
- 238000009795 derivation Methods 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 4
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004886 process control Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24042—Signature analysis, compare recorded with current data, if error then alarm
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24119—Compare control states to allowed and forbidden combination of states
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24125—Watchdog, check at timed intervals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Alarm Systems (AREA)
- Programmable Controllers (AREA)
Abstract
Procedimiento implementado por computadora para la detección de una situación de amenaza para un componente de automatización dentro de un sistema de control y de monitoreo, - en donde el componente de automatización comprende entradas y salidas; - en donde el componente de automatización al menos presenta un comportamiento de programa esencialmente cíclico; - en donde los estados del proceso se leen cíclicamente en las entradas del componente de automatización y las salidas del componente de automatización se envían cíclicamente y en correlación con la lectura cíclica; - en donde el programa del componente de automatización genera una imagen de proceso de salida específica para una determinada imagen de proceso de entrada; - con la cual para cada uno de los estados del proceso existe una imagen de proceso en la entrada y la salida del componente de automatización, que define un comportamiento real del programa durante el funcionamiento del sistema; - en donde, antes de que se realice el monitoreo, se determinan y almacenan una serie de comportamientos del programa objetivo; - en donde el comportamiento del programa objetivo se corresponde con los estados del proceso leídos como parte de un respectivo ciclo y correlativas las salidas, siempre que el componente de automatización esté libre de manipulación, y que para el monitoreo del comportamiento del programa comprende: a) determinación cíclica de al menos un comportamiento real del programa; b) comparación cíclica del comportamiento real del programa con el comportamiento del programa objetivo existente; c) derivación cíclica de una situación de amenaza a partir de la comparación; d) en caso de amenaza, alertar sobre la situación de amenaza.
Description
DESCRIPCIÓN
Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas
La presente invención hace referencia a un procedimiento para la detección de una situación de amenaza para un componente de automatización.
Los sistemas de automatización en la automatización industrial constan de una serie de componentes de automatización diferentes, principalmente, a nivel de control y de campo, como, por ejemplo, controladores lógicos programables. El término componente de automatización debe entenderse como cualquier componente de campo o componente de control inteligente, equipado con un software, y en este sentido, también se deben incluir en el término los componentes de accionamiento, de monitoreo o de sensor. Por lo general, los componentes de automatización están interconectados entre sí y son operados y/o monitoreados por diferentes controles de nivel superior, dispuestos jerárquicamente. Los niveles de control de nivel jerárquico superior se conocen como nivel de operador, nivel de gestión o nivel empresarial.
Los componentes de automatización a nivel de control y de campo también se están convirtiendo cada vez más en objetivos de los así llamados como ciberataques y manipulación de programas, lo podría tener efectos, por ejemplo, en el control de un proceso de fabricación. En la actualidad ya hay una serie de componentes de seguridad que previenen en gran medida, o que al menos reconocen la intrusión en el sistema de automatización en su conjunto. Sin embargo, por lo general, se trata de medidas singulares e independientes que aumentan la seguridad industrial de los componentes de automatización, pero que actualmente no son suficientes por sí solas para garantizar una protección integral contra la manipulación. Tampoco se conoce cómo combinar estos componentes de seguridad de manera adecuada. Los componentes de automatización con "funciones de seguridad integradas" ("Integrated Security Funktionen") ya ofrecen en la actualidad un cierto nivel de protección contra cambios en el programa. Los mecanismos de protección conocidos y ya integrados son la protección de know-how, la protección de copia o la protección de acceso. En la medida en que se deba garantizar la protección contra la manipulación, esto sólo hace referencia a la transferencia de datos a los niveles superiores mencionados anteriormente, en particular, desde y hacia la HMI (por sus siglas en inglés: Human Machine Interface, interfaz hombre-máquina). Sin embargo, estos mecanismos de protección también se pueden eludir con un esfuerzo adecuado (por ejemplo, fuerza bruta). Sin embargo, cuando se produce un cambio de programa, las manipulaciones del programa, es decir, los cambios en el comportamiento del proceso, no se pueden detectar con estos medios.
También son conocidas las así llamadas como soluciones SIEM (del inglés: Security Information and Event Management, Gestión de eventos e información de seguridad), que se integran en entornos de automatización. En este caso, los parámetros relevantes para la seguridad se extraen de los componentes para después utilizarlos para garantizar una protección compleja del sistema. Las informaciones generales se recopilan utilizando protocolos comunes como SNMP o Syslog y, eventualmente, se relacionan con otras informaciones de los componentes de seguridad. Pero aquí tampoco es posible un acceso completo a todas las variables que describen el comportamiento cíclico de un componente de automatización. Por lo tanto, la manipulación del programa no es reconocible.
De la solicitud US 6424258 A1 se conoce la simulación del comportamiento de un componente de automatización en paralelo al control del proceso por el componente de automatización mediante otro componente. En el marco de este procedimiento, los estados del proceso leídos por el componente de automatización en sus entradas y emitidos en sus salidas también se suministran a los otros componentes. El otro componente determina en las entradas las correspondientes salidas en base a los estados del proceso y las compara con las salidas que se le suministran. En caso de discrepancia, se envía un mensaje de alarma.
De la solicitud US 2013/0061 328 A1 se conoce un procedimiento para el monitoreo de un componente electrónico. Con este procedimiento, las rutinas de prueba se activan repetidamente, en base a las cuales se toman determinadas medidas. Se comprueba si las medidas realmente implementadas corresponden a las medidas esperadas. En caso de discrepancia, se envía un mensaje de alarma.
De la solicitud WO 2014/109645 A1 se conoce un procedimiento para la detección de una situación de amenaza para un componente de automatización. En el marco de este proceso, los datos de uno o más sensores y agentes se comparan con los datos recopilados previamente. En base a la comparación, se concluye la existencia o no de una situación de amenaza. Los agentes, en el sentido de la solicitud WO mencionada, son programas informáticos que reaccionan a su entorno y realizan una función sin supervisión directa. El tipo de función no se especifica con más detalle en la solicitud WO citada.
Por consiguiente, el objeto de la presente invención consiste en proporcionar un procedimiento que determine una situación de amenaza para los componentes de automatización mediante la detección fiable de la manipulación del
programa en el componente de automatización. Dicho objeto se resuelve mediante un procedimiento con las características de la reivindicación 1.
El respectivo componente de automatización funciona esencialmente en un modo cíclico, como se conoce, por ejemplo, de los controles lógicos programables. En tal caso, los estados del proceso se leen cíclicamente en las entradas del componente de automatización y las salidas del componente de automatización se envían cíclicamente y en correlación con la lectura cíclica. Para ello, para cada estado del proceso existe una imagen de proceso en la entrada y la salida del componente de automatización Esta imagen de proceso durante el funcionamiento del sistema se entiende como el comportamiento real del programa, porque el programa del componente de automatización genera una imagen de proceso de salida determinada para una determinada imagen de proceso de entrada. En un primer paso, ahora se determina o se registra este comportamiento real del programa. Por determinación o registro se entiende, por ejemplo, que este comportamiento real del programa se almacena de manera apropiada en un formato adecuado con el registro simultáneo del respectivo momento en forma de una así denominada como "huella dactilar" o como una primera firma. Sin embargo, también es concebible que los datos no se guarden en un archivo, sino que la firma se mantenga en la memoria, por ejemplo, del componente de automatización. En un segundo paso, esta primera firma se compara ahora con una segunda firma, en donde esta segunda firma se corresponde con el comportamiento de un programa objetivo. El comportamiento del programa objetivo se debe entender como el comportamiento del programa que se espera en un componente de automatización que no está sometido a ninguna manipulación. Antes de realizar el propio monitoreo se determinan y almacenan, por ejemplo, múltiples comportamientos del programa objetivo. El almacenamiento se puede realizar en un formato adecuado, en donde adecuadamente, el comportamiento real del programa se presenta en el mismo formato. Entonces, una comparación entre el comportamiento real del programa y el comportamiento objetivo del programa puede tener lugar, por ejemplo, comparando los así denominados como valores hash de ambos archivos entre sí y para poder determinar así si los datos difieren significativamente. También son posibles otros mecanismos para realizar una comparación entre los archivos. Una derivación de una situación de amenaza, es decir, de la existencia o no de la misma, se realiza en un siguiente paso a través de la evaluación cualitativa del resultado de la comparación. Cuando el comportamiento real del programa se corresponde en gran medida al comportamiento del programa objetivo almacenado, no existe ninguna amenaza. Por el contrario, el caso de que un comportamiento de programa real no se corresponda con ningún comportamiento de programa objetivo podría indicar una situación de amenaza. Por una correspondencia amplia se debe entender aquí que no se requiere necesariamente una correspondencia absoluta y del 100%, sino que, dependiendo del caso individual, se puede permitir un cierto grado de desviación según el caso individual y aún así una declaración con reservas sobre una situación de amenaza.
De esta manera, es posible monitorear continuamente el comportamiento del programa e identificar rápidamente las manipulaciones del programa. Cuando se detectan desviaciones entre la primera y la segunda firma, se puede suponer que se ha realizado un cambio en el programa, lo que a su vez representa una indicación de una posible manipulación. Se puede iniciar cualquier medida, por ejemplo, la alarma y/o la transferencia automática del proceso a un estado seguro.
Según otro aspecto de la presente invención, todos los comportamientos del programa objetivo se determinan mediante lógica difusa y/o redes neuronales y/o software de simulación en una fase de aprendizaje, por lo cual el comportamiento del programa objetivo del componente de automatización determinado de esta manera se puede almacenar en el propio componente de automatización o bien en el controlador de nivel superior. El objetivo consiste en el aprendizaje del comportamiento de un componente de automatización en el estado original y sin cambios, es decir, en el estado no manipulado, durante un cierto período de tiempo y después almacenar este comportamiento como una segunda firma. En este contexto, en esencia, resulta irrelevante de qué tipo de montaje se trate, siempre que el comportamiento sea cíclico. La estructura de la lógica difusa o de las redes neuronales como tal es conocida y no se profundizará más aquí sobre las mismas. Solamente resulta necesario que se consideren todas las medidas y variables que influyen en el comportamiento del componente de automatización. Estos se deben definir de antemano e integrar en la lógica. Una posible forma de determinar empíricamente el comportamiento del programa objetivo es utilizar un software de simulación. Con un software de simulación de este tiempo, sería comparativamente fácil determinar y almacenar el comportamiento del programa objetivo incluso antes de la entrega a un sistema. Al mismo tiempo, sería posible, en caso de cambios deseados, por ejemplo, durante una servicio posterior, enseñar el comportamiento del programa objetivo modificado, es decir, generar y almacenar una nueva firma para el comportamiento del programa objetivo relacionado con el cambio mencionado.
En una forma de ejecución, el comportamiento del programa determinado se almacena en el componente de automatización. Esto resulta particularmente ventajoso porque la inteligencia se desplaza al nivel de control y de campo y, así, cada componente de automatización puede informar su intento de manipulación. En simultaneo, apenas existe una carga adicional en el tráfico de datos en la red industrial.
En otra forma de ejecución, el comportamiento del programa objetivo determinado del componente de automatización se almacena en un nivel de control de nivel superior. Esto resulta ventajoso en aquellos casos en los cuales los componentes de automatización se deben integrar en la automatización de fábrica que no ofrecen opciones limitadas (espacio de almacenamiento, rendimiento del procesador) para almacenar funciones adicionales
del procesador y de memoria sin influir negativamente en los tiempos de procesamiento para el control del proceso. Ventajosamente, de esta manera, también podrían integrarse componentes de automatización de diferentes fabricantes. También serían posibles variantes mixtas.
Según un aspecto importante de la presente invención, el comportamiento del programa objetivo se almacena de tal manera que sólo es posible el acceso de lectura después de que se haya almacenado el comportamiento del programa objetivo. Porque para poder garantizar la mayor seguridad posible, debe asegurarse que la firma del comportamiento del programa objetivo no se pueda manipular. Es por eso, que se debe almacenar de tal manera que los cambios sólo se puedan realizar en el propio sitio y no a través de acceso remoto. De esta manera, se garantiza que el comportamiento del programa objetivo no sea sometido a cambios externos.
La determinación cíclica del comportamiento real del programa influye en la carga del procesador y, por tanto, en los tiempos de procesamiento para el control y la supervisión del proceso, en la medida que los procedimientos se ejecutan en el componente de automatización. Cuando los procedimientos se ejecutan en controles de nivel superior, tienen una influencia adicional en la carga de la red. Además, la frecuencia de muestreo para determinar el comportamiento real del programa depende del tipo y de la aplicación del componente de automatización. Así, los procesos lentos o perezosos no requieren una frecuencia de muestreo excesivamente alta. Por lo tanto, resulta ventajoso configurar el intervalo de tiempo, la frecuencia de muestreo, ajustable para determinar el comportamiento real del programa. Preferentemente, la frecuencia de muestreo debería poder ajustarse en un rango de 2 ms a 5 minutos.
En una forma de ejecución particularmente ventajosa, la situación de amenaza derivada de la comparación está vinculada adicionalmente con resultados determinados de forma independiente con respecto a la situación de amenaza de otros componentes de seguridad. De esta manera, se pueden reducir más ventajosamente posibles falsas alarmas. El monitoreo de las firmas del comportamiento real y objetivo del programa se puede combinar con otra solución, como, por ejemplo, una solución SIEM (Gestión de eventos e información de seguridad). Una solución SIEM es un ejemplo, independientemente de la solución propuesta aquí hasta ahora. De esta manera, los posibles patrones de comportamiento de los componentes de automatización que no podrían ser aprendidos y por lo tanto resultarían en una discrepancia de firma, no pueden determinar una situación de amenaza o señalar una situación de amenaza de menor prioridad que, por ejemplo, no implicaría una intervención automática en el proceso. Por el contrario, cuando si se reconociera una discrepancia de firma al comparar el comportamiento del programa real y el objetivo, después de que de forma independiente también se hubiera reconocido un posible ataque por otro componente de seguridad, el componente de automatización también presentaría una alta probabilidad de manipulación real del programa, y rápidamente se pueden iniciar contramedidas.
Otro aspecto de la presente invención comprende un producto de programa informático para la detección de una situación de amenaza de un componente de automatización dentro de un sistema de control y de monitoreo. El término componente de automatización pretende abarcar cualquier tipo de componente de automatización, incluidos los así denominados como sensores o actuadores inteligentes o formas mixtas de ambos que ejecuten un procesamiento o una evaluación previos controlado por procesador y, por lo tanto, controlado por software de datos de proceso o de sistema. Junto a los denominados como controladores lógicos programables, el término componente de automatización pretende incluir cualquier dispositivo de campo inteligente, por ejemplo, motores, convertidores o similares. El producto de programa informático genera una pluralidad de comportamientos de programa objetivo para el componente de automatización. Este comportamiento del programa objetivo define el comportamiento estándar previsto del sistema, es decir, los parámetros de salida o las señales de salida del respectivo componente de automatización en el proceso, en base a los respectivos parámetros de entrada o señales de entrada del sistema de control y de supervisión, esencialmente, del respectivo componente de automatización. Debido a las condiciones cambiantes durante el funcionamiento del sistema de control y de supervisión las señales de entrada cambiantes requieren, por ejemplo, diferentes señales de salida, todo el comportamiento del programa se describe mediante una pluralidad de comportamientos de programa objetivo individuales, cada uno de los cuales describe esencialmente un estado de proceso. Estos estados de proceso estándar se almacenan de manera adecuada como comportamientos objetivo de programa. Esto puede tener lugar durante lo que se conoce como una fase de aprendizaje que precede a la operación real, en la cual se ejecutan o simulan todos o al menos los estados importantes del proceso. De manera adecuada, un software de simulación puede reforzar la fase de aprendizaje. También sería concebible recibir los estados del programa objetivo también en ciertas fases de la operación real, siempre que un ataque de amenaza o una manipulación del comportamiento del programa pueda ser desactivado por un ataque en esta fase. Así, por ejemplo, durante dicha fase podría impedirse físicamente el acceso a redes inseguras, generalmente externas.
El comportamiento inmediato del respectivo programa del componente de automatización se determina cíclicamente durante el funcionamiento a través del producto de programa informático. Por determinación cíclica se entiende que, en un momento determinado, el estado real del proceso, es decir, los parámetros de entrada o las señales de entrada y los parámetros de salida o las señales de salida correspondientes esencialmente al respectivo componente de automatización, se registran esencialmente en tiempo real y se almacenan temporalmente de manera adecuada. El almacenamiento intermedio se puede realizar en memorias volátiles o no volátiles,
generalmente, en memorias magnéticas. El estado real del proceso se determina repetidamente en ciertos intervalos de tiempo. Una vez que se ha determinado el estado real del proceso, se realiza una comparación con el comportamiento del programa objetivo presente en la memoria. El objetivo de la comparación consiste en encontrar una correspondencia para el respectivo comportamiento real del programa en la pluralidad de comportamientos del programa objetivo que están disponibles en forma almacenada. Para la comparación, por ejemplo, de diferentes archivos se conocen métodos adecuados. Así, por ejemplo, se podría utilizar un método para comparar los respectivos valores hash de los archivos entre sí, siempre que se tenga que verificar la identidad de los archivos. Sin embargo, también serían concebibles métodos de comparación que no tengan como objetivo la identidad, sino admitir una cierta una desviación acrítica, aunque con el propósito de identificar una situación de amenaza o de manipulación. En base a la comparación entre el comportamiento objetivo del programa y el comportamiento real del programa, se realiza una derivación de una situación de amenaza, en donde cuando se determina una desviación, por lo general, el sistema ya ha sido manipulado, lo que activa una alarma de manera adecuada.
Para, en la medida de lo posible, descartar falsas alarmas resulta particularmente ventajoso vincular también la situación de amenaza derivada de la comparación con resultados determinados de forma independiente con respecto a la situación de amenaza de otros componentes de seguridad y después sólo activar una alarma cuando también existe una situación de amenaza que ha sido identificada por otros componentes de seguridad en simultáneo.
Otros componentes de seguridad se deben entender en como soluciones conocidas, como las así denominadas como soluciones SIEM (información de seguridad y gestión de eventos). Pero también se pueden vincular con la solución aquí propuesta otras soluciones, como las incluidas bajo el término "Integrated Security Function" ("Función de Seguridad Integrada"), por ejemplo, los mecanismos de protección destinados a la protección de copia o acceso. Por vinculación se debe entender principalmente que los resultados, es decir, los mensajes de alarma de uno o más componentes de seguridad diferentes, se combinan de manera lógica con el mensaje de alarma de la solución propuesta conforme a la invención y sólo se genera un mensaje de alarma cuando están presentes al menos un mensaje de alarma conforme a la solución propuesta por invención y un mensaje de alarma de otro componente de seguridad, en donde la presencia de los al menos dos mensajes de alarma deben correlacionarse ventajosamente en el tiempo, es decir ocurrir dentro de una ventana de tiempo por definir.
Sin embargo, la presente invención no debería limitarse a esta única combinación posible, sino que deberían incluirse expresamente otras posibilidades de combinación adecuadas.
Las propiedades, características y ventajas de la presente invención, arriba mencionadas, así como la forma en la que las mismas se obtienen, se clarifican detalladamente en relación con los dibujos. En una representación esquemática las figuras muestran:
Figura 1: un sistema de automatización con un nivel de campo y control y un nivel operativo de nivel superior.
Figura 2: el desarrollo conforme a la presente invención dentro de un componente de automatización.
La figura 1 muestra una representación general de un nivel de campo y de control 20 que es superior a un nivel operativo (Operator-Level) 21. El nivel de campo y de control 20 y el nivel operativo 21 están conectados entre sí a través de una red de comunicaciones industrial 5. El nivel operativo comprende un número de unidades informáticas 6, en donde todas o algunas de las unidades informáticas 6 pueden conectarse a las unidades de visualización y de entrada 7 para introducir y/o visualizar datos. El nivel operativo 21 es generalmente superior a otros niveles y está conectado con ellos a través de una red de comunicaciones; estos otros niveles, que no se muestran aquí, se conocen como nivel de gestión o nivel empresarial.
El nivel de control y de campo 20 comprende una pluralidad de componentes de automatización 1, en donde por componente de automatización debe entenderse cualquier tipo de dispositivo de campo inteligente, es decir, cualquier tipo de dispositivo de campo operado o influenciado mediante algoritmos de software. Ejemplos de tales componentes de automatización son controles programables para tareas de monitoreo y/o de control o regulación. Dichos dispositivos de campo también pueden incluir, sin estar limitados a ellos, por ejemplo, motores o convertidores, siempre que presenten una interfaz de comunicaciones inteligente y estén controlados y/ monitoreados mediante software. Los componentes de automatización 1 pueden, a su vez, conectarse a sensores 2 y/o actuadores 3 para recibir datos como estados de conmutación, presiones, temperaturas, etc. del proceso o para influir en el proceso conmutando, controlando o regulando. Una conexión operativa de este tipo también se puede realizar a través de conexiones de bus o de red 4, como se conocen, por ejemplo, con la denominación Profibus o Profinet. Sin embargo, los sensores 2 y los actuadores 3 también se pueden conectar individualmente al componente de automatización 1 a través de conexiones de hardware digitales o analógicas 5, o son en sí mismos una parte integral de un componente de automatización 1. Los componentes de automatización 1 leen cíclicamente los datos de los sensores 2 y envían cíclicamente comandos de control a los actuadores en base a los datos leídos,
en base a comandos de operación de usuario y/o a un algoritmo de software almacenado en el componente de automatización 1.
La figura 2 ilustra una representación esquemática de la presente invención. El componente de automatización 1 comprende una unidad lógica 8, en donde la unidad lógica 8 comprende, de manera conocida, una arquitectura informática que trabaja en tiempo real, incluyendo las unidades de almacenamiento necesarias. La unidad lógica 8 procesa las instrucciones del programa de usuario 9. A través de un punto de comunicaciones 10, la unidad lógica recibe datos de otros componentes de automatización y o datos del operador o proporciona datos a los otros componentes y/o al operador. La unidad lógica 8 se puede sincronizar temporalmente mediante un reloj 11. En las zonas de almacenamiento 13 se encuentra la imagen 2'i, 2'j de todos los datos relevantes del sensor 2i, 2j y la imagen 3'i, 3'j de todos los datos relevantes del actuador en un momento determinado. De esta manera, el contenido de la zona de almacenamiento 13 define un comportamiento real del programa 14 en un momento específico en el tiempo basado en entradas también conocidas por el operador y/o datos intermedios 12 que el componente de automatización 1 genera en la propia unidad lógica 8. Este comportamiento real del programa 14 en un momento específico en el tiempo se puede almacenar como una firma 15 en un adecuado formato de archivo. El almacenamiento se puede realizar dentro de la unidad lógica 8 o, como se muestra en la figura 2 , fuera de la unidad lógica 8. Las nuevas firmas 15 se crean en diferentes momentos y/o con diferentes constelaciones de procesos. En una zona de almacenamiento del componente de automatización 1 existen múltiples firmas 16, almacenadas en un formato adecuado, las cuales representan el comportamiento del programa objetivo. En una fase de aprendizaje se generaron un gran número de firmas 16 y cada una representa un comportamiento de programa estándar que no ha sido manipulado, en cualquier caso, el comportamiento del programa que generalmente se puede esperar.
En la medida que se haya generado una firma 15, la unidad lógica 8 la compara con las firmas 16. Para la comparación de archivos de las respectivas firmas se pueden utilizar, por ejemplo, conocidas funciones hash. También se puede realizar una comparación de las firmas 15 y 16 en una unidad lógica separada dentro del componente de automatización 1 o bien, al utilizar procesadores de múltiples núcleos, en un núcleo separado. También resulta concebible que se realice una comparación en el nivel operativo de nivel superior. En un caso así, las firmas 15 y 16 para el componente de automatización 1 también se almacenan allí.
Cuando se determina que a la firma 15 no se le puede asignar una firma 16, es decir, cuando no existe correspondencia entre la firma 15 y una firma 16, se genera un mensaje de alarma 17 en la respectiva unidad lógica (aquí, unidad lógica 8) y, por lo tanto, se informa de una situación de amenaza al nivel operativo de nivel superior a través del punto de comunicaciones 10.
Sin embargo, al detectar una situación de amenaza, la unidad lógica 8 también puede realizar una acción por sí misma y hacer que el componente de automatización 1 y eventualmente también otros componentes de automatización a través del punto de comunicaciones 10 cambien a una operación segura previamente definida.
Claims (11)
1. Procedimiento implementado por computadora para la detección de una situación de amenaza para un componente de automatización dentro de un sistema de control y de monitoreo,
- en donde el componente de automatización comprende entradas y salidas;
- en donde el componente de automatización al menos presenta un comportamiento de programa esencialmente cíclico;
- en donde los estados del proceso se leen cíclicamente en las entradas del componente de automatización y las salidas del componente de automatización se envían cíclicamente y en correlación con la lectura cíclica;
- en donde el programa del componente de automatización genera una imagen de proceso de salida específica para una determinada imagen de proceso de entrada;
- con la cual para cada uno de los estados del proceso existe una imagen de proceso en la entrada y la salida del componente de automatización, que define un comportamiento real del programa durante el funcionamiento del sistema;
- en donde, antes de que se realice el monitoreo, se determinan y almacenan una serie de comportamientos del programa objetivo;
- en donde el comportamiento del programa objetivo se corresponde con los estados del proceso leídos como parte de un respectivo ciclo y correlativas las salidas, siempre que el componente de automatización esté libre de manipulación, y que para el monitoreo del comportamiento del programa comprende:
a) determinación cíclica de al menos un comportamiento real del programa;
b) comparación cíclica del comportamiento real del programa con el comportamiento del programa objetivo existente;
c) derivación cíclica de una situación de amenaza a partir de la comparación;
d) en caso de amenaza, alertar sobre la situación de amenaza.
2. Procedimiento según la reivindicación 1, caracterizado porque la situación de amenaza se deriva cuando esencialmente no existe correspondencia entre el comportamiento real del programa y el comportamiento objetivo del programa inmediato.
3. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque todos los comportamientos del programa objetivo se determinan mediante lógica difusa y/o redes neuronales y/o software de simulación en una fase de aprendizaje.
4. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque el comportamiento del programa determinado se almacena en el componente de automatización.
5. Procedimiento según una de las reivindicaciones 1 a 3, caracterizado porque el comportamiento objetivo del programa determinado del componente de automatización se almacena en un nivel de control de nivel superior.
6. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque es posible ajustar la frecuencia de muestreo para la determinación cíclica del comportamiento real del programa, preferentemente, en el rango de 2 ms a 5 min.
7. Procedimiento según una de las reivindicaciones precedentes, caracterizado porque la situación de amenaza derivada de la comparación se vincula adicionalmente con resultados determinados de forma independiente con respecto a la situación de amenaza de otros componentes de seguridad.
8. Procedimiento según la reivindicación 7, caracterizado porque la alarma se genera cuando, esencialmente al mismo tiempo, también se presentan amenazas para otros componentes de seguridad.
9. Producto de programa informático para la detección de una situación de amenaza de un componente de automatización dentro de un sistema de control y monitoreo,
- en donde el componente de automatización comprende entradas y salidas;
- en donde el componente de automatización al menos presenta un comportamiento de programa esencialmente cíclico;
- en donde los estados del proceso se leen cíclicamente en las entradas del componente de automatización y las salidas del componente de automatización se envían cíclicamente y en correlación con la lectura cíclica;
- en donde el programa del componente de automatización genera una imagen de proceso de salida específica para una determinada imagen de proceso de entrada;
- con la cual para cada estado del proceso existe una imagen de proceso en la entrada y la salida del componente de automatización, que define un comportamiento real del programa durante el funcionamiento del sistema;
- en donde, el producto de programa informático genera y almacena una serie de comportamientos del programa objetivo, antes de que se realice el monitoreo;
- en donde el comportamiento del programa objetivo se corresponde a los estados del proceso leídos como parte de un respectivo ciclo y las correlativas salidas, siempre que el componente de automatización esté libre de manipulación;
en donde el procesamiento del producto de programa informático provoca que el comportamiento del programa resulte cíclico; en donde
a) se determina al menos un comportamiento real del programa;
b) el comportamiento real del programa se compara con el comportamiento del programa objetivo existente;
c) de la comparación se deriva una situación de amenaza; y
d) en caso de amenaza, alertar sobre la situación de amenaza.
10. Programa informático según la reivindicación 9, caracterizado porque la situación de amenaza derivada de la comparación está vinculada adicionalmente con resultados determinados de forma independiente con respecto a la situación de amenaza de otros componentes de seguridad.
11. Producto de programa informático según la reivindicación 10, caracterizado porque la alarma se genera cuando los otros componentes de seguridad también reconocen una situación de amenaza esencialmente al mismo tiempo.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102014214934 | 2014-07-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2905268T3 true ES2905268T3 (es) | 2022-04-07 |
Family
ID=53724061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES15178215T Active ES2905268T3 (es) | 2014-07-30 | 2015-07-24 | Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas |
Country Status (4)
Country | Link |
---|---|
US (1) | US10007783B2 (es) |
EP (1) | EP2980662B1 (es) |
CN (1) | CN105320854B (es) |
ES (1) | ES2905268T3 (es) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10360378B2 (en) * | 2014-08-22 | 2019-07-23 | Nec Corporation | Analysis device, analysis method and computer-readable recording medium |
US9817391B2 (en) * | 2015-06-02 | 2017-11-14 | Rockwell Automation Technologies, Inc. | Security system for industrial control infrastructure |
US9898607B2 (en) * | 2015-06-02 | 2018-02-20 | Rockwell Automation Technologies, Inc. | Rapid configuration security system for industrial control infrastructure |
US10042354B2 (en) | 2015-06-02 | 2018-08-07 | Rockwell Automation Technologies, Inc. | Security system for industrial control infrastructure using dynamic signatures |
EP3264208B1 (de) * | 2016-06-30 | 2021-01-06 | Siemens Aktiengesellschaft | Verfahren zum aktualisieren von prozessobjekten in einem engineerings-system |
US11140186B2 (en) | 2016-09-30 | 2021-10-05 | Siemens Aktiengesellschaft | Identification of deviant engineering modifications to programmable logic controllers |
US10698571B2 (en) * | 2016-12-29 | 2020-06-30 | Microsoft Technology Licensing, Llc | Behavior feature use in programming by example |
US10163329B1 (en) * | 2017-06-24 | 2018-12-25 | Vivint, Inc. | Home alarm system |
EP3428756B1 (de) | 2017-07-10 | 2019-06-19 | Siemens Aktiengesellschaft | Integritätsüberwachung bei automatisierungssystemen |
DE102017214057A1 (de) * | 2017-08-11 | 2019-02-14 | Siemens Aktiengesellschaft | Verfahren zum Prüfen der Integrität von Systemkomponenten eines Systems und Anordnung zur Durchführung des Verfahrens |
JP7099352B2 (ja) * | 2019-02-14 | 2022-07-12 | オムロン株式会社 | 制御システム |
EP3739835A1 (de) * | 2019-05-14 | 2020-11-18 | Siemens Aktiengesellschaft | Mechanismus zur prüfung einer folge von prozessabbildern |
DE102022102616B4 (de) | 2022-02-03 | 2024-07-18 | Lenze Se | Verfahren zur Analyse einer Automatisierungssoftware einer Automatisierungseinrichtung |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6453345B2 (en) * | 1996-11-06 | 2002-09-17 | Datadirect Networks, Inc. | Network security and surveillance system |
DE69813790D1 (de) * | 1998-07-29 | 2003-05-28 | Cegelec Acec S A | Redundantes Prozesssteuerungssystem |
EP1349033B1 (en) | 2002-03-26 | 2004-03-31 | Soteres GmbH | A method of protecting the integrity of a computer program |
DE102005039128A1 (de) * | 2005-08-18 | 2007-02-22 | Siemens Ag | Sicherheitseinrichtung für elektronische Geräte |
US7739211B2 (en) * | 2006-11-08 | 2010-06-15 | 21St Century Technologies, Inc. | Dynamic SNA-based anomaly detection using unsupervised learning |
DE502007004774D1 (de) * | 2007-03-12 | 2010-09-30 | Secunet Security Networks Ag | Schutzeinrichtung für eine programmierbare datenverarbeitende Einheit |
CN101866407A (zh) * | 2010-06-18 | 2010-10-20 | 北京九合创胜网络科技有限公司 | 一种实现操作系统平台安全的方法及装置 |
WO2012019659A1 (de) * | 2010-08-07 | 2012-02-16 | Audi Ag | Kraftwagen umfassend eine elektronische komponente mit datenspeicher und verfahren zum erkennen einer manipulation von daten in dem datenspeicher |
US20130061328A1 (en) * | 2011-09-06 | 2013-03-07 | Broadcom Corporation | Integrity checking system |
US8744604B2 (en) * | 2012-05-09 | 2014-06-03 | Fisher Controls International Llc | Method and apparatus for configuring a blackout period for scheduled diagnostic checks of a field device in a process plant |
EP2943843A4 (en) * | 2013-01-08 | 2016-10-26 | Secure Nok As | METHOD, DEVICE AND COMPUTER PROGRAM FOR MONITORING AN INDUSTRIAL CONTROL SYSTEM |
-
2015
- 2015-07-24 EP EP15178215.8A patent/EP2980662B1/de active Active
- 2015-07-24 ES ES15178215T patent/ES2905268T3/es active Active
- 2015-07-29 CN CN201510456990.4A patent/CN105320854B/zh active Active
- 2015-07-30 US US14/813,503 patent/US10007783B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN105320854A (zh) | 2016-02-10 |
EP2980662A1 (de) | 2016-02-03 |
US20160034688A1 (en) | 2016-02-04 |
CN105320854B (zh) | 2019-06-18 |
US10007783B2 (en) | 2018-06-26 |
EP2980662B1 (de) | 2021-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2905268T3 (es) | Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas | |
US11431733B2 (en) | Defense system and method against cyber-physical attacks | |
CN106227159B (zh) | 用于工业控制基础设施的使用动态签名的安防系统 | |
CN106227160B (zh) | 用于工业控制基础设施的主动响应安防系统 | |
EP3101491B1 (en) | Security system for industrial control infrastructure | |
CN104991528B (zh) | Dcs信息安全控制方法及控制站 | |
CN106227158B (zh) | 用于工业控制基础设施的快速配置安防系统 | |
Robles-Durazno et al. | PLC memory attack detection and response in a clean water supply system | |
WO2020046260A1 (en) | Process semantic based causal mapping for security monitoring and assessment of control networks | |
US10592668B2 (en) | Computer system security with redundant diverse secondary control system with incompatible primary control system | |
EP4022405B1 (en) | Systems and methods for enhancing data provenance by logging kernel-level events | |
CN204270109U (zh) | 包括阀的控制系统和用于控制过程的控制系统 | |
WO2020046371A1 (en) | Process control systems and devices resilient to digital intrusion and erroneous commands | |
US20150340111A1 (en) | Device for detecting unauthorized manipulations of the system state of an open-loop and closed-loop control unit and a nuclear plant having the device | |
CN110809873A (zh) | 检测工业系统中的未定义的动作 | |
CN112654988A (zh) | 控制装置 | |
Negi et al. | Intrusion Detection & Prevention in Programmable Logic Controllers: A Model-driven Approach | |
US20240219879A1 (en) | Method, System and Inspection Device for Securely Executing Control Applications | |
US20240241494A1 (en) | Computer-implemented method and surveillance arrangement for identifying manipulations of cyber-physical-systems as well as computer-implemented-tool and cyber-physical-system | |
Serhane et al. | Applied methods to detect and prevent vulnerabilities within PLC alarms code | |
EP4160452A1 (en) | Computer-implemented method and surveillance arrangement for identifying manipulations of cyber-physical-systems as well as computer-implemented-tool and cyber-physical-system | |
Praus et al. | Secure control applications in building automation using domain knowledge |