heh! nº2:(heh2-05):21/03/2000 << Back To heh! nº 2
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =- Systemas de Deteccion de Intrusos NetWork-Based -= =-=-=-=-=-=-=-=- -=-= =- E|BrUj0(bruj0@phreaker.net) -= =-=-=-=-=-=-=-=-=-=-=-=-=-=-= Para que kefuck me sirve una IDS, estaras pensando, bueno a vos para nada pero, para los Admin de sistemas si, al contrario te hace la vida mas jodida, porque te detectan mas facil, como?, pera ya te cuento: Como me fichan? Estos sistemas estan pensados para detectar los posibles intentos de entrada en una red por personas no autorizadas. Existen diferentes tipos de IDSs, estan los de host y de redes, en los de redes tenemos los distribuidos y los no distribuidos. IDS de host ----------- El trabajo de este se enfoca en un solo server, lo hace sabiendo que son las cosas "normales" que sucecen en el mismo y alertando al administrador de anomalia en el uso del mismo. Tienen varias forma de lograrlo. Estadisticas de uso: --------------------- El usario "Zomba" (hehe), que es un programador del sistema, siempre usa los mismos comandos ej: vi, cat, make, y otras cosas normales de un programador, de repente empieza a usar mas memoria, programas de red entonces el IDS genera una alarma de ke algo podria estar mal. Esto tiene su ventaja y desventaja, Desventaja: Crea muchas "False Positive", esto significa que el programa da una alarma que no es real. Ventaja: Por otro lado esta podria ser la unica forma de detectar casos de Violacion de sistemas quee nunca se vieron antes. /mode not_lamma on Para zafar de esto, tenes que conocer al usuario que se le esta usando la cuenta entonces tratas de enmascarar tus procesos, si estas leyendo esta parte ya sabes como, con programas que el usa, trata de parecerte lo mas posible a lo que hace el. (TIPs: Podrias leer el .bash_history en Unix, para conocer los comandos que ingresa la persona) /mode not_lamma off Uso indebido del Sistema: ------------------------ El IDS que usa este tipo de escaneo casi siempre tiene acceso directo al kernel, o corre como root, entonces puede estar vigilando cosas como intentos de "su", puede bloquear acceso a ficheros importantes, otras cosas que no deberia hacer un usuario normal, veamos: Ventajas: No se tiene "False Positive", a menos ke seas un papo y zampes un un cat /dev/ramdom >/proc/kmem siendo root. pero weno eso es otra historia. Desventajas: Si se tiene acceso como root, garco el IDS. /mode not_lamma on Safeitor dice que una vez que sos root, te vas a dar cuenta de si tiene este tipo de IDS porque vas a querer hacer una cosa como "insmod virulento" y no te va a dejar. /mode not_lamma off Ejemplo de este tipo de IDS host oriented: http://www.lids.org IDS de red ---------- No distribuidos: --------------- Lo hacen de diferentes maneras, el mas tipico es buscar patrones en los paquetes tcp/ip, de alguna manera se podria describir a estos sistemas como un sniffer, que comprueba los datos recibidos con una base de datos, en donde estan todos lo patrones conocidos por el IDS de intento de break in. Normalmente se los usa cuando se tiene una sola maquina que esta en contacto con la red, como los usuarios caseros. Como abriste los ojos no!, weno si esto es la posta cuando tenes la suerte tu maquina conecta Ventajas: Sobre los de hosts, se para al personal no autorizado, antes de que entre, y es mas facil de mantener/configurar, pero lo mas cool es ke no chupa muchos recursos. Desventajas: No te sirve de nada para una red, la mala leche ke tenemos de que no haya buenos ids hechos para los home users. Mis respetos al programa dor de Snort pero se puede enganiarlo. /mode not_lamma on Me conto Kevin que podes pasar estos ids, haciendo tus propios paquetitos, o que se le llama "injecting the useless packet", te lo explican bien en un phrack, que ahora no recuerdo, tarea para la casa, buscar eso. /mode not_lamma off Ejemplos: NFR ------ http://www.nfr.net El Network Flight Recorder es un IDS a nivel de red disponible con codigo fuente y gratuito. Es basicamente un sniffer con enormes posibilidades de ampliacion y personalizacion. Explico: Consta de un nucleo que captura todas las tramas de la red en modo promiscuo y los pasa a los denominados "packages" para que las procesen y tomen acciones si fuera necesario. Estas packages son muy faciles de generar ya que para ello el NFR trae un sencillo lenguaje denominado N-Code. El manejo de todo el conjunto se realiza a traves de una interfaz java accesible con un navegador. El propio NFR trae un peque±o servidor web que por defecto escucha por el puerto 2001. A continuacion se realiza la autentificacion del usuario mediante login & password (nfr:demo, por defecto), resultando en la GUI desde la cual se realiza toda la administracion. La instalacion es realmente sencilla, y en OpenBSD funciona a la perfeccion. Las ventajas de este IDS son varias: facil instalacion, facil ampliacion con nuevos modulos (N-code). Da una vision muy detallada de lo que pasa ocurre en la red. Por otro lado la gui en java es algo molesta e inestable para alguien al que le gusta trabajar en consola. Por otra parte requiere un equipo muy potente para procesar todos los datos en tiempo real y generar las alertas necesarias. Ejemplos de modulos de N-Code se pueden encontrar en www.l0pht.com. Por ultimo destacar que se pueden mantener funcionando varios NFR de forma simultanea, estableciendo jerarquias entre los mismos y ofreciendo asi una mayor capacidad de respuesta ante posibles ataques, fallos en algun host, etc etc. Snort ------- http://www.clark.net/~roesch/security.html Similar en su funcionamiento al anterior, snort tiene la ventaja de ser mucho mas sencillo y facil de usar que NFR. Mientras la gui con sus innumerables opciones puede asustar en un principio, snort solo requiere la manipulacion de un archivo de configuracion para ser completamente funcional. Como todo ids/sniffer captura las tramas y las procesa segun las reglas a las que hacia mencion en el parrafo anterior. A diferencia del nfr no consume esa enorme cantidad de recursos, aunque por otra parte no es apto para redes con muchos puestos y por lo tanto mucho trafico. Esto ultimo es solo una teoria, no lo he comprobado y me gustaria equivocarme. Dragon --------- http://? Otra de las alternativas en el mercado de los IDS, aunque en este momento no esta disponible su codigo fuente, por lo que ni siquiera lo he probado. Fue usado en la defcon VII para capturar el trafico de red. Cisco NetRanger --------------------- http://www.cisco.com/warp/public/cc/cisco/mkt/security/nranger/ Una de las alternativas comerciales que personalmente mas me gusta es el Netranger. Consta de dos componentes: el sensor y el director. Los sensores recolectan datos de la red de la misma manera que todos los anteriores, buscando trafico sospechoso. Si lo encuentran la informacion es pasada al director, que procede a loguear, generar alertas y en caso extremo proceder a expulsar al host atacante de la red. Esta aproximacion permite muchas ventajas frente a los sistemas anteriores: Posibilidad de crear un sistema distribuido, algo que solo es capaz de hacer el nfr y de forma limitada (dragon quizas tambien ?). ISS RealSecure ------------------- http://www.iss.net/prod/rs.php3 El realsecure de Internet Security Systems es muy parecido en su funcionamiento al netranger. Dado que no he tenido la oportunidad de probar ni este ni el anterior solo puedo recomendar visitar sus respectivas web's para obtener mas informacion de los mismos ya que no puedo aportar nada nuevo. En este lugar vas a encontrar un monton de otros IDSs: http://www-rnks.informatik.tu-cottbus.de/~sobirey/ids.html Hasta aqui llega la explicacion para personas sin conocimientos de protocolos de red Distribuidos ------------ Estos se manejan con varios tipos de agentes que seran explicados mas adelante, en mi opinion son los mejores porque liberan la carga de un solo server y lo distribuyen, tambien hacen mas dificil que el atacante deje deshabilitado el ids por medio de un Deny of Service. Problemas comunes de los IDS actuales Los problemas comunes de los IDS actuales se refieren a que confian en los datos que pasan por la red y bueno parece que no se dieron cuenta, que todo lo que brilla no es oro. Bienvenidos a la triste realidad, un en la que un hacker obiamente no se llevara por los estandares, osea que hacen mal en esperar que los paketes que un cliente manda sean buenos y no creados por ellos mismos. Esa es la llave "creados por uno mismo", eso es lo que se hara para enga±ar a un IDS que no conoce como tratara su sistema operativo al paquete. Por esto es que cada Agente C(esto se explica mas adelante), debera conocer el estado actual del sistema, sus recursos y sus servicios. Insercion -------- El objetivo de la insercion es injectar paquetes que agregaran datos que solo seran vistos por el IDS y no por el host, una de las formas de lograr esto es con el reensamblado de los paquetes. Como ya sabemos el protocolo IP, implementa una forma de desarmar una cantidad de datos en varios paquetes, numerandolos de tal forma que al ser reconstruidos muestren el dato que se queria mandar sin importar el orden de llegada. Entonces lo que se hace es generar nuevos fragmentos que para el IDS provendran del mismo lugar: * Aumentaran datos * Hara que nuevos fragmentos oculten fragmentos con verdadera informacion Haciendo que la busqueda de patrones no encuentre el ataque. De esta menera bastaria con ver el codigo fuente de la implementacion de los protocolos en el sistema operativo que se va a atacar para saver que paquetes seran descartados por el mismo. Evadiendo --------- Esto se logra haciendo que el IDS no le preste atencion a un paquete generado por el atacante hacia el host. Esto se logra cuando se sabe que el OS en cuestion obvia ciertos paketes como por ejemplo los que tiene partes que no corresponden, como checksum malos. Denial of Service ----------------- El objetivo de este ataque es hacer que el IDS no pueda hacer su labor o que lo obligue a tomar medidas extremas, como podria ser cuando detecta que alguien quiere explotar un bug en el demonio de FTP, lo deshabilite haciendo que otros usuarios no puedan usarlo. Un IDS tiene que usar memoria para poder procesar todos lo paquetes, tambien guardar logs de lo que ocurre y todos esto puede ser usado para ocultar lo que haga un hacker. Agentes: S: server C: cliente M: monitor L: logger uplink H: HOSTS | \ | \ | \ | \ |-----------------------------\ /|\ /|\ \ | | \ --- --- \ | C |----| |----| C | \ --- | | --- \ | | | | \ | | | | \ \|/ | | \|/ \ --- | | --- \ | H | | | | H | \ --- \|/ \|/ --- \ ----- \ | \ --- \ ----| S |---- \ | --- | \ --- --- | L | | M | --- --- Aqui podemos ver como en cada H (host) tenemos un C (cliente) que manda los patrones sospechosos a S (server del IDS) que descidira si debe informar a M (monitor) y/o guardar el evento en L (logger) Conclusion: Dependiendo de lo que quieras de un IDS, tendras que buscar mas informacion, ya que se estan desarollando nuevas implementaciones mas seguras sobre estos bichos. Si eres admin, te conviene bastante empezar a pensar en poner uno Comercial, y si eres el ke esta del otro lado del admin, lee la phrack y suscribite a la lista de correo de securityfocus sobre IDS ke esta muy buena. Weno, espero ke te haya servido para algo, aunke sea para no estar viendo tele todo el dia, asi que, sin mas cualquier duda bruj0@phreaker.net, ta' la proxima. http://www.brainoverflow.com "Use the time, dont let the time use you" ___________.__ __________ _________ \_ _____/| | \______ \_______ __ __ |__\ _ \ | __)_ | | | | _/\_ __ \ | \ | / /_\ \ | \| |__ | | \ | | \/ | / | \ \_/ \ /_______ /|____/ |______ / |__| |____/\__| |\_____ / \/ \/ \______| \/ http://www.undersec.com UnderSec m3mb3r