Posts Tagged ‘ossec’

Linux+ Septiembre

|

No he hecho nunca publicidad de ninguna revista en mi blog. Esta vez es diferente, os animo a todos a comprar el número de Septiembre de la revista Linux+ ¿Porqué? Porque en este número he escrito un artículo sobre el detector de intrusos OSSEC.

Es un artículo que repasa brevemente las capacidades de este detector de intrusos y aborda su instalación en modo local sobre un Slackware Linux, ideal para que los interesados en el tema puedan iniciarse.

El artículo tiene un marcado caracter divulgativo y creo que es interesante ya que la reciente adquisición del proyecto a manos de una consultora importante ha dado un nuevo empuje al mismo, desde entonces han salido varias versiones. La mejora es evidente y no hay duda de que será una herramienta con una relevancia cada vez mayor.

OSSEC y CIS

|

Hace poco comentaba la compra de OSSEC por parte de Third Brigade. Parece que a raiz de esto la aplicación ha recibido un nuevo impulso y en apenas dos semanas han aparecido nuevas e interesantes funcionalidades:

1. El 4 de Julio se hacia publica una nueva versión de OSSEC, la v1.5.1. Leyendo el Changelog se puede apreciar que las correcciones han sido leves. OSSEC se ha caracterizado por no actualizarse muy a menudo pero parece ser que desde la compra esto ha cambiado (había prisa por publicar una nueva release bajo el apadrinamiento Third Brigade).

2. El mismo 4 de Julio en el Blog de Daniel B. Cid (autor de OSSEC) aparecía un interesante artículo en el que se explica como compilar y utilizar la herramienta ossec-logtest, incluida en el IDS y que nos permite la comprobación de las reglas utilizadas por el sensor y, lo que es más importante, nos sirve de depurador para la creación de reglas propias.

3. Cuatro días más tarde se publica un nuevo artículo más interesante aún si cabe que el anterior: OSSEC empieza a desarrollarse para comprobar el cumplimiento con los CIS benchmark tests. Para quién no sepá qué son estos test una gran referencia es el Blog SDB (Security By Default) que hace poco publicó un interesante artículo al respecto.

Actualmente solo se comprueba la comformidad para sistemas Debian y Ubuntu/Kubuntu/Xubuntu pero la idea es ampliar estos test e incluso cubrir las políticas FDCC, lo cual sería muy pero que muy interesante. Hay que recordar que actualmente a excepción de las herramientas gratuitas de CIS no hay ninguna herramienta OpenSource que compruebe estas políticas ( las reglas DirectFeed de Nessus son de pago ).

OSSEC adquirido por Third Brigade

|

El proyecto OSSEC ha sido comprado por la consultora Third Brigade.
Podemos ver la noticia tanto en la web del proyecto como en la de la consultora. Lo que a todos nos interesa es saber en qué va a afectar esto al popular HIDS. Daniel B. Cid ha escrito en su blog un FAQ sobre esta adquisición sobre la que hay que destacar dos aspectos:

1. OSSEC seguira siendo OpenSource.
2. Daniel B. Cid seguirá siendo el lider del mismo.

Esta historia ya ha sucedido recientemente con SGUIL (comprada por CISCO), con ClamAV (adquirida por SourceFire) y ya hace algún tiempo con Nessus (absorbida por Tenable Network Solution).

Es un gran paso para alguien que comienza con un pequeño proyecto OpenSource y sueña con poder dedicarse a él plenamente.

Como nota señalar que hace poco escribí un artículo sobre OSSEC para hakin9, que debido a su suspensión temporal será publicado en el próximo número de Linux+.

Slackware v12.1 stable y OSSEC v1.5

|

Nueva release estable de Slackware, no voy a destacar aspectos técnicos porque mi intención no es copiar el anuncio, para ello remito a la web oficial y a Open-Eslack.
Interesante la opción de estabilidad y seguridad que puede apreciarse por ejemplo en el caso de usar kde3 en lugar de aventurarse en el nuevo kde4.

Por otro lado Ossec ha sacado nueva release con importantes novedades (ver el anuncio oficial). Nuevamente he colaborado con el beta testing de la release sobre Slackware con resultados satisfactorios y me eleva muco el ego ver que aparezco en los créditos como colaborador.

(In)Eficacia de la correlación de logs en OSSEC para detectar XSS

|

OSSEC es un detector de intrusos de Host(HIDS) que está alcanzando gran popularidad ultimamente. No es de extrañar dado que tiene múltiples e interesantes funciones: correlación de eventos, control de integridad de ficheros, multiplataforma(*nix, BSD’s, Windows), soporta instalación cliente-servidor-local y personalización de reglas (en formato XML).

El propósito de este post es demostrar que, si bien la correlación de eventos puede detectar intentos de intrusiones no es la panacea ni muchísimo menos. En concreto nos centramos en la “única” regla anti XSS de OSSEC. Esta regla se encuentra en el fichero web_rules.xml y tiene el siguiente aspecto:

Como podemos apreciar las reglas de correlación de eventos son facilmente entendibles debido a que están escritas en formato XML. En este caso se basan en una pequeña lista negra:


%3Cscript
%2Fscript
script>
script%3E
SRC=javascript
IMG%20
%20ONLOAD=
INPUT%20
iframe%20

Esta regla está relacionada con la que veremos a continuación:

De manera que si la regla 31105 (XSS) salta y el código de resultado que devuelve el servidor es un 200 OK salta la alerta 31106 (A web attack returned code 200).

Lo primero que hay que destacar es que la búsqueda de patrones se realiza sobre los ficheros de log del servidor web. En el caso de Apache estos tags aparecerán en el fichero access_log con lo cual tenemos la primera debilidad: cualquier intento de XSS utilizando el método POST no será detectado. Tampoco serán detectados los intentos de XSS en las cabeceras http. Esto es debido a que por lo general una traza del fichero access_log tiene la siguiente pinta en el caso de un GET:

127.0.0.1 – - [27/Apr/2008:19:30:44 +0200] “GET /ossec/index.php?f=VALOR_DEL_PARAMETRO HTTP/1.1″ 200 259

En el caso de que se produzca inyección de código en el parametro f podrá ser correlado. Sin embargo en el caso de utilizar el método POST el valor del parametro no queda registrado en la traza por lo que no se puede correlar:

127.0.0.1 – - [27/Apr/2008:19:30:44 +0200] “POST /ossec/index.php HTTP/1.1″ 200 259

De la misma manera no quedan registrados los valores de la cabecera (El servidor Apache puede ser configurado para que sí se muestren aunque en su configuración por defecto no es así y no es habitual encontrarse con servidores Apache que muestren mucha más información en sus trazas de las expuestas anteriormente).

Nos situamos en el caso de que el ataque se produzca utilizando el método GET. En este caso el correlador de logs compara con la lista negra y en caso afirmativo produce una alerta:

** Alert 1209321044.76264: mail – web,accesslog,attack,
2008 Apr 27 20:30:44 MI_SERVIDOR->/var/log/httpd/access_log
Rule: 31106 (level 12) -> ‘A web attack returned code 200 (success).’
Src IP: 127.0.0.1
User: (none)
127.0.0.1 – - [27/Apr/2008:20:30:43 +0200] “GET /ossec/index.php?f=s%3Cscript HTTP/1.1″ 200 2593

Vemos que en este caso el patrón %3Cscript ha hecho saltar las alarmas. A partir de aqui no es dificil imaginar que la correlación con la lista negra es facilmente evitable.
Si probamos esa misma inyección de manera ofuscada en código hexadecimal comprobados la cadena en el fichero access_log:

127.0.0.1 – - [27/Apr/2008:20:41:28 +0200] “GET /ossec/index.php?f=s%3c%73%63%72%69%70%74 HTTP/1.1″ 200 2593

Sin embargo en el detector de intrusos no salta la alarma. Hemos conseguido realizar el ataque evandiendo el detector de intrusos.

Conclusiones.

La correlación de eventos puede prevenir algunos tipos de ataques web pero no es la panacea para la detección de los mismos. Estos detectores pueden ser evadidos sin demasiada dificultad. Las listas negras son a menudo insuficientes y tienen como riesgo añadido la falsa sensación de seguridad que aportan.