MARCO ACTUAL DE

INCIDENCIAS EN
SEGURIDAD
INFORMÁTICA.

ÁLVARO PAZ.

11

Introducción.
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.
Según la AI (Asociación de Internautas) en España hay 15.000 ordenadores infectados por virus
"durmientes" que pueden ser activados en cualquier momento para realizar ataques organizados,
como el que le ha costado una multa de 1,8 millones de euros y 2 de años de prisión a Santiago
Garrido (condenado por un ataque de denegación de servicios DoS a IRC-Hispano, que en su
momento le prohibió la entrada al IRC por insultar en un canal).
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.

11

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.

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
11

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.

11

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/?id=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.
11

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).

11

• 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.

11

# 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.
11

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.
11

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(http://halberd.superadditive.com/) 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.

11