Marco actual de incidencias de Seguridad Informática.
|
El mundo está cada vez más conectado electrónicamente, la expansión de los mercados y la reducción de los obstáculos, a la hora, de hacer negocios a través de las fronteras. Los servicios pueden ser organizados en cualquier lugar y los clientes se pueden servir desde cualquier lugar. Los territorios con mercados emergentes a menudo carecen de un adecuado control del cliente, sin embargo las tasas de infección de malware son altas. Cuando estos clientes infectados con malware son dirigidos por un mando y control centralizado, se convierten en «botnets”. El gran número de máquinas que suelen participar en botnets proporciona una enorme capacidad de generación de carga, que se puede alquilar a bajo precio, por cualquiera de las partes, con un interés en la interrupción de los servicios de un competidor o un objetivo político.
Las Botnets globales de hoy en día están utilizando ataques distribuidos de denegación de servicios (DDoS) a: servicios web y aplicaciones, a menudo, todo al mismo tiempo. A pesar de los ataques DDoS han estado con nosotros durante décadas, el alcance, la naturaleza y magnitud del espectro de amenazas DDoS han evolucionado significativamente con el tiempo.
Las Botnets y ordenadores Zombi.
Estés ordenadores durmientes suelen ser infectados mediante correos electrónicos o malware de paginas Web y suelen ser utilizados para atacar servidores sincronizada mente para saturarlos o dedicarse a envíos masivos spam.
Parece increíble, pero la mayor parte de estas de personas que tienen sus ordenadores infectados sin darse cuenta, pueden solucionar su problema fácilmente teniendo un antivirus, un firewall, programa anti-espía (escaneando el sistema una vez a la semana) y actualizar periódicamente dichos programas y el sistema operativo.
Detectar ordenadores zombis en la red local con BotHunter (http://www.bothunter.net/) es una herramienta pasiva de supervisión de red, diseñada para reconocer los patrones de comunicación de computadoras infectadas por malware dentro de un perímetro de red.
BotHunter está diseñado para seguir los flujos de comunicación entre los activos internos y las entidades externas de una botnet, buscando el rastro de evidencias de los intercambios de datos que se producen en la secuencia de infección del malware. BotHunter consiste en un motor basado en: partes del motor de la versión 2 de Snort y algunas mejoras. Este motor analiza las acciones que ocurren durante el proceso de infección del malware:
- Exploración del anfitrión.
- Uso de exploit de ataque.
- Transferencia del software de control al sistema anfitrión.
- Diálogo del malware con el servidor C&C, encargado de la coordinación y control del mismo.
- Propagación del malware atacando otros host de la red.
- Comunicación con la botnet usando P2P (en el pasado usaban para comunicarse el protocolo IRC).
Después de comparar estas acciones con los patrones de infección que tiene en su base de datos, si coincide, es detectada como infección. Entonces BotHunter realiza un informe detallado con todos los acontecimientos y fuentes que desempeñaron un papel durante el proceso de la infección. BotHunter no es solo una herramienta ideal para la detección de ordenadores zombis en redes locales, también sirve para investigar las fases de infección del malware.
Phishing y Pharming.
El Phishing consiste en el envío de correos electrónicos que simulando proceder de fuentes fiables (por ejemplo, entidades bancarias), intentan obtener datos confidenciales del usuario. Para ello, suelen incluir un enlace que al ser pulsado, lleva a páginas Web falsas. De esta manera, el usuario, creyendo estar en un sitio de toda confianza, introduce la información solicitada que en realidad, va a parar a manos del estafador. La mayoría de los ataques Phishing son consecuencia de las masivas infecciones de ordenadores zombie. Las redes formadas por los troyanos(botnet) que convierten el sistema en un zombie, son utilizadas para el envió de spam y phishing, ya que así se escudan en personas que no son conscientes de su infección para realizar estés ataques.
El Pharming se trata de una táctica fraudulenta que consiste en cambiar los contenidos del DNS ya sea a través de la configuración del protocolo TCP/IP o del archivo “lmhost” (que actúa como una caché local de nombres de servidores Windows), para redirigir los navegadores a páginas falsas en lugar de las auténticas cuando el usuario accede a las mismas a través de su navegador. Además, en caso de que el usuario afectado por el pharming navegue a través de un proxy para garantizar su anonimato, la resolución de nombres del DNS del proxy puede verse afectada de forma que todos los usuarios que lo utilicen sean conducidos al servidor falso en lugar del legítimo.
PhishBlock (http://phishblock.org/) es un programa de seguridad que detecta y bloquea phishing y pharming, con patrones que coincidan con las bases de datos, empleando referencias como: direcciones URL, nombres de host DNS y direcciones IP. Este programa detecta y bloquea: URLs de malware, anfitriones calificados como dañiños y direcciones IP. Recientemente, la mayoría de los códigos maliciosos se entregan de forma encubierta a los usuarios a través de los anuncios de: Google, SNS, Blogs, BBS que los usuarios visitan con frecuencia. Y después de inyectar los códigos maliciosos pasan a forma parte de una botnet.
PhishBlock detecta y bloquea archivos dañinos que intentan infectar el sistema a través de la red mediante el uso de un controlador de filtro de red. Además, ocupa muy poca memoria y el controlador de filtro de red no afecta al rendimiento de la red o de uso de la CPU.
Características principales:
- Detecta y bloquea Phishing y malware basado en URL.
- Detectar y bloquea C & C Server (botnet) sobre la base de nombres DNS del host y direcciones IP.
- Detecta y bloquea: fraude, estafa, DDos, falsos contenidos basados en URL y los nombres DNS del host.
- Permite definir las direcciones URL y los Hosts que están infectadas por malware por los usuarios. Y compartir estas definiciones con otros usuarios.
- Permite verificar si los datos compartidos son malware o no.
- Escaneado en busca de malware la caché del navegador con Yara (6,000 reglas).
- Los contenidos de bases de datos son de las fuentes: PhishTank.com, Spam404.com, ClamAV.net…
PhishBlock esta disponible para sistemas Windows: XP, 2003, Vista, Win7, Win8… Y actualmente en fase de desarrollo para Linux y MacOS.
Ataques de denegación de servicios.
En seguridad informática los ataques de denegación de servicios afectan gravemente a la disponibilidad, un factor muy importante que normalmente se le suele menospreciar. Entendemos por disponibilidad a la garantía de que los usuarios autorizados puedan acceder a la información y recursos de red cuando los necesiten.
Por eso es necesario hacer Strees test (pruebas de carga) de nuestros servicios de red para comprobar la disponibilidad ante un ataque de denegación de servicios. Aquí les dejo herramientas, de código abierto, para realizar pruebas de carga a diferentes servicios y dispositivos de red.
Blast (http://www.mcafee.com/us/downloads/free-tools/blast.aspx).
Es una pequeña herramienta de prueba de esfuerzo en el protocolo TCP. Blast es rápida y efectiva y puede ayudar a detectar posibles deficiencias en los servidores de red.
Algunas características:
- /trial añade la posibilidad de ver el buffer de entrada y salida.
- /v agrega la opción de mostrar salida en pantalla, desactivado por defecto
- /nr no recibir después iniciar conexión, existen servicios HTTP que no envían la respuesta inicial, esto corrige el efecto de los tiempos de espera de HTTP GET al enviar cadenas.
- /dr agrega doble LF / CR ‘s de buffers (útil para las solicitudes GET), desactivado por defecto.
Ejemplos de modo de empleo:
Uso general.
blast xxx.xxx.xxx.xxx port startsize endsize /t rcvtimeout /d senddelay /b beginmsg /e endmsg /noret
Pruebas con servidores HTTP.
blast 134.134.134.4 80 40 50 /b «GET /some» /e «url/ HTTP/1.0» /nr /dr /v
Pruebas con servidores POP.
blast 134.134.134.4 110 15 20 /b «user te» /e «d» /v
FSMax (http://www.mcafee.com/us/downloads/free-tools/fsmax.aspx).
Una herramienta de pruebas de estrés de servicios de red, formada por secuencias de comandos. Esta herramienta toma un archivo de texto como entrada y se ejecuta en un servidor a través de una serie de pruebas sobre la base de entrada. El propósito de esta herramienta es encontrar desbordamientos de búfer, en un servidor.
Modo de empleo:
fsmax /s < script.txt > results.txt
Formato del script:
host:[dirección ip],[Puerto ],[min],[max] = parámetros del host.
Parámetros adicionales del host:
Timeout, ms que espera para la respuesta socket, por defecto = 0.
Delay, ms que espera antes de enviar órdenes, por defecto = 250.
Pause, ms que espera antes de recibir, por defecto = 0.
Retnum, número para poner fin al buffer CR / LF ‘s, por defecto es uno.
Reopen, reabrir la conexión antes de cada comando.
Norecv, no recibir después iniciar conexión, por defecto está desactivado.
Verbose, visualizar en pantalla, por defecto desactivado.
Trial, mostrar buffer de entrada y salida en pantalla.
UDPFlood (http://www.mcafee.com/us/downloads/free-tools/udpflood.aspx).
Es un remitente de paquetes UDP. Envía paquetes UDP a una dirección IP, en un puerto determinado a una velocidad controlable. Los paquetes pueden ser: de una cadena de texto mecanografiado, un determinado número de bytes aleatorios o datos de un archivo.
WBox (http://hping.org/wbox/).
Es una herramienta para realizar pruebas de estrés, a servidores web y aplicaciones. Se puede utilizar para realizar muchas tareas, incluyendo las siguientes:
Evaluación comparativa del tiempo que se necesita para generar el contenido de la aplicación web. Realizar test de estrés a servidores y aplicaciones web.
Prueba de configuración de dominios virtuales sin necesidad de alterar su resolución local. Comprobar si las redirecciones están funcionando correctamente emitiendo el código HTTP correcto. Comprobar si la compresión HTTP está funcionando y si efectivamente está sirviendo páginas más rápido.
Nsasoft Network Traffic Emulator (http://www.nsauditor.com/network_tools/network_traffic_generator.html).
Nsasoft Network Traffic Emulator puede generar trafico IP / ICMP / TCP / UDP. Puede ser usado para testear servidores, aunque su uso es más indicado para routers y firewalls. Es muy sencillo y portable, solo funciona en la plataforma Windows.
Tsung (http://tsung.erlang-projects.org/).
Tsung es una herramienta de prueba de carga. Puede ser utilizado para testear: HTTP, SOAP y los servidores Jabber (soporta SSL). Simula el comportamiento de varios usuarios usando un archivo XML, muestra muchas medidas en tiempo real: tiempos de reacción incluyendo, uso de la CPU y de la memoria… Disponible plataforma Linux.
Hammerhead 2 (http://hammerhead.sourceforge.net/).
Hammerhead 2 es una herramienta de prueba de carga diseñada para probar desde fuera servidores y sitos web. Puede generar múltiples conexiones y usuarios a una hora programada. Tiene muchas opciones para generar distintos problemas a sitios Web. Disponible para plataformas Linux, Solaris y FreeBSD.
Apache JMeter (http://jakarta.apache.org/jmeter/).
Apache JMeter es una aplicación diseñada en Java. Fue diseñado exclusivamente para carga de sitios Web pero ha ampliando sus funciones. Apache JMeter se puede utilizar para probar funcionamiento de: Servlets, Perl, objetos en Java, bases de datos y consultas y servidores. Puede ser utilizado para simular una carga pesada en un servidor, una red o un objeto, para analizar su funcionamiento total bajo diversos tipos de carga. realizando un análisis grafico. Al ser desarrollado en Java es multiplataforma.
DBMonster (http://sourceforge.net/projects/dbmonster/).
DBMonster es una herramienta desarrollada en Java que genera datos de prueba al azar y los inserta en la base de datos SQL. Ayuda a realizar Stress test de la base de datos. Multiplataforma
SQLIOSim (http://support.microsoft.com/kb/231619).
La utilidad SQLIOSim se ha actualizado desde la utilidad SQLIOStress. La utilidad SQLIOSim simula los modelos de E/S de Microsoft SQL Server 2005, SQL Server 2000 y SQL Server 7.0 con más precisión. Solo para Windows
Hammerora (http://hammerora.sourceforge.net/).
Hammerora es una herramienta de generación de carga para las base de datos Oracle. Hammerora incluye las pruebas pre-construidas basadas en patrones estándares de TPC-C y de TPC-H. Disponible para Windows y Linux.
MultiMail 2.0 (http://www.codeproject.com/KB/applications/multimail.aspx).
MultiMail 2.0 es un programa de carga de smtp que también puede ser usado como herramienta práctica para el desarrollo del software contra-Spam. Solo para Windows.
X-Postal (http://www.coker.com.au/postal/).
Otra aplicación de Stress test para servidores de correo soporta smtp y pop. Que solo funciona en Linux.
Load Simulator 2003 (http://go.microsoft.com/fwlink/?LinkId=27882).
Load Simulator 2003 (LoadSim) simula el uso que realizan las conexiones de nuestros clientes MAPI. Loadsim determina si cada uno de nuestros servidores está preparado para soportar la carga de los clientes que queremos reunir en dicho servidor.
Exchange Stress and Performance (ESP http://go.microsoft.com/fwlink/?LinkId=27881).
Esta herramienta simula varias sesiones de clientes arbitrarias que están concurrentemente accediendo a uno o varios servidores de Exchange 2003.
ESP Provee módulos que simulan el acceso de clients bajo los siguientes protocolos y APIs:
- WebDAV (for Microsoft Office Outlook® Web Access).
- Internet Message Access Protocol version 4rev1 (IMAP4).
- Lightweight Directory Access Protocol (LDAP).
- OLE DB.
- Network News Transfer Protocol (NNTP).
- Post Office Protocol version 3 (POP3).
- Simple Mail Transfer Protocol (SMTP).
- Exchange ActiveSync®.
- Outlook Mobile Access.
Auditar y evitar, el impacto DDos y ataques de fuerza bruta.
Los ataques de denegación de servicios y fuerza bruta son los más típicos que puede sufrir un sistema, por eso se debe comprobar si el sistema está preparado para soportarlos y como se comporta ante dichos ataques. Para auditar el impacto de ataques de denegación de servicios DoS y denegación de servicios distribuido (DDoS) utilizaremos la herramienta Hyenae (http://hyenae.sourceforge.net/) para reproducir dicho ataque y estudiar el comportamiento del sistema. Hyenae es un generador de paquetes para realizar ataques DoS e incluye un demonio clusterable para ataques DDoS.
Entre sus características destaca:
- Ataques DoS ICMP-Echo (IPv4).
- Ataques DoS TCP (IPv4 e IPv6).
- Ataques DoS UDP (IPv4 e IPv6).
- Detección inteligente de la dirección y del protocolo de la dirección.
Los ataques de fuerza bruta suelen ser los más utilizados para atacar un servicio, ya que son los ataques más populares y fáciles de ejecutar con herramientas automatizadas. Existen dos herramientas para Linux y Windows para evitar este tipo de ataques en determinados servicios, bloqueando la IP del atacante. Por ejemplo, si un usuario falla más de 5 veces el login en SSH, bloquear dicha IP y el usuario.
En Linux.
Utilizamos la herramienta Fail2ban (http://www.fail2ban.org/wiki/index.php/Main_Page), su funcionamiento se basa en buscar en los registros (ficheros log) de los demonios y programas indicios de ataques. Una vez encontrado un ataque aplica las acciones que tiene configuradas. La acción más corriente es bloquear el usuario o la Ip en iptables.
El fichero de configuración es el «/etc/fail2ban/jail.conf». En este fichero se pueden definir las acciones en caso de ataque, existen parámetros como:
- ignoreip: IPs de nuestra área local que aunque se equivoquen en el login no serán bloqueadas y por tanto quedan excluidas de las acciones de Fail2ban.
- maxretry: Número máximo de intentos de login.
- bantime: Tiempo en segundos que el usuario que falló el login se quedara sin poder acceder al servicio especificado. Si se asigna el valor -1 será permanente.
- filter: Se utiliza para aplicar los filtro que incluye la herramienta en el subdirectorio «/etc/fail2ban/filter.d».
- destemail: Dirección de correo electrónico donde enviara las alertas.
- Todo las acciones realizadas por Fail2ban y las se registran en el archivo de log «/var/log/fail2ban.log».
Esta herramienta está disponible para las distribuciones: Slackware, ArchLinux, SUSE, Mandriva, Ipcop, Gral Linux, RedHat/Fedora, Ubuntu, Debian y Gentoo.
Con tres herramientas: BFD, APF y DDoS Deflate es posible mitigar ataques de fuerza bruta y denegación de servicios en servidores Linux.
APF (http://www.rfxn.com/projects/advanced-policy-firewall/).
Es un cortafuegos basado en iptables (netfilter) fácil de instalar y configurar, pero lo que lo hace indispensable es que es compatible con BFD y DDoS Deflate.
Configuración básica:
Una vez instalado su fichero de configuración se ubica en “/etc/apf/conf.apf”. En primer lugar se modifica la línea que le indica en que interface de red actuar en este caso eth0:
# Untrusted Network interface(s); all traffic on defined interface will be
# subject to all firewall rules. This should be your internet exposed
# interfaces. Only one interface is accepted for each value.
# NOTE: The interfacing structure is being worked towards support of MASQ/NAT
IFACE_IN=»eth0″
IFACE_OUT=»eth0″
Después es posible configurar los interfaces de red para que los ignore.
# Trusted Network interface(s); all traffic on defined interface(s) will by-pass
# ALL firewall rules, format is white space or comma seperated list.
IFACE_TRUSTED=»eth1″
Luego puertos TCP de entrada permitidos.
# Common ingress (inbound) TCP ports
IG_TCP_CPORTS=»80, 110,443″
Puertos UDP de entrada permitidos.
# Common ingress (inbound) UDP ports
IG_UDP_CPORTS=» 110″
Luego puertos TCP de salida permitidos.
# Common egress (outbound) TCP ports
EG_TCP_CPORTS=»80, 110,443″
Puertos UDP de salida permitidos.
# Common egress (outbound) UDP ports
EG_UDP_CPORTS=» 110″
Entradas ICMP permitidas:
# Common ICMP (inbound) types
# ‘internals/icmp.types’ for type definition; ‘all’ is wildcard for any
IG_ICMP_TYPES=»3,5,11″
Existen dos ficheros importantes para denegar el acceso “/etc/apf/deny_host.rules” y permitir acceso “/etc/apf/allow_host.rules” en ellos se pueden especificar IP, rangos, hosts…
BFD (http://www.rfxn.com/projects/brute-force-detection/).
Es un script diseñado para monitorizar los logs de servicios que corren en el servidor: ssh, apache,ftp… en busca de fallos continuos de autentificación o excesos de conexión por parte de una IP. Una vez detectado una anomalía BFD activa APF para bloquear la IP atacante.
Configuración básica:
Una vez instalado su fichero de configuración se encuentra en “/usr/local/bfd/conf.bfd”. Lo primero que se configura es el TRIGGER, que es el número de intentos de conexión fallidos que permite BFD antes de actuar.
TRIG=10
Después configurar el envió de notificaciones por email para cada evento de BFD. Poniendo el valor 1 para activar y 0 para desactivar.
EMAIL_ALERTS=1
EMAIL_ADDRESS=administrador@servidor.es
Si queremos que BFD ignore alguna IP a la hora de bloquer intentos de conexión podemos indicar la IP en el archivo “/usr/local/bfd/ignore.hosts”.
DDoS Deflate (http://deflate.medialayer.com/).
Se trata de un script que monitoriza las conexiones al servidor a través de Netstat y bloquea con APF aquellas que realizan un ataque de negación de servicios.
Configuración básica:
Una vez instalado su fichero de configuración se encuentra en “/usr/local/ddos/ddos.conf”. La primera configuración es la frecuencia de ejecución en minutos.
FREQ=1
Después número de conexiones máximas permitidas antes de proceder a bloquear IP:
NO_OF_CONNECTIONS=160
Luego configuración para uso de APF para bloquear IP. Si se pone 0 usaría iptables.
APF_BAN=1
Tiempo en minutos, en el que la IP atacante será bloqueada:
BAN_PERIOD=500
Dirección de email a la que notificar cuando actúa DDoS Deflate.
EMAIL_TO=” administrador@servidor.es”
En Windows.
Se trata de WinFail2ban (http://winfail2ban.sourceforge.net/), su funcionamiento está basado en Fail2ban de Linux pero es menos versátil. WinFail2ban se ejecuta como servicio y analiza los log de: SQL Server, FTP (IIS) y firewall XP en caso de ser un Windows XP. Buscando ataques de fuerza bruta y bloqueando las IP en el firewall o usando un falso enrutamiento. WinFail2ban también incluye la opción de enviar las alertas por correo electrónico.
Auditar y balanceo de carga para prevenir ataques DDos.
Para poder hacer frente al tráfico Web muchas veces los administradores de servidores Web tienen que implementar balanceadores de carga. Los balanceadores de carga ocultan muchos servidores web verdaderos detrás de una IP virtual. Reciben peticiones HTTP y las dirigen a los servidores web para compartir el tráfico entre ellos.
Con la herramienta Halberd (https://github.com/jmbr/halberd) permite descubrir los servidores que se encuentras detrás del balanceador de carga y auditar la seguridad de la configuración.
El modo de funcionamiento de Halberd se divide en tres etapas:
- Inicialmente, envía peticiones múltiples al servidor Web a auditar y registra sus respuestas. Esto se denomina fase de muestreo.
- Después, el programa procesa las contestaciones y busca muestras del equilibrio de carga. Esto se llama la fase de análisis.
- Finalmente, la Halberd escribe un informe de sus resultados. Halberd utiliza las siguientes técnicas:
- Comparación de la fecha. Las respuestas HTTP revelan el reloj interno del servidor Web que las produce. Si aparecen varios resultados con tiempos de reloj diferente, Halberd identifica número de servidores verdaderos. Este método funciona si los servidores Web no están sincronizados con un NTP.
- Diferencia de nombres de campo de las cabeceras del MIME. Las diferencias en los campos que aparecen en respuestas del servidor pueden permitir que la Halberd identifique los servidores.
- Generación de altas cantidades de tráfico. Bajo ciertas configuraciones, los balanceadores de la carga comienzan a distribuir tráfico, solamente después de que se alcance cierto umbral. Esta herramienta intenta generar un volumen de tráfico importante para accionar esta condición y alcanzar tantos servidores verdaderos como sea posible.
- Usando diversas URL. Un balanceador de carga se puede configurar para redirigir el tráfico a distintos servidores según la URL a la que se acceda. Esta herramienta utiliza una araña para navegar por las diferentes URL para diferenciar los distintos servidores que contestan.
- Detección de cache del servidor. Detecta si los servidores web utilizan cache para acelerar las peticiones con programas tipo Squid.
- Obtención de IP públicas. A veces las cookies o los campos especiales del MIME en respuestas del servidor pueden revelar direcciones IP públicas de los servidores web. En estos casos se puede puentear el balanceador de carga y acceder directamente al servidor web.