Técnicas de prevención de intrusiones (IDS/IPS)
Como ya sabemos , cualquiera de nosotros puede ser el objetivo de un ataque cibernético. Algunos CEO’s estiman que nadie se interesaría por su empresa porque es poco conocida o muy pequeña . Eso es totalmente falso .
El sistema de información de una empresa debe estar protegido a todos los niveles , no simplemente instalando un antivirus.
Como lo indica el título , hoy haré una introducción a las técnicas de prevención de intrusiones a nivel sistema y red .
IDS Y IPS
¿ Qué es un IDS ?
Hablamos de sistema de detección de intrusiones (Intrution Detection System , en inglés) para referirnos al mecanismo que permite detectar un ataque o actividad sospechosa .
Existen 2 tipos de IDS .
Los NIDS (Network-Based Intrution Detection System) , que supervisan la actividad de la red .
Los HIDS (Host-Based Intrution Detection System) , que supervisan la activad del sistema .
NIDS
Funcionan de la siguiente manera .
En primer lugar , el tráfico de la red es capturado gracias a PCAP (packet capture) .
A continuación , los paquetes capturados se filtran para refinar las búsquedas . Posteriormente , se efectúa un análisis de las firmas , con los mismos inconvenientes que tienen los antitivirus , es decir con la misma dificultad que tienen los Avs a la hora de detectar los 0days .
Finalmente , las alertas son gestionadas y alamacenadas en ficheros logs normalizados .
HIDS
Los HIDS supervisan la actividad de los usuarios , los procesos , los comandos utilizados , las fechas de conexión de los usuarios y mucho más .
También existen IDS híbridos , que desempeñan el papel de HIDS y NIDS .
Un IDS híbrido es muy práctico para analizar lo que llamamos “correlación” , es decir el enlace que existe entre varios eventos . Por ejemplo , si se genera un error http 404 , no sería sospechoso . Pero si al mismo tiempo otras peticiones generan errores , es probable que nuestro sitio web este siendo atacado .
Instalación de Snort
Snort es uno de los IDS más efectivos , y además , es gratis .
En este tutorial utilizaré la versión 2.9.8.0 y la instalaré en una máquina con Ubuntu 15.10 . Pero no os preocupéis , porque funciona igualmente en versiones anteriores .
Lo primero que hay que hacer es instalar los requisitos :
sudo apt-get install -y build-essential libpcap-dev libpcre3-dev libdumbnet-dev bison flex zlib1g-devVamos a crear una carpeta en la cual descargaremos snort .
mkdir ~/snort cd ~/snortAntes de instalar snort , tenemos que instalar DAQ (Data AcQuisition library)
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz tar -xvzf daq-2.0.6.tar.gz cd daq-2.0.6 ./configure make sudo make install NB : Hay que descargar la última versión , en mi caso es la 2.0.6Ahora podemos instalar snort .
wget https://www.snort.org/downloads/snort/snort-2.9.7.6.tar.gz tar -xvzf snort-2.9.8.0.tar.gz cd snort-2.9.8.0 ./configure --enable-sourcefire make sudo make install NB : Hay que descargar la última versión , en mi caso es la 2.9.8.0Un vez que hemos instalado snort , toca actualizar las bibliotecas compartidas y los enlaces simbólicos .
sudo ldconfig sudo ln -s /usr/local/bin/snort /usr/sbin/snortPara utilizar snort en modo IDS , vamos a crear una cuenta especial , copiar los archivos de configuración y darles los permisos necesarios .
sudo groupadd snort sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g snort sudo mkdir /etc/snort sudo mkdir /etc/snort/rules sudo mkdir /etc/snort/preproc_rules sudo touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules /etc/snort/rules/local.rules sudo mkdir /var/log/snort sudo mkdir /usr/local/lib/snort_dynamicrules sudo chmod -R 5775 /etc/snort sudo chmod -R 5775 /var/log/snort sudo chmod -R 5775 /usr/local/lib/snort_dynamicrules sudo chown -R snort:snort /etc/snort sudo chown -R snort:snort /var/log/snort sudo chown -R snort:snort /usr/local/lib/snort_dynamicrules sudo cp ~/snort/snort-2.9.8.0/etc/*.conf* /etc/snort sudo cp ~/snort/snort-2.9.8.0/etc/*.map /etc/snortAntes de ejecutar snort , vamos a editar el archivo de configuración
sudo gedit /etc/snort/snort.conf
ipvar HOME_NET 192.168.1.101/24 #Vuestra ip local ipvar EXTERNAL_NET $HOME_NET var RULE_PATH /etc/snort/rules var SO_RULE_PATH /etc/snort/so_rules var PREPROC_RULE_PATH /etc/snort/preproc_rules var WHITE_LIST_PATH /etc/snort/rules var BLACK_LIST_PATH /etc/snort/rules
Las reglas serán descargadas de forma automática gracias a Pulledpork , por lo tanto podemos comentarlas .
sudo sed -i 's/include $RULE_PATH/#include $RULE_PATH/' /etc/snort/snort.confPara poder añadir una regla y probarla , vamos descomentar :
include $RULE_PATH/local.rulesAhora hagamos una prueba de configuración .
sudo snort -T -c /etc/snort/snort.confSi hasta ahora lo estáis haciendo bien , tendréis este mensaje .
Snort successfully validated the configuration! Snort exiting
Vamos a añadir una regla muy simple en el archivo : /etc/snort/rules/local.rules .
alert icmp any any -> $HOME_NET any (msg:"ICMP test"; sid:10000001; rev:001;)
Ejecutemos snort :
sudo /usr/local/bin/snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i wlan0 NB: Si usais ubuntu 15.10 , es posible que vuestra interface red no sea ni eth0 , ni wlan0 .Y hagamos un ping hacia una máquina exterior para observar la alerta . Por ejemplo : ping example.com
10/31-02:27:19.663643 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:19.663675 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:20.658378 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:20.658404 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:21.766521 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:21.766551 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:22.766167 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101 10/31-02:27:22.766197 [**] [1:10000001:1] ICMP test [**] [Priority: 0] {ICMP} 93.184.216.34 -> 192.168.1.101A partir de aquí , solo nos queda crear nuestras propias reglas o descargarlas directamente aquí .
¿ Qué es un IPS ?
Los IPS funcionan de forma similar a los IDS , pero toman medidas contra las actividades o programas maliciosos que detectan .
Ya no hablamos de NIDS y HIDS , sino de NIPS y HIPS .
Un NIPS puede abandonar o anular una conexión TCP sospechosa , y un HIPS puede finalizar un proceso o eleminar un programa sospechoso .
También podemos utilizar snort como IPS gracias al plugin Snortsam .
fail2ban es uno de los IPS más conocidos , y permite analizar los logs del sistema en busca de motivos suficientes para tomar contramedidas .
Técnicas de prevención de intrusiones (IDS/IPS)
Reviewed by PDFREEBOOK
on
15:15
Rating:
Post a Comment