Si en nuestra organización disponemos de un IPS, cuando éste detecta un ataque suele filtrar de forma inmediata el tráfico proveniente de la dirección IP atacante; no obstante, si simplemente tenemos un IDS, una vez que nuestros sistemas de detección han detectado y notificado una actividad potencialmente sospechosa, la primera función que suele llevar a cabo el personal de seguridad es el filtrado manual de las conexiones en el firewall corporativo para, posteriormente, realizar un análisis más minucioso del ataque, una análisis forense e incluso, en caso de ser necesario, proceder a denunciar el hecho ante las FFCCSE.
En cualquier caso, la velocidad de respuesta a la hora de llevar a cabo el filtrado de la dirección IP que nos ataca es crítica, ya que cuanto más tiempo pueda tener acceso el atacante a nuestros sistemas, mayor será el daño que nos cause, por ejemplo dejando puertas abiertas para conexiones futuras o directamente robando información.

Aunque debemos tener perfectamente procedimentados y probados los pasos a seguir como respuesta a un ataque -o intento de ataque-, lo cierto es que durante esos momentos de ‘tensión’ lo primero que se suele hacer es, al menos, filtrar todo tipo de acceso desde la IP atacante a nuestros sistemas. En este post se va a tratar una forma rápida y sencilla para llevar a cabo el filtrado de conexiones sospechosas en sistemas firealls ASA de Cisco Systems, los cuales integran otros sistemas como VPN o IPS.

A la hora de integrar un IPS en el sistema ASA, lo habitual es contar con una tarjeta hardware dedicada en el propio equipo o con sensores distribuidos en la red que recopilan la informacion del ataque y envían las órdenes de filtrado al firewall. Puesto que asuminos que no tenemos este tipo de sistemas -si los tuviéramos, el filtrado sería automático, como hemos comentado-, podemos usar directamente la orden shun de ASA para filtrar direcciones concretas de forma cómoda; incluso mediante la creación de varios scripts, podríamos integrar un IDS como Snort con un firewall ASA.

El funcionamiento de la orden shun es sencillo. Su función es básicamente la de finalizar las conexiones ACTUALES y denegar las nuevas conexiones, basándose en una serie de parámetros como pueden ser la dirección IP origen, la dirección o puerto destino, el tipo de protocolo, etc. A su vez, también registra las conexiones filtradas hasta que las direcciones son habilitadas de nuevo en el firewall. Por ejemplo, si nuestro IDS ha detectado un potencial ataque desde una IP externa (para este ejemplo, tomamos la dirección privada 192.168.1.1) hacia nuestro servidor web (con dirección 10.20.20.1), podemos proceder a filtrar la IP externa en nuestro firewall:

ASA# shun 192.168.1.1
Shun 192.168.1.1 successful
401002: Shun added: 192.168.1.1 0.0.0.0 0 0
401004: Shunned packet: 192.168.1.1 ==> 10.20.20.1 on interface outside
401004: Shunned packet: 192.168.1.1 ==> 10.20.20.1 on interface outside
401004: Shunned packet: 192.168.1.1 ==> 10.20.20.1 on interface outside
401004: Shunned packet: 192.168.1.1 ==> 10.20.20.1 on interface outside
Comprobamos que hemos aplicado shunning IDS y aumentan los contadores de tráfico bloqueado:

ASA# show shun stat
outside=ON, cnt=134
inside=OFF, cnt=0
intf2=OFF, cnt=0
Shun 192.168.1.1 cnt=9, time=(0:00:10)
Si en un futuro necesitamos habilitar de nuevo el tráfico desde la dirección IP que hemos bloqueado, podemos hacerlo mediante la siguiente orden:

ASA# no shun 192.168.1.1
401003: Shun deleted: 192.168.1.1
Como vemos, Cisco ASA proporciona una orden rápida y sencilla para bloquear completamente a un atacante en nuestro cortafuegos. Aunque lo ideal es tener un sistema IPS que filtre los ataques de forma automática, en caso de que esto no sea posible, el filtrado manual se vuelve un proceso critico, por lo que debe ser procedimentado y conocido por el personal de seguridad. Y por supuesto debe ser probado de forma periódica, ya que como sabemos, los momentos de tensión son los peores para ponerse a probar…

Escrito por Jose Luis en http://www.securityartwork.es/2010/09/01/la-orden-shun/