Full text
ANÁLISIS DE SERIES TEMPORALES MEDIANTE EXPRESIONES REGULARES TEMPORIZADAS TIME SERIES ANALYSIS USING TIMED REGULAR EXPRESSIONS TRABAJO FIN DE GRADO CURSO 2023-2024 AUTOR FRANCISCO MIRA BOTELLA DIRECTORES JOSÉ IGNACIO REQUENO JARABO LUIS LLANA DÍAZ GRADO EN INGENIERÍA DEL SOFTWARE FACULTAD DE INFORMÁTICA
[Escriba aquí] [Escriba aquí] [Escriba aquí] 2 Agradecimientos Quiero expresar mi más profundo agradecimiento a mi familia. Gracias por vuestro apoyo incondicional y por haber estado siempre a mi lado. Agradecer especialmente a mis padres, por hacer esto posible. También me gustaría agradecer a mis tutores, José Ignacio Requeno y Luis Llana, por su trato tan cercano y por el apoyo esencial que me han dado para realizar este trabajo.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 3 Resumen El objetivo principal de este TFG es mejorar ParetoLib, una herramienta existente de análisis de series temporales mediante la incorporación de Expresiones Regulares Temporales (Timed Regular Expression, TRE) para posteriormente aplicarlo a la detección de patrones de consumo eléctrico. Como resultado se mejorará esta búsqueda de patrones para detectar posibles consumos anómalos y poder detectar así diferentes ataques a infraestructuras eléctricas críticas como los Smart Grid. Para lograr este objetivo, se han integrado en la herramienta dos motores de análisis de TRE. Esto ha permitido estudiar diferentes tipos de expresiones regulares sobre una serie de datos previamente manipulados para obtener una expresión correcta que satisfaga un patrón de consumo eléctrico anómalo. Gracias a esto se ha podido asociar diferentes tipos de ataque con un comportamiento identificativo que ayude a estas infraestructuras a prevenir o detectar posibles consumos anómalos. También se ha mejorado la herramienta para que pueda interpretar de manera más visual los resultados obtenidos tras la ejecución de los motores de análisis TRE. Esta mejora tiene como objetivo facilitar la búsqueda de patrones de consumo, haciéndola aplicable a cualquier tipo de comportamiento. Para ello se ha llevado a cabo una fase de investigación previa, acompañada de una fase de implementación técnica y seguida de una fase de experimentación. Palabras clave • Expresiones regulares temporales • Expresiones regulares • Anomalías • Patrones de consumo
[Escriba aquí] [Escriba aquí] [Escriba aquí] 4 Abstract The main objective of this TFG is to improve ParetoLib, an existing time series analysis tool by incorporating Timed Regular Expressions (TRE) to later apply it to the detection of electricity consumption patterns. As a result, this pattern search will be improved to detect possible anomalous consumption and thus be able to detect different attacks on critical electrical infrastructures such as Smart Grids. To achieve this goal, two TRE analysis engines have been integrated into the tool. This has made it possible to study different types of regular expressions on a series of previously manipulated data to obtain a correct expression that satisfies an anomalous electricity consumption pattern. Thanks to this, it has been possible to associate different types of attack with an identifying behavior that helps these infrastructures to prevent or detect possible anomalous consumption. The tool has also been improved to allow a more visual interpretation of the results obtained after running the TRE analysis engines. This improvement is intended to facilitate the search for consumption patterns, making it applicable to any type of behavior. To this end, a preliminary research phase has been carried out, accompanied by a technical implementation phase and followed by an experimentation phase. Key words • Temporary regular Expressions • Regular Expressions • Anomalies • Consumption patterns
[Escriba aquí] [Escriba aquí] [Escriba aquí] 5 Índice General Agradecimientos ................................................................... 2 Resumen ................................................................................. 3 Abstract .................................................................................. 4 Introducción ........................................................................... 7 1.1. Motivación ........................................................................................................... 7 1.2. Objetivos ............................................................................................................ 10 1.3. Organización y planificación del trabajo ..................................................... 10 1.3.1. Inicio y organización del trabajo ............................................................. 10 1.3.2. Plan de trabajo .......................................................................................... 11 1.4. Estructura del documento ............................................................................... 12 Introduction .......................................................................... 14 2.1. Motivation .......................................................................................................... 14 2.2. Objectives .......................................................................................................... 16 2.3. Organization and work planification ............................................................. 17 2.3.1. Start and work organization ..................................................................... 17 2.3.2. Work plan .................................................................................................... 18 2.4. Structure of the document .............................................................................. 19 Tecnologías empleadas ..................................................... 20 3.1. Herramientas para el análisis de expresiones regulares temporales ........ 20 3.1.1. Montre ......................................................................................................... 20 3.1.2. TimeDrel ....................................................................................................... 21 3.2. ParetoLib ............................................................................................................ 21 3.3. Docker ................................................................................................................ 22 3.4. Python ................................................................................................................. 23 3.4.1. Pyqt5 ............................................................................................................ 24 3.4.2. Matplotlib .................................................................................................... 26 3.5. Herramientas de Gestión de Proyectos ......................................................... 27 3.5.1. Jira ................................................................................................................ 27 3.5.2. Git ................................................................................................................. 28 Expresiones regulares ......................................................... 29 4.1. Introducción a las expresiones regulares ...................................................... 29
[Escriba aquí] [Escriba aquí] [Escriba aquí] 6 4.1.1. Expresiones regulares y sus aplicaciones ............................................... 29 4.2. Expresiones regulares temporales .................................................................. 30 4.2.1. Definición de expresiones regulares temporales .................................. 30 4.2.2. Operadores de expresiones regulares temporales .............................. 31 4.2.3. Definición de comportamientos temporales ........................................ 33 4.2.4. Definición y aclaración del concepto de zona .................................... 33 4.3. Montre: Una herramienta para expresiones regulares temporizadas ...... 35 4.3.1. Definición de Montre ................................................................................. 35 4.3.2. Definición del concepto de zonas en Montre ...................................... 36 4.3.3. Funcionamiento de la herramienta Montre .......................................... 38 4.3.4. Timedrel, otro motor de expresiones regulares. .................................... 39 Integración de expresiones regulares en ParetoLib ......... 41 5.1. Integración de motores de expresiones regulares ...................................... 41 5.1.1. Conexión con Montre y Timedrel ............................................................ 45 5.2. Visualización de resultados tras ejecución de Montre y Timedrel ............. 47 Casos de uso: Detección de anomalías en consumo eléctrico ............................................................................... 50 6.1. Descripción del dataset. .................................................................................. 50 6.2. Definición de Smart Grids y anomalías de consumo eléctrico. ................. 51 6.3. Fase de experimentación ................................................................................ 58 6.3.1. Objetivo de esta experimentación ......................................................... 58 6.3.2. Preprocesasado de datos ........................................................................ 59 6.3.3. Casos de estudio ....................................................................................... 60 6.3.4. Conclusiones caso de estudio ................................................................. 94 Conclusión ........................................................................... 96 Conclusion ........................................................................... 98 Bibliografía ......................................................................... 100
[Escriba aquí] [Escriba aquí] [Escriba aquí] 7 Capítulo 1 Introducción 1.1. Motivación Un sistema ciberfísico [1] se refiere a un tipo de sistema que combina componentes físicos con componentes de computación, permitiendo la interacción entre el mundo físico y el digital. Un ejemplo de sistema ciberfísico son los contadores inteligentes que controlan y monitorizan el consumo eléctrico doméstico de un usuario y transmiten esta información a la compañía eléctrica. Además de automatizar y facilitar la facturación de los clientes, estos contadores inteligentes permiten entre otras cosas ajustar el despliegue de la potencia eléctrica de la red en función de la demanda. En un sistema ciberfísico como el descrito, cualquier anomalía o error podría tener consecuencias importantes. Si un sistema ciberfísico no logra detectar de manera adecuada un aumento inusual en el consumo eléctrico, podría no alertar sobre posibles problemas de seguridad, como cortocircuitos o sobrecargas, lo que podría generar situaciones de riesgo para la seguridad de los usuarios y provocar daños materiales o incluso pérdidas humanas en casos extremos. Por lo tanto, garantizar la fiabilidad y la seguridad de estos sistemas ciberfísicos es crucial para evitar estas consecuencias adversas. En el caso concreto de una red de distribución eléctrica moderna, los contadores inteligentes registran el consumo de electricidad de una manera precisa y automatizada, pero también se comunican con otros dispositivos dentro del sistema, como interruptores automáticos, transformadores y centros de control. Un escenario en el que un sistema ciberfísico de red eléctrica experimente un fallo en la lectura de datos o en la comunicación entre dispositivos podría llevar a una gestión
[Escriba aquí] [Escriba aquí] [Escriba aquí] 8 inadecuada de la carga, provocando sobrecargas en ciertas áreas y subutilización en otras. Como resultado, podrían producirse interrupciones del servicio eléctrico, afectando la vida cotidiana de las personas, el funcionamiento de las empresas e incluso la operatividad de servicios esenciales como hospitales o sistemas de transporte público. En un contexto más amplio, un fallo en la detección de anomalías podría exponer la red eléctrica a riesgos de seguridad, como ataques informáticos dirigidos a sistemas de control industrial. Estos ataques podrían tener consecuencias muy importantes y críticas, desde la interrupción del suministro eléctrico hasta el daño físico a equipos e infraestructuras críticas. Este trabajo va a aplicar técnicas para la monitorización de estos sistemas ciberfísicos para así, asegurar su correcto funcionamiento. Concretamente, aplicaremos técnicas basadas en Expresiones Regulares Temporizadas (Timed Regular Expressions, TRE) [2] [3], que permitirán comprobar patrones de comportamiento en los datos recopilados por los contadores inteligentes y otro tipo de dispositivos dentro de la red eléctrica. También nos permitirán detectar tanto anomalías, como lecturas inusuales o patrones de consumo sospechosos, facilitando una respuesta rápida ante posibles problemas. Para la detección de patrones existen una gran cantidad de herramientas y tecnologías basadas en Machine Learning (ML) o aprendizaje automático. Tales como redes neuronales, series temporales, clústering, algoritmos de asociación, etc. Estas herramientas y tecnologías basadas en el aprendizaje automático son capaces de identificar patrones en conjuntos de datos muy grandes y complejos. Esto les permite extraer información útil, hacer predicciones, tomar decisiones fundamentadas, etc. También existen otras técnicas basadas en métodos formales como las basadas en lógica temporal o las expresiones regulares temporizadas En este trabajo vamos a utilizar expresiones regulares temporizadas. Estas expresiones ofrecen varias ventajas significativas en comparación con otras técnicas de detección de patrones basadas en Machine Learning. En primer lugar, requieren menos datos de entrenamiento en comparación con redes neuronales y otras técnicas, lo que resulta muy beneficioso en contextos donde los datos son limitados o difíciles de obtener. Además, presentan tiempos de ejecución más rápidos y eficientes, lo que reduce el uso de CPU y memoria al desplegar los
[Escriba aquí] [Escriba aquí] [Escriba aquí] 9 modelos en producción. En el peor caso, este tipo de detectores tienen un coste de ejecución polinomial con la longitud de la traza y la longitud de la expresión TRE si se analizan en tiempo real/online y polinomial con la longitud de la traza y exponencial con la longitud de la expresión TRE en el caso del modo offline [4] [5] . Esto puede ser una opción interesante para aplicaciones que demandan respuestas rápidas en tiempo real o en entornos con recursos limitados. Asimismo, las expresiones regulares pueden proporcionar métricas de desempeño comparables o superiores en la detección de anomalías, como por ejemplo matrices de confusión, recall, precisión y otras métricas de acierto y error. Por último, la capacidad para reflejar explícitamente los patrones subyacentes en la toma de decisiones facilita la comprensión e interpretación de los resultados, en contraste con la opacidad de las redes neuronales y otras técnicas de Machine Learning. Como desventaja de las expresiones regulares, se encuentra la necesidad de conocimiento experto. Es decir, se requiere un buen entendimiento del dominio y de los datos para diseñar expresiones regulares efectivas Este trabajo es la continuación del proyecto de fin de grado titulado "Implementación de un algoritmo de aprendizaje para el análisis de series temporales" [6], elaborado por dos excompañeros de la Facultad de Informática. La presente propuesta implica una mejora significativa de la herramienta previamente desarrollada, ParetoLib [7] [8] [9]. ParetoLib es una herramienta de minería de propiedades de lógica temporal a la que hemos incorporado expresiones regulares, ya que ambas pueden resolver el mismo tipo de problemas. Para su mejora, se han incorporado herramientas de análisis de series temporales que se explicarán detalladamente en los siguientes apartados. Para validar la herramienta y sus nuevas capacidades con expresiones regulares aplicaremos esta herramienta al análisis de datos de un sistema eléctrico con la finalidad de identificar patrones anómalos de consumo eléctrico. En resumen, este proyecto busca mejorar la tecnología subyacente en la detección de anomalías en sistemas ciberfísicos, y adaptarla a entornos más desafiantes y realistas. El éxito en este campo puede tener un impacto significativo en la seguridad y confiabilidad de las infraestructuras críticas, entre ellas, los contadores inteligentes.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 16 detection, such as confusion matrices, recall, precision, and other hit and miss metrics. Finally, the ability to explicitly reflect the underlying patterns in decision making makes it easier to understand and interpret the results, in contrast to the opacity of neural networks and other Machine Learning techniques. As a disadvantage of regular expressions, there is the need for expert knowledge. That is, a good understanding of the domain and the data is required to design effective regular expressions. This work is the continuation of the final degree project entitled "Implementation of a learning algorithm for time series analysis" [6], developed by two former colleagues from the Faculty of Computer Science. The present proposal implies a significant improvement of the previously developed tool, ParetoLib [7] [8] [9]. ParetoLib is a temporal logic property mining tool to which we have incorporated regular expressions, since both can solve the same type of problems. For its improvement, time series analysis tools have been incorporated, which will be explained in detail in the following sections. To validate the tool and its new capabilities with regular expressions, we will apply this tool to the analysis of data from an electrical system in order to identify anomalous patterns of electrical consumption. In summary, this project seeks to improve the underlying technology for anomaly detection in cyber-physical systems, and adapt it to more challenging and realistic environments. Success in this field can have a significant impact on the security and reliability of critical infrastructures, including smart meters. 2.2. Objectives The main purpose of this project is to address the motivations outlined in the previous section. This translates into a series of strategic objectives that are outlined below. These objectives are grouped into the following key points: ▪ Expand the functionalities of the ParetoLib library: the expansion of the functionality of ParetoLib is proposed through the addition of a new analysis engine based on timed automata (TRE). This addition
[Escriba aquí] [Escriba aquí] [Escriba aquí] 17 will allow the tool to address a wider range of problems and scenarios. ▪ Integrate the new functionalities into the graphical interface: In addition to extending the capabilities of the library, it is important to ensure its accessibility and ease of use. Therefore, one of the essential objectives is to incorporate the new functionalities into the existing graphical interface. This will ensure that users can take full advantage of the new capabilities without facing technical or usability barriers. ▪ Perform an analysis of different case studies: To validate the effectiveness and performance of the new functionalities implemented, a detailed analysis of several representative case studies will be carried out. This will include the application of the extended library to real or simulated problems, with the objective of evaluating its effectiveness in different contexts and scenarios. This analysis will provide valuable information on the usefulness and scope of the improvements made in ParetoLib. 2.3. Organization and work planification 2.3.1. Start and work organization The project officially began on September 11, 2023 under the direction of José Ignacio Requeno Jarabo and Luis Llana Díaz. with an approximate duration of eight months, covering the entire academic year and with a dedication on the part of the student of approximately nine hours per week. In order to achieve the objectives proposed in the previous section, a work plan consisting of a series of tasks following an Agile methodology was proposed. To facilitate the monitoring of the different tasks, the Jira tool was used. The workflow was organized around weekly meetings, mostly scheduled on Mondays. The purpose of these meetings was to set specific objectives for the current week and to review the progress made so far. In addition to providing a structure for the planning and execution of
[Escriba aquí] [Escriba aquí] [Escriba aquí] 18 activities, these meetings also served as a forum to discuss any problems or challenges that arose, allowing for quick problem solving and adjustments to the planning if necessary. 2.3.2. Work plan The project work plan was structured in three distinct phases, each with its own specific objectives and tasks: the research and study phase, the implementation phase and the experimentation phase. In the research and study phase, significant time was devoted to the process of acquiring knowledge and familiarization with the essential tools for the development of the project. This included in-depth study of tools for defining regular expressions and mining behavioral patterns, as well as understanding the previous graduate work that served as the basis for this project. In addition, a thorough exploration of the libraries needed for the implementation and the programming language used in the project was carried out. Particularly relevant in this phase was the detailed study of fundamental concepts for the work, such as timed regular expressions, which were a key component of this project. The implementation phase represented the stage in which the knowledge acquired during the research and study phase was applied. The main objective was to integrate a timed automata engine into the ParetoLib library. This process involved the practical use of the Python programming language, as well as the use of various libraries, such as PyQt5, for the visualization and presentation of the results obtained, MatPlotLib for the creation of graphs and visualizations, etc. This phase consisted not only in the technical application of the knowledge, but also in the resolution of specific challenges related to the integration of new functionalities in an existing library. In the experimentation phase, practical application of the knowledge acquired on temporary regular expressions to various use cases was carried out. During this phase, different types of potential attacks that could compromise the optimal operation of smart grids were examined. Specific timed regular expressions were developed for each of
[Escriba aquí] [Escriba aquí] [Escriba aquí] 19 these attacks studied, with the objective of identifying electrical behavior patterns associated with each of them. The experimentation process focused on analyzing how the timed regular expressions responded to different attack scenarios, evaluating their effectiveness in detecting and distinguishing between different types of anomalous behavior in electrical data. 2.4. Structure of the document The structure of the report is as follows, then, we will expose the objectives of this work that we want to address and how we have organized and planned the work throughout the course. In chapter 3 we will mention the tools we have used to carry out the technical part of this project, as well as to visualize the results of the experimentation. Chapter 4 provides a detailed explanation of regular expressions and timed regular expressions, as well as key concepts necessary for the study of the use cases. It also explains the operation of one of the main tools for the correct functioning of this work. Chapter 5 shows in detail how the regular expression engines have been integrated and the implementation of everything necessary to carry out the experimentation of the case studies collected in Chapter 6.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 20 Capítulo 3 Tecnologías empleadas En este apartado explicaremos las diferentes herramientas que hemos utilizado para analizar las expresiones regulares temporales, así como las herramientas y las tecnologías que hemos usado para llevar a cabo la implementación técnica de estos motores en ParetoLib y poder mostrar los resultados de la ejecución de estos. 3.1. Herramientas para el análisis de expresiones regulares temporales En este apartado, exploramos dos herramientas: Montre y TimeDrel. Ambas ofrecen soluciones para la monitorización y el análisis de comportamientos temporales, utilizando expresiones regulares temporales para identificar patrones o secuencias significativas en los datos. 3.1.1. Montre Montre [2] es una herramienta de monitoreo diseñada para identificar patrones específicos definidos por expresiones regulares temporizadas en datos de comportamiento como se puede observar en la Figura 1, ya sea en tiempo real o en registros históricos. Esta herramienta puede detectar eventos precisos en sistemas ciberfísicos al entender y trabajar con condiciones de tiempo concretas, como intervalos de tiempo o duraciones entre eventos, lo que garantiza un monitoreo detallado y una comprensión profunda del funcionamiento de estos sistemas. Montre utiliza algoritmos avanzados de coincidencia de patrones procesados mediante expresiones regulares temporizadas
[Escriba aquí] [Escriba aquí] [Escriba aquí] 21 La herramienta puede operar en dos modos: online y offline, dependiendo de las preferencias del usuario. En este trabajo el modo que se va a utilizar es el modo offline, en el que se analizan archivos de texto estructurado mediante expresiones regulares temporizadas, lo que permite identificar patrones en datos históricos. Figura 1. Diagrama alto nivel de Montre. 3.1.2. TimeDrel Timedrel [10] es una herramienta para la evaluación de expresiones regulares temporales. Permite, al igual que Montre, definir y analizar patrones de comportamiento en datos temporales, siendo capaz de identificar secuencias específicas de eventos a lo largo del tiempo. Como diferencia, ofrece una mayor flexibilidad en la definición de las duraciones. Mientras que en Montre las duraciones de los intervalos deben ser enteros, en Timedrel estas pueden ser duraciones con decimales. Además, Timedrel ofrece la flexibilidad de conectarse con otros lenguajes de programación y herramientas a través de su API, lo que facilita su integración en diferentes entornos de desarrollo. En resumen, es una herramienta versátil y potente para la detección y análisis de patrones de comportamiento en datos temporales. 3.2. ParetoLib ParetoLib [7] [8] [9] es una biblioteca diseñada para el análisis y minería de propiedades en el contexto de series temporales. Su enfoque especializado en este tipo de datos hace que sea una herramienta
[Escriba aquí] [Escriba aquí] [Escriba aquí] 22 importante para una gran cantidad de aplicaciones, desde la monitorización de sistemas hasta el análisis de rendimiento y la detección de anomalías. En su versión inicial, ParetoLib era capaz de generar patrones de comportamiento expresados como fórmulas de Lógica Temporal (STL). Estas fórmulas proporcionaban una forma estructurada de representar y comprender los patrones observados en las series temporales. Gracias a la ampliación de este trabajo, ParetoLib ha evolucionado para también producir patrones expresados en forma de TRE. 3.3. Docker Docker [11] es una plataforma que permite empaquetar, enviar y ejecutar aplicaciones en entornos aislados llamados contenedores. Esto facilita la creación y despliegue de aplicaciones, ya que garantiza que funcionen de la misma manera en diferentes entornos, independientemente de las diferencias de configuración. Para utilizar Docker, primero debe instalarse localmente. Una vez hecho esto, se descarga una imagen de Docker, que es un contenedor que contiene todo lo necesario para ejecutar la aplicación, incluyendo sus dependencias, código, bibliotecas y configuraciones del entorno. Para ello es necesario el comando: docker pull <nombre_de_la_imagen>(:latest)* ()* opcional Luego, se inicia un contenedor Docker, que es una instancia en ejecución de la imagen descargada. El contenedor proporciona un entorno aislado y autocontenido para la aplicación y sus dependencias. Con el siguiente comando: docker run <nombre_de_la_imagen>:latest /bin/bash Una vez dentro del contenedor, la persona puede hacer uso de la herramienta o aplicación correspondiente según sea necesario. Este enfoque facilita la creación, distribución y ejecución de aplicaciones, lo
[Escriba aquí] [Escriba aquí] [Escriba aquí] 23 que ayuda a garantizar la consistencia y portabilidad en los entornos de desarrollo, prueba y producción. En este trabajo Docker facilita la ejecución de Montre sin la necesidad de instalar todas las dependencias directamente en la máquina local. Por tanto, el uso de contenedores facilita la integración de Montre con el resto de la plataforma al encapsular las dependencias y prerrequisitos de Montre 3.4. Python Python [12] es un lenguaje de programación de alto nivel, interpretado y multiparadigma, se basa principalmente en el paradigma de programación imperativa, donde se enfoca en cómo se deben realizar las acciones paso a paso utilizando variables, estructuras de control y procedimientos. Si bien la programación orientada a objetos no es un paradigma de programación en sí mismo, es una metodología de diseño y organización de código que Python adopta de manera significativa. En Python, todo es un objeto, lo que significa que los datos y las funciones están encapsulados dentro de objetos y se accede a ellos mediante la sintaxis de punto. La sintaxis de Python destaca por su legibilidad y facilidad de comprensión. En lugar de utilizar símbolos y caracteres especiales, Python prefiere palabras clave en inglés para facilitar la lectura del código. Por ejemplo, en lugar de los operadores lógicos como !, || y &&, Python utiliza palabras como not, or y and, respectivamente. Otra característica distintiva de Python es la forma en que estructura los bloques de código. En lugar de utilizar llaves, utiliza sangrado antes de cada línea de código perteneciente al bloque, lo que proporciona una estructura visualmente clara y ordenada al código facilitando su comprensión. La Figura 2 muestra un fragmento de código de Python ejemplificando lo explicado anteriormente
[Escriba aquí] [Escriba aquí] [Escriba aquí] 24 Figura 2. Ejemplo de código de Python La actual herramienta que se ha mejorado, ParetoLib a la que se la añadido una interfaz gráfica para poder comunicarse con montre y poder visualizar los resultados, junto a toda la lógica implementada, se ha desarrollado en el lenguaje de programación Python. 3.4.1. Pyqt5 PyQt5 [13] es un módulo de Python que permite la creación de interfaces de usuario avanzadas y personalizable mediante la utilización del lenguaje de programación Python y aprovechando las características y elementos proporcionados por la biblioteca Qt. Un ejemplo del funcionamiento de esta herramienta podemos verlo en la Figura 3 y su resultado en la Figura 4 Se ha utilizado la biblioteca PyQt5 para realizar el diseño gráfico de la ventana principal de la aplicación. En nuestro caso, partiendo de la interfaz del trabajo anterior y respetando su diseño, hemos usado esta herramienta para poder utilizar Montre y poder incorporar a ParetoLib expresiones regulares.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 25 Figura 3. Ejemplo de código de PyQt5. Figura 4. Resultado de la ejecución del código de PyQt5
[Escriba aquí] [Escriba aquí] [Escriba aquí] 32 decimos que E;F ocurre en un intervalo de tiempo (t, t′) si existe un punto t′′ entre ambos tal que E ocurre en (t, t′′ ) y F ocurre en (t′′ , t). ▪ Restricción temporal (“%”): El operador de restricción temporal, representado por el signo de porcentaje (%), es un operador binario que se utiliza para definir la duración de un patrón. Este operador acepta una expresión regular temporal, denotada como E, a la izquierda y un intervalo numérico (i, j) a la derecha, donde i y j representan el inicio y el final del intervalo de duración, respectivamente. Por lo tanto, una expresión del tipo (E)%(i, j) especifica un patrón con una duración total entre i y j unidades de tiempo. ▪ Alternancia (“|”): El operador de alternancia, proporciona formas alternativas de satisfacer un patrón en una expresión regular temporal. Cuando se utiliza el operador de alternancia, denotado como E|F, decimos que la expresión E|F ocurre en un intervalo si E o F ocurren en ese intervalo. Es importante tener en cuenta que la operación de alternancia no debe confundirse con el operador booleano (“||”) que se aplica a expresiones atómicas. ▪ Intersección (“&”): El operador de intersección permite la composición paralela de dos patrones en una expresión regular temporal. Cuando utilizamos el operador de intersección en una expresión como E&F, decimos que la expresión E&F ocurre en un intervalo si tanto E como F ocurren concurrentemente en ese intervalo. Para que esto se cumpla, es necesario que los puntos inicial y final, así como los valores de duración de las ocurrencias de E y F, sean iguales, esto significa que los segmentos correspondientes a E y F deben superponerse exactamente en el tiempo. ▪ Repetición (“*”) y (“+”): Estos operadores nos permiten especificar la repetición de una expresión E en un patrón. La expresión E* indica que la expresión E puede aparecer cero o más veces de manera consecutiva en el patrón. En otras palabras, E puede estar ausente (repetición cero) o puede repetirse múltiples veces de manera consecutiva. Por otro lado, la expresión E+ indica que la expresión E debe aparecer al menos una vez en el patrón. En este caso, no se permite la ausencia de E, y debe haber al menos una aparición consecutiva de E en el patrón.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 33 4.2.3. Definición de comportamientos temporales Los comportamientos temporales se refieren a las secuencias de acciones u observaciones que ocurren a lo largo del tiempo y son generadas por una variedad de sistemas y el entorno que nos rodea. Estas secuencias pueden representar la evolución dinámica de diferentes procesos, eventos o fenómenos a lo largo del tiempo. Un comportamiento temporal consiste en una serie de intervalos de tiempo, donde cada intervalo tiene una duración específica y está vinculado a un conjunto de variables que permanecen constantes durante dicho intervalo. De la Figura 7 podemos obtener el siguiente comportamiento temporal: (2,pq); (2,p); (1, pq); (3,--) Este comportamiento temporal lo que nos quiere decir que en un principio p y q evalúan como verdaderas las tres primeras unidades de tiempo, a continuación, durante dos unidades mas p seguirá evaluando verdadera mientras que q evaluará a false, y así repetidamente. Figura 7. Demostración gráfica de un comportamiento temporal 4.2.4. Definición y aclaración del concepto de zona Una zona, en el contexto de las expresiones regulares, es una región cerrada en un plano bidimensional que se forma a partir de un conjunto de sucesos en tiempo continuo. Estos sucesos, que representan eventos o puntos en el tiempo, son básicamente los elementos de datos sobre los
[Escriba aquí] [Escriba aquí] [Escriba aquí] 34 cuales se realiza la correspondencia temporal de patrones. Técnicamente, una zona está definida por una serie de desigualdades que delimitan sus límites en un plano bidimensional. Estas desigualdades se refieren a restricciones temporales que deben cumplir los eventos incluidos la zona. Concretamente especifican intervalos de tiempo durante los cuales ocurren los eventos o relaciones temporales entre ellos. Por tanto, las zonas surgen como resultado de la evaluación de una expresión regular temporizada sobre una traza de ejecución. Las zonas representan los intervalos de tiempo en los que la expresión regular es válida. En la Figura 8 que vemos a continuación, la expresión regular temporizada que hemos usado como ejemplo se satisface en dos zonas o intervalos temporales: el primer intervalo, entre el instante 0 (x = 0) y el instante 4 (y = 4) y el segundo intervalo entre el instante 5 (x = 5) y el intervalo 9 (y = 9) que se corresponde con la ventana temporal “pq; p; pq, …” de la imagen del apartado 4.2.2. Figura 8. Ejemplo gráfico de zona.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 35 4.3. Montre: Una herramienta para expresiones regulares temporizadas 4.3.1. Definición de Montre Montre es una herramienta centrada, en la identificación de ocurrencias de un patrón específico dentro de comportamientos simbólicos que evolucionan en el tiempo de manera continua. Su objetivo principal es detectar la presencia de un patrón determinado en estos comportamientos, lo que puede ser crucial para comprender el funcionamiento de un sistema, identificar problemas o tomar decisiones informadas. Esta herramienta utiliza algoritmos avanzados de coincidencia de patrones que funcionan tanto online como offline. Esto significa que puede identificar ocurrencias del patrón en tiempo real mientras el comportamiento simbólico se está generando, así como también puede analizar comportamientos grabados previamente. Para llevar a cabo esta tarea, Montre se beneficia de características prácticas como la capa booleana, que convierte una traza de ejecución en una señal booleana Figura 7. Estas características aportan una mayor flexibilidad y precisión en la especificación del patrón a buscar. Cuando se le proporciona un comportamiento temporizado y una expresión regular temporizada como entrada, Montre realiza un procesamiento que finaliza en la generación de un conjunto finito de zonas bidimensionales. Estas zonas representan los segmentos de comportamiento que cumplen con el patrón especificado, lo que proporciona una visualización clara y concisa de las ocurrencias detectadas. De la misma manera, también la herramienta Timedrel es capaz de definir y analizar patrones de comportamiento ofreciendo un conjunto de zonas bidimensionales, dado un comportamiento temporizado y una expresión regular. En el siguiente capítulo se especificará más detalladamente ambas herramientas.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 36 4.3.2. Definición del concepto de zonas en Montre Para ilustrar el concepto de zonas en montre, es útil considerar un ejemplo práctico. La creación de zonas en montre implica dos pasos: especificar una expresión regular como el ejemplo que se muestra a continuación y proporcionar un archivo de datos de entrada. Expresión regular: (p;q)%(3,4) El archivo de entrada debe ser un archivo de texto y debe estar estructurado de tal manera que cada línea represente un intervalo de tiempo formado por un número que indique la duración de cada símbolo, seguido de una cadena de símbolos, como se muestra en la Figura 9. Figura 9. Ejemplo de archivo de entrada para la ejecución de Montre. Cada línea representa un intervalo y cada intervalo indica la duración durante la que ocurrieron ciertos eventos, representados por la cadena de símbolos. En el anterior ejemplo, la primera línea indica que durante dos unidades de tiempo se observaron eventos representados por la cadena "pq", mientras que en la cuarta línea se puede indicar que durante 3 unidades de tiempo no ocurrió ningún evento. Este comportamiento se puede observar en la Figura 10.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 37 Figura 10. Representación del archivo.txt. Tras la ejecución de Montre, los datos de entrada son empleados para analizar patrones de comportamiento temporal, buscando zonas que cumplan ciertas condiciones definidas por la expresión regular definida anteriormente. El resultado es un archivo de texto de salida que contiene un conjunto de zonas. Cada zona se define por seis desigualdades (b b′ e e′ d d′), explicadas a continuación, junto con un vector binario de 6 bits que indica si la desigualdad correspondiente es estricta (0) o no (1). La Figura 11 demuestra la estructura de las zonas y proporciona un ejemplo del formato del archivo de salida. Figura 11. Ejemplo del archivo de salida tras ejecutar Montre. Cada una de las desigualdades (b b′ e e′ d d′) representa una recta en un plano bidimensional. Las variables b y b’ representan los valores en el eje x, e y e’ representan los valores en el eje y, y d y d’ representan las distancias en las diagonales en el espacio bidimensional. Por lo tanto, se definen las siguientes líneas: x = b, y x = b’ para las coordenadas en el eje x, y = e y y = e’ para las coordenadas en el eje y, y y = x + d, y y = x + d’ para las líneas diagonales. Cada una de estas rectas especifica un polígono delimitado por cada una de ellas, si la recta es continua, indica que está incluida, en cambio si no lo está,
[Escriba aquí] [Escriba aquí] [Escriba aquí] 38 indica que no está incluida. Este resultado lo podemos observar en la Figura 12. Figura 12. Representación gráfica del resultado de ejecución de ejemplo de Montre. Las zonas delimitadas por estas rectas representan intervalos de tiempo en un plano bidimensional, que muestran periodos durante los cuales ocurren eventos o relaciones temporales definidos por la expresión regular previamente mencionada. Esto es lo que se conoce como zonas. 4.3.3. Funcionamiento de la herramienta Montre Montre es una aplicación de línea de comandos diseñada para analizar archivos de texto estructurado mediante expresiones regulares temporizadas. Al ejecutar Montre, se proporciona una expresión regular temporizada como argumento, lo que inicia el proceso de análisis del archivo de entrada. El núcleo de Montre se fundamenta en una biblioteca eficiente de manipulación de zonas llamada libmontre, que es invocada dinámicamente por unos algoritmos denominados algoritmos de coincidencia de patrones temporizados tanto en el modo online como
[Escriba aquí] [Escriba aquí] [Escriba aquí] 39 offline. Estos algoritmos buscan una serie de patrones que ocurran en ciertos momentos específicos. La biblioteca libmontre está implementada en C++ aprovechando un modelo de tiempo basado en valores enteros. Esto es útil porque permite que Montre realice cálculos numéricos con más precisión y eficiencia, sobre todo en casos con operaciones matemáticas complejas o trabajando con grandes conjuntos de datos. Para la implementación de estos algoritmos de coincidencia temporal de patrones, Montre emplea Pure2, un lenguaje de programación funcional con la capacidad de compilar código nativo y llamadas a bibliotecas dinámicas. Dado que la herramienta tratada en este proyecto, ParetoLib, está desarrollada en Python, se ha creado una interfaz gráfica una interfaz gráfica en este mismo lenguaje para visualizar los resultados de ejecución de Montre. La interconexión de ParetoLib con Montre se realiza a través de contenedores (Docker) debido a la diferencia de lenguajes. En el caso específico de este trabajo, se opta por utilizar el modo de Montre offline, para ello se utilizará la instrucción: “montre” seguida de la opción “-b” u “- offline” seguida de la expresión regular y el archivo de datos de entrada, como se muestra en el ejemplo a continuación. montre -b '(p;q)%(3,4)' archivo_entrada.txt' 4.3.4. Timedrel, otro motor de expresiones regulares. Alternativamente a Montre, Timedrel es otro motor de expresiones regulares temporales que al igual que Montre es capaz de definir y analizar patrones de comportamiento ofreciendo un conjunto de zonas bidimensionales, dado un comportamiento temporizado y una expresión regular. Sin embargo, existen diferencias entre ellos. En primer lugar, Timedrel ofrece una mayor flexibilidad en la definición de las duraciones. Mientras que en Montre las duraciones de los intervalos deben ser enteros, en Timedrel estas pueden ser duraciones con decimales.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 40 Además, Timedrel proporciona una mayor interconexión con otros lenguajes gracias a su interfaz API de C++, lo que facilita su integración con otros lenguajes como Python para proyectos como nuestro TFG. Esto significa que Timedrel ofrece una ventaja adicional en términos de accesibilidad y adaptabilidad a diferentes entornos de desarrollo. Otra de las diferencias básicas de esta herramienta consiste en el formato del archivo que contiene las trazas de ejecución, mientras que en Montre recibe un archivo de texto con el formato: <duración> estado discreto, Timedrel recibe un fichero CSV con el formato: <timestamp> valor numérico A pesar de estas diferencias, el formato del archivo de texto que contienen las expresiones regulares es compatibles entre ambos motores, lo que facilita la transición de un motor a otro sin necesidad de modificar el formato de estos datos
[Escriba aquí] [Escriba aquí] [Escriba aquí] 41 Capítulo 5 Integración de expresiones regulares en ParetoLib 5.1. Integración de motores de expresiones regulares En este trabajo se han integrados dos motores de expresiones regulares Montre y Timedrel. Para facilitar la interacción con Montre, desarrollada completamente en C++, en ParetoLib desarrollada en Python, se ha actualizado la interfaz gráfica de ParetoLib para que el usuario pueda hacer uso de la nueva herramienta. Ahora los usuarios tienen la opción de elegir entre dos enfoques para analizar series temporales: Lógica Temporal (STL) o Expresiones Regulares Temporizadas (TRE). La Lógica Temporal es otro formalismo utilizado para analizar trazas de ejecución, especializado en el análisis de señales analógicas. Aunque STL y TRE son equivalentes en cierto sentido, ambos son capaces de identificar patrones anómalos de comportamiento en las series temporales, como se ha demostrado en trabajos anteriores, como el TFG del año pasado. Además, la actualización de la interfaz gráfica de ParetoLib incluye la integración con Timedrel, una herramienta similar a Montre, pero a la que se accede a través de una API. Esta mejora permite una mayor flexibilidad en el análisis de series temporales. 5.1.1. Actualización de la interfaz gráfica
[Escriba aquí] [Escriba aquí] [Escriba aquí] 48 emin, emax, dmin, dmax) cada uno acompañado de su respectivo signo. Esta clase ofrece métodos para crear instancias de zona a partir de valores dados o utilizando zonas de la librería timedrell, así como para trazar gráficos 2D de estas zonas y para guardar y leer definiciones de zonas desde un archivo, lo que facilita la manipulación y visualización de zonas geométricas en distintos contextos. El script principal crea dos instancias de la clase Zone, luego crea un gráfico utilizando Matplotlib y traza las dos zonas en dicho gráfico, mostrándolo finalmente. Este código podría utilizarse para visualizar y manipular zonas geométricas en un contexto determinado, como análisis de datos espaciales o simulación de sistemas físicos. Como se puede observar en la Figura 18 se puede ver claramente el gran avance hecho a la hora de representar la solución proporcionada por Montre. La Figura 18 es la representación gráfica del resultado que devuelve Montre Figura 19 Figura 18. Representación gráfica del resultado de Montre.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 49 Figura 19. Resultado de Montre.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 50 Capítulo 6 Casos de uso: Detección de anomalías en consumo eléctrico En este capítulo vamos a realizar la experimentación de los casos de uso, para ello definiremos nuestro dataset, haremos una breve introducción acerca de que son los Smart Grid y los diferentes ataques que pueden sufrir. La idea es aplicar nuestra herramienta para detectar los diferentes tipos de ataques y poder encontrar una expresión regular que satisfaga un comportamiento de consumo normal y anómalo, lo que permitirá detectar si estos sistemas están siendo atacados. 6.1. Descripción del dataset. El conjunto de datos utilizado en este estudio proviene de la Comisión de Regulación de Energía de Irlanda [18], responsable de regular los datos provenientes de los medidores avanzados de electricidad y gas natural en este país. Originalmente se han recopilado datos que abarcan un periodo de 76 semanas para 6445 medidores avanzados de electricidad y 78 semanas para 1576 medidores avanzados de gas natural. Estos datos están clasificados en diferentes categorías de consumo eléctrico, que incluyen residencial, empresarial (pequeñas y medianas empresas) y no clasificados. En el caso del gas natural, se dividen en grupos de prueba y control. Es importante destacar que la frecuencia de lectura de los medidores es la misma para los dos conjuntos de datos, con mediciones registradas cada media hora. Esto implica un total de 48 mediciones de consumo por día para cada uno.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 51 Ambos conjuntos de datos presentan una estructura similar, con tres columnas distintas. La primera columna corresponde al identificador del contador inteligente (meterID), que identifica de manera única cada medidor. La segunda columna contiene la hora de la lectura codificada (timestamp), que indica el momento en que se registró la lectura de consumo, y finalmente, la tercera columna registra el consumo de electricidad o gas en kilovatios hora (kWh), proporcionando información sobre la cantidad de energía consumida en ese momento. El conjunto de datos original contiene lecturas completas (336 lecturas por semana) de 500 contadores inteligentes de electricidad y otros 500 de gas, con un periodo total de 75 semanas para todos los contadores seleccionados en el caso de electricidad y 74 semanas en el caso del gas. Cabe destacar que para este estudio escogeremos únicamente el dataset de electricidad y la categoría residencial, concretamente la de un usuario con comportamiento normal. Para los distintos tipos de ataques, se utilizará como base un conjunto de datos generados sistemáticamente a partir del conjunto de datos definido anteriormente, al que se les aplica la definición formal de los comportamientos de ataques. 6.2. Definición de Smart Grids y anomalías de consumo eléctrico. Los Smart Grids [19] son una modernización de la red eléctrica convencional que incorporan tecnologías digitales más avanzadas. Su objetivo principal es gestionar y distribuir la electricidad de manera eficiente desde diversas fuentes de generación para satisfacer las demandas de los usuarios finales. Esto se logra mediante la coordinación de generadores, de operadores de red, consumidores y agentes del mercado eléctrico. Estas redes utilizan tecnología digital para monitorear y controlar el flujo de electricidad en tiempo real, optimizando la eficiencia operativa y minimizando los costos y el impacto ambiental. Además, buscan maximizar la fiabilidad, la resistencia, la flexibilidad y la estabilidad del sistema eléctrico en su conjunto.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 52 Los Smart Grids, aunque representan una evolución significativa en la gestión de la energía eléctrica, también enfrentan desafíos importantes en términos de seguridad cibernética [20]. Es crucial comprender y abordar las diversas amenazas que pueden comprometer la integridad y el buen funcionamiento de estas redes inteligentes. Entre las amenazas más significativas se encuentran los ataques cibernéticos, que pueden tomar diversas formas y afectar diferentes aspectos de estas redes inteligentes. Estos ataques incluyen intrusiones, manipulaciones y otros métodos destinados a interrumpir, comprometer o dañar el funcionamiento de la red eléctrica. Dos de las amenazas más destacadas son los robos de energía y las fugas de información privada. Los robos de energía representan una pérdida importante de ingresos para los proveedores de energía, con estimaciones que sugieren pérdidas de casi 100.000 millones de dólares al año en todo el mundo [21]. Por otro lado, las fugas de información privada pueden comprometer la privacidad y la seguridad de los usuarios finales, lo que genera preocupaciones adicionales sobre la protección de datos sensibles. Gestionar y reducir estos riesgos es de especial importancia para el sector eléctrico. Esto implica, entre otras propuestas, implementar medidas de seguridad o sistemas de detección de intrusiones. Además, se deben establecer políticas y procedimientos claros para detectar, responder y recuperarse de posibles ataques cibernéticos de manera efectiva. 6.2.1. Definición y tipos de ataques A continuación, se muestran cuatro tipos de ataques centrados exclusivamente en ataques a las infraestructuras de los contadores inteligentes. Para estudiar este tipo de ataques se parte de un escenario normal (ver Figura 20), es decir, un escenario adecuado, donde la información de consumo eléctrico cada media hora durante dos días, no ha sido alterada y no se ha visto afectada por ningún tipo de ataque.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 53 Figura 20. Gráfico del escenario de consumo eléctrico normal A partir de aquí, se definen los diferentes tipos de ataques en los que la información ha sido claramente manipulada. Es decir, se ha alterado el escenario de consumo eléctrico normal en función de cada tipo de ataque: • Inyección de datos falsos o “False Data Inyection” (FDI) [22] es una forma de manipulación en la que se alteran las mediciones de consumo eléctrico registradas por un contador inteligente de manera sistemática. En este tipo de ataque, cada medición de consumo del contador se cambia por un porcentaje fijo de la medición original, representado por x% donde x es un número entero positivo. Dependiendo del valor de x, el ataque puede beneficiar al consumidor o al administrador de la red eléctrica. El objetivo principal del ataque FDI es defraudar a la compañía eléctrica, ya que, al modificar las mediciones de consumo, el cliente pagará menos de lo que realmente consumió. Este tipo de ataque puede tener serias implicaciones en la pérdida de ingresos para la compañía eléctrica y puede perjudicar la confianza en el sistema de medición de consumo actual. (Ver Figura 21).
[Escriba aquí] [Escriba aquí] [Escriba aquí] 54 Figura 21. Gráfico del ataque FDI. • Average attack (Avg) [23] Este tipo de ataque tiene el mismo objetivo que el FDI, sin embargo, en este caso, los datos se manipulan reemplazando cada lectura semanal por el consumo medio de la semana multiplicado por una variable aleatoria uniforme x, que puede ser menor o mayor que 1. (Ver Figura 22). Figura 22. Gráfico del ataque AVG.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 55 A parte del average attack hay dos tipos de ataques de la misma “familia” que varían en función de la media escogida, estos son: • Minimal average attack (Min-Avg): En este caso x es la media mínima de todas las semanas de entrenamiento (Ver Figura 23). Figura 23. Gráfico del ataque Min-Avg. • Maximal average attack (Max-Avg): En este caso x es la media máxima de todas las semanas de entrenamiento (Ver Figura 24).
[Escriba aquí] [Escriba aquí] [Escriba aquí] 56 Figura 24. Gráfico del ataque Max-Avg. • Ataque de escala aleatoria o Random Scale Attactk (RSA) [23] es un tipo de ataque que puede ser utilizado con diferentes objetivos, dependiendo de cómo se manipulen los datos de consumo. Si, en general, los datos de consumo se sobredeclararan, el ataque podría causar inestabilidad en el Smart Grid al introducir un exceso de demanda artificial. Por otro lado, si los datos de consumo se subdeclararan, el ataque podría llevar al robo de energía al registrar un consumo menor al real. Por tanto, este tipo de ataques buscan manipular los datos de consumo de manera aleatoria, utilizando un factor multiplicativo para alterar las mediciones. (Ver Figura 25).
[Escriba aquí] [Escriba aquí] [Escriba aquí] 57 Figura 25. Gráfico del ataque RSA. • Ataque de intercambio o Swap [24] es otro tipo de ataque de manipulación de datos en el contexto de un acuerdo de tiempo de uso en el suministro de energía eléctrica. En este tipo de ataque, se aprovecha un sistema de tarifas que varía según los periodos de alta y baja demanda, conocidos como picos y valles de consumo. El ataque swap tiene como objetivo defraudar a la compañía eléctrica al pagar menos de lo consumido. Para llevar a cabo este ataque, se realiza un intercambio de los consumos de energía registrados por un contador inteligente entre los dos periodos de consumo establecidos en el contrato de tiempo de uso. Por ejemplo, si el periodo pico se define entre dos horas seguidas y el periodo valle entre otras dos horas seguidas y distintas, el ataque implica intercambiar los datos de consumo entre estos dos periodos. Este tipo de ataques busca manipular los registros de consumo de energía para aprovechar las diferencias en los precios de la energía según los periodos de alta y baja demanda, con el objetivo de pagar menos de lo que realmente se ha consumido (Ver Figura 26).
[Escriba aquí] [Escriba aquí] [Escriba aquí] 64 Figura 29. Resultado de la expresión regular temporal en el escenario normal. Para poder entender el resultado de estos casos de uso, utilizaremos el resultado de esta primera aproximación para explicar detalladamente su gráfico y que representa. Vamos a centrarnos en un principio en el eje vertical. Las dos rectas del eje vertical, tanto la roja como la azul discontinua, nos indica el momento inicial en el que va a poder comenzar la expresión regular, es decir, en cualquier momento entre ese intervalo va a poder dar comienzo la expresión regular temporizada. Por otro lado, las dos rectas horizontales, tanto la amarilla como la verde discontinua, representan los intervalos mínimos y máximos de finalización de la traza que satisface la expresión regular temporizada. En este fichero de consumo eléctrico de este usuario la expresión regular empieza a cumplirse en el instante 26 (línea vertical roja) y va a tener una duración mínima desde el instante 26 hasta la primera línea verde horizontal discontinua, en el instante 38, de 12 medias horas y una duración máxima, hasta el instante 39, de 13 medias horas. En el caso extremo de que se apure al máximo la traza, y comience en el instante 29 si finaliza en el instante 38 tendrá una duración mínima de 9 medias horas o 10 medias horas si finaliza en el instante 39. Para comprender mejor esto vamos a hacer uso de la Figura 30. En esta imagen podemos
[Escriba aquí] [Escriba aquí] [Escriba aquí] 65 observar de una manera más clara los intervalos de inicio y los intervalos de fin entre los que se satisface la expresión. Figura 30. Explicación detallada del resultado que muestra la zona donde se satisface la expresión regular. Por tanto, podemos afirmar que efectivamente la expresión regular temporal planteada satisface el escenario normal, es decir, se ha encontrado una expresión regular que resume un patrón de consumo eléctrico en un escenario normal. Concretamente, hemos encontrar un patrón de consumo que pasa de un consumo bajo, a uno medio y a uno alto en un intervalo máximo de 13 medias horas, o lo que es lo mismo de seis horas y media. Al haberlo encontrado, podemos decir que esta expresión regular satisface a este tipo de comportamiento de consumo. Escenario swap
[Escriba aquí] [Escriba aquí] [Escriba aquí] 66 Figura 31. Gráfico comparativo entre consumo eléctrico normal y consumo eléctrico Swap. En este escenario, analizaremos el comportamiento del ataque swap. Como se mencionó anteriormente, este ataque se basa en manipular el sistema de tarifas aprovechando la relación entre los periodos pico y valle de demanda eléctrica. En los periodos de alta demanda, las tarifas suelen ser más altas, mientras que, en los periodos de baja demanda, las tarifas son más bajas. Este ataque invierte el consumo eléctrico respecto al patrón normal. Por lo tanto, en el gráfico del ataque swap que se muestra a la derecha en la Figura 31 , los datos están invertidos, con una mayor demanda en las zonas que normalmente presentan baja demanda (valles) y una menor demanda en las zonas que suelen ser de alta demanda (picos). Primera aproximación Partiendo de la hipótesis planteada para este caso de estudio, se investigó si la expresión regular temporal mostrada a continuación también satisfacía el escenario de ataque swap: (low [1:5]; medium [1:10]; high [1:5]) Inicialmente, al analizar los datos de un solo día, no se encontró ninguna zona que cumpliera con este patrón de consumo eléctrico. Por lo tanto, siguiendo la misma hipótesis y combinando los datos de dos días consecutivos, se volvió a evaluar si esta expresión satisfacía el escenario
[Escriba aquí] [Escriba aquí] [Escriba aquí] 67 de ataque swap, pero tampoco se encontraron zonas que cumplieran con el patrón. Se llegó a la conclusión de que en el escenario de ataque swap no se presentaría un patrón de consumo que fuera de bajo a medio y luego a alto, como se especifica en la expresión regular ya que, el patrón de consumo en este escenario comenzaba con un consumo muy alto al principio del día y descendía manteniéndose en niveles bajos o medios durante el resto del día. Al combinar los datos de dos días, se pudo confirmar que tampoco se cumplía el patrón, ni en el tránsito de un día a otro, ya que el consumo pasaba de bajo a alto en un período de tiempo muy corto sin pasar por un consumo medio. Por tanto, esta hipótesis no fue valida. Se decidió seguir buscando una expresión regular temporal que satisficiese este ataque y encontrar un patrón de comportamiento que definiese este tipo de ataques. Segunda aproximación En esta segunda aproximación, se propuso una expresión regular temporal muy similar al patrón del escenario normal, pero invertida. Esta nueva aproximación se basó en una hipótesis: dado que el gráfico del ataque swap es el inverso del gráfico del escenario normal, se planteó que la expresión regular que describe el comportamiento normal, al ser invertida, también podría satisfacer el escenario swap. Por lo tanto, se investigó si la expresión regular invertida podría identificar y caracterizar los patrones de consumo en el escenario de ataque swap. (high [1:5]; medium [1:10]; low [1:5]) Esta vez, sí que se pudo demostrar que esta expresión regular temporal, satisface al comportamiento de ataque swap. El resultado de la ejecución de montre fue el que se puede ver en la Figura 32.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 68 Figura 32. Resultado de la expresión regular temporal en el escenario Swap. Como podemos ver hemos obtenido una zona en la que se cumple la expresión regular. En la Figura 33 , vemos representado el resultado de la ejecución de Montre sobre el gráfico del tipo de ataque. Podemos ver como se ha detectado una zona en la que se satisface esta expresión regular, por tanto, podemos decir que este tipo de expresiones regulares definen este tipo de comportamientos anómalos y podríamos asociarlas concretamente a este tipo de ataques. Concretamente podemos especificar que, en este fichero de consumo eléctrico, la expresión regular empieza a cumplirse entre el instante 3 y el instante 8 y finaliza entre el instante 14 y el 21, teniendo una duración total mínima de 6 medias horas y una duración total máxima de 18 medias horas.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 69 Figura 33. Gráfico detallado del ataque tipo Swap con la solución de Montre. Si analizamos conjuntamente los resultados del escenario normal y el del escenario swap vemos claramente como también las zonas pintadas, aparecen invertidas.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 70 Escenario Average Para este escenario de la familia average tal y como se planteó en la hipótesis vamos a encontrar una expresión regular que satisfaga a los tres tipos de ataque que la forman, es decir, el escenario de ataque AVG (ver Figura 34), el escenario de ataque Min-Avg (ver Figura 35), y el escenario de ataque Max-Avg (ver Figura 36). Figura 34. Gráfico comparativo del escenario normal con el escenario AVG. Figura 35. Gráfico comparativo del escenario normal con el escenario Min-Avg.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 71 Figura 36. Gráfico comparativo del escenario normal con el escenario Max-Avg. Como se mencionó anteriormente, estos tipos de ataques manipulan el consumo eléctrico al sustituir cada lectura por el consumo medio multiplicado por una variable aleatoria, que puede ser menor o mayor que uno. Esta manipulación se realiza con el fin de alterar los registros de consumo eléctrico de manera que reflejen valores distintos a los reales. Este proceso nos lleva a tres escenarios distintos que serán estudiados con el objetivo de identificar un patrón de consumo característico que nos permita prevenir cualquiera de estos ataques. Primera aproximación Familia Average En esta primera aproximación, se propone una expresión regular temporal para capturar el comportamiento de la familia de ataques de tipo average. La expresión regular propuesta es la siguiente: (low [1:3]; medium [0:1]) Esta expresión regular está diseñada para detectar patrones en los que los consumos oscilen entre niveles bajos y medios, sin llegar a alcanzar el umbral de consumo alto. Esto se alinea con la naturaleza de los ataques de tipo average, los que se caracterizan por mantener el consumo eléctrico dentro de ciertos rangos sin alcanzar niveles extremadamente altos.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 72 Para lograr este objetivo, la expresión regular especifica las siguientes franjas temporales: • La expresión "low [1:3]" indica que se espera un consumo bajo durante un intervalo de tiempo de entre media hora una hora y media. Esto representa un período relativamente corto de tiempo durante el cual se espera que el consumo se mantenga en niveles bajos. • La expresión "medium [0:1]" indica que se espera un consumo medio durante un intervalo de tiempo de entre ninguna y media hora. Esto permite capturar períodos cortos en los cuales el consumo puede aumentar ligeramente por encima del nivel bajo, pero aún sin alcanzar el umbral de consumo alto. Aplicada esta expresión regular a los datos del ataque average obtenemos el siguiente resultado (Ver Figura 37). Figura 37. Resultado de la expresión regular temporal en el escenario AVG.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 73 Según el resultado obtenido al aplicar la expresión regular temporal propuesta, se identifica una zona en el dataset que cumple con el patrón definido. Sin embargo, se observa que este patrón es exclusivo únicamente de este ataque de la familia average y no se encuentra presente en los otros tipos de ataques analizados. En particular, se destaca que uno de los gráficos nunca alcanza un nivel de consumo medio, lo que indica que no se produce la transición esperada entre los niveles bajo y medio de consumo. Y por otro lado, el destaca un comportamiento constante en el rango de consumo medio, sin fluctuaciones hacia niveles bajos o altos de consumo. Esto sugiere que la expresión regular temporal diseñada para capturar los patrones de los ataques de tipo average ha identificado correctamente una zona en el dataset que se ajusta a este patrón específico. Sin embargo, debido a las características únicas de los otros dos tipos de ataque, no se ha encontrado ninguna coincidencia con el resto de los gráficos analizados. Este análisis sugiere dejar de lado la hipótesis inicial que planteaba encontrar una única expresión regular temporal que pudiera satisfacer un patrón de consumo eléctrico para todos los tipos de ataques dentro de la familia de ataques average. En su lugar, nos dedicaremos a identificar expresiones regulares temporales específicas para cada tipo de ataque dentro de esta categoría. Este enfoque permite una mejor comprensión y detección de los patrones de consumo eléctrico asociados con cada tipo de ataque dentro de la familia de ataques average Primera aproximación Average Esta segunda aproximación parte con la necesidad de encontrar una expresión regular temporal que identifique un patrón de consumo eléctrico característico de este tipo de ataque, es decir, que si se cumple esta expresión se pueda determinar que efectivamente ha habido un ataque de este tipo. Para ello se decide estudiar la siguiente expresión regular (low [1:3])
[Escriba aquí] [Escriba aquí] [Escriba aquí] 80 Figura 43. Resultado de la expresión regular temporal en el escenario Max-Avg. Tal y como se planteó la hipótesis, la zona resultante (ver Figura 43 ) confirma la presencia de un consumo medio a lo largo de todas las horas del día. Podemos concluir que la anterior expresión regular es un patrón de consumo eléctrico característicos de los ataques Max-Avg, y al igual que los ataques Min-Avg, cada vez que se detecte este tipo de comportamientos podremos identificar que se trata de un ataque MaxAvg. Al igual que el resto de ataques de esta familia Avg, la Figura 44 muestra el resultado de la zona obtenida por la expresión regular, que ocupa desde el instante 0 al 48, es decir, las 24 horas del día. Gracias a esto podemos afirmar que esta expresión regular temporizada describe un patrón de consumo anómalo típico de este tipo de ataques.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 81 Figura 44. Gráfico de ataque tipo Max-Avg con la solución de Montre. Escenario FDI En este escenario, analizaremos el comportamiento del ataque FDI. Como se mencionó anteriormente, este tipo de ataques son una forma de manipulación en la que se alteran las mediciones de consumo eléctrico, en la que cada medición de consumo del contador se cambia por un porcentaje fijo de la medición original, representado por x% donde x es un número entero positivo. Dependiendo del valor de x, el ataque puede beneficiar al consumidor o al administrador de la red eléctrica. Vamos a analizar dos escenarios que ilustran las situaciones previamente mencionadas. Para ello, estudiaremos un caso donde se altera el conjunto de datos original reduciendo el consumo en un 50%. Como se observa en la Figura 45, en el gráfico correspondiente al ataque FDI, los consumos eléctricos se muestran exactamente la mitad más bajos que en el gráfico normal.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 82 Figura 45. Gráfico comparativo del escenario normal con el escenario FDI reducido al 50% También vamos a analizar otro escenario donde se altera el conjunto de datos original aumentando el consumo un 150%. Como se observa en la Figura 46, los consumos eléctricos se muestran significativamente más altos, con un aumento del 150% en comparación con el consumo normal. Un ejemplo concreto se puede ver en el pico de electricidad a las siete y media de la mañana, donde en un comportamiento normal hay un consumo de 1,67 kW hora y en el FDI hay un consumo de 2,50 kW hora. Figura 46. Gráfico comparativo del escenario normal con el escenario FDI aumentado el 150% Debido a que son comportamientos de consumos eléctricos iguales que el normal, solo que, alterados por un porcentaje mayor o menor, nuestra hipótesis es que no va a haber ninguna expresión regular que satisfaga estos dos casos por igual ya que hemos querido ejemplificar
[Escriba aquí] [Escriba aquí] [Escriba aquí] 83 dos casos extremos que difieren bastante su consumo eléctrico. Por ello las aproximaciones que vamos a hacer van a ser diferentes y las vamos a tratar como FDI 50% Y FDI 150% Teniendo en cuenta que el patrón de consumo eléctrico es exactamente el mismo que el normal, quisimos ver si la expresión regular del comportamiento normal, también puede satisfacer este tipo de comportamientos. En una primera aproximación se quiso probar si nuestra hipótesis de que la expresión regular del comportamiento normal no aplicaba a ninguno de estos ataques y así fue, no se obtuvo ninguna zona por tanto no se estableció ningún patrón. Una vez hecho esto, decidimos centrarnos en cada una individualmente. Segunda aproximación FDI 50% Para esta segunda aproximación se planteó la hipótesis de que como este tipo de ataques reducía a la mitad el consumo muy probablemente no habría consumos altos. Por ello se planteó la siguiente expresión regular temporal: (low [1:10]) Se planteó esta expresión ya que este tipo de ataque deben haber grandes periodos de tiempo en el que el consumo sea bastante bajo, por tanto, si debería haber diferentes zonas con este tipo de consumo. Dicho esto, aplicando esta expresión a los datos que tenemos disponibles, si nos muestra una zona habremos encontrado un patrón de comportamiento.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 84 Figura 47. Resultado de la expresión regular temporal en el escenario FDI 50% Tal y como vemos en la Figura 47, vemos que la mayor parte del tiempo se cumple este patrón de consumo, es decir, la mayor parte del tiempo tiene un consumo eléctrico bajo. Es cierto que podríamos darlo por válido, pero hemos querido ir más allá planteándonos que si encontramos una expresión que satisfaga completamente el comportamiento de consumo eléctrico durante un día completo tendríamos una expresión mucho más completa. Esto lo veremos a continuación en la tercera aproximación. Tercera aproximación FDI 50% Partiendo de la idea con la que cerramos la segunda aproximación, y planteando nuestra nueva hipótesis basándonos también en la de la segunda, es decir, que no habrá consumos altos, si encontramos una expresión que cubra el comportamiento de consumo en la totalidad del día sin contar con consumos altos, habremos dado con una expresión regular completa y específica para este tipo de ataques.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 85 Por ello, la expresión regular temporal que planteamos para satisfacer esta nueva hipótesis es la siguiente: (low [1:10] | medium [0:1]) De esta manera queremos platear que o hay consumos bajos o medios, pero no hay altos, también queremos dejar en evidencia que los consumos bajos siempre van a ser mayores que los medios, es decir, que no van a haber tantos consumos medios. Si una vez que probemos esta expresión con los datos que tenemos nos da un conjunto de zonas ampliadas respecto al segundo escenario y estas zonas ocupan toda o casi toda la franja temporal habremos satisfecho nuestra hipótesis. Figura 48. Resultado de la expresión regular temporal en el escenario FDI 50% Tal y como podemos ver en la Figura 48, vemos al igual que en el segundo escenario los comportamientos de consumo bajo reflejados y ahora se le suma los escenarios de consumo medio. Si observamos bien podemos ver como estos comportamientos se concatenan hasta
[Escriba aquí] [Escriba aquí] [Escriba aquí] 86 completar los 48 registros disponibles, que como comentamos en apartados anteriores, representaban las 24 horas del día divididas en medias horas. También podemos llegar a esta conclusión si observamos la Figura 49. Donde aplicamos el resultado de Montre al gráfico de este tipo de ataques. Vemos como la zona ocupa desde el primer instante hasta el último. Figura 49. Gráfico de ataque tipo FDI 50% con la solución de Montre. Podemos afirmar que esta expresión regular efectivamente refleja a la perfección un patrón de consumo eléctrico anómalo característico de este tipo de ataques, y que cuando se detecte este tipo de comportamientos se podría tratar de un ataque FDI. Segunda aproximación FDI 150% Para la segunda aproximación de este tipo de ataque se plantea la hipótesis de que el consumo estará entre consumo medio y consumo alto por igual. Para ello, basándonos en la experiencia de las anteriores aproximaciones creemos que la siguiente expresión regular temporal resume a la perfección este comportamiento:
[Escriba aquí] [Escriba aquí] [Escriba aquí] 87 (medium [1:5] | high [1:5]) Creemos que los consumos deben ser medios o altos, no sabemos cuánto se extienden por eso estudiaremos de 1 a 5 registros o lo que es lo mismo de media hora a dos horas y media. Por tanto, esta expresión busca encontrar un patrón de consumo que sea consumo medio, alto o que combine los dos tipos de consumo cada máximo dos horas y media. Figura 50. Resultado de la expresión regular temporal en el escenario FDI 150%. Tal y como vemos la Figura 50, vemos que esta expresión refleja un patrón de comportamiento de consumo anómalo, comparado con un comportamiento normal vemos como aproximadamente durante 32 registros o lo que es lo mismo durante 15 horas el consumo no reduce en ningún momento, en todo caso aumenta. Podemos concluir que esta expresión regular temporal define un patrón de comportamiento de consumo anómalo típico de este tipo de ataques y que siempre que se detecte estaremos hablando de este. Una vez más podemos hacer uso
[Escriba aquí] [Escriba aquí] [Escriba aquí] 88 de la integración entre el gráfico del tipo de ataque con el resultado de Montre en la Figura 51 para ver más claro esto. Figura 51. Gráfico de ataque FDI 150% con la solución de Montre. Escenario RSA Este tipo de ataque, como se ha explicado anteriormente, puede ser utilizado con diversos objetivos, dependiendo de cómo se manipulen los datos. Tanto si se sobredeclaran como si se subdeclaran estos datos de consumo eléctrico, podría dar lugar a robos de energía o diferentes tipos de problemas en los Smart Grid, por tanto, se consideran los dos tipos como ataques. Este tipo de ataques manipulan estos datos utilizando un factor multiplicativo aleatorio para alterar las mediciones, que explicaremos a continuación. Para llevar a cabo esta manipulación se aplica un factor de escala entre dos números. Estos dos números pueden ser pequeños, medianos o grandes, dando lugar a diferentes resultados distintos en función de la finalidad del ataque. Nosotros en este estudio vamos a exponer dos casos
[Escriba aquí] [Escriba aquí] [Escriba aquí] 89 opuestos para evidenciar cada una de las posibilidades, una subdeclaración y una sobredeclaración. Por una parte, la subdeclaración que llamaremos ataques RSA 0.1-0.8 aplican a los datos de consumo un factor de escala entre 0,1 y 0,8 escogido aleatoriamente dando como resultado unos consumos más bajos de lo habitual (ver Figura 52) y por otra parte la sobredeclaración que llamaremos ataques RSA 0.2-0.5 aplican a los datos un factor de escala entre 2,0 y 5,0 escogido aleatoriamente, dado esta vez como resultado, unos consumos más altos de lo habitual (ver Figura 53). Figura 52. Gráfico comparativo del escenario normal con el escenario RSA 0.1-0.8 Figura 53. Gráfico comparativo del escenario normal con el escenario RSA 2.0-5.0. Primera aproximación RSA 2.0-5.0 y 0.1-0.8
[Escriba aquí] [Escriba aquí] [Escriba aquí] 96 Capítulo 7 Conclusión En el capítulo uno se introdujeron una serie de objetivos fundamentales para el correcto desempeño de este trabajo de fin de grado. Una vez finalizado este, haremos un pequeño repaso de estos con la finalidad de poder ver si hemos sido capaces de llevarlos a cabo. ▪ Ampliar las funcionalidades de la biblioteca ParetoLib: Gracias a los nuevos motores de análisis TRE: Montre y Timedrel ahora ParetoLib puede hacer uso de expresiones regulares temporales a través de su herramienta gracias a las implementaciones hechas en este trabajo. ▪ Integrar las nuevas funcionalidades en la interfaz gráfica: Podemos decir que la implementación de los nuevos motores Montre y Timedrel facilitan el uso de la plataforma y sobre todo la interpretación de los resultados gracias a la nueva funcionalidad que muestra de una manera más visual los resultados de estas herramientas. ▪ Realizar un análisis de diferentes casos de estudio: Gracias a las nuevas funcionalidades aplicadas en este proyecto hemos sido capaces de obtener diferentes expresiones regulares temporales para los diferentes tipos de ataque a infraestructuras eléctricas como Smart Grids. Gracias a estas expresiones, somos capaces de definir un patrón de consumo eléctrico característico para cada tipo de ataque y poder prevenir o detectar cualquier tipo de anomalía planteada.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 97 Hay una serie de mejoras en este proyecto que por tiempo no se han podido aplicar y, por tanto, se proponen como trabajo futuro. Estas propuestas son las siguientes: ▪ Mejorar la integración con Docker. Para mejorar la integración con Docker, proponemos reemplazar las llamadas a los subprocesos del sistema operativo que invocan Docker por llamadas a la biblioteca de Docker. Este enfoque simplificará tanto la implementación como el mantenimiento, y puede resultar en una ejecución más sencilla y eficiente del proceso. ▪ Parametrización y automatización de los predicados de consumo: Se propone parametrizar y automatizar los predicados de consumo "low", "medium" y "high". En lugar de definir manualmente los intervalos de consumo, se sugiere que el sistema los determine automáticamente a partir de estadísticas derivadas del comportamiento del usuario. ▪ Extensión de la experimentación a otros consumos: Se plantea la posibilidad de extrapolar los experimentos realizados para datos de consumo eléctrico al consumo de gas, o en escenarios donde el usuario doméstico disponga de paneles solares (y, por tanto, no siempre consuma energía de la red eléctrica). Esto implicaría ajustes en el modelo y en las expresiones regulares utilizadas para el procesamiento de los datos. También, se debería considerar el caso de usuarios que disponen de paneles solares en su domicilio, lo que afectaría la relación con la red eléctrica y modificaría los patrones de consumo.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 98 Capítulo 8 Conclusion In chapter one we introduced a series of fundamental objectives for the correct performance of this end-of-degree project. Once finished, we will make a small review of these in order to see if we have been able to carry them out. ▪ Extend the functionalities of the ParetoLib library: Thanks to the new analysis engines TRE: Montre and Timedrel now ParetoLib can make use of temporal regular expressions through its tool thanks to the implementations made in this work. ▪ Integrate the new functionalities in the graphical interface: We can say that the implementation of the new Montre and Timedrel engines facilitate the use of the platform and especially the interpretation of the results thanks to the new functionality that shows in a more visual way the results of these tools. ▪ Perform an analysis of different case studies: Thanks to the new functionalities applied in this project we have been able to obtain different temporal regular expressions for different types of attacks on electrical infrastructures such as Smart Grids. Thanks to these expressions, we are able to define a characteristic power consumption pattern for each type of attack and be able to prevent or detect any type of anomaly raised. There are a number of improvements in this project that have not been implemented due to time constraints and are therefore proposed as future work. These proposals are the following: ▪ Improve integration with Docker: To improve the integration with Docker, we propose to replace the calls to the operating system
[Escriba aquí] [Escriba aquí] [Escriba aquí] 99 threads that invoke Docker with calls to the Docker library. This approach will simplify both deployment and maintenance, and may result in easier and more efficient process execution. ▪ Parameterization and automation of consumption predicates: It is proposed to parameterize and automate the "low", "medium" and "high" consumption predicates. Instead of manually defining consumption ranges, it is suggested that the system determine them automatically from statistics derived from user behavior. ▪ Extension of the experimentation to other consumptions: The possibility of extrapolating the experiments carried out for electricity consumption data to gas consumption, or in scenarios where the domestic user has solar panels (and, therefore, does not always consume energy from the electricity grid), is considered. This would imply adjustments in the model and in the regular expressions used for data processing. Also, consideration should be given to the case of users who have solar panels at home, which would affect the relationship with the electricity grid and modify consumption patterns.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 100 Bibliografía [1] E. A. Lee, «Cyber Physical Systems: Design Challenges,» de 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing (ISORC), Orlando, FL, USA, 2008. [2] D. Ulus, «Montre: A tool for Monitoring Timed Regular Expressions,» Université Grenoble Alpes, Grenoble, 2016. [3] E. Asarin, P. Caspi y O. Maler, «Timed Regular Expressions,» Journal of the ACM, 2002. [4] D. Ulus, T. Ferrere, E. Asarin y O. M. , «Timed pattern matching,» Formal Modeling and Analysis of Timed Systems (FORMATS), pp. 222236, 2014. [5] D. Ulus, T. Ferrere, E. Asarin y O. Maler, «Online timed pattern matching using derivatives,» Tools and Algorithms for the Construction and Analysys of Systems (TACAS), pp. 736-751, 2016. [6] J. L. Martín y C. M. Alfonso, "Implementación de un algoritmo de aprendizaje para el análisis de series temporales", Madrid: Universidad Complutense de Madrid, 2023. [7] J. I. R. Jarabo y A. Mambakam , «ParetoLib,» VERIMAG Git Repository, 26 09 2018. [En línea]. Available: https://gricadgitlab.univ-grenoblealpes.fr/verimag/tempo/multidimensional_search. [Último acceso: 1 04 2024]. [8] A. Bakhirkin, N. Basset, O. Maler y J. I. R. Jarabo, «ParetoLib: A Python Library for Parameter Synthesis,» de Formal Modeling and Analysis of Timed Systems: 17th International Conference, Amsterdam, 2019. [9] A. Mambakam, J. I. R. Jarabo, A. Bakhirkin y T. Dang, «Mining of extended signal temporal logic specifications with ParetoLib 2.0,» Formal Method in System Design, pp. 1-25, 2024. [10] D. Ulus, «Timedrel,» Université Grenoble Alpes, 2019. [En línea]. Available: https://github.com/doganulus/timedrel. [11] «¿What is docker?,» [En línea]. Available: https://www.docker.com/.
[Escriba aquí] [Escriba aquí] [Escriba aquí] 101 [12] «General Python FAQ – Python 3.11 documentation,» Python, 02 04 2024. [En línea]. Available: https://docs.python.org/3.11/faq/general.html#what-is-python. [13] «What is PyQt?,» Riverbank Computing, 18 09 2014. [En línea]. Available: https://riverbankcomputing.com/software/pyqt/intro. [Último acceso: 2024]. [14] «Matplotlib 3.9.0 documentation,» Matplotlib, [En línea]. Available: https://matplotlib.org/stable/index.html. [Último acceso: 2024]. [15] «Jira,» Jira, [En línea]. Available: https://www.atlassian.com/software/jira. [Último acceso: 2024]. [16] «Versión 2.5.0. ParetoLib,» ParetoLib, [En línea]. Available: https://gricad-gitlab.univ-grenoblealpes.fr/verimag/tempo/multidimensional_search/- /tree/version/2.5.0?ref_type=heads. [17] S. C. Kleene, «Representations of events in nerve nets and finite automata,» Automata Studies: Annals of Mathematics Studies 34, pp. 3-42, 1956. [18] C. f. E. Regulation, «CER Smart Metering Project,» [En línea]. Available: https://www.ucd.ie/issda/data/commissionforenergyregulationcer/. [19] «Smart Grids,» IEA 50, [En línea]. Available: https://www.iea.org/energy-system/electricity/smart-grids. [20] J. I. R. Jarabo, S. Bernardi, R. Javierre y J. Merseguer, «Detectors of Smart Grid Intégrity Attacks: An Exprerimental Assessment,» UCM y Unizar. [21] S. E. International, «Energy Theft and Fraud Reduction,» [En línea]. Available: //www.smart-energy.com/industry-sectors/energy-gridmanagement/ energy-theft-and-fraud-reduction/. [22] P. A. Delgado, «Development of a Deep Learning based attack detection system for Smart Grids,» E.T.S.I. Telecomunicaciones UPM, [En línea]. Available: https://oa.upm.es/55617/. [23] V. B. Krishna, G. Weaver y W. Sanders , «PCA-Based Method for Detecting Integrity Attacks on Advanced Metering Infrastructure,» de Quantitative Evaluation of Systems, 12th International Conference,, Madrid, 2015. [24] V. B. Krishna, K. Lee, G. Weaver , R. Iyer y W. Sanders, «A Framework for Detecting Electricity Theft Attacks in Smart Grids,» de 46th
[Escriba aquí] [Escriba aquí] [Escriba aquí] 102 Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2016. [25] J. I. R. Jarabo, «VERIMAG Git Repository,» [En línea]. Available: https://gricad-gitlab.univ-grenoble-alpes.fr/requenoj/signals/- /tree/master/signals2prsignal?ref_type=heads.