29 abril 2011

Monitorizando nuestra reputación

Cuando hablamos del día a día de la gestión de la seguridad de la información en una entidad, empresa o grupo, estamos haciendo referencia entre otros al ejercicio de la ejecución y seguimiento de determinadas tareas. Cuando desarrollamos un plan de seguridad para una entidad, no pueden faltar por ejemplo la definición de la gestión de actualizaciones de seguridad en sistemas operativos y antivirus, backups de la configuraciones y datos, gestión de los registros de seguridad (logs), etc.

Este tipo de tareas son muy comunes, y como digo su presencia es crucial, deben estar claramente definidas en el calendario del equipo de profesionales encargado de gestionar la seguridad de la información en una empresa concreta.

Durante la última década con la llegada de nuevas tecnologías, el uso de Internet como medio donde hacer negocios, y consecuencia de esto, el nacimiento de un “crimen organizado” que intenta aprovechar la más mínima posibilidad de comprometer un recurso para ponerlo al servicio de sus propósitos, ha nacido la necesidad de integrar otro elemento dentro de las tareas habituales que dibujan la hoja de ruta del seguimiento del estado de la seguridad. Este elemento a integrar es el habitualmente conocido como “monitorización de la reputación”.

Entendiendo a nuestros nombres de dominios y direcciones IP publicas cómo lo que son, activos al servicio de nuestro negocio, es importante llevar a cabo una constante monitorización de la información con la cual éstos están relacionados. La presencia de nuestros nombres de dominios y direcciones IP publicas en una blacklist pública, malograría muchísimo nuestra imagen corporativa, y esto ya sabemos que finalmente puede materializarse en una pérdida de la oportunidad de negocio, y por ende de potenciales beneficios.

En un intento de establecer dichos controles, es muy común por parte de los administradores la suscripción al servicio de alertas de google, añadiendo sus nombres de dominio e IPs con ánimo de obtener la información relativa cualquier nueva publicación que contenga dicha información.

Otro elemento de uso común es la web http://multirbl.valli.org/lookup donde se puede ejecutar una consulta buscando entre más de 100 blacklists.



De entre las blacklist destacan las especializadas en la presencia de Malware en nuestros sitios web. A modo de ejemplo podemos encontrar información especifica en algunas de las siguientes direcciones:

En relación con todo esto he desarrollado una pequeña aplicación a modo de ejemplo de lo que podría ser un control de este tipo. La aplicación ejecuta los siguientes pasos:

1. Ejecuta una petición http al sitio www.malwaredomainlist.com para consultar la presencia de una IP concreta.
2. Discrimina en un función del tamaño en bytes de la respuesta.
3. Escribe un log en la salida de la consola que ejecuta la aplicación.
4. Se ejecuta continuamente, lanzando la petición y el análisis posterior cada 2 minutos.

El código está escrito en Python y el siguiente:

#!/usr/bin/env python
#-*- coding: UTF-8 -*-
# Se conecta a mdl y comprueba si nuestra ip esta en la lista negra 

import urllib2
import time

# funcion que comprueba de tamaño de la respuesta en bytes
def comprobar():
link = urllib2.urlopen("http://www.malwaredomainlist.com/mdl.php?search=80.24.165.210")
html = link.read()
if (len(html) == 6285):
print "Fecha comprobacion:" + str(time.strftime('%X %x %Z'))
print "Estado: OK"
print "tamaño en bytes:" + str(len(html))
else:
print "Fecha comprobación:" + str(time.strftime('%X %x %Z'))
print "enviar el mail"
print "tamaño en bytes:" + str(len(html))
time.sleep(20)

# ejecución constante 
while (1):
comprobar()




Como podéis comprobar el código ejecuta una consulta relacionada con la IP 80.24.165.210. Sí, sé que podría parsear la respuesta en lugar de comprobar su tamaño en bytes, sería mucho más fiable, podría enviar un correo cuando se produzca un positivo, añadirlo al Cron en lugar ejecutar un while 1 y hacer el sleep o lanzarlo en background y escribir en un fichero en lugar de en la salida de la consola. Además de que es mejor lanzar la consulta por ejemplo una vez al día en lugar de cada 2 minutos, entre otros para evitar que nos baneen, pero el script es solo una pequeña prueba de concepto para ilustrar la idea de lo que podría ser un control de la reputación de una IP concreta.

Finalmente comentar la existencia en el mercado de productos y servicios que nos dan este tipo de cosas hechas, obteniendo las alertas a través de la recepción de correos o mensajes SMS. Pero por otro lado esta claro que desarrollar y mantener una aplicación que monitorice la reputación de nuestros recursos, tampoco es una tarea imposible, y esto significa un interesante ahorro a la hora de establecer controles.

-----------

Contribución gracias a Sergi Roselló León

2 comments :

Srosello dijo...

Hay una errata en el enlace a la web del autor del artículo, no es www.sergirosello.com es sergirosello.com.

LaTOO dijo...

muy interesante realmente tense mucha razón en cuanto a que hay que establecer políticas claras de actualizaciones, donde trabajo le damos la suficiente importancia pero tenemos un problema que quizás sepas como resolver, una de las redes no tiene conexión a Internet, esta red es obligación ya que es solicitada por un tercero, la misma tiene una cantidad interesante de equipos, por el momento lo único que conseguimos es un actualizador desde una memoria externa.
Cual seria la mejor opción para que se descarguen automáticamente ?