|
| |
Sistemas de detección de intrusos
Resumen: Metodología para la detección de intrusos y para la selección e implantación de sistemas IDS. Existen numerosas medidas de seguridad para proteger los recursos informáticos de una empresa, pero aunque se sigan todas las recomendaciones de los expertos, no estaremos libres de posibles ataques con éxito. Esto se debe a que conseguir un sistema virtualmente invulnerable es sumamente costoso, además de que las medidas de control reducirían la productividad de la empresa Dentro de las soluciones tecnológicas que en la actualidad están disponibles para reforzar la seguridad de una red, los firewalls son muy populares. Un firewall es un sistema encargado del cumplimiento de las políticas de control de acceso a la red, lo cual se hace a través de reglas. Un firewall actúa como guardia perimetral de una red: protege una red de ataques que provengan del exterior de ésta.
Publicación enviada por Victor E. Cappuccio email
Indice
1. Introducción
2. Metodología para la detección de intrusos y para la
selección e implantación de sistemas IDS
3. Bibliografia
1. Introducción
Existen numerosas medidas de seguridad para
proteger los recursos informáticos de una empresa, pero aunque se sigan todas
las recomendaciones de los expertos, no estaremos libres de posibles ataques con
éxito. Esto se debe a que conseguir un sistema virtualmente invulnerable es
sumamente costoso, además de que las medidas de control reducirían la
productividad de la empresa
Dentro de las soluciones tecnológicas que en la actualidad están disponibles
para reforzar la seguridad de una red, los firewalls son muy populares. Un
firewall es un sistema encargado del cumplimiento de las políticas de control de
acceso a la red, lo cual se hace a través de reglas. Un firewall actúa como
guardia perimetral de una red: protege una red de ataques que provengan del
exterior de ésta. Pero el escenario se puede complicar de la siguiente forma:
- Un atacante puede lograr pasar el firewall,
dejando la red a su merced.
- Un firewall protege de los accesos no
autorizadas hacia la red interna, pero no protege a las máquinas ubicadas en
la red perimetral como servidores web, servidores de correo, servidores FTP,
en otras palabras, a las bases funcionales de Internet.
- Un firewall no protege contra ataques desde
adentro.
En estos casos lo que nos queda detectar el
ataque o la intrusión lo antes posible para que cause el menor daño en el
sistema. Antes de continuar vamos a definir qué se entiende normalmente por
intrusión. Normalmente un intruso intenta:
- Acceder a una determinada información.
- Manipular cierta información.
- Hacer que el sistema se no funcione de forma
segura o inutilizarlo.
Una intrusión es cualquier conjunto de acciones
que puede comprometer la integridad, confidencialidad o disponibilidad de una
información o un recurso informático. Los intrusos pueden utilizar debilidades y
brechas en la arquitectura de los sistemas y el conocimiento interno del sistema
operativo para superar el proceso normal de autenticación.
La detección de intrusos se puede detectar a partir de la caracterización
anómala del comportamiento y del uso que hacen de los recursos del sistema. Este
tipo de detección pretende cuantificar el comportamiento normal de un usuario.
Para una correcta distinción hay que tener en cuenta las tres distintas
posibilidades que existen en un ataque, atendiendo a quién es el que lo lleva a
cabo:
- Penetración externa.
Que se define como la intrusión que se lleva a cabo a partir un usuario o un
sistema de computadores no autorizado desde otra red.
- Penetraciones internas.
Son aquellas que llevan a cabo por usuarios internos que no están
autorizados al acceso.
- Abuso de recursos.
Se define como el abuso que un usuario lleva a cabo sobre unos datos o
recursos de un sistema al que está autorizado su acceso.
La idea central de este tipo de detección es el
hecho de que la actividad intrusiva es un subconjunto de las actividades
anómalas. Esto puede parecer razonable por el hecho de que si alguien consigue
entrar de forma ilegal en el sistema, no actuará como un usuario normal. Sin
embargo en la mayoría de las ocasiones una actividad intrusiva resulta del
agregado de otras actividades individuales que por sí solas no constituyen un
comportamiento intrusivo de ningún tipo. Idealmente el conjunto de actividades
anómalas es el mismo del conjunto de actividades intrusivas, de todas formas
esto no siempre es así:
- Intrusivas pero no anómalas.
Se les denomina falsos negativos y en este caso la actividad es
intrusiva pero como no es anómala y no se consigue detectarla. Se denominan
falsos negativos porque el sistema erróneamente indica ausencia de
intrusión.
- No intrusivas pero anómalas.
Se denominan falsos positivos y en este caso la actividad es no
intrusiva, pero como es anómala el sistema decide que es intrusiva. Se
denominan falsos positivos, porque el sistema erróneamente indica
la existencia de intrusión.
- Ni intrusiva ni anómala.
Son negativos verdaderos, la actividad es no intrusiva y se indica como tal.
- Intrusiva y anómala.
Se denominan positivos verdaderos, la actividad es intrusiva y es detectada.
Los primeros no son deseables, porque dan una
falsa sensación de seguridad del sistema y el intruso en este caso puede operar
libremente en el sistema. Los falsos positivos se deben de minimizar, en caso
contrario lo que puede pasar es que se ignoren los avisos del sistema de
seguridad, incluso cuando sean acertados. Los detectores de intrusiones anómalas
requieren mucho gasto computacional, porque se siguen normalmente varias
métricas para determinar cuánto se aleja el usuario de lo que se considera
comportamiento normal.
Hoy día existen en el mercado una buena cantidad de productos conocidos como SDI
(Sistemas de Detección de Intrusos) o en inglés IDS (Intrusión Detection
System).
Estos sistemas basan su funcionamiento en la recolección y análisis de
información de diferentes fuentes, que luego utilizan para determinar la posible
existencia de un ataque o penetración de intrusos.
En caso de que exista la suficiente certeza de la detección de un incidente, el
SDI tiene como función principal alertar al administrador o personal de
seguridad, para que tome acciones al respecto. Otras implementación más
complejas son capaces de ir más allá de la notificación de un posible ataque, es
decir pueden ejecutar acciones automáticas que impidan el desarrollo de éste.
Clasificación de los SDI
Los SDI pueden clasificarse en base a varios aspectos: método de detección, tipo
de monitoreo y forma de recolección y análisis de la información.
Según el método de detección, los hay de detección de mal uso y detección de
anomalías.
El modelo de detección de mal uso consiste en observar cualquier proceso que
intente explotar los puntos débiles de un sistema en específico. Las diferentes
acciones, que integran el mencionado proceso, comúnmente se denominan patrones o
firmas del ataque.
Estas firmas pueden ser simples, como cadenas de caracteres, estructuras de
memoria o bits, pero también pueden ser más complejas como vectores ó
expresiones matemáticas. Una ventaja de este método es que permite centralizar
las labores de detección en el conjunto de firmas que posee el SDI, minimizando
así, la carga de procesamiento del sistema. Muchos productos comerciales
utilizan este enfoque e inclusive periódicamente proporcionan actualizaciones de
éstas firmas.
En cambio, el modelo de detección de anomalías se basa en constantemente
monitorear el sistema para así detectar cualquier cambio en los patrones de
utilización o el comportamiento del mismo. Si algunos de los parámetros
monitoreados sale de su regularidad, el sistema generará una alarma que avisará
al administrador de la red sobre la detección de una anomalía. Este tipo de
detección es bastante compleja, debido a que la cuantificación de los parámetros
a observar no es sencilla y a raíz de esto, se pueden presentar los siguientes
inconveniente:
- Pueden generarse falsas alarmas si el
ambiente cambia repentinamente, por ejemplo, cambio en el horario de
trabajo.
- Un atacante puede ir cambiando lentamente su
comportamiento para así engañar al sistema.
Los inconvenientes antes mencionados pueden ser
controlados mediante una implementación robusta y minuciosa.
Según el tipo de monitoreo, hay SDI con detección orientada al host o detección
orientada a la red.
El modelo orientado al host se basa en el monitoreo y análisis de información,
que refleja el estado del host donde éste reside. La mayoría de la información
que este tipo de sistema recopila es obtenida a través del sistema operativo del
host. Esto último causa complicaciones debido a que la información que se
procesa no contiene registros del comportamiento, de bajo nivel, de la red.
Los SDI que utilizan el modelo orientado a red, fundamentan su monitoreo en
información recolectada de la red. Generalmente, ésta información es capturada
mediante mecanismos de "sniffing". El "sniffing" consiste en habilitar la
interfaz de red en modo promiscuo para que así capture todos los paquetes que
reciba, incluso aquellos que no le han sido destinados. En base al mecanismo
antes expuesto, se pueden definir patrones o firmas de ataques, según la
estructura, información y ocurrencia de los paquetes.
Características deseables de un SDI
- Debe ejecutarse continuamente sin
intervención o supervisión de un operador humano.
- Debe ser confiable, lo suficiente como para
ejecutarse en background, pero no debe ser una caja negra, es decir, que su
funcionamiento interno pueda ser examinado.
- Debe ser capaz de tolerar fallas, en el
sentido de que pueda sobrevivir a una caída del sistema, sin tener que
reconstruir su base de datos de conocimientos al reiniciarse.
- El sistema debe estar en capacidad de
automonitorearse para asegurar su correcto funcionamiento.
- Debe ser ligero, es decir su ejecución no
debe cargar al sistema de una manera tal que le impida ejecutar otras tareas
con relativa normalidad
- Debe observar desviaciones del
comportamiento estándar.
- Debe poder adaptarse al comportamiento
cambiante del sistema, es decir, si la configuración del sistema cambia, el
SDI se adaptará.
- Debe ser difícil de engañar.
2. Metodología para la detección de
intrusos y para la selección e implantación de sistemas IDS
La labor de un administrador o de la persona
encargada de la seguridad de un sistema informático puede ser realmente
frustrante. Sobre todo cuando el sistema a sido invadido por un intruso o
hacker. En principio, si se ha configurado correctamente un servidor y se está
al día en materia de seguridad, así como de fallas (bugs) que van surgiendo, no
habrá problemas de que un intruso entre en el sistema. Realmente con un poco de
esfuerzo se puede tener un servidor altamente seguro que evitará alrededor del
85% de los intentos de acceso no autorizados alo sistema. Pero en muchas
ocasiones el peligro viene de los propios usuarios internos del sistema, los
cuales presentan un gran riesgo debido a que ya tiene acceso al sistema.
Pasos a seguir para detectar a un intruso
Lo primero que debemos hacer es seguir una serie de pasos los cuales nos
ayudarén a descubrir si realmente ha entrado un intruso, ya que en muchas
ocasiones pensamos que ha entrado alguien, pero no es cierto. Por eso, ante todo
calma; esto es lo más importante para un buen administrador.
Realmente en muchas ocasiones es fácil detectar a un intruso en ambiente Unix,
ya que suelen seguir un patrón detectable, el cual podría ser el mostrado en la
figura.
Este esquema representa básicamente los pasos que sigue de un intruso: Primero
entra al sistema, y si sólo tiene acceso como usuario, explotará alguna
debilidad o falla del sistema para así obtener ID 0 (o lo que es lo mismo,
privilegios de root). En caso de entrar como root u obtenerlo de alguna otra
manera, se dedicará a controlar el sistema, dejando algún mecanismo para volver
cuando quiera. Seguramente copiará el archivo /etc/passwd y el /etc/shadow (en
caso de que el sistema use "shadow"), luego le dará rienda suelta a su
imaginación, como por ejemplo, instalar un sniffer, troyanos, leer mails ajenos,
etc. Y en caso de ser un pirata malicioso puede causar desastres en el sistema,
como sería modificar paginas web, borrar archivos o mails, producir un DoS (Denial
of Service), cambiar passwords de usuarios legítimos, etc.
A continuación se exponen los diferentes pasos a
seguir de acuerdo a los expertos en seguridad como son el CERT, ISS, etc.
Esto son los pasos a seguir del CERT (http://www.cert.org):
- Examinar los archivos log como el 'last' log,
contabilidad, syslog, y los C2 log buscando conexiones no usuales o cosas
sospechosas en el sistema. Aunque hay que tener especial cuidado en guiarnos
por los logs, ya que muchos intrusos utilizaran diversas herramientas para
borrar sus huellas.
- Buscar por el sistema archivos ocultos o no
usuales (archivos que empiezan por un '.' (punto), no salen con un simple 'ls'),
ya que pueden ser usado para esconder herramientas para violar la seguridad
del sistema, por ejemplo un crackeador o incluso contener el /etc/passwd del
sistema o de otros sistemas al cual ha entrado nuestro intruso. Muchos
piratas suelen crear directorios ocultos utilizando nombres como '...'
(punto-punto-punto), '..' (punto-punto), '..^g' (punto-punto control+G). En
algunos casos un pirata ha utilizado nombres como '.x' o '.hacker' o incluso
'.mail'.
- Buscar archivos SET-UID por el sistema. Ya
que en muchas ocasiones los piratas suelen copiar y dejar escondido copias
del /bin/sh para obtener root. Podemos utilizar el comando 'find' para
buscar este tipo de archivos por el sistema (el comando 'find' puede ser
sustituido por un troyano para esconder archivos del pirata, por lo que no
es totalmente confiable), para ello ejecutamos la siguiente línea: # find /
-user root -perm -4000 -print
- Revisar los archivos binarios del sistema
para comprobar que no han sido sustituidos por un troyano, como por ejemplo
los programas 'su', 'login', 'telnet' y otros programas vitales del sistema.
(Existen varias herramientas conocidas como 'RootKit' que permite a un
pirata cambiar los binarios del sistema por troyanos que son copias exactas
de los originales). Lo recomendado es comparar con las copias de seguridad
aunque puede que las copias de seguridad también hayan sido sustituidas por
un troyano.
- Examinar todos los archivos que son
ejecutados por 'cron' y 'at'. Ya que algunos piratas depositan puertas
traseras que le permiten volver al sistema aunque los hayamos echado del
sistema. Asegurarse que todos los archivos son nuestros y no tienen permiso
de escritura.
- Examinar el archivo /etc/inetd.conf en busca
de cambios, en especial aquellas entradas que ejecuten un shell (por
ejemplo: /bin/sh o /bin/csh) y comprobar que todos los programas son
legítimos del sistema y no troyanos.
- Examinar los archivos del sistema y de
configuración en busca de alteraciones. En particular, buscar entradas con
el signo '+' o 'host names' no apropiados en archivos como /etc/hosts.equiv,
/etc/hosts.lpd y en todos los archivos .rhost del sistema, con especial
interés los de 'root', 'uucp', 'ftp' y otras cuentas del sistema. Estos
archivos no deberían tener atributo de escritura.
- Examinar cuidadosamente todos los
computadores de nuestra red local en busca de indicios que nuestra red ha
sido comprometida. En particular, aquellos sistemas que compartan NIS+ o
NFS, o aquellos sistemas listados en el /etc/hosts.equiv. Logícamente
también revisar los sistemas informéticos que los usuarios comparten
mediante el acceso del .rhost.
- Examinar el archivo /etc/passwd, en busca de
alteraciones en las cuentas de los usuarios o la creación de cuentas nuevas,
especialmente aquellas cuentas con ID 0, las que no tienen password, etc.
Estos nueve puntos son los pasos a seguir
recomendados por el CERT, los cuales están muy bien, pero se quedan un poco
cortos de soluciones practicas para el administrador. Para ello nos vamos a
basar en un excelente trabajo de un grupo de Hackers conocidos como Technotronic
(http://www.technotronic.com), los cuales se basan en el mismo documento pero
explicando los métodos de los piratas y como combatirlos. Se trata de lo
siguiente:
Los archivos Log:
- messages: Este archivo contiene bastante
información, por lo que debemos buscar sucesos poco usuales.
- xferlog: Si el sistema comprometido tiene
servicio FTP, este archivo contiene la bitácora de todos los procesos del
FTP. Podemos examinar qué tipo de herramientas ha subido el pirata y qué
archivos ha bajado de nuestro servidor.
- utmp: Este archivo contiene información en
binario de todos los usuarios conectados al sistema en el momento. Por lo
que puede ser muy útil para determinar quién esta conectado al sistema en
este momento. Para ello ejecutaremos el comando 'who' o 'w'.
- wtmp: Cada vez que un usuario entra al
servidor y sale del mismo, la máquina modifica este archivo. Al igual que el
anterior, este archivo está en binario, por lo que tendremos que usar alguna
herramienta especial para ver el contenido de este archivo. El mismo
contiene la información en formato: usuario, hora de conexión, e IP origen
del usuario, por lo que podemos averiguar de dónde provino el pirata. Pero
aunque contemos con esta información, puede que haya sido falseada por el
pirata utilizando alguna técnica para ocultar su IP original o haya borrado
su entrada.
- secure: Algunos sistemas Unix loggean
mensajes en archivo secure, ya que utilizan algún software de seguridad para
ello, como el TCP Wrapper.
Muchos piratas intentaran borrar sus huellas
utilizando unos programas conocidos como 'Zapper's' o 'Zap'. Los más populares,
debido a que están ampliamente disponibles por Internet, son los siguientes:
- marry.c
- zap.c
- zap2.c
- remove.c
- cloak.c
Por supuesto contamos con mecanismos para
detectar este tipo de programas, lo cual se explica en la sección de
herramientas.
Debemos buscar cuidadosamente archivos SETUID o SETGID (especialmente aquellos
archivos SETUID de root). Para ello podemos utilizar, otra vez, el comando
'find' y escribimos lo siguiente:
# find / -group kmen -perm -2000 -print
o
# find / -user root -perm -4000 -print -xdev
incluso
# ncheck -s /dev/rsd0g
Este ultimo comando 'ncheck' nos permitirá buscar archivos SETUID por las
particiones.
Debemos buscar troyanos en nuestros archivos binarios, ya que suele ser una de
las tareas principales de un pirata cuando ha comprometido la seguridad de un
servidor. Una lista no exhaustiva de posibles binarios que un pirata puede
sustituir, es la siguiente:login
- su
- telnet
- netstat
- ifconfig
- ls
- find
- du
- df
- libc
- sync
Así como los binarios listados en
/etc/inetd.conf.
Al igual que antes, tenemos varias utilidades ampliamente disponibles para
detectar estos troyanos, pero por otro lado, los piratas también tienen
ampliamente disponible estos paquetes de troyanos, conocidos como 'RootKit',
como ya mencionamos antes.
Otras de las principales tareas de un pirata consiste en la utilización de
sniffers, para capturar información confidencial. Los más usados son los
siguientes:
- linsniff666.c
- esniff.c
- solsniff.c
- sunsniff.c
- sniffit
Ahora nos enfocaremos en la parte de los
passwords. Un pirata intentará por todos los medios obtener el archivo de
passwords, para luego usar un programa especial que le permitirá averiguar los
passwords de los usuarios. Los principales 'crackeadores' son:
- Crack
- John The Ripper 1.5
- Cracker Jack
- Hades
Ya hemos visto diferentes técnicas que emplearan
los piratas contra nuestro sistema, por lo que ahora estamos mejor preparados
para enfrentarnos a ellos. A continuación nos enfocaremos de forma más practica
a los diferentes pasos a seguir cuando hemos detectado un pirata.
Si hemos pillado al intruso en el momento, tenemos varias opciones:
A) Hablar con él, usando el comando 'talk', aunque debemos tener en cuenta que
puede contestar de forma amistosa (ayudandonos en relación a la seguridad del
sistema) o agresiva (borrando el sistema para no dejar rastro).
B) Desconectarle del sistema, usando el comando 'kill', pero para evitarnos que
vuelva a entrar, antes de usar 'kill', usaremos el comando 'passwd' para cambiar
el password de la cuenta por el cual el pirata entró. Por ejemplo, podemos
ejecutar los siguientes comandos:
# ps -aux
USER PID %CPU %MEN VSIZE RSIZE TT STAT TIME COMMAND
ROOT 1434 20.1 1.4 968K 224K 01 R 0:00 ps aux
intruso 147 1.1 1.9 1.02K 304k p3 S 0:07 ~ (csh)
intruso 321 10.0 8.7 104k 104k P3 S 0:09 cat /etc/passwd
intruso 339 8.0 3.7 2.05K 456k P3 S 0:09 crack
# passwd intruso
Changing password for intruso
New password: noentrasmas
Retype new password: noentrasmas
# kill -9 147 321 339
C) Utilizar las utilidades del sistema para recopilar información sobre el
pirata, la cual será necesaria en caso de denuncia. Por lo que trataremos de
'tracearle', usando los siguientes comandos:
- who
- w
- last
- lastcomm
- netstat
- snmpnetstat
- Obtener informacion del router.
- Examinar el archivo /var/adm/messages.
- Examinar el syslog.
- Examinar los log del wrapper.
- Ejecutar el comando 'finger' en todos los
usuarios locales, para comprobar cuando fue la ultima vez que estuvieron en
el sistema.
- Examinar los archivos history del shell,
como el .history, .rchist y archivos similares.
D) Ejecutando el comando 'finger', intentaremos
sacar información del host de donde provino el ataque, como por ejemplo:
# finger @intruso.es
o
# finger intruso@intruso.es
Si tenemos suerte podremos obtener la
información.
E) También podemos dirigirnos a Internic (http://www. internic.net) donde
podemos pedir información sobre cualquier servidor en el mundo, siempre y cuando
no sea militar. Allí ponemos el dominio del servidor de donde provino el ataque,
y podremos ver con quién debemos ponernos en contacto con el servidor atacante.
Si existe un télefono de contacto, lo mejor sería llamar a la persona encargada,
ya que si enviamos un e-mail informándole que tiene un pirata, puede que el
pirata intercepte el mensaje y se haga pasar por el administrador. En caso de
vernos forzados a escribir un e-mail, poner cualquier pretexto para tener que
hablar por teléfono con el administrador del servidor atacante, y si es
necesario ofrecernos a pagar la llamada nosotros mismos, en calidad de buenas
intenciones. A parte del website de Internic, también podemos conectar vía
telnet para solicitar información de un servidor.
F) Ahora que tenemos bastante información del atacante, lo mejor sería
desconectar nuestro servidor de Internet y dedicarnos unos días a repasar
cuidadosamente lo sucedido. Además, si nadie accede al servidor durante unos
días, podremos trabajar mejor y más rápido.
G) Tendremos que hacer una copia de seguridad, por lo que ejecutaremos el
siguiente comando:
# dd if=/dev/sda of=/dev/sdb
En caso de duda de cómo usar el comando 'dd', lo mejor sería recurrir al comando
'man'.
H) Tener a mano un block de notas y un lápiz, para escribir todo lo que nos
parezca importante, así como todos los pasos que estamos realizando en el
sistema comprometido.
I) Ahora sólo nos queda realizar un exhaustivo análisis mediante los pasos
anteriormente descritos.
Ya a estas alturas conocemos los peligros y pasos a seguir para recuperar el
control en nuestro sistema, así cómo echar al pirata. Ahora se muestra un lista
más generalizada de los puntos que hay que mirar con detalle.
- Creación de cuentas nuevas o alteración de
algunas existentes.
- Excesivo consumo de memoria o disco duro.
- Directorios o archivos sospechosos.
- Alteración en la configuración del sistema.
- Procesos sospechosos.
- Conexiones de servidores poco usuales.
- Reconfiguracion de los modems.
- Serie de repeticiones de conexión al mismo
puerto.
- Conexión de usuarios en horas o días poco
usuales.
Diversas utilidades para la tarea
Ahora nos dedicaremos a explicar las diferentes herramientas que están
disponibles en el cyberespacio. Lo mejor es que casi todas son 'freeware'
(gratis), por lo que no existe excusa alguna para no usarlas. Además usando
habitualmente estas herramientas, mantendremos nuestro sistema seguro
demostrando lo bueno que somos administrando el servidor.
Las herramientas que se describen a lo largo de este apartado son anti-zapper's,
detectores de sniffers, detectores de troyanos, así como diversas herramientas
de análisis, e incluso algunas herramientas que también utilizan los piratas,
para nuestro propio beneficio. Debido a la gran cantidad de herramientas
disponibles (no he puesto todas las que existen, debido a que es imposible), no
se ha incluido la utilización de las mismas, ya que este documento sería muy
largo, por lo que se incluye la dirección en Internet donde encontrarlas y así
poder familiarizarse con esas herramientas.
A) Detectores de Sniffers.
- Podemos usar el comando 'netstat', pero no
es 100% confiable.
- promisc.c: Es un programa escrito en
lenguaje C, el cual nos ayuda a detectar un sniffer en nuestra red.
(promisc.c).
- cpm
(ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/cpm.1.2.tar.gz).
- ifstatus
(ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/ifstatus.tar.Z).
- NePED: Es un detector de sniffers.
(ftp://apostols.org/ AposTools/snapshots/neped/).
Muchos sniffers logean las conexiones de la misma
forma, la cual es la siguiente:
-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 --
PATH: not_at_risk.domain.com(1567) => at_risk.domain.com(telnet) por lo que
fácilmente podemos escribir un pequeño shell script que busque archivos de
sniffers:
% grep PATH: $sniffer_log_file | awk '{print $4}' | \ awk -F\( '{print $1}'|
sort -u
Logicamente debemos ajustar este script a nuestras necesidades.
B) Detectores de troyanos.
- Podemos usar el comando 'sum' pero tampoco
es 100% confiable.
- También podemos usar el comando 'cmp', pero
lo mismo que el comando anterior.
- El popular, y mas aconsejable de usar, es el
programa de verificación MD5.
- Otro, también bastante utilizado, es
Tripwire. (Tripwire).
C) Detectores de zapper's.
D) Herramientas de análisis.
- Satan111: Posiblemente la herramienta mas
conocida. (SATAN). Extensiones.(SATAN Extensions).
- TCP_Wrapper: Es un conjunto de utilidades
para controlar nuestro servidor. (tcp_wrappers_7.6.tar.gz).
- Netcat 1.10: Para saber por dónde nos puede
entrar un pirata, ya que este programa es capaz de crear cualquier tipo de
conexión. (netcat 1.10 for Unix).
- COPS: Otro conjunto de herramientas de muy
buena calidad. (ftp://info.cert.org/pub/tools/cops).
- Roses Software Check Tool V.1.2.2:
Interesante herramienta de anaálisis para servidores Linux.
(http://web.jet.es/~simon_roses/).
- Rhino9 Security Check Tool: Interesante
programa. (http://rhino9.technotronic.com).
- Stalker Audit-Trail Tool: Interesante
herramienta para auditar los log's. (http://www.haystack.com).
- IDES/NIDES (Intrusion-Detection Expert
System/Next-Generation IDES): Una herramienta de detección de piratas en
tiempo real. (http://www.sri.com).
- WatchDog: Herramienta para auditar los log's
para SunOS. (http://www.infstream.com).
- Saint (Security Analisys INtegration Tool):
Herramienta en español para auditar. (http://www.super.unam.mx).
- Asax (Advanced Security Audit Trail Analysis
on Unix): Programa en francés.
(http://www.info.fundp.ac.be/~cri/DOCS/asax.html).
- Aid (Adaptive Intrusion Detection System):
Herramienta en alemán.
-
(http://www.rnks.informatik.tucottbus.de/~sobirey/aid.e.html).
- NetSuite Professional Audit: Herramienta
profesional para auditar. (http://www.netsuite.com/Pi/audit.htm).
- Audit Trails: Lo mismo que el anterior.
(http://promatrix.com/audit.htm).
- ISS SafeSuite: Potente herramienta de
analisis. (http://www.iss.net).
- Proyecto Nessus: Una recomendable
herramienta de auditoria. (The Nessus Project).
- Firewalk: Interesante t´´ecnica para
analizar una red. (Enterprise Security Services, Inc.).
- Lsof (List Open Files): Programa que lista
todos los archivos abiertos, incluidos los sockets abiertos.
(ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/).
- tcplist: Lista todos los puertos abiertos
que tenemos, además de suministrar diversa información más.
(ftp://ftp.cdf.toronto.edu/pub/tcplist).
E) Crakeadores de passwords.
- Crack V5: Posiblemente el crakeador mas
conocido. (Crack v5 (Source)).
- John The Ripper: Un excelente crakeador.
(John the Ripper 1.5 linux).
3. Bibliografia
Escamilla, Terry. Intrusion Detection: Network
Security Beyond the Firewall. John Wiley & Sons, Inc. 1998.
Klander, Lars. Hacker Proof, The Ultimate Guide to Network Security. Jamsa Press.
1997.
Spafford, Gene; Garfinkel, Simson. Practical Unix & Internet Security, 2nd
Edition. 0'Reilly & Associates, Inc. 1996.
Sys Admin. Unix Security, Essential Reference Series. R&D Books. 1997.
esCERT-UPC FAQ. (http://escert.upc.es).
Technotronic. (http://www.technotronic.com).
Computer-security/compromise FAQ 2.0. (http://www.iss.net).
Sniffer FAQ 3.0. (http://www.iss.net).
Rhino9. (http://rhino9.technotronic.com).
Simon Roses. (http://web.jet.es/~simon_roses/).
Mounji. PhD Thesis. Computer Science Institute, University of Namur, Belgium,
Sept 1997. (Languages and Tools for Rule-Based Distributed Intrusion Detection).
A. Mounji, B. Le Charlier. In Proceedings of the ISOC' 97 Symposium on Network
and Distributed System Security. San Diego, California, 1997. (Continuous
Assessment of a Unix Configuration: Integrating Intrusion Detection and
Configuration Analysis).
A. Mounji, B. Le Charlier. In Proceedings of the Eight Benelux Workshop on Logic
Programming. September, 1996. Louvain-La-Neuve, Belgium. (Detecting Breaches in
Computer Security: A Pragmatic System with a Logic Programming Flavor).
B. Le Charlier, A. Mounji, M. Swimmer. In Proceedings of Fifth International
Virus Bulletin Conference. Boston, Septembre 20-22, 1995. (Dynamic Detection and
Classification of Computer Viruses Using General Behaviour Patterns).
A. Mounji, B. Le Charlier, D. Zampuniéris, N. Habra. In Proceedings of the ISOC
'95 Symposium on Network and Distributed Systems Security. San Diego,
California, February 1995. (Distributed Audit Trail Analysis).
A. Mounji, B. Le Charlier, D. Zampuniéris, N. Habra. Research Report, May 1994,
36 pages. (Preliminary Report on Distributed ASAX).
N. Habra, B. Le Charlier, A. Mounji. Research Report, March 1993, 62 pages.
(Advanced Security Audit Trail Analysis on uniX. Implementation Design of the
NADF Evaluator).
N. Habra, B. Le Charlier, A. Mounji, I. Mathieu. In Proceedings of the Second
European Symposium on Research in Computer Security (ESORICS). Toulouse, France,
November 1992. (ASAX: Software Architecture and Rule-base Language for Universal
Audit Trail Analysis).
N. Habra, B. Le Charlier, A. Mounji. Research Report, December 1991, 34 pages.
(Preliminary Report on Advanced Security
Audit Trail Analysis on uniX).
Steps for Recovering from a UNIX Root Compromise. (http://www.cert.org).
Marcus J. Ranum, "Intrusion detection: challenges and myths", Network Flight
Recorder, Inc., March 2000.
Ellen Messmer, "Intrusion-detection software", Network World, April 1999.
Dan Farmer (Sun Microsystems), Wietse Venema (Eindhoven University of
Technology), "Improving the security of your site by breaking into it", 1997.
David Newman, Tadesse Giorgis, and Farhad Yavari-Issalou, "Intrusion detection
systems: suspicious finds", Data Communications, August 1998.
Trabajo enviado por:
Victor E. Cappuccio email
c.victor@cantv.net
Puede descargar tambien este documento en
www.vcappuccio.freeservers.com
Fecha: 21-1-2002
Versión 1.0
Compartir 
Publicación enviada por Victor E. Cappuccio email
Contactar mailto:c.victor@cantv.net
Código ISPN de la Publicación EpyVZEVpyFmvCaeEMD
Publicado Thursday 9 de October de 2003
Ultimas Publicaciones en ilustrados.com
ilustrados.com nace con el fin difundir el conocimiento publicando trabajos de investigación, monografias, tesis, presentaciones powerpoint y afines. Publicar trabajos en ilustrados.com ha alcanzado prestigio y reconocimiento internacional siendo cada vez más el número de académicos, empresas, investigadores, científicos que consultan las publicaciones de nuestro portal.
|