Martes, 03 Mayo 2011 00:36

Seguridad en Joomla! - Bloqueo de IPs/Rangos

Escrito por 
CMS:  Joomla! |  Versión:  Todas |  Nivel de dificultad:  Básico |  Tiempo estimado de lectura:  15 minutos


Seguridad en Joomla! - Capítulo II: Bloqueo de IPs/Rangos

Bloqueo de IPs/RangosQue Internet no es la panacea que todos esperamos, es algo bien sabido que nos obliga a imponer restricciones a veces no deseadas pero muy necesarias.

Desde un tiempo a esta parte cada vez es más habitual que los bots de spams o los propios spammers humanos se centren en sitios webs de uso masivo para divulgar sus contenidos molestos, sin sentido y que solo contribuyen a aumentar el trafico entre servidores y pc,s de usuarios lo que finalmente acaba, de paso, saturando en ocasiones servicios críticos y de enrrutamiento masivo de información.

Acabar con esta lacra es el objetivo de grandes organizaciones gubernamentales y empresariales, debido al coste que representa para la gestión de dichos datos a estas empresas y a los propios estados y no esta cerca precisamente su fin si nos guiamos por el aumento exponencial que estas indeseadas practicas tienen y no hay dispositivo fijo o móvil que se libre de sus ataques y consecuencias.

Poner barreras a esta proliferación no solo es tarea de empresas o corporaciones sino de cada usuario, ya que es una practica que nace del buen uso que de Internet deberíamos hacer en beneficio de todos y con el fin de mejorar no solo la calidad de la información sino su transito por la red.

Como usuarios y centrándonos en Joomla! podemos poner en marcha numerosas acciones para poner barreras al spam y en la medida de lo posible frenarlo, peor no solo al spam sino a quienes lo generan o distribuyen y también de paso a h·a·c·k·e·r·s y amigos de lo ajeno (hablando en términos digitales) que buscan dañar nuestro sitio web explotando vulnerabilidades o simplemente utilizando la fuerza bruta.

En el anterior capítulo de Seguridad en Joomla! vimos en líneas generales como establecer ciertas fronteras entre nuestras instalaciones de Joomla! y el mundo exterior para que estas no se vean afectadas tanto en su disponibilidad como en sus funcionalidades. Hoy veremos como comenzar con practicas sencillas pero eficaces para poner a raya a quienes perturban el buen funcionamiento de los sitios web que tanto trabajo y dinero nos cuesta sacar adelante.

SpamSi analizamos los datos que se manejan en Internet por entidades confiables, como INTECO, podemos ver que casi el 80% del tráfico de correos electrónicos a nivel mundial se corresponden con "spam" aunque cada vez mayor número de este es detectado a tiempo en niveles superiores (antes de llegar al usuario) y es filtrado o bloqueado, pero aun así sigue habiendo un porcentaje que no es rechazado y llega hasta nuestra bandeja de entrada. Algo parecido sucede con los ataques a sitios web, bien para la obtención de datos, defacing, o la instalación de shells que permitan el manejo de maquinas a nivel masivo para cometer ataques a mayor escala (botnets).

Analizando los datos que maneja uno de los sitios de referencia mundial desde hace varios años, como es Zone-H, podemos ver que en lo que va de año 2011 el número de ataques reportados a sitios webs (independientemente de la tecnología que manejen) es superior a los 200.000 o 300.000 ataques por mes, que aun pareciendo poco, es solo la punta del gran iceberg que conforma la red y sus huéspedes.

Esto nos da una idea del escenario en que nos movemos el cual podemos analizar en tiempo real desde la gráfica que nos ofrece Akami donde vemos la evolución de los ataques, al menos los reportados o detectados, donde la constante es que esto es un problema global y no solo de unos pocos y combatirlo no implica solo responsabilizar a ISP, o proveedores de Hosting, sino al propio usuario, quien como destinatario final tiene una gran responsabilidad tomando todas aquellas medidas de seguridad que estén al alcance de su mano.


¿Que podemos nosotros?

Si somos administradores o propietarios de sitios web auto-administrables con Joomla!, podemos tomar medidas encaminadas a frenar en la medida de lo posible cualquier tipo de ataque desde el momento en que se producen los primeros intentos de "captura de datos" por parte de los atacantes para no dar la posibilidad de que este llegue a ejecutarse.

Podemos combatir estos problemas implementando medidas:

- En nuestro PC:

  • Instalando buenas herramientas Antivirus y Cortafuegos.
  • Instalando herramientas adicionales para la detección de Malware, Spyware, etc.
  • Instalando herramientas adicionales para la detección de herramientas de Hijacking y Keylogers.
  • Evitando instalar aplicaciones poco seguras que incluyan programas dañinos ocultos.
  • Teniendo una política de copias de seguridad real y verificada.

- En nuestro sitio web Joomla!:

  • Instalando un Firewall (RSFirewall).
  • Instalando extensiones que permitan bloqueo de IP/Rangos.
  • Monitorizando las conexiones reales (si somos administradores de múltiples sitios es viable).
  • Manteniendo el core de Joomla! actualizado y las extensiones en uso.
  • No instalando extensiones obsoletas o vulnerables.
  • Llevando una rigurosa política de Copias de Seguridad.


Bloqueando al enemigo

En cualquier manual de seguridad informática una de las primera cosas que se enseña es que la prevención es la regla que por defecto debemos tener siempre presente y esta tiene que ser puesta en marcha desde los primeros momentos, aun cuando el proyecto web se esta gestando, de esta forma terminará formando parte del procedimiento cotidiano de trabajo en el sitio web y no sera un simple añadido.

Cada actuación dentro del sitio es bueno analizarla y estudiar a que otros elementos implica en su ejecución para comprender mejor su funcionamiento y poder actuar en caso de necesidad, es en los momentos críticos (detección de un ataque) cuando todas estas medidas toman sentido y nos ayudan en la toma de decisiones para "mantener la calma" y "garantizar la estabilidad del sitio web" sin perder los nervios.

Para ello debemos sentir que un ataque a un sitio web nuestro o de clientes que gestionemos es un ataque a nuestra integridad, intimidad y recursos personales y como tal debemos asumirlo para poder combatirlo con la misma dureza o medidas que lo haríamos si un "amigo de lo ajeno" entrase en nuestra vivienda o negocio para apropiarse de nuestras pertenencias, a fin de cuentas esto es una extensión de nuestro trabajo o aficiones en la mayoría de los casos.

Lo habitual es que cualquier persona "h·a·c·k·e·r" o "bot" que busque perjudicar un sitio web, lo primero que haga sea una enumeración para estudiar el escenario y detectar las posibles vulnerabilidades del sitio a atacar, y esa acción es importante monitorizarla para detectarla y eludirla.

Extensiones como RSFirewall, Anti-Hacker, jomDefender, jHackGuard y otras muchas nos van a permitir distintos tipos de monitoramiento y obtención de datos para poder establecer medidas de protección acordes al problema detectado.

RSFirewall

Anti-Hacker

jomDefender

jHackGuard

Partimos de un escenario en el que tenemos instalado RSFirewall el cual hemos configurado para que nos informe de los accesos "fallidos", "correctos" o "ambos" al backend (/administrator) y nos envíe un email con los datos recabados (fecha/hora, IP, resultado). Con estos datos ya podemos elaborar una estrategia que pasará por el estudio previo del atacante, labor que en apenas 2 minutos podemos realizar. Lo ilustramos en el siguiente ejemplo:

Recibimos un correo con los siguientes datos procedente de la extensión RSFirewall (datos simulados):

Website: http://www.teruelnoticias.es/
Page: /administrator/index.php?option=com_checkin
Description: There was an attempt to access a forbidden option in the backend.
Alert level: medium
Date of event: 27.04.2011 04:10:08
User IP: 81.212.220.118

A partir de la IP analizamos su procedencia desde la url http://ip-address-lookup-v4.com/ en el campo "Lookup IP Information" lo que la situa en Ankara (Turquia). Usando la lógica podemos deducir que si nuestra web está orientada a ofrecer noticias de la ciudad de Teruel, aparentemente no tiene mucho sentido que nos visiten de Turquia y mucho menos que traten de acceder a nuestro backend (administrador de Joomla!), por lo que la adopción de una medida preventiva en este caso sera lo aconsejado.

Sin dejarnos llevar por la paranoia a la que a veces nos vemos inducidos ante estas situaciones, deberíamos considerar antes de bloquear algún servicio, IP, etc., si se trata de un caso aislado o es algo reiterativo en un periodo de tiempo relativamente corto.

- 1 aviso de RSFirewall de 1 IP tratando de acceder no debe ser considerado como una alerta peligrosa, solo como un aviso de atención y vigilancia.

- 32 avisos de RSFirewall en una franja de 3, 5 o 15 minutos ya estan delantando que se trata de una enumeración o analisis para posteriores ataques.

Partiendo de la base del segundo caso y teniendo documentada la IP o Rango de IPs ya podemos pasar a la segunda fase de este escenario: bloqueo de IPs o Rangos.


¿Que es un bloqueo de IP y como realizarlo en Joomla!?

El bloqueo de una IP es el acto por el cual añadimos la IP de la que recibimos intentos de ataques reiterados, enumeraciones de equipos o webs, a una lista negra (Black List) la cual es consultada por determinadas aplicaciones para ejecutar bloqueos y no permitir el acceso a nuestros servicios o máquinas de la lista de IPs o Rangos ahi recogidos.

En Joomla! podemos realizar bloqueos de IPs de forma directa y rápida interviniendo en el archivo .htaccess que normalmente se encuentra localizado en la ruta /public_html con la sintasix siguiente:

########## Bloqueo de IPs
< Limit GET HEAD POST >
order allow,deny
deny from 78.174.252.50
deny from 190.40.69.113
deny from 78.170.49.184
deny from 88.224.20.115
deny from 81.212.220.118 <--- IP Turca añadida
allow from all
< / Limit >
########## end Bloqueo de IPs

Esto nos va a permitir filtrar dicha IP, la cual no podrá acceder ni al backend ni al frontend de nuestra web, por lo que inicialmente reducimos el número de posibilidades de que el "intruso" trate de entrar o atacar el sitio.

Lógicamente como todo en la seguridad, tiene una limitación y un alcance, y si el "intruso" utiliza un proxy o multiproxy (o reinicia el Router) será fácil que dicha IP cambie aleatoriamente, lo que también generará numerosas entradas en breves periodos de diferentes IPs en el log de RSFirewall.

Otra forma de bloquear IPs e ir añadiendo aquellas que la extensión de control de accesos que utilicemos nos reporte es con extensiones como "Ban IP" de Sam Moffatt la cual gestiona Listas Blancas y Listas Negras de IPs para el frontend y el backend de Joomla! permitiendo discriminar donde se produce el bloqueo y son algo menos restrictivas que la entrada en htaccess.

Ban IP

Esta extensión la podemos encontrar en el JED y descargarla de forma gratuita desde la opción Instalar/Desinstalar del backend de Joomla! y posteriormente activarla desde el Gestor de Plugins.

En el siguiente vídeo explicamos como instalar el plugin y como añadir las IPs obtenidas de RSFirewall, JSecure u otros para que sean bloqueadas. Cabe decir que esta opción de bloqueo de IPs también podemos encontrarla en RSFirewall, pero teniendo en cuenta que es una extensión de pago, hemos optado por documentar este capítulo de "Seguridad en Joomla!" con el plugin Ban IP.



Tras ver este vídeo podemos darnos cuenta de la importancia que tienen en Joomla! las medidas preventivas que nos ayuden poco a poco, de forma controlada a evitar males mayores, pero destacando que es la suma de muchas y variadas acciones las que darán los resultados deseados y garantizarán que nuestros sitios web sean realmente "sitios protegidos".

No podemos dejar a un lado en este capítulo mencionar la prevención que ya de por si toman los proveedores de Hosting como implementación de firewall's de red, firewall's de aplicación como modsecurity, protección de PHP como SUPHP, SUHOSIN, etc., encaminadas a ser la primera línea de protección entre Internet y su servidor web, pero no debemos descansar toda la responsabilidad en ellos y tomar medidas que no perturben a las adoptadas por los administradores de sistemas del Hosting donde nos alojemos formarán parte de un frente común contra quienes tratan de atacar nuestros sitios web.

Sitios recomendados:

Country IP Blocks (Muy recomendado)

INTECO (Cert)

Akami - Tráfico de Ataques



¿Te ha resultado interesante este artículo?

Suscríbete para recibir consejos exclusivos para WordPress, Joomla y PrestaShop



Luis Méndez Alejo

Miembro del equipo técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Google+