Establece
servicios de seguridad creando estrategias para la prevención y detección de
ataques e intrusos
A pesar de que un enfoque clásico de la seguridad de un
sistema informático siempre define como principal defensa del mismo sus
controles de acceso (desde una política implantada en un cortafuegos hasta unas
listas de control de acceso en un router o
en el propio sistema de ficheros de una máquina), esta visión es extremadamente
simplista si no tenemos en cuenta que en muchos casos esos controles no pueden
protegernos ante un ataque ([Lun90]). Por poner un ejemplo sencillo,
pensemos en un firewall donde
hemos implantado una política que deje acceder al puerto 80 de nuestros
servidores webdesde cualquier máquina de Internet; ese
cortafuegos sólo comprobará si el puerto destino de una trama es el que hemos
decidido para el servicio HTTP, pero seguramente no
tendrá en cuenta si ese tráfico representa o no un ataque o una violación de
nuestra política de seguridad: por ejemplo, no detendrá a un pirata que trate
de acceder al archivo de contraseñas de una máquina aprovechando un bug del servidor web. Desde un pirata informático externo a nuestra organización a un usuario
autorizado que intenta obtener privilegios que no le corresponden en un
sistema, nuestro entorno de trabajo no va a estar nunca a salvo de intrusiones.
Un
IDS
(Intruder
Detection
Sistema)o Sistema para Detección de Intrusos es una
herramienta
o
sistema de seguridad que monitorea el tráfico en una red y los eventos
ocurridos en un determinado sistema informático, para así poder identificar los
intentos
de
ataques o amenazas que puedan
comprometer
la
seguridad y el desempeño de
dicho
sistema.
El
desempeño de los IDS se basa en la búsqueda y análisis de patrones
previamente
de
finidos que impliquen cualquier tipo de actividad sospechosa o maliciosa sobre
una red o host.
Los
IDS
aportan a la seguridad una capacidad de prevención y de alerta anticipada
ante
cualquier actividad sospechosa. Los
IDS
incrementan
la seguridad de algún sistema o red vigilando el tráfico,
Examinando
los paquetes en busca de datos sospechosos que puedan afectar a los elementos
de la red.
Para
que
un IDS pueda funcionar correctamente en una red establecida detectando posibles
amenazas o intrusiones, este
sistema de seguridad se compone de los siguientes elementos:
1.Fuentes
de
recolección de datos: Su propósito es conseguir de una manera eficiente todos
los datos
2.necesarios
durante
el proceso de detección de intrusos. Estas fuentes pueden ser un logo el
software de base de datos.
3.Reglas
de
contenido de datos: Contienen los patrones
4.para
detectar
anomalías de seguridad en el sistema.
5.
Detectores
de
eventos anormales en el tráfico de red: Permite al IDS desempeñar su función
como detector de intrusos y amenazas para que posteriormente se evite algún
ataque a la red.
6.Dispositivo
generador de informes y alarmas: El IDS cuenta con sensores y dispositivos que
le permiten avisar al administrador de la red sobre posibles amenazas que
puedan afectar el desempeño y funcionamiento de los elementos en la red.
7.Un
log
es el registro de actividad de un Sistema que generalmente se guarda en un
fichero o base de datos y al que se le van añadiendo Información a medida que
se realizan acciones sobre el sistema
Clasificación de los IDSes
Generalmente
existen dos grandes enfoques a la hora de clasificar a los sistemas de
detección de intrusos: o bien en función de qué sistemas vigilan, o
bien en función de cómo lo hacen.
Si elegimos la primera de estas aproximaciones tenemos dos grupos de sistemas de detección de intrusos: los que analizan actividades de una única máquina en busca de posibles ataques, y los que lo hacen de una subred (generalmente, de un mismo dominio de colisión) aunque se emplazen en uno sólo de los hosts de la misma. Esta última puntualización es importante: un IDS que detecta actividades sospechosas en una red no tiene porqué (y de hecho en la mayor parte de casos no suele ser así) ubicarse en todas las máquinas de esa red.
Si elegimos la primera de estas aproximaciones tenemos dos grupos de sistemas de detección de intrusos: los que analizan actividades de una única máquina en busca de posibles ataques, y los que lo hacen de una subred (generalmente, de un mismo dominio de colisión) aunque se emplazen en uno sólo de los hosts de la misma. Esta última puntualización es importante: un IDS que detecta actividades sospechosas en una red no tiene porqué (y de hecho en la mayor parte de casos no suele ser así) ubicarse en todas las máquinas de esa red.
•IDSes basados en
red.
Un IDS basado en red monitoriza los paquetes que circulan por nuestra red en busca de elementos que denoten un ataque contra alguno de los sistemas ubicados en ella; el IDS puede situarse en cualquiera de los hosts o en un elemento que analice todo el tráfico (como un HUB o un enrutador). Esté donde esté, monitorizará diversas máquinas y no una sola: esta es la principal diferencia con los sistemas de detección de intrusos basados en host.
Un IDS basado en red monitoriza los paquetes que circulan por nuestra red en busca de elementos que denoten un ataque contra alguno de los sistemas ubicados en ella; el IDS puede situarse en cualquiera de los hosts o en un elemento que analice todo el tráfico (como un HUB o un enrutador). Esté donde esté, monitorizará diversas máquinas y no una sola: esta es la principal diferencia con los sistemas de detección de intrusos basados en host.
•IDSes basados en
máquina.
Mientras que los sistemas de detección de intrusos basados en red operan bajo todo un dominio de colisión, los basados en máquina realizan su función protegiendo un único sistema; de una forma similar - guardando las distancias, por supuesto - a como actúa un escudo antivirus residente en MS-DOS, el IDS es un proceso que trabaja en background (o que despierta periódicamente) buscando patrones que puedan denotar un intento de intrusión y alertando o tomando las medidas oportunas en caso de que uno de estos intentos sea detectado.
Mientras que los sistemas de detección de intrusos basados en red operan bajo todo un dominio de colisión, los basados en máquina realizan su función protegiendo un único sistema; de una forma similar - guardando las distancias, por supuesto - a como actúa un escudo antivirus residente en MS-DOS, el IDS es un proceso que trabaja en background (o que despierta periódicamente) buscando patrones que puedan denotar un intento de intrusión y alertando o tomando las medidas oportunas en caso de que uno de estos intentos sea detectado.
Algunos autores
([Gra00]) dividen el
segundo grupo, el de los sistemas de detección de intrusos basados en máquina,
en tres subcategorías:
•Verificadores
de integridad del sistema (SIV).
Un verificador de integridad no es más que un mecanismo encargado de monitorizar archivos de una máquina en busca de posibles modificaciones no autorizadas, por norma general backdoors dejadas por un intruso (por ejemplo, una entrada adicional en el fichero de contraseñas o un/bin/login que permite el acceso ante cierto nombre de usuario no registrado). El SIV más conocido es sin duda Tripwire, comentado en este mismo trabajo; la importancia de estos mecanismos es tal que en la actualidad algunos sistemas Unix integran `de serie' verificadores de integridad, como Solaris y su ASET (Automated Security Enhancement Tools).
Un verificador de integridad no es más que un mecanismo encargado de monitorizar archivos de una máquina en busca de posibles modificaciones no autorizadas, por norma general backdoors dejadas por un intruso (por ejemplo, una entrada adicional en el fichero de contraseñas o un/bin/login que permite el acceso ante cierto nombre de usuario no registrado). El SIV más conocido es sin duda Tripwire, comentado en este mismo trabajo; la importancia de estos mecanismos es tal que en la actualidad algunos sistemas Unix integran `de serie' verificadores de integridad, como Solaris y su ASET (Automated Security Enhancement Tools).
•Monitores de
registros (LFM).
Estos sistemas monitorizan los archivos de log generados por los programas - generalmente demonios de red - de una máquina en busca de patrones que puedan indicar un ataque o una intrusión. Un ejemplo de monitor puede ser swatch, pero más habituales que él son los pequeñosshellscripts que casi todos los administradores realizan para comprobar periódicamente sus archivos de log en busca de entradas sospechosas (por ejemplo, conexiones rechazadas en varios puertos provenientes de un determinado host, intentos de entrada remota como root...).
Estos sistemas monitorizan los archivos de log generados por los programas - generalmente demonios de red - de una máquina en busca de patrones que puedan indicar un ataque o una intrusión. Un ejemplo de monitor puede ser swatch, pero más habituales que él son los pequeñosshellscripts que casi todos los administradores realizan para comprobar periódicamente sus archivos de log en busca de entradas sospechosas (por ejemplo, conexiones rechazadas en varios puertos provenientes de un determinado host, intentos de entrada remota como root...).
•Sistemas de
decepción.
Los sistemas de decepción o tarros de miel (honeypots), como Deception Toolkit (DTK), son mecanismos encargados de simular servicios con problemas de seguridad de forma que un pirata piense que realmente el problema se puede aprovechar para acceder a un sistema, cuando realmente se está aprovechando para registrar todas sus actividades. Se trata de un mecanismo útil en muchas ocasiones - por ejemplo, para conseguir `entretener' al atacante mientras se tracea su conexión - pero que puede resultar peligroso: >qué sucede si el propio sistema de decepción tiene un bug que desconocemos, y el atacante lo aprovecha para acceder realmente a nuestra máquina?
Los sistemas de decepción o tarros de miel (honeypots), como Deception Toolkit (DTK), son mecanismos encargados de simular servicios con problemas de seguridad de forma que un pirata piense que realmente el problema se puede aprovechar para acceder a un sistema, cuando realmente se está aprovechando para registrar todas sus actividades. Se trata de un mecanismo útil en muchas ocasiones - por ejemplo, para conseguir `entretener' al atacante mientras se tracea su conexión - pero que puede resultar peligroso: >qué sucede si el propio sistema de decepción tiene un bug que desconocemos, y el atacante lo aprovecha para acceder realmente a nuestra máquina?
Realmente esta
división queda algo pobre, ya que cada día se avanza más en la construcción de
sistemas de detección de intrusos basados en host que no
podrían englobarse en ninguna de las subcategorías anteriores.
La segunda gran clasificación de los IDSes se realiza en función de cómo actúan estos sistemas; actualmente existen dos grandes técnicas de detección de intrusos ([Sun96]): las basadas en la detección de anomalías (anomaly detection) y las basadas en la detección de usos indebidos del sistema (misuse detection). Aunque más tarde hablaremos con mayor profundidad de cada uno de estos modelos, la idea básica de los mismos es la siguiente:
La segunda gran clasificación de los IDSes se realiza en función de cómo actúan estos sistemas; actualmente existen dos grandes técnicas de detección de intrusos ([Sun96]): las basadas en la detección de anomalías (anomaly detection) y las basadas en la detección de usos indebidos del sistema (misuse detection). Aunque más tarde hablaremos con mayor profundidad de cada uno de estos modelos, la idea básica de los mismos es la siguiente:
•Detección de
anomalías.
La base del funcionamiento de estos sistemas es suponer que una intrusión se puede ver como una anomalía de nuestro sistema, por lo que si fuéramos capaces de establecer un perfil del comportamiento habitual de los sistemas seríamos capaces de detectar las intrusiones por pura estadística: probablemente una intrusión sería una desviación excesiva de la media de nuestro perfil de comportamiento.
La base del funcionamiento de estos sistemas es suponer que una intrusión se puede ver como una anomalía de nuestro sistema, por lo que si fuéramos capaces de establecer un perfil del comportamiento habitual de los sistemas seríamos capaces de detectar las intrusiones por pura estadística: probablemente una intrusión sería una desviación excesiva de la media de nuestro perfil de comportamiento.
•Detección de
usos indebidos.
El funcionamiento de los IDSes basados en la detección de usos indebidos presupone que podemos establecer patrones para los diferentes ataques conocidos y algunas de sus variaciones; mientras que la detección de anomalías conoce lo normal (en ocasiones se dice que tienen un `conocimiento positivo', positive knowledge) y detecta lo que no lo es, este esquema se limita a conocer lo anormal para poderlo detectar (conocimiento negativo, negative knowledge).
El funcionamiento de los IDSes basados en la detección de usos indebidos presupone que podemos establecer patrones para los diferentes ataques conocidos y algunas de sus variaciones; mientras que la detección de anomalías conoce lo normal (en ocasiones se dice que tienen un `conocimiento positivo', positive knowledge) y detecta lo que no lo es, este esquema se limita a conocer lo anormal para poderlo detectar (conocimiento negativo, negative knowledge).
Para ver más
claramente la diferencia entre ambos esquemas, imaginemos un sistema de
detección basado en monitorizar las máquinas origen desde las que un usuario
sospechoso conecta a nuestro sistema: si se tratara de un modelo basado en la
detección de anomalías, seguramente mantendría una lista de las dos o tres
direcciones más utilizadas por el usuario legítimo, alertando al responsable de
seguridad en caso de que el usuario conecte desde otro lugar; por contra, si se
tratara de un modelo basado en la detección de usos indebidos, mantendría una
lista mucho más amplia que la anterior, pero formada por las direcciones desde
las sabemos con una alta probabilidad que ese usuario no va a conectar, de
forma que si detectara un acceso desde una de esas máquinas, entonces es cuando
el sistema tomaría las acciones oportunas.
En muchos trabajos ([Esc98], [Thu00]...) aparece una tercera clasificación de los IDSes; se trata de la diferenciación entre los sistemas que trabajan periódicamente (denominados `pasivos') y los que operan en tiempo real (activos). Nosotros no contemplaremos, aunque la citemos, esta clasificación, ya que es totalmente minoritaria en comparación con las otras dos que hemos comentado. De cualquier forma, la idea es muy simple: un IDS de tiempo real (los denominados Real-Time Intrusion Detection Systems) trabaja contínuamente en busca de posibles ataques, mientras que los sistemas que se ejecutan a intervalos (Vulnerability Scanners) son analizadores de vulnerabilidades que cualquier administrador ha de ejecutar regularmente (ya sea de forma manual o automática) contra sus sistemas para verificar que no presentan problemas de seguridad.
En muchos trabajos ([Esc98], [Thu00]...) aparece una tercera clasificación de los IDSes; se trata de la diferenciación entre los sistemas que trabajan periódicamente (denominados `pasivos') y los que operan en tiempo real (activos). Nosotros no contemplaremos, aunque la citemos, esta clasificación, ya que es totalmente minoritaria en comparación con las otras dos que hemos comentado. De cualquier forma, la idea es muy simple: un IDS de tiempo real (los denominados Real-Time Intrusion Detection Systems) trabaja contínuamente en busca de posibles ataques, mientras que los sistemas que se ejecutan a intervalos (Vulnerability Scanners) son analizadores de vulnerabilidades que cualquier administrador ha de ejecutar regularmente (ya sea de forma manual o automática) contra sus sistemas para verificar que no presentan problemas de seguridad.
No hay comentarios:
Publicar un comentario