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
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:
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:
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:
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í:
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:
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
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.

Fig. 1
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):
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:
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:
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
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:
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:
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:
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[arroba]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.
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.
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.
C) Detectores de zapper's.
D) Herramientas de análisis.
(http://www.info.fundp.ac.be/~cri/DOCS/asax.html).
(http://promatrix.com/audit.htm).
E) Crakeadores de passwords.
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.
Autor:
Trabajos relacionados
Ver mas trabajos de Redes |
|
Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.
Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.
Ingrese el e-mail y contraseña con el que está registrado en Monografias.com
|
|