| @elzo | gracias a todos por acudir y al conferenciante pod dar la charla |
|---|---|
| @elzo | tendréis los logs en la web en cuanto sea posible, Ismael Briones nos presentará a nuestro primer invitado |
| @elzo | ismael: hola a todos |
| @elzo | i: nuestro primer conferenciante es javier fernandez-sanguino |
| @elzo | trabaja en el departamento de seguridad de Germinus XXI |
| @elzo | es un activo desarrollador de Debian y actualmente está haciendo su doctorado en la ETSIT de la UPM |
| @elzo | el título de esta primera conferencia de Infosec es "Detección de intrusiones basadas en hosts UNIX y auditorías, el panorama actual" |
| @elzo | estoy ultimando la presentación ahora mismo |
| @elzo | mi conexión no es mi buena así que sed buenos |
| @elzo | en cualquier caso agradecer a la organización haber montado estas charlas |
| @elzo | espero que disfrutéis esta semana, hay muchas charlas interesantes |
| @elzo | el tema de esta charla es la detección de intrusiones en hosts UNIX |
| @elzo | primero dejadme decir que cualquier pregunta será bienvenida mientras vaya hablando |
| @elzo | hacedlas por favor en #qc |
| @elzo | no me gustaría que fuese la típica conferencia en la que yo hablo, vosotros escucháis y eso es todo |
| @elzo | creo que irá mejor si participáis |
| @elzo | como nota aparte: el archivo postscript (comprimido) con las slides ya está disponible |
| @elzo | por qué quiero hablar de la detección de intrusiones basadas en hosts? |
| @elzo | la principal razón es que la detección de intrusiones se ha centrado en tipos de redes y quiero cambiar eso |
| @elzo | pero, por qué sobre la detección de intrusiones? |
| @elzo | dejadme que os introduzca el tema |
| @elzo | la principal idea es detectar cosas que suceden en los sistemas de información que no deberían tener lugar |
| @elzo | de todas formas, quién decide qué y qué no es apropiado en un sistema? |
| @elzo | la política de seguridad |
| @elzo | por cierto, esta introducción es similar a la que dí el año pasado cuando hablé de Tiger así que podéis acudir a ella para profundizar porque aquí no entraré en tantos detalles |
| @elzo | así que queremos detectar violaciones de la poítica de seguridad, eso es lo que hace un intruso |
| @elzo | pero mucha gente no tiene políticas de seguridad definidas, quiere decir eso que no pueden detectar a los intrusos? |
| @elzo | no realmente |
| @elzo | de forma parecida a las vulnerabilidades, algunas cosas en ID (detección de intrusos) son una intrusión |
| @elzo | por qué digo "de forma parecida a las vulnerabilidades"? |
| @elzo | porque una de las cosas que la gente del proyecto CVE (cve.mitre.org) ha discutido mucho es la definición de vulnerabilidad |
| @elzo | separaron las vulnerabilidades según dependiesen o no de la configuración del sistema |
| @elzo | también está el estar expuestos (que no son vulnerabilidades pero dependen de la política de seguridad del sistema) |
| @elzo | de manera similar, cuando definimos la intrusión si no hay política de seguridad definida hay muchas cosas qe podemos considerar una intrusión |
| @elzo | pensemos en un sistema multitarea y multiusuario |
| @elzo | en el que un usuario sin privilegios los adquiera mediante la explotación de una vulnerabilidad local, por ejemplo |
| @elzo | eso es una intrusión, sea cual sea la políticade seguridad |
| @elzo | bueno, stallman probablemente no estaría de acuerdo conmigo en esto :) |
| @elzo | estáis de acuerdo? preguntad en #qc |
| @elzo | en cualquier caso, unas cosas u otras pueden ser o no intrusiones dependiendo de vuestra política si es que la tenéis |
| @elzo | si no la tenéis dependerá de vuetro uso de los sistemas TI |
| @elzo | por ejemplo, alguien conectando a la 1 p.m a vuestro servidor de bases de datos |
| @elzo | es eso una intrusión? |
| @elzo | depende de si a esa hora suelen conectarse, si el servidor está en mi casa y yo durmiendo es probable |
| @elzo | por eso es importante tener en cuenta los sistemas de detección de intrusos, los desarrollos o herramientas cuando hablamos de seguridad. |
| @elzo | los falsos positivos son posibles |
| @elzo | una intrusión de la que se informe como tal pero que no lo sea |
| @xpato | Pero como el admin no la conoce de antemanos el se las tiene que arreglar |
| @xpato | los falsos negativos tambien pueden aparecer |
| @xpato | eso es, un evento que es parte de una intrusion pero no es reportado |
| @xpato | usualmente lo ultimo es mas comun |
| @xpato | ahora vamos a ver un sistema ID diferente |
| @elzo | los sistemas de id, según estén hechos, pueden conducir a falsos positivos, falsos negativos o ambos |
| @elzo | slide 8 |
| @elzo | ahí se muestra la taxonomía de los sistemas ID basándonos en: dónde se lleva a cabo la ID? cómo se analizan los datos? |
| @xpato | Asi que, tu tienes do lugares donde la ID es hecha: el host y "la red" |
| @elzo | y tienes que analizar métodos: busco un comportamiento anormal? o busco cosas que sé que son malas? |
| @elzo | y tienes dos métodos de análisis: busco un comportamiento anormal? o busco cosas que sé que son malas? |
| @xpato | Ahora, ID basados en host, hacen que el ID tome datos del host usando agentes ID |
| @elzo | y los ID basados en red también usan un agente (llamado normalmente "sensor") pero toma información "escuchando" en la red |
| @xpato | Obviamente, el agente esta implementado en un host en ambos casos |
| @elzo | en el primer caso el agente se instala en una máquina que queremos proteger |
| @elzo | la división del análisis de datos es sencilla |
| @xpato | mientras que en el segundo, usas un host para el analisis, pero no es un punto critico |
| @elzo | puedes buscar desviaciones de un comportamiento establecido determinando que es anormal y por lo tanto una intrusión |
| @xpato | Por ej.: un usuario se conecta fuera de hora.el uso de CPU esta aumentando, |
| @elzo | o puedes buscar cosas que "sabes" que son intrusiones (y he dicho "sabes") |
| @xpato | Por ejemplo: trata de busca un cierto ataque in el trafico de red, trata de encontrar un troyano |
| @xpato | ... |
| @elzo | la diferencia estriba en que aún siendo el mismo el origen de los datos en el primer caso no sabemos que es una intrusión pero en el segundo sí |
| @xpato | El primer tipo de analisis es usualmente implementado usando tecnicas de inteligencia artificial, como redes neuronales, sistemas expertos |
| @elzo | mientras que el segundo se implementa usando sistemas basados en reglas |
| @xpato | (la misma tecnologia base de los antivirus realmente) |
| @elzo | antes de hablar de los ID en UNIX dejadme aclarar que hay dos razones por las que los ID basados en host no son la tecnología de ID más prevaleciente |
| @xpato | 1. Necesitas modificar el punto critico(instalar algo, que aumente el desempeño) |
| @elzo | 2.- es más fácil hacer firmas para ataques remotos usando vulnerabilidades conocidas que en el caso de ataques locales |
| @xpato | Por eso los ID-network basados es reglas son mas comunes |
| @elzo | Son más fáciles de construir y el número de falsos positivos es bajo |
| @elzo | Mejnour pregunta si "reglas" es lo mismo que "firmas" |
| @xpato | De todas formas, falsos negativos pueden ser moderadamente altos, ya que ellos "solo" parecen atakes haciendo uso de agujeros conocidos o configuraciones malas |
| @xpato | Y las respuesta es si, ID-network usan "firmas" para determinar las reglas que ellos conocen cuando analizan paketes |
| @elzo | Bien, vamos ahora a por los ID en UNIX |
| @xpato | A menos que haya un pregunta |
| @elzo | cuando hagáis preguntas en #qc poned delante jfs: para que las vea fácilmente |
| @xpato | ok, no hay preguntas? |
| @elzo | bien, continuemos entonces |
| @xpato | Cuando hablamos de ID en Unix debemos primero determinar donde podemos hacer ID en un host |
| @elzo | en la slide 9 se muestran diferentes lugares donde puede tener lugar la ID: |
| @xpato | 1. A nivel de kernel |
| @elzo | 2. En espacio de usuario |
| @xpato | Y en 2) puedes chekear el sistema de archivo local(chekeos de integridad) |
| @elzo | Evidentemente, también podéis fijaros en la red, al igual que ocurre con la ID de redes |
| @elzo | ese ataque está basado en una regla que intenta buscar código javascript en paquetes de red que puedan redirigir a un navegador a otro servidor para capturar cookies y cosas así |
| @xpato | interoperan, pregunta "si snort dice "WEB-CLIENT javascript URL host spoofing attemp" que tipo de atake es |
| @xpato | si miras a la regla de snort: |
| @elzo | ert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any (msg:"WEB-CLIENT |
| @elzo | javascript URL host spoofing attempt"; flow:to_client,established; |
| @elzo | content:"javascript\://"; nocase; classtype:attempted-user; |
| @elzo | reference:bugtraq,5293; sid:1841; rev:2;) |
| @elzo | es un paquete de un servidor HTTP que contiene javacript:// |
| @elzo | esto es a veces un falso positivo, una de las cosas buenas de snort es que provee de referencias externas a bases de datos de seguridad (como bugtraq aquí) |
| @elzo | echadle un ojo a http://online.securityfocus.com/bid/5293 |
| @elzo | veréis que navegadores pueden ser vulnerables a este ataque |
| @elzo | si no los uséis entonces no hay problema :) |
| @elzo | si no los uséis entonces quitad la regla |
| @elzo | Shadow pregunta que dónde recomienda instalar un sistema ID, si a nivel del kernel o en espacio de usuario |
| @elzo | en un minuto estoy con eso |
| @elzo | Mejnour se pregunta si hablo de tripwire cuando hablo de las comprobaciones de seguridad |
| @elzo | la respuesta es que sí, pero parcialmente |
| @elzo | bien, volvamos a la charla |
| @elzo | podemos usar ID de red en una máquina, y eso hace un NID basado en la máquina |
| @elzo | un tipo de ID híbrido |
| @elzo | hay detectores de escaneo de puertos como psad o portsentry |
| @elzo | y otras implementaciones NID (aunque creoq ue actualmente en beta) como firestorm o bro |
| @ed0 | y en el entorno propietario puedes encontrar Dragon |
| @elzo | NFS, RealSecure Network Sensor de ISS y algunos otros |
| @ed0 | (de Enterasys), NFR, RealSecure |
| @elzo | pero estos son los más prevalentes |
| @ed0 | Si buscas entre las herramientas de detecci?n de intruci?n de libre distribuci?n |
| @ed0 | puedes encontrar varias alternativas |
| @elzo | en la transparencia 11 |
| @elzo | un segundo, voy a ver qué pasa. hay gente con problemas para descargar las transparencias |
| @elzo | como véis hay un buen número d eherramientas libres disponibles |
| @ed0 | desde herramientas de chequeo de logs hasta de comprobaci?n de integridad |
| @elzo | de configuraciones y también herramientas para buscar rootkits |
| @elzo | en algunas distribuciones de GNU/Linux y *BSD suele haber un script checksecurity |
| @ed0 | Este script realiza varias comprobaciones (ficheros setuid, integridad de passwords y similares) |
| @elzo | la implementación varía pero el nombre es igual en todas |
| @elzo | algunos vendedores de UNIX también ofrecen herramientas similares pero podéis usar estas mismas en esos entornos |
| @ed0 | Adem?s, varias distribuciones incluyen numerosas herramientas de este estilo |
| @elzo | Debian, que conozco bastante bien, tiene una gran variedad de herramientas de este tipo |
| @elzo | recomendaría algunas de las herramientas de las que voy a hablar brevemente |
| @ed0 | 1.- Una herramienta para comprobaci?n de integridad, elegid vosotros mismos, tripwire es la m?s conocida, pero una menos conocida (como samhaim) proporciona caracter?sticas muy interesantes |
| @elzo | 2. una para la comprobación automática de logs como logcheck que se ha mejorado mucho en Debian Linux |
| @ed0 | 3.- Una herramienta para comprobaciones locales, y yo escojo Tigen junto con chkrootkit (como testeador de "rootkits") |
| @elzo | Obviamente tengo cierta predilección por la 3 puesto que soy su desarrollador principal :-) |
| @ed0 | Perd?n, no es Tigen, es Tiger, que me he colao ;-) |
| @elzo | ;-) |
| @ed0 | Algo a tener en cuenta con las herramientas libres es que a veces hay cierta duplicidad |
| @elzo | si miramos las herramientas disponibles para unix (bastante caras, por cierto) (transpa 12) |
| @elzo | pero aquí hay un pequeño problema, no todas ellas funcionan en todas las variantes de UN*X |
| @ed0 | Veremos que hay varias, desde Dragon Squire al sensor para servidores de ISS |
| @ed0 | No todas funcionan en los distintos sabores de Unix |
| @elzo | Los sistemas ID propietarios suelen ser una combinación de lo anterior: comprobación de integridad (md5sum, permisos de archivos, bits setuid), análisis de los logs (con un conjunto de reglas para el fabricante) y algunas reglas de comportamiento |
| @ed0 | Sin embargo, algo a tener en cuenta es el hecho de que no son capaces de hablar entre si |
| @elzo | Los fabricantes suelen querer que sólo uses sus soluciones de seguridad, al integrarlas muy bien te harán que se las compresa todas (escáneres de seguridad, herramientas ID... hasta cortafuegos) |
| @elzo | es por esto que ha habido tanta proliferación de herramientas de terceros que pueden comunicarse con las de diferentes fabricantes y pueden integrar herramientas de diferentes compañías |
| @ed0 | Pero no son muy partidarios de cooperar con otros fabricantes porque estar?an dej?ndoles jugar en su mismo terreno en algunos escenarios |
| @elzo | en cualquier caso eso es otro tema pero suficiente para comprobar que los fabricantes no están muy interesados en ofrecer maneras de que los productos se comuniquen entre sí meidante interfaces comunes |
| @elzo | Voy a hablar ahora de algunas herramientas de ID basado en host |
| @elzo | Snort es conocido y de Tiger ya hablé el año pasado aquí en Uninet |
| @elzo | Pero ¿y logcheck? |
| @elzo | cuántos de vosotros tenéis herramientas para comprobar vuestros logs? |
| @elzo | comprobaciones automáticas, nada de tail -f ;-) |
| @elzo | parece que sí que hay quien lo usa, en Debian por cierto :) |
| @elzo | bueno, logcheck es una herramienta maravillosa |
| @elzo | la idea principal es que analiza algunos logs y nos envía correos con cosas como: |
| @elzo | 1. cosas que no esperaba |
| @elzo | 2. cosas que sabe qeu son violaciones de seguridad |
| @elzo | la manera en que determinaba que "no esperaba" ciertas cosas es filtrando elementos conocidos |
| @elzo | determina las violaciones filtrando otros |
| @elzo | también incluye algunos otros eventos de seguridad dependiendo de su configuración |
| @elzo | en la transp. 13 hay una breve intro |
| @elzo | veis que logcheck lo comenzó hace tiempo Psionic (que luego fue comprada por Cisco) como parte del proyecto "Abacus" que consistía enuna serie de herramientas apra proteger máquinas |
| @ed0 | Ver?is que logcheck comenz? hace tiempo, de la mano de Psionic (ahora comprado por Cisco) como parte del proyecto Abaco que pretend?a crear una suite de herramientas para proteger los equipos |
| @elzo | Las herramientas de abacus eran: portsentry, logcheck y hostsentry. |
| @elzo | la versión original no ha vuelto ha desarrollarse desde 1997 |
| @elzo | fue desiñada para funcionar en múltiples sistemas UNIX |
| @ed0 | La versi?nd e Debian surgi? como algo completamente nuevo, aunque existen m?s l?neas de desarrollo |
| @elzo | la versión de Debian ha crecido siendo una reescritura completa de esa herramienta pero hay otros forks |
| @elzo | disculpad la redundancia :) |
| @ed0 | ?Alguna pregunta hasta ahora? |
| @elzo | Pero quiero hablaros de Prelude |
| @ed0 | un proyecto muy interesante |
| @elzo | nos ofrece una estructura para utilizar IDS |
| @elzo | que es uno de los asuntos a tratar cuando quieres utilizar varios sensorse (más de uno) |
| @elzo | GRacias a Prelude los sensorse pueden hablar un mismo lenguaje y comunicarse con el servidor de gestión |
| @elzo | así, todas las intrusiones se guardan en el mismo lugar, una base de datos habitualmente |
| @elzo | El proyecto Prelude también incluye herramientas como Nessus pero lo más imp. es que nos provee de una estructura y que es GPL |
| @ed0 | Pero lo m?s importante es que se trata de un framework y es software de libre distribuci?n |
| @elzo | En el caso de los propietarios también nos ofrecían una estructura pero vimos que no se comunicaban entre ellos |
| @elzo | Prelude es abierto tanto en software como en el estándar, ya que usa IDMEF |
| @elzo | un lenguaje común (XML, creo)para definir intrusiones definido por el IETF |
| @elzo | actualmente aún es un borrador |
| @ed0 | juanac pregunta: ?c?mo funciona portsentry? |
| @elzo | portsentry funciona abriendo ciertos puertos |
| @elzo | al no ser puertos que provean servicios si alguien intenta acceder a ellos es probable que no esté escaneando |
| @elzo | es más como un honeypot que un sistema ID |
| @elzo | pero los honeypots también funcionan bastante bien como sistemas de ID |
| @elzo | estaba hablando de IDMEF |
| @ed0 | Algunos sistemas propietarios tambi?n lo implementan |
| @elzo | bien, ya he hablado de HID a nivel de usuario |
| @elzo | qué hay de HID a nivel de kernel? |
| @ed0 | Qu? tal algo de HiD a nivel de kernel? |
| @elzo | muchos uNIx comerciales implementan auditorías estrictas del núcleo pero pocos detección de intrusiones directamente en el núcleo |
| @elzo | transpa 20 |
| @elzo | es de notar algunos subsistemas de detección de intrusos para Linux |
| @elzo | aún no están integrados pero quizá lo estén para el 2.6, una vez se acabe con la implementación de los módulos de seguridad de linux |
| @ed0 | Actualmente hay parches para el kernel |
| @elzo | principalmente LIDS y Snare |
| @elzo | hay algo interesante en hacer ID a nivel de kernel |
| @elzo | aún perdiendo mucho rendimiento es más difícil que nos falseen el kernel |
| @elzo | ID: detección de intrusos, HID: detección de intrusos basada en hosts/máquinas, NID: det. d eintr. basada en redes |
| @elzo | así que aquí es hasta donde llegamos en alguos asuntos implementando ID |
| @elzo | HID. cómo implementamos la detección? 22 cómo la ejecutamos? 23 |
| @elzo | obviamente, un tema es que si el HID se ejecuta en un sistema que puede verse comprometido una de las primeras cosas que hará el intruso es deshacerse del HID |
| @elzo | actualmente muchas solucinoes HID o se ejecutan a través de cron o mediante un proceso (demonio) dedicado |
| @ed0 | Lolo que significa que si lo los matas, acabar?s tambien con el HID |
| @elzo | si subvierten el mecanismo por el que se nos hacen llegar las alertats (SNMP, correo, logs...) también comprometen el HID |
| @elzo | es por esto que quizá sólo tenga sentido implementar HIDS en el kernel |
| @elzo | pero como hay varios asuntos que tratar (no sólo el del rendimiento) |
| @elzo | y puesto que hacer un HID en espacio de usuario es muy costoso en tiempo |
| @ed0 | a veces tiene sentido montar SID en entorno de usuario |
| @ed0 | Depende de tu nivel de paranioa |
| @elzo | depende del nivel de paranoia o de los recursos |
| @ed0 | y de tus recursos |
| @ed0 | perd?n :-) |
| @elzo | pero incluso un intruso podría "parchear" la imagen del núcleo deshaciéndose dle HID, pero eso es bastante difícil :) |
| @ed0 | Volviendo a las notas finales con la detecci?n de intrusiones en unix (disculpad por el retraso) |
| @elzo | no tenéis excusa para no utilizar detección de intrusos basada en host en vuestro sistemas ahora que conocéis tantas herramientas |
| @elzo | tanto libres como propietarias |
| @elzo | el problema con las soluciones libres es que hay muchas herramientas específicas |
| @elzo | y están poco integradas unas con otras |
| @elzo | pero Prelude quizá ayude a cambiar eso en el futuro |
| @elzo | muchos fabricantes comienzan a ofrecer herramientas de detección de intrusos con sus sistemas |
| @ed0 | y adem?s no cooperan entre si |
| @elzo | si alguien sabe de algún fabricante aparte de los de GNU/Linux o los *BSD que me avise |
| @elzo | para acabar, es importante tener en cuenta que hay pocos estándares respecto a IDS |
| @elzo | así que si mejoran probablemente tengamos mejores herramientas en el futuro |
| @elzo | no sé si tenemos tiempo para más preguntas |
| @elzo | pero en cualquier caso no os perdáis otras charlas sobre este tema en las conferencias de este año |
| @elzo | hay una sobre el uso de software libre en IDs, ojalá no haya chafado mucho de lo que vayan a contar |
| @elzo | alguna pregunta final? |
| @elzo | xpato pregunta sobre referencias |
| @elzo | en la transpa 25 tenéis muchas |
| @elzo | principalmente |
| @elzo | SANS ID FAQ. http://www.sans.org/newlook/resources/IDFAQ/ID_FAQ.htm |
| @elzo | <jfs> and |
| @elzo | <jfs> Securityfocus IDS area: http://www.securityfocus.com/ids |
| @elzo | ahí tenéis muy buenas listas de correo |
| @elzo | si queréis echaros unas risas piss.olea.org |
| @elzo | la solución definitiva |
| @elzo | sarnold: gracias por la presentación |
| @elzo | nos has acompañado en uninet desde antes que yo recuerde :) |
| @elzo | la próxima la dará el dr josé nazario sobre gusanos de internet |
| @EMPEROR | plas plas plas plas plas plas plas plas |
| @EMPEROR | plas plas plas plas plas plas plas plas |
| @EMPEROR | plas plas plas plas plas plas plas plas |
| @EMPEROR | muchisimas gracias elzo :) buen trabajo.. = para ti ed0 y xpato |
| @elzo | de nada, ha sido toda una experiencia :) |
| @EMPEROR | pues tendras muchas mas.. tenemos ptra enseguida :P |
| @elzo | bueno, creo que por hoy ya ha sido suficiente :P |
| @elzo | otro día veremos si repito |
| @elzo | hasta otra |