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 PDF

Info

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
Application number
ES15178215T
Other languages
English (en)
Inventor
Peter Schönemann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Application granted granted Critical
Publication of ES2905268T3 publication Critical patent/ES2905268T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24042Signature analysis, compare recorded with current data, if error then alarm
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24119Compare control states to allowed and forbidden combination of states
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24125Watchdog, check at timed intervals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Technology Law (AREA)
  • Multimedia (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)

REIVINDICACIONES
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.
ES15178215T 2014-07-30 2015-07-24 Protección de un componente de automatización contra manipulaciones de programa mediante coincidencia de firmas Active ES2905268T3 (es)

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)

* Cited by examiner, † Cited by third party
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
US10042354B2 (en) 2015-06-02 2018-08-07 Rockwell Automation Technologies, Inc. Security system for industrial control infrastructure using dynamic signatures
US9898607B2 (en) * 2015-06-02 2018-02-20 Rockwell Automation Technologies, Inc. Rapid configuration security system for industrial control infrastructure
US9817391B2 (en) * 2015-06-02 2017-11-14 Rockwell Automation Technologies, Inc. Security system for industrial control infrastructure
EP3264208B1 (de) * 2016-06-30 2021-01-06 Siemens Aktiengesellschaft Verfahren zum aktualisieren von prozessobjekten in einem engineerings-system
CN110520806B (zh) * 2016-09-30 2022-09-27 西门子股份公司 对可编程逻辑控制器的偏差工程修改的识别
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)

* Cited by examiner, † Cited by third party
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
ATE263391T1 (de) 2002-03-26 2004-04-15 Soteres Gmbh Verfahren zum schutz der integrität von programmen
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
EP1970782B1 (de) * 2007-03-12 2010-08-18 Secunet Security Networks Aktiengesellschaft 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
AU2014205737B2 (en) * 2013-01-08 2016-01-28 Secure-Nok As Method, device and computer program for monitoring an industrial control system

Also Published As

Publication number Publication date
EP2980662B1 (de) 2021-11-10
EP2980662A1 (de) 2016-02-03
US20160034688A1 (en) 2016-02-04
CN105320854B (zh) 2019-06-18
US10007783B2 (en) 2018-06-26
CN105320854A (zh) 2016-02-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) 用于工业控制基础设施的主动响应安防***
Morris et al. Industrial control system traffic data sets for intrusion detection research
EP3101491B1 (en) Security system for industrial control infrastructure
US11175976B2 (en) System and method of generating data for monitoring of a cyber-physical system for early determination of anomalies
CN104991528B (zh) Dcs信息安全控制方法及控制站
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
CN106227158B (zh) 用于工业控制基础设施的快速配置安防***
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) 包括阀的控制***和用于控制过程的控制***
Malchow et al. PLC Guard: A practical defense against attacks on cyber-physical systems
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
Chen et al. Code integrity attestation for PLCs using black box neural network predictions
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
EP4099656A1 (en) Computer-implemented method and surveillance arrangement for identifying manipulations of cyber-physical-systems as well as computer-implemented-tool and cyber-physical-system
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