Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Analizador de Logs basado en una ontología

No description
by

Paola Di Giore

on 13 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Analizador de Logs basado en una ontología

Analizador de Logs basado en una Ontología
Log
Es un registro de los eventos que ocurren en los sistemas y redes de una organización.
Un archivo de "log" está compuesto por entradas de log, cada entrada contiene información relacionada a un evento
Sirven para muchas funciones:
optimización de sistemas
performance de redes
registro de las acciones de los usuarios

Gestión de Log
Tipos de Log
De software de seguridad
Antimalware Software
Software de Acceso Remoto
Detección y Prevención de Intrusiones al Sistema
Otros.
De sistemas operativos
Eventos de Sistema.
Registros de Auditoria
De aplicaciones
Peticiones de clientes
Información de Cuenta
Información de Uso
Acciones operacionales de importancia

Facultad de Informática
Ciencias de la Comunicación y
Técnicas Especiales

Ingeniería en Informática

Definición
El Log
La Ontología
Beneficios
Ayuda a asegurar que los registros son guardados y con detalles suficientes por un período apropiado de tiempo.
Revisiones de rutina de log y el análisis para identificar incidentes de seguridad, violaciones de políticas, problemas operacionales.
También pueden utilizarse para realizar auditorías y análisis forenses.
Regulaciones, estándares y direccionamientos
Federal Information Security Management Act de 2002 (FISMA)

Gramm-Leach-Bliley Act (GLBA)

Health Insurance Portability and Accountability Act de 1996 (HIPPA)

Sarbanes-Oxley Act (SOX) de 2002

Payment Card Industry Data Security Standard (PCI DSS)

Problemas
Generación y guardado de Log
Muchas fuentes de generación
Contenido de Log Inconsistente
Etiquetas de tiempo inconsistentes
Formatos de Log inconsistentes
Protección de Log
Protegidos con respecto a su confidencialidad e integridad.
Proteger la disponibilidad
Análisis de Log

Buenas Practicas
Priorizar la gestión del log de forma apropiada dentro de la organización.
Establecer políticas y procedimientos para la gestión de log.
Crear y mantener una infraestructura segura de gestión de log.
Proveer soporte adecuado a todo el personal con responsabilidades en la gestión de log.

Gestión operativa
Configuración de orígenes de log, incluyendo generación, almacenamiento y seguridad.
Generación
Almacenamiento y eliminación
Seguridad
Análisis de los datos de los log.
Entendimiento
Priorizar las entradas
Comparar el análisis de nivel de sistema con el de nivel de infraestructura
Iniciar respuestas apropiadas para los eventos identificados.
Gestionar el almacenamiento de log a largo plazo.

Herramientas actuales
Definiciones
Desde la filosofía
Se refiere a la explicación sistemática del ser.
Neches (1991)
“Una ontología define los términos básicos y relaciones de un vocabulario de un área, y también las reglas para combinar términos y relaciones para definir extensiones de vocabulario.”
Gruber (1993)
“Una ontología es la especificación explicita de una conceptualización.”
Borst (1997)
“Las ontologías están definidas como una especificación formal de una conceptualización compartida.”
Guarino y Giaretta (1995)
1. Ontología como una disciplina de la filosofía.
2. Ontología como un sistema informal conceptual.
3. Ontología como cuenta formal semántica.
4. Ontología como especificación de conceptualización.
5. Ontología como representación de un sistema conceptual mediante teoría lógica.
5.1. Caracterizado por las propiedades formales específicas.
5.2. Caracterizado solo por su propósito específico.
6. Ontología como vocabulario usado por una teoría lógica.
7. Ontología como (meta-nivel) especificación de una teoría lógica.


“Una teoría lógica que da cuenta de un cuenta explica parcial de una conceptualización”.

“Un set de axiomas lógicos diseñados para el entendimiento del vocabulario”.
Guarino y Giaretta (1995)
Para la informática
Una ontología es una especificación de una conceptualización de un dominio de conocimiento”
Mahesh (1996): En las aplicaciones reales, una ontología es una entidad computacional, y no ha de ser considerada como una entidad natural que se descubre, sino como recurso artificial que se crea.
Weigand (1997): “An ontology is a database describing the concepts in the world or some domain, some of their properties and how the concepts relate to each other.”

Las ontologías son ampliamente usadas en la ingeniería de conocimiento, inteligencia artificial y ciencias de la computación, para manejo de conocimiento, procesamiento de lenguaje natural, comercio electrónico, integración de información inteligente, bio informática, educación y nuevas campos como Web Semántica.
De Ontología a Ingeniería de Ontología
¿Qué son las cosas?
¿Cuál es la "esencia" que permanece dentro de las cosas cuando cambian (de color, de tamaño, etc.)?
¿Los conceptos (libro, árbol, mesa, etc.) existen afuera de nuestra mente?
¿Cómo se pueden clasificar las entidades del mundo?
Esquema de Ontología
Una ontología permite
Compartir el entendimiento común de la estructura de información entre personas y agentes de software (Musen 1992; Gruber 1993)
Permite reusar el conocimiento del dominio
Explicitar suposiciones sobre el dominio
Separar el conocimiento del dominio del conocimiento operacional
Posibilitar el análisis del conocimiento del dominio

El Razonamiento
Planteo del problema
Solución Propuesta
Validación
Tipos de ontología según Steve (1998)
Ontologías de un dominio
Se representa el conocimiento especializado pertinente de un dominio o subdominio, como la medicina, las aplicaciones militares, la cardiología, etc.
Ontologías genéricas
Se representan conceptos generales y fundacionales del conocimiento como las estructuras parte/todo, la cuantificación, los procesos o los tipos de objetos.
Ontologías representacionales
Se especifican las conceptualizaciones que subyacen a los formalismos de representación del conocimiento, por lo que también se denominan meta-ontologías (meta-level o top-level ontologies).
Tipos de ontologías
Ciclo de vida de una ontología
Paso 1. Determinar el domino y alcance de la ontología
Paso 2. Considerar la reutilización de ontologías existentes
Paso 3. Enumerar términos importantes para la ontología
Paso 4. Definir las clases y la jerarquía de clases
Paso 5. Definir las propiedades de las clases: slots
Paso 6. Definir las facetas de los slots
Paso 7. Crear instancias
Definiciones
Según Descartes
Entiende el razonamiento como una facultad exclusiva de los humano y delimita la diferencia entre ser humano y no serlo.
Razonamiento
El razonamiento deductivo va de lo general a lo particular, y el inductivo en sentido inverso.
Podemos agregar el concepto de validez para el razonamiento deductivo y el de probabilidad para el inductivo.
El razonamiento deductivo se infiere de las premisas y de las mismas depende su validez, su conclusión no incrementa la información semántica.
En un razonamiento inductivo se crea conocimiento, ya que no se parte de las premisas, también se parte de una probabilidad.
En el razonamiento deductivo hay una certeza absoluta, mientras en el inductivo por tratar con probabilidades, no.

Razonamiento Aplicado a la Informática
El razonamiento es una operación lógica mediante la cual, partiendo de uno o más juicios, se deriva la validez, la posibilidad o la falsedad de otro juicio distinto.
Cuando la operación se realiza rigurosamente y el juicio derivado se desprende con necesidad lógica de los juicios antecedentes, el razonamiento recibe el nombre de inferencia.
Los juicios que sirven como punto de partida son denominados premisas y desempeñan la función de ser las condiciones de la inferencia. El resultado que se obtiene, o sea, el juicio inferido como consecuencia, es llamado conclusión.
Actualmente en un entorno de procesamiento a gran escala (empresarial, de investigación, etc.), se encuentra gran cantidad de servidores y terminales de trabajo con capacidad de multiprocesamiento, todas estas generan registros de funcionamiento de los diversos sistemas que utilizan, incluso de acceso a distintos recursos propios o de su entorno.
Debido a esta falta de estándares y normalizaciones de los registros, en el análisis de una falla en un sistema puede implicar una pequeña modelización del mismo para comprender el origen de la falla y proponer posibles soluciones al mismo.

--> Gestión de logs, el análisis de log, consume mucho tiempo.

--> Cualquier tipo de automatización que asista en la tarea del análisis de log es de mucha utilidad.

--> Las herramientas actuales de gestión de logs no permiten compartir información de manera que las máquinas la comprendan y no son escalables.
Requisitos
Estructura de Log
Lenguaje Modelado de Ontologías
Proceso de Captura y Traducción de Eventos
Razonamiento con la Ontología
Estructura de Log
En término generales los requisitos para una estructura de log dependen del sistema de gestión del log que vaya a ser implementado en la organización y las políticas de la misma.
Así se recopilan las necesidades de los administradores de infraestructura, los de sistemas, aquellas personas que este proceso le sea de interés y teniendo en cuenta normas aplicables.
Lenguaje Modelado de Ontologías
El lenguaje debe ser flexible, debe poder responder a los rápidos cambios tecnológicos.
Debe permitir un almacenamiento seguro de sus instancias y trabajar en forma fluida con el resto del sistema.
Proceso de Captura y Traducción de Eventos
Dependiendo de factores como la ontología modelada, el tipo de log que será utilizado para los casos de prueba y con qué software se modelará la ontología así como el lenguaje de modelado, se desarrolla el diseño y codificación de este proceso.
También es necesario en el proceso la traducción, es decir, que tome el evento capturado y realice lo necesario para que los datos capturados sean traducidos a las instancias de la ontología.
Razonamiento con la Ontología
Para aprovechar las ventajas de la ontología utilizaremos razonadores para el chequeo de integridad de la ontología y también para realizar inferencias sobre la información que la misma contenga, obteniendo informe del estado del sistema en general.
Introducción
Se propone la generación de una ontología de log.
Serán necesarios para la realización de esta solución:
Un modelo de ontología de log.
Un proceso que capture los eventos
Un razonador
Aspectos a solucionar
Modelo de Ontología
Proceso de Captura
Razonadores
La ventaja de una ontología reside en la capacidad de procesamiento de una computadora y utilizar esta base de la inteligencia artificial para hacer más sencilla la tarea del análisis.
Ontología
El lenguaje de ontologías para el WEB (OWL), utiliza de OIL su estructura de capas y de DAML-OIL la superposición que hace para extender a RDF(S), es decir que toda construcción de OWL, esta edificada sobre RDF. Actualmente, la W3C ha liberado la especificación de OWL. Este se encuentra soportado en el paradigma de Lógica Descriptiva, y viene presentado en tres capas: OWL Lite, OWL LD, OWL Full. Cada uno, ofrece una mayor capacidad expresiva, pero castiga su capacidad computable.
En un intento de simplificar esta tarea de análisis se propone como adicional al software de análisis un modelo de ontología orientada al análisis de log de errores.
Proceso de captura
Para poder dar uso a los beneficios de crear una ontología de log, es necesario instanciarla con los datos que vamos a analizar.
El proceso de razonamiento utilizado en esta solución, se conoce como impulsado por datos o encadenamiento hacia adelante, ya que comienza con toda la información conocida y avanza hacia la conclusión.
Diagrama UML del proceso
Razonadores
El proceso de razonamiento utilizado en esta solución, se conoce como impulsado por datos o encadenamiento hacia adelante, ya que comienza con toda la información conocida y avanza hacia la conclusión.
Diseño Preliminar de la Ontología
Introducción
El diseño se presentará a lo largo de esta sección abarcando los siguientes puntos para la correcta comprensión de todo el caso de estudio:
Entorno de Desarrollo (IDE) Eclipse Indigo
Protègè OWL
Visión General de la Ontología de Logs
Fuente de eventos de log
Interfaz con la fuente de eventos de log
Protégé OWL API
Entorno de Desarrollo (IDE) Eclipse Indigo
Protègè OWL
Visión General de la Ontología de Logs
Protégé OWL API
Es una librería Java de código abierto para el Lenguaje Web de Ontología y RDF(s). La Interface de Programación de Aplicación (API) provee clases y métodos para cargar y guardar archivos OWL, para consultar y manipular modelos de datos OWL y realizar razonamientos. La API también esta optimizada para la implementación de interfaces de usuario gráficas.
Especificación de los Requerimientos de Software
Perspectiva del Software
El sistema está pensado para trabajar con los estándares que permitan la mayor posibilidad de ampliación de funcionalidades, como ser OWL o Java.
Interfaces del Sistema
Las interfaces que integran al sistema son:
Protege OWL API, para realizar la gestión con la Ontología de Log creada.
Interfaz con la fuente de logs
Funciones del Software
Captura de Eventos: Permite capturar eventos de un sistema dado, utilizando interfaces Java.
Traducción de los Eventos: Permite separar el evento en sus partes para asociar los mismos como instancias de una ontología.
Apertura de la Ontología: Permite abrir el archivo de la ontología y cargarlo en memoria para utilizarlo en el entorno Java.
Guardado de la Ontología: Permite guardar todo lo que se trabajó en memoria en el entorno Java, en el archivo de la Ontología.
Razonamiento: Permite clasificar la taxonomía de la ontología e inferir el estado del sistema con los datos capturados e instanciados.
Diagrama de Flujo del Proceso de Captura
Especificación de Casos de Uso
Caso de Uso 1 – Comenzar Proceso
Caso de Uso 2 – Capturar Eventos "Application"
Caso de Uso 3 – Capturar Eventos “System”
Caso de Uso 4 – Capturar Eventos “Security”
Caso de Uso 5 – Instanciar Ontología
Caso de Uso 6 – Guardar Ontología
Caso de Uso 7 – Razonar
Especificación del Diseño de Software
Diseño de Interfaz del Usuario
Caso de Estudio
Taxonimía
Caso de estudio
Propiedades
Condiciones o Restricciones (Reglas)
Caso de estudio
Caso de estudio
Estas clases no poseen reglas, ya que son las que componen una entrada de log.
Estas clases ayudan a la clasificación de las entradas de log y a inferir nuevo conocimiento.
Tipos de restricciones:
Cantidad (*)
Cardinalidad
Valor
Caso de estudio
• Application Error = IDEvent + AppCat + DateGenerated + TimeGenerated + LogSO + LogSource + Error

• Application Information = IDEvent + AppCat + DateGenerated + TimeGenerated + LogSO + LogSource + Information

• Application Warning = IDEvent + AppCat + DateGenerated + TimeGenerated + LogSO + LogSource + Warning

• Security Success Audit = IDEvent + SecCat + DateGenerated + TimeGenerated + LogSO + LogSource + SuccessAudit

• Security Failure Audit = IDEvent + SecCat + DateGenerated + TimeGenerated + LogSO + LogSource + FailureAudit

• System Error = IDEvent + SysCat + DateGenerated + TimeGenerated + LogSO + LogSource + Error

• System Information = IDEvent + SysCat + DateGenerated + TimeGenerated + LogSO + LogSource + Information

• System Warning = IDEvent + SysCat + DateGenerated + TimeGenerated + LogSO + LogSource + Warning
Tipos de entrada de Log y su composición.
Ejemplo de descripción de una clase
Clase SysError - Conceptualización
Clases que definen el estado del sistema
Las clases se organizarán de la siguiente manera:

SystemStatus
Attention – Que incluirá las entradas del tipo Advertencia.
Critical – Incluirá las entradas del tipo Error o Falla de Auditoría.
Normal – Incluirá las entradas del tipo Información y Éxito de Auditoría.
Capas del proceso de captura
Código utilizado para instanciar una entrada de log
Código utilizado para inferir estado
Conclusiones
La solución propuesta presenta mejoras con respecto a las herramientas de análisis de log actuales, ya que:
Permite el crecimiento de manera escalar al agregar fuentes de log mediante el uso de las APIs requeridas en cada caso.
También es posible escalar la aplicación a sistemas distribuidos, mediante el agregado de las APIs correspondientes a esta función.
Resultados obtenidos
Caso de estudio 1
Resultados Obtenidos:
Luego de investigar los componentes necesarios para el desarrollo del caso de estudio, se logró la solución esperada. Esta solución cumplió con las características esperadas de lograr un resultado visual sencillo de comprender para el usuario final y al utilizar una ontología como base de la aplicación se logró incorporar los beneficios que esto acarrea, como ser el entendimiento de la información y la posibilidad de compartir este entendimiento.
Caso de estudio 2
Resultados Obtenidos:
Como fue propuesto, se logró un diseño de ontología que tenga la capacidad de clasificar tipos de logs específicos en categorías genéricas. Demostrando de esta manera la versatilidad de las ontologías siendo aplicadas en un mismo dominio, en este caso, el dominio del análisis de logs.
Mediante el uso de razonadores se pudo demostrar la clasificación de la ontología propuesta. Y se pudo ver el resultado con un graficador de ontologías integrado en el editor de ontologías.
Nicolás Luna
Paola Di Giore

Caso de estudio
Estado del arte
Log
Ontología
Restricciones
Protege OWL API, tiene ciertas limitaciones que no afectan al alcance actual.
En el caso de esta investigación es el tipo de ontología que se tratará es el Terminología que estandariza términos para dominios específicos.
Para este diseño, vamos a aplicar la Ingeniería en Ontologías que define los términos en el dominio y las relaciones entre los mismos.
Los CONCEPTOS del dominio (clases):
Se organizan los conceptos en una jerarquía (super-sub clases)
Define cuales atributos y propiedades (slots) de clases pueden tener restricciones sobre sus valores.
Define individualidades y rellena los valores de los slots.
Fuente de eventos de log y la interfaz con la fuente de eventos
La fuente de eventos de log es el elemento que proporciona los datos necesarios para crear instancias de las clases dentro de la ontología de logs.
Es necesario que la fuente de logs cuente con una interfaz compatible con el lenguaje en el que se desarrolla la solución.
Ontología en Protege
Super Clases de la Ontología
Sub Clases de la clase “Log”
Sub Clases de la clase “LogElements”
Especificación de Requerimientos
Interfaces de Usuario
Consiste en una ventana con paneles que permiten observar los datos capturados, un semáforo para visualizar el estado del sistema y botones para realizar la captura y el razonamiento.
Interfaces de Software
El sistema correrá sobre la plataforma Windows y en un entorno Java.
Interfaces de Comunicación
Si bien para el presente caso, no es necesaria la comunicación, el uso de OWL hace posible compartir la ontología mediante Web.
Implementación
Se toma como fuente de log el Visor de Eventos de Windows. Y como interfaz de esta fuente de log, se utiliza Java Native Access (JNA).
Implementación
Contexto del proceso
Visor de Eventos
El servicio de eventos de Log graba los eventos de aplicaciones, seguridad y sistemas en el Visor de Eventos. Con los eventos registrados en el visor de eventos se puede obtener información de hardware, software y componentes de sistemas
Tipos de Eventos en el Log
De aplicación
De seguridad
De sistemas
Partes de un log
Fecha y Hora
Sistema Operativo
ID de Evento
Origen
Tipo (Información, advertencia, error)
Categoría
Java Native Access (JNA)
Provee a los programas desarrollados en Java acceso a las librerías nativas compartidas de Windows (DLLs) sin escribir código adicional.
Permite llamar directamente a funciones nativas usando el método natural de invocación de Java.
Full transcript