Alejandro sierra munera pontificia universidad javeriana facultad de ingenieria



Descargar 296.24 Kb.
Página2/5
Fecha de conversión11.01.2017
Tamaño296.24 Kb.
1   2   3   4   5

Syslog Modular.

Syslog modular es una implementación de syslog que tiene un nuevo modulo que se encarga de verificar la integridad de los eventos. Los eventos pueden ser firmados mediante algoritmos como PEO-1 y L-PEO, con los que se pude verificar si los eventos han sido modificados. [5]


Nsyslog. Nsyslog es una herramienta desarrollada por Darren Reed la cual afronta el problema de la integridad de la versión original de syslog, remplazando el uso de paquetes UDP por el uso de paquetes TCP. Con el protocolo TCP se busca mejorar la confiabilidad de la entrega de los mensajes ya que este protocolo revisa la llegada de estos mediante el uso de acuses. Otra ventaja es que sobre TCP se puede implementar SSL (Secure Socket Layer) que permite cifrar los mensajes lo que provee confidencialidad. [5]
Nsyslog se mantiene compatible con la versión anterior de syslog ya que puede ser configurado para escuchar por el puerto 514/UDP.
Syslog-NG. Ésta evolución de syslog fue desarrollado por Balabit IT y su objetivo es extender la versión regular de syslog.
Las principales extensiones que ofrece son:

  • Habilidad de decidir que tan frecuentemente se escriben los datos a disco.

  • Habilidad de controlar si la transmisión se hace mediante UDP o TCP.

  • Habilidad de enviar los datos a una base de datos.

Con syslog-ng el formato del archivo de configuración syslog-ng.conf cambia. [5]


Stealthful Loggin. Para un proyecto de Honeypot, es clave recolectar los registros de eventos. En el proyecto Honeynet (http://www.honeynet.org) buscan proteger la confidencialidad del servidor de logs y los datos que en este residen. Para proteger a este equipo se configura el dispositivo que genera los mensajes syslog para enviarlos a una dirección falsa o a una dirección de broadcast. Luego se configura un equipo objetivo (honeypot) con Snort. La interfaz de red del servidor de logs no se configura como promiscua en ese segmento de red. Un filtro de Snort se crea para escuchar todos los mensajes broadcast de syslog en esta interfaz de red inactiva, y enviar estos mensajes a un archivo de log. A esta técnica se le llama Stealthful Loggin. [5]

RFC 3195, Reliable delivery for Syslog (Entrega confiable para Syslog). Este RFC describe un método para la entrega confiable de los mensajes syslog. Uno de los objetivos es mantener compatibilidad con el RFC 3164.
Para la confiabilidad se usa el protocolo BEEP descrito en el RFC 3080 [6], creando un túnel en el que los mensajes de syslog se pueden asegurar mientras son enviados.

BEEP también provee autenticación. [5]




        1. Comparación de evoluciones de syslog

Debido a que syslog es un protocolo que permite el transporte de los logs, podría ser una herramienta viable en la centralización de los registros de eventos de seguridad. Este protocolo no genera costos adicionales, lo cual es un punto a su favor en el momento de decidir la mejor opción al momento de centralizar.


Sin embargo éste protocolo presenta desventajas en cuanto al manejo de seguridad ya que no garantiza la llegada del mensaje al utilizar un protocolo no orientado a conexión, ni tampoco garantiza integridad, autenticidad, ni privacidad.
Por las razones anteriores es conveniente, en caso de ser posible, realizar alguna modificación a éste protocolo o implementar alguna metodología que garantice mayor seguridad.


      1. SNMP

SNMP (Simple Network Managment Protocol) es un protocolo de administración de red, el cual gestiona la configuración de dispositivos de red desde una estación de trabajo. Sin embargo, existen algunos dispositivos de red que no fueron creados para ser administrados con SNMP, para lograr la administración de estos existe un agente especial llamado agente Proxy. [7]
SNMP v.1 trabaja con el protocolo de transporte no orientado a conexión, UDP. Los agentes SNMP escuchan por el puerto 161.


        1. Componentes de SNMP:

SNMP se compone de tres partes [7]:




  1. Consola de administración: La consola de administración es un programa que se encuentra en una estación de trabajo. Ésta tiene la función de indagar los agentes por medio de SNMP. Su responsabilidad principal es ejecutar aplicaciones para analizar el funcionamiento de la red.




  1. Agente: Un agente es un programa que se encuentra en un dispositivo de red, el cual es administrable por SNMP. La responsabilidad principal del agente es consultar o modificar las variables de la MIB.




  1. MIB: Una MIB “es una base de datos virtual de objetos administrados que son accesibles por el agente y manipulados vía SNMP para lograr la administración de la red” [7]. Se encuentra dividida en cuatro áreas: atributos del sistema, atributos privados, atributos experimentales y atributos de directorio.

Para representar la información de una MIB cada objeto debe tener un identificador de objeto único llamado OID, éste es una secuencia de números enteros no negativos que van separados por un punto. Este identificador sale de un árbol estandarizado mundialmente.




        1. Operaciones de SNMP:

En este protocolo existen 6 comandos u operaciones básicas: GetRequest, GetNext, GetResponse, SetRequest, Trap, GetBulkRequest.


El comando trap, es utilizado cuando ocurre un evento inusual. En este caso, los agentes utilizan este comando para enviar datos a la consola de administración. Este evento siempre es reportado sin solicitud.



        1. Estructura de la PDU

La estructura del mensaje SNMP cuando se utiliza un comando trap se define como se ve en la Figura siguiente:





Versión

Comunidad

SNMP PDU

Mensaje SNMP



Tipo PDU

empresa

Dirección agente

Trap genérico

Trap específico

Time-stamp

Campos variables

Trap PDU

Figura 1. Estructura de mensajes SNMP
En donde cada uno de los campos se define a continuación:

  • Versión: en este campo se define la versión de SNMP que se va a utilizar.

  • Comunidad: se define la relación que existe entre un agente y un grupo de aplicaciones SNMP.

  • Tipo de PDU: Indica el tipo de la PDU que va en el mensaje (GetRequest, GetNextRequest, SetRequest, GetResponse, trap).

  • Empresa: indica el tipo de objeto que genera un trap.

  • Dirección agente: se encuentra la dirección del objeto generador del trap.

  • Trap genérico: Es el tipo genérico del trap.

  • Trap específico: Indica el código específico del trap.

  • Time-stamp: Indica el tiempo que transcurrió entre la ultima vez que se reinició el dispositivo de red y la creación del trap.




        1. SNMP v.3

SNMP v.3 se define como la adición de seguridad y administración a SNMP v.2.


Esta versión fue diseñada para corregir, mediante el uso de algoritmos de autenticación y de cifrado, algunos problemas de seguridad con los que contaba la versión anterior, los cuales son mencionados a continuación:


  • Falta de Integridad

  • Falta de Autorización

  • Falta de Autenticación

  • Spoofing

Sin embargo, aún no previene ataques como denegación de servicios y sniffer.


Esta versión provee un mejor sistema de seguridad, mucho más robusto y confiable. Utiliza cifrado por medio de DES y autenticación con MD5. También utiliza un modelo de usuarios y de control de acceso basado en vistas sobre la MIB actual. Esto permite que se pueda restringir el acceso a ciertas partes de la MIB.

Otra mejora de esta versión frente a las versiones anteriores, es que soporta el uso de lenguajes orientados a objetos, como Java o C++, para la construcción de los elementos propios del protocolo. [8]


Debido a que el protocolo SNMP presenta una versión mejorada (SNMP v3), en la cual se reflejan adelantos en el tema de seguridad, garantizando así integridad, autorización, autenticación y spoofing; este protocolo se puede ver como una herramienta útil en la administración de logs.
SNMP, presenta adicionalmente, otra gran ventaja ya que provee soporte de lenguajes de programación orientados a objetos, lo cual podría facilitar la intervención en la construcción de elementos del protocolo.


  1. CORRELACION DE REGISTROS DE EVENTOS DE SEGURIDAD

La correlación tiene como objetivo encontrar incidentes los cuales son una serie de eventos que ocurren en distintos puntos de la red [10]. En otras palabras, la correlación busca asociar los eventos para encontrar información útil. [11]

      1. Requisitos para la correlación

Antes de realizar la correlación es necesario haber cumplido con algunos requisitos: Consolidación, Normalización y Reducción. [10]


  • La consolidación de los datos consiste en el transporte de los eventos desde los dispositivos o herramientas de seguridad hasta un punto central. El método de transporte utilizado para la consolidación debe ser orientado a conexión y se debe garantizar la integridad y seguridad de los datos. Es importante proteger los datos durante este transporte, para ello se debe usar algún método de cifrado y autenticación.




  • La normalización de los datos consiste en cambiar el formato de los datos a un solo formato polimórfico. Es primordial para propósitos forenses que durante este proceso no se pierda ni se cambie ningún dato.




  • Reducción de los datos. Esto se puede realizar comprimiéndolos, suprimiendo duplicados o combinando eventos similares en un solo evento.

Teniendo en cuenta que uno de los aspectos más importantes de un registro de eventos es el hecho de guardar la estampilla de tiempo exacta del momento en que se produjo el log, es muy importante, a la hora de correlacionar varios eventos en diferentes dispositivos, que esas estampillas de tiempo estén sincronizadas. Por esto es importante no perder de vista un aspecto que podría clasificarse dentro de la normalización que propone Caldwell, y valdría la pena distinguirlo de la normalización de la forma de los registros.



      1. Eventos, Incidentes y Eventos Compuestos

Un incidente esta definido como el resultado de la correlación de varios eventos.
“la correlación,…, es tomar varios eventos de seguridad aislados y unirlos para crear un único y relevante incidente de seguridad.”[10].
Un evento es la representación de cambios de estado de interés que pueden ocurrir en un sistema. Éstos se clasifican en eventos primitivos y eventos compuestos. Los primeros están predefinidos en un sistema y la detección de estos esta embebida en la implementación del mismo. Los eventos compuestos surgen de componer varios eventos primitivos y compuestos, cada uno de estos llamado evento componente.
Adicionalmente un evento puede ser recurrente, es decir un evento puede ocurrir varias veces en un intervalo de tiempo. Cada ocurrencia de un evento se define como instancia de evento.
Se ha definido un lenguaje para la especificación de eventos compuestos llamado JESL (Java Event Specification Language) el cual se describe a continuación.
JESL

El lenguaje JESL esta basado en los conceptos enumerados a continuación:



  • Evento

  • Evento Primitivo

  • Evento Compuesto

  • Instancia de Evento

Para denotar una instancia de un evento se define (e,i) como la i-esima instancia del evento e. [13]


Funciones

  • #: Define el índice de la instancia más reciente del evento e en un tiempo t.




  • AttrVale: Permite acceder al valor del atributo attr de la instancia del evento e (e,i)




  • AttrValuer : Permite acceder al valor del atributo attr de la instancia relativa de un evento e en un tiempo t

Donde (#(e,t)+i)>0, y t es el tiempo de referencia.




  • @ y @r: Un atributo común de todos los eventos es el tiempo de ocurrencia. Por eso se define la función @ y @ relativo para representar el tiempo de ocurrencia de una determinada instancia del evento e.



Si se considera el tiempo t dentro de valores no negativos.




  • @f y @fr: Mediante esta función se puede definir un subconjunto de instancias de e, en el cual están las instancias de e que cumplen con una expresión booleana f. Este grupo de instancias constituyen el evento ef.




        1. Especificación de Eventos Primitivos y Compuestos

Eventos Primitivos:
define primitive event PE with

attributes ([NAME, TYPE], ..., [NAME, TYPE])


Eventos Compuestos:
define composite event CE with

attributes ([NAME, TYPE], ..., [NAME, TYPE])

which occurs

whenever timing condition

TC is [satisfied  violated]

if condition

C is true

then


ASSIGN VALUES TO CE’s ATTRIBUTES;


      1. Tipos de Correlación

Los dos aspectos más importantes en la correlación de eventos son la velocidad con la cual ocurre la correlación, y la exactitud de los datos devueltos en la correlación. [11] Es importante que el sistema de correlación informe los incidentes tan rápido como sea posible para que el administrador de la red actúe de acuerdo a esto. De igual forma, el sistema de correlación debe reducir el número de falsos positivos y falsos negativos [9].

Luego de haber cumplido con los requisitos para correlacionar se puede proceder a la correlación. Existen diferentes métodos para esto: correlación basada en reglas, correlación estadística y correlación con sistemas de inteligencia artificial



        1. Correlación basada en reglas

Éste tipo de correlación consiste en identificar ciertos incidentes y su secuencia, es decir cada uno de los eventos que se dieron para llegar al incidente. Este conocimiento del ataque se utiliza para relacionar eventos y para analizarlos juntos en un contexto común. [12]
Los motores de correlación basados en reglas aplican los incidentes conocidos en un ataque para seguir detectando exactamente este ataque [12]. En otras palabras, los sistemas de correlación basados en reglas combinan un conjunto de reglas con los eventos que va recibiendo. Basándose en los resultados de cada prueba, y la combinación de eventos en el sistema, el motor de procesamiento de reglas analiza datos hasta que llega a un estado final. Luego, reporta un diagnostico o no reporta nada, dependiendo de la profundidad y de la capacidad del conjunto de reglas. [11]
Para que este tipo de correlación funcione bien y los resultados sean exactos, es necesario ingresar las reglas correctamente y mantenerlas actualizadas en caso de algún cambio en los datos. [11]


        1. Correlación estadística

Esta correlación no emplea ningún conocimiento preexistente de incidentes malévolos, sino que por el contrario confía en el conocimiento (y el reconocimiento) de actividades normales, que se han acumulado en un cierto plazo. Luego, los eventos en curso son clasificados por un algoritmo incorporado y se pueden también comparar a los patrones acumulados de la actividad, para distinguir normal de anormal (sospechoso).

La correlación estadística utiliza algoritmos numéricos especiales para calcular los niveles de amenaza incurridos por los eventos relevantes de la seguridad. Tal correlación busca desviaciones de niveles normales de eventos y otras actividades rutinarias. Los niveles del riesgo se pueden computar de los eventos entrantes y seguir posteriormente en tiempo real o históricamente, de modo que las desviaciones lleguen a ser evidentes.

La detección de incidentes al usar correlación estadística no requiere ningún conocimiento preexistente del incidente a ser detectado. Los métodos estadísticos se pueden, sin embargo, utilizar para detectar incidentes en umbrales predefinidos de la actividad. Tales umbrales se pueden configurar basándose en la experiencia que supervisa el ambiente. [12]


        1. Correlación con sistemas de inteligencia Artificial

Este tipo de correlación usa varias formas de inteligencia artificial (AI). Hay muchos tipos diversos de inteligencia artificial, y las técnicas de la correlación de eventos se han propuesto utilizar varias combinaciones de ellas, incluyendo redes neuronales y sistemas expertos. Los sistemas de AI tienen una ventaja en que, si están bien programados, tienen la capacidad de aprender por si solos, ayudando a eliminar la continua necesidad de los expertos [11]. Este tipo de correlación se basa en la forma en que el cerebro humano correlación información.
El objetivo de la correlación de logs es lograr detectar ataques o amenazas en un tiempo mínimo, para alcanzar a actuar frente a determinado suceso.
Es importante que los logs cumplan con los requisitos de normalización, sincronización de tiempo, transporte y reducción, para lograr una correlación exitosa.


  1. COMPUTACIÓN FORENSE Y EVIDENCIA DIGITAL

      1. Computación Forense

Según el FBI, la computación forense se define como “la ciencia de adquirir, preservar, obtener y presentar datos que han sido procesados electrónicamente y guardados en un medio computacional” [14]. Esta ciencia también se ocupa de crear y emplear medidas preventivas para eventos ocurridos en sistemas de información y/o en redes locales.


La computación forense tiene como fin asistir en la reconstrucción posterior de eventos o ayudar a anticipar acciones no autorizadas [15].
El uso del análisis forense y la evidencia digital ayuda a identificar y procesar gran cantidad de crímenes. Para esto los investigadores usan un gran número de técnicas y herramientas de software que ayudan en el proceso del análisis computacional.
En computación forense es importante conocer el tema de la evidencia digital y su manejo.


      1. Evidencia digital

Al iniciar una investigación de computación forense se debe hacer con la recolección de datos o información, la cual está presente en las pruebas o evidencias obtenidas de los sitios donde se ha cometido algún incidente o delito informático.
Casey define la evidencia digital como “cualquier dato que puede establecer que un crimen se ha cometido o puede proporcionar una relación entre un crimen y su víctima o un crimen y su autor”. [16]
La evidencia digital se puede recolectar y analizar con herramientas y técnicas especiales.
Cuando ha sucedido un incidente, generalmente, las personas involucradas en el crimen intentan manipular y alterar la evidencia digital, tratando de borrar cualquier rastro que pueda dar muestras del daño. Sin embargo, este problema es mitigado con algunas características que posee la evidencia digital. [16]


  • La evidencia de Digital puede ser duplicada de forma exacta y se puede sacar una copia para ser examinada como si fuera la original. Esto se hace comúnmente para no manejar los originales y evitar el riesgo de dañarlos.

  • Actualmente, con las herramientas existentes, es muy fácil comparar la evidencia digital con su original, y determinar si la evidencia digital ha sido alterada.

  • La evidencia de Digital es muy difícil de eliminar. Aún cuando un registro es borrado del disco duro del computador, y éste ha sido formateado, es posible recuperarlo.

  • Cuando los individuos involucrados en un crimen tratan de destruir la evidencia, existen copias que permanecen en otros sitios.




        1. Clasificación de la evidencia digital

Cano clasifica la evidencia digital que contiene texto en 3 categorías [18]:


Registros generados por computador: Estos registros son aquellos, que como dice su nombre, son generados como efecto de la programación de un computador. Los registros generados por computador son inalterables por una persona. Estos registros son llamados registros de eventos de seguridad (logs) y sirven como prueba tras demostrar el correcto y adecuado funcionamiento del sistema o computador que generó el registro.
Registros no generados sino simplemente almacenados por o en computadores: Estos registros son aquellos generados por una persona, y que son almacenados en el computador, por ejemplo, un documento realizado con un procesador de palabras. En estos registros es importante lograr demostrar la identidad del generador, y probar hechos o afirmaciones contenidas en la evidencia misma. Para lo anterior se debe demostrar sucesos que muestren que las afirmaciones humanas contenidas en la evidencia son reales.
Registros híbridos que incluyen tanto registros generados por computador como almacenados en los mismos: Los registros híbridos son aquellos que combinan afirmaciones humanas y logs. Para que estos registros sirvan como prueba deben cumplir los dos requisitos anteriores.
Este artículo se centrara en la evidencia digital de registros generados por computador (logs).


        1. Criterios de admisibilidad

En legislaciones modernas existen cuatro criterios que se deben analizar al momento de decidir sobre la admisibilidad de la evidencia: la autenticidad, la confiabilidad, la completitud o suficiencia, y el apego y respeto por las leyes y reglas del poder judicial [19].

1   2   3   4   5


La base de datos está protegida por derechos de autor ©bazica.org 2016
enviar mensaje

    Página principal