Instalación y configuración del servicio de detección de intrusos (Snort)

Un IDS es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informático en busca de intentos de comprometer la seguridad de dicho sistema.

Breve introducción a los sistemas IDS y Snort

  • Un IDS o Sistema de Detección de Intrusiones es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informático o red informática en busca de intentos de comprometer la seguridad de dicho sistema.
  • Los IDS buscan patrones previamente definidos que impliquen cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o host.
  • Los IDS aportan a nuestra seguridad una capacidad de prevención y de alerta anticipada ante cualquier actividad sospechosa. No están diseñados para detener un ataque, aunque sí pueden generar ciertos tipos de respuesta ante éstos.
  • Los IDS: aumentan la seguridad de nuestro sistema, vigilan el tráfico de nuestra red, examinan los paquetes analizándolos en busca de datos sospechosos y detectan las primeras fases de cualquier ataque como pueden ser el análisis de nuestra red, barrido de puertos, etc.

Tipos de IDS

1. HIDS (Host IDS)

Protege contra un único Servidor, PC o host. Monitorizan gran cantidad de eventos, analizando actividades con una gran precisión, determinando de esta manera qué procesos y usuarios se involucran en una determinada acción. Recaban información del sistema como ficheros, logs, recursos, etc, para su posterior análisis en busca de posibles incidencias.

Todo ello en modo local, dentro del propio sistema. Fueron los primeros IDS en desarrollar por la industria de la seguridad informática.

2. NIDS (Net IDS)

Protege un sistema basado en red. Actúan sobre una red capturando y analizando paquetes de red, es decir, son sniffers del tráfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan algún tipo de ataque.

Bien ubicados, pueden analizar grandes redes y su impacto en el tráfico suele ser pequeño. Actúan mediante la utilización de un dispositivo de red configurado en modo promiscuo (analizan, “ven” todos los paquetes que circulan por un segmento de red aunque estos nos vayan dirigidos a un determinado equipo). Analizan el trafico de red, normalmente, en tiempo real. No sólo trabajan a nivel TCP/IP, también lo pueden hacer a nivel de aplicación.

Otros tipos son los híbridos.

Por el tipo de respuesta podemos clasificarlos en:

Pasivos: Son aquellos IDS que notifican a la autoridad competente o administrador de la red mediante el sistema que sea, alerta, etc. Pero no actúa sobre el ataque o atacante.

Activos: Generan algún tipo de respuesta sobre el sistema atacante o fuente de ataque como cerrar la conexión o enviar algún tipo de respuesta predefinida en nuestra configuración.

Snort puede funcionar de las dos maneras.

Arquitectura de un IDS

Normalmente la arquitectura de un IDS, a grandes rasgos, está formada:

  1. La fuente de recogida de datos. Estas fuentes pueden ser un log, dispositivo de red, o como en el caso de los IDS basados en host, el propio sistema.
  2. Reglas que contienen los datos y patrones para detectar anomalías de seguridad en el sistema.
  3. Filtros que comparan los datos snifados de la red o de logs con los patrones almacenados en las reglas.
  4. Detectores de eventos anormales en el tráfico de red.
  5. Dispositivo generador de informes y alarmas. En algunos casos con la sofisticación suficiente como para enviar alertas vía mail, o SMS.

Esto es a modo general. Cada IDS implementa la arquitectura de manera diferente.

Dónde colocar el IDS

Una actitud paranoica por nuestra parte nos podría llevar a instalar un IDS en cada host ó en cada tramo de red. Esto último sería un tanto lógico cuando se trata de grandes redes, no es nuestro caso ahora. Lo lógico sería instalar el IDS en un dispositivo por donde pase todo el tráfico de red que nos interese.

Dificultades

Un problema de los IDS es cuando queremos implementarlos en redes conmutadas ya que no hay segmento de red por donde pase todo el tráfico. Otro problema para un IDS son las redes con velocidades de tráfico muy altas en las cuales es difícil procesar todos los paquetes.

Posición del IDS

Si colocamos el IDS antes del cortafuegos capturaremos todo el tráfico de entrada y salida de nuestra red. La posibilidad de falsas alarmas es grande.

La colocación detrás del cortafuegos monitorizará todo el tráfico que no sea detectado y parado por el firewall o cortafuegos, por lo que será considerado como malicioso en un alto porcentaje de los casos. La posibilidad de falsas alarmas muy inferior.

Algunos administradores de sistemas colocan dos IDS, uno delante y otro detrás del cortafuegos para obtener información exacta de los tipos de ataques que recibe nuestra red ya que si el cortafuegos está bien configurado puede parar o filtras muchos ataques.

En ambientes domésticos, que es el propósito de este taller sobre IDS y Snort, podemos colocar el IDS en la misma máquina que el cortafuegos. En este caso actúan en paralelo, es decir, el firewall detecta los paquetes y el IDS los analizaría.

Introducción a Snort

Snort es un IDS o Sistema de detección de intrusiones basado en red (NIDS). Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida como patrones que corresponden a ataques, barridos, intentos aprovechar alguna vulnerabilidad, análisis de protocolos, etc conocidos. Todo esto en tiempo real.

Snort (http://www.snort.org/) está disponible bajo licencia GPL, gratuito y funciona bajo plataformas Windows y UNIX/Linux. Es uno de los más usados y dispone de una gran cantidad de filtros o patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad.

Este IDS implementa un lenguaje de creación de reglas flexibles, potente y sencillo. Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI, escaneos Nmap….

Puede funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico), registro de paquetes (permite guardar en un archivo los logs para su posterior análisis, un análisis offline) o como un IDS normal (en este caso NIDS).

En este taller daremos una importancia mayor a su funcionamiento como NIDS y, sobre todo, a la creación personalizada de reglas e interpretación de las alertas.

La colocación de Snort en nuestra red puede realizarse según el tráfico quieren vigilar: paquetes que entran, paquetes salientes, dentro del firewall, fuera del firewall… y en realidad prácticamente donde queramos.

Una característica muy importante e implementada desde hace pocas versiones es FlexResp. Permite, dada una conexión que emita tráfico malicioso, darla de baja, hacerle un DROP mediante el envío de un paquete con el flag RST activa, con lo cual cumpliría funciones de firewall, cortando las conexiones que cumplan ciertas reglas predefinidas. No sólo corta la conexiones ya que puede realizar otras muchas acciones. 

PAGINA EN CONSTRUCCION …………………..

Published in: on octubre 20, 2008 at 2:16 am  Dejar un comentario  

Instalación de servidor Web con certificado seguridad

 

Instalación de Apache  

Se instalarán los archivos necesarios para que funcione nuestro servidor web. Se instalará apache v2.

// Instalación de apache2# apt-get install apache2

 Configuración de Apache

Los archivos de configuración de apache2 se encuentran en la carpeta /etc/apache2. El archivo principal de configuración es /etc/apache2/apache2.conf. Antes de realizar cualquier cambio en este archivo, es conveniente realizar una copia de seguridad del mismo ya que si apache encuentra algún error en el archivo de configuración, no arrancará.

Se pueden configurar infinidad de parámetros. Aquí, para poner en marcha el servidor, editaremos el archivo apache2.conf y añadiremos únicamente el siguiente parámetro:

// Añadir en apache2.confServerName Ponga aquí el nombre de su servidor

Arranque y parada del servidor web apache

El servidor web apache2, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la carpeta /etc/init.d.

// Arrancar o reiniciar el servidor apache2      # /etc/init.d/apache2 restart

// Parar el servidor apache   root@cnice-desktop:/

# /etc/init.d/apache stop

 Arranque automático del servidor Web Apache al iniciar el sistema

//si estamos situados en la carpeta /etc/init.d
# ./update-rc.d apache defaults

 Certificado de Digital del Servidor

 

//Descarga e instalación de openssl# apt-cache search openssl

# apt-get install openssl

 

 

Creación de una Entidad Certificadora

 

Los datos como el algoritmo, nombre de la llave y tamaño pueden ser modificados.

 

# cd /root/certificados/CA# openssl genrsa -des3 -out ca.key 2048  

 

A partir de la llave privada generada en el paso anterior cree un certificado digital

 

# oppenssl req -new -x509 -days 120 -key ca.key -out ca.crt…

//Datos del Certificado

 

Creación del certificado Digital del Servidor

 

Para éste ejemplo tenemos los siguientes Datos

  • Tipo: x509
  • Petición del certificado: personal.crs
  • Nombre del certificado (Archivo de salida): personal.crt
  • Llave de la entidad certificadora: ../CA/ca.key
  • Certificado de la entidad certificadora: ../CA/ca.crt
  • Vigencia: 60 días
# oppenssl x509 -req -in personal.crs -out personal.crt -shal -CA …/CA/ca.crt -CAKey…/CA/ca.key -Cacreateserial -days 60

 

Comprobación

Cambiese al directorio donde está el certificado “Personal” e inicie el servidor openssl con el certificado creado en la segunda parte

Nota: para terminal el servidor. digite ctrl-c

 

# cd /root/certificados/Personal# oppenssl s_server -cert personal.crt -www -key personal.key

 

Abra otra terminal e inicie el cliente de openssl apuntando al puerto 4433 y examine los contenidos del certificado

Nota: para salir del cliente openssl digite ctrl-c

# openssl s_client -connect localhost:4433
Published in: on septiembre 15, 2008 at 1:25 am  Dejar un comentario  

Instalación y Configuración del Servicio de Firewall (iptables)

Qué es un firewall?

Un firewall es un dispositivo que filtra el tráfico entre redes. El firewall puede ser un dispositivo físico o un software sobre un sistema operativo. En éste se establecen una reglas con las que se decide si una conexión determinada puede establecerse o no. Incluso puede ir más allá y realizar modificaciones sobre las comunicaciones, como el NAT(Network Address Translation)

Hoy en dia un firewall es un hardware específico con un sistema operativo o una IOS que filtra el tráfico TCP/UDP/ICMP/../IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas de red. Así es un firewall clásico:

Firewall Común

Firewall Común

Esquema típico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router (con un único cable) y la red local (conectado al switch o al hub de la LAN)

Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, el que se conoce como DMZ o zona desmilitarizada o red perimetral. El firewall tiene entonces tres entradas:

Firewall entre red local e internet con DMZ

Firewall entre red local e internet con DMZ

En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall.

Los firewalls se pueden usar en cualquier red. Normalmente se tienen como protección de internet en las empresas, aunque ahí también suelen tener una doble función: controlar los accesos externos hacia dentro y también los internos hacia el exterior; esto último se hace con el firewall o tambien con un proxy (que también utilizan reglas, aunque de más alto nivel).
También, en empresas de hosting con muchos servidores alojados lo normal es encontrar uno o más firewalls ya sea filtrando toda la instalación o parte de ella.

Sea el tipo de firewall que sea, generalmente se tiene un conjunto de reglas en las que se examina el origen y destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, no solo los tcp, también los udp, los icmp, los gre y otros protocolos vinculados a vpns.

En definitiva lo que se hace es:
– Habilita el acceso a puertos de administración a determinadas IPs privilegiadas
– Enmascara el trafico de la red local hacia el exterior (NAT, una petición de un pc de la LAN sale al exterior con la ip pública), para poder salir a internet
– Deniega el acceso desde el exterior a puertos de administración y a todo lo que este entre 1 y 1024. 

Hay dos maneras de implementar un firewall:
1) Política por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegará lo que se diga explícitamente.
2) Política por defecto DENEGAR: todo esta denegado, y solo se permitirá pasar por el firewall aquellos que se permita explícitamente.

Qué es iptables? 

IPtables es un sistema de firewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, iptables esta integrado con el kernel, es parte del sistema operativo. Con los comandos iptables, añadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall.

Instalación y Configuración del servicio de Firewall

Instala iptables ejecutando los siguientes comandos:

make PREFIX=/usr &&
make PREFIX=/usr install

PREFIX=/usr : Compila e instala iptables en el directorio /usr en vez de en /usr/local.

Contenido

El paquete iptables contiene iptables, ip6tables y algunas librerías.

Descripciones

iptables Se usa para establecer, mantener e inspeccionar las tablas de las reglas de filtrado de paquetes IP en el núcleo Linux.

iptables-save,~-restore Se usan para almacenar y restaurar el conjunto de cadenas y reglas. Hasta iptables-1.2.5 se consideraban experimentales.

ip6tables Es el mismo que iptables pero para IPv6. Con respecto a la versión 1.2.5, no es tan completo como la versión estándar para IPv4, especialmente en lo que se refiere a algunos módulos.

libip*.so Estos son varios módulos (implementados como librerías dinámicas) que extienden la funcionalidad de iptables.

Para que Linux haga la función de cortafuegos se debe asegrar que el núcleo ha sido compilado con las opciones pertinentes activadas.

Opciones de configuración esenciales para un núcleo con la función de cortafuegos activada

Networking options: Network packet filtering   = CONFIG_NETFILTER
  Unix domain sockets   = CONFIG_UNIX
  IP: TCP/IP networking   = CONFIG_INET
  IP: advanced router   = CONFIG_IP_ADVANCED_ROUTER
  IP: verbose route monitoring   = CONFIG_IP_ROUTE_VERBOSE
  IP: TCP Explicit Congestion Notification support   = CONFIG_INET_ECN
  IP: TCP syncookie support   = CONFIG_SYN_COOKIES
  IP: Netfilter Configuration: todas y cada una de las opciones = CONFIG_IP_NF_*
  DESACTIVA:

ipchains (2.2-style) support ipfw-adm (2.0-style) support

desactiva\ CONFIG_IP_NF_COMPAT_*
  Fast switching Asegúrate de desactivarlo porque configuraría un rodeo que evitaría las reglas del cortafuegos. desactiva\ CONFIG_NET_FASTROUTE

Traducción de las opciones del núcleo

Networking options (Opciones de red): Network packet filtering (Filtrado de paquetes de red)      
  Unix domain sockets (Sockets de dominio Unix)      
  IP: TCP/IP networking (red TCP/IP)      
  IP: advanced router (router avanzado)      
  IP: verbose route monitoring (control detallado de las rutas)      
  IP: TCP Explicit Congestion Notification support (soporte de Notificación de Congestión TCP Explícita)      
  IP: TCP syncookie support (soporte de syncookies TCP)      
  IP: Netfilter Configuration (Configuración de Netfilter)      
  Fast switching (Conmutación rápida)

Se supone que un Cortafuegos Personal debe permitirte acceder a todos los servicios ofrecidos en internet, pero protegiendo el sistema y sus datos.

Se incluye una versión recomendada por Rusty Russell en Linux 2.4 Packet Filtering HOWTO (Filtrado de paquetes de Linux 2.4):

cat > /etc/rc.d/init.d/firewall << "EOF"
#!/bin/sh

# Inicio de $rc_base/init.d/firewall

# Inserta los módulos de seguimiento de la conexión (no es necesario si
# se compilaron en el kernel).
modprobe ip_tables
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_state
modprobe ipt_LOG

# Permite conexiones locales
iptables -A INPUT  -i lo -j ACCEPT
# Permite la salida por cualquier interfaz hacia cualquier ip para
# cualquier servicio (igual que -P ACCEPT)
iptables -A OUTPUT -j ACCEPT

# Permite responder a conexiones ya establecidas y permite conexiones
# nuevas relacionadas con otras ya establecidas (por ejemplo, ftp
# activo)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Registra todo lo demás: ¿Cuál es la última vulnerabilidad explotable
# de Windows?
iptables -A INPUT -j LOG --log-prefix "FIREWALL:INPUT "

# Establece una política sana:    no se acepta nada > /dev/null
iptables -P INPUT    DROP
iptables -P FORWARD  DROP
iptables -P OUTPUT   DROP

# muestra más información para direcciones ip dinámicas (no es necesario si se
# posee una dirección IP estática)
echo 2 > /proc/sys/net/ipv4/ip_dynaddr

# desactiva la Notificación de Congestión Explícita - demasiados
# enrutadores todavía lo ignoran
echo 0 > /proc/sys/net/ipv4/tcp_ecn

# Fin de $rc_base/init.d/firewall
EOF

Su guión es bastante simple, ignora todo el tráfico que llega al ordenador que no ha sido iniciado por él, pero si simplemente está navegando por internet, es improbable que excedas sus límites.

Easy Firewall Generator for IPTables éste programa genera automáicamente firewall para IPTables.

Published in: on agosto 22, 2008 at 1:27 pm  Dejar un comentario  

Pesquisa Bibliográfica

“Conexiones Razonables: Linux dentro de Windows con VMWare”
Autor: Antonio 
Sector: Educación  
Ubicación: Extremadura : España 
URL http://conexionesrazonables.blogspot.com/2007/07/linux-dentro-de-windows-con-vmware.html 
Fecha de Consulta: 25 de Julio de 2008 
En este artículo encontrará un tutorial de cómo crear una Máquina Virtual Linux en Windows, con el Software de Virtualización VMWare.
 
“Sistema de Detección de Intrusiones (IDS)” 
Autor: Cyrille Larrieu  
URL http://es.kioskea.net/detection/ids.php3 
Fecha de Consulta: 26 de Julio de 2008 
En éste artículo encontrará los Sistemas de Detección de Intrusiones de Host y de Red, Técnicas de detección como lo son la verificación de la lista de protocolos, la verificación de los protocolos de la capa de aplicación, el reconocimiento de ataques de “comparación de patrones”; también encontrará información acerca de los principales métodos utilizados por N-IDS para informar y bloquear intrusiones como reconfiguración de dispositivos externos (firewalls o ACL en routers), envío de una trampa SNMP a un hipervisor externo, envío de un correo electrónico a uno o más usuarios, registro del ataque, almacenamiento de paquetes sospechosos, apertura de una aplicación, envío de un “ResetKill” y notificación visual de una alerta. 
 
“Analizadores de red (rastreadores de puertos)” 
Autor: Anonimo 
URL http://es.kioskea.net/attaques/sniffers.php3 
Fecha de Consulta: 26 de Julio de 2008 
Este artículo le brindará la información necesaria para supervisar el tráfico en una red; los Sistemas de detección de intrusiones (IDS) se basan en un rastreador para capturar paquetes y usan bases de datos para detectar paquetes sospechosos, desafortunadamente, como ocurre con todas las herramientas administrativas, personas malintencionadas que tengan acceso físico a la red pueden usar el rastreador para recopilar información.
 
Recomendado 
“Ataques” 
Autor: Anonimo 
URL http://es.kioskea.net/attaques/attaques.php3 
Fecha de Consulta: 26 de Julio de 2008 
Con éste artículo usted podrá conocer todos los tipos de ataques a servidores, envenenamiento de ARP, vulnerabilidades de la Web, ataques criptográfico, etc.
 
Recomendado 
“Detección de Intrusiones en Sistemas Linux” 
Autor: Carlos Cortes Cortes 
URL http://bulma.net/body.phtml?nIdNoticia=1048 
Fecha de Consulta: 26 de Julio de 2008 
En éste artículo aprenderá acerca de la seguridad en Linux y varias recomendaciones para evitar ataques de crackers, tambien encontrará informcaión de ciertos programas que le ayudarán a verificar que sus archivos del sistema son los originales y que no han sido alterados.
Published in: on julio 19, 2008 at 3:50 am  Dejar un comentario  

Principios de Seguridad 2008-2

Este Blog fué creado con el fin de hacer un seguimiento en linea del proyecto final de la materia Principios de Seguridad con el profesor Mario Yepes en la Universidad Pontificia Bolivariana.

El trabajo final consiste en la instalación de un servidor Linux, en una máquina virtual, como sistema de detección de intrusos y bastión de red con los siguientes servicios.

  • Detección de intrusos
  • Protección de puertos y servicios
  • Auditoría Web de intentos de intrusión por servidor seguro
Published in: on julio 18, 2008 at 2:04 pm  Dejar un comentario