Deflect es un servicio para ONG’s, grupos de sociedad civil, activistas y grupos de medios independientes, enfocado en mitigar ataques DDoS (ataques distribuidos de denegación de servicio). El servicio es open source y no tiene costo, el grupo detrás de este servicio es eQualit.ie, una ONG enfocada a brindar soluciones de seguridad digital.
Pero, ¿qué es un ataque DDoS y por qué debería preocuparme?
Un ataque distribuido de denegación de servicio, DDoS por sus siglas en inglés (Distributed Denial of Service), es un tipo de ataque informático enfocado en bloquear un servicio, en este caso un sitio web, el cual funciona realizando múltiples peticiones o solicitudes del sitio a tal punto que no es capaz de procesar todas las solicitudes y termina quedando fuera de servicio.
Este tipo de ataque es muy usual en la actualidad ya que las herramientas para realizarlos se encuentran al alcance de cualquier persona y son fáciles de operar. Estos ataques se suelen apoyar en redes de equipos infectados que trabajan para realizarlos sin saberlo, al realizar solo peticiones a los sitios, el trabajo que realiza un equipo infectado pasa desapercibido para el usuario o dueño del equipo.
Actualmente las soluciones que existen para mitigar este tipo de ataques suelen ser caras por el tipo de infraestructura que necesitan u ofrecen planes que van más allá de lo que un sitio de divulgación y/o defensa de algún tema suele requerir, por lo que no son accesibles para todos. Como ejemplo están los servicios CDN (Content Delivery Network) como pueden ser CloudFlare, Akamai, Incapsula, Amazon CloudFront o SiteLock, que ofrecen servicios para mitigar este tipo de ataques con distintos planes de pago y herramientas.
Por otro lado, levantar un sitio web es relativamente sencillo, por lo que cualquiera que lo desee puede hacerlo, la parte complicada es mantener un sitio con “buena reputación” que sea accesible por usuarios legítimos y esté disponible siempre que el usuario lo requiera.
El problema viene cuando el sitio contiene información que no es cómoda para un tercero y éste decide tomar acciones poco éticas en contra como un ataque DDoS, ya sea para mantener el sitio inaccesible o para intimidar e impedir que se mantenga la actividad y los costos o herramientas para defenderse no estén al alcance.
Deflect es recomendable para sitios que pueden estar expuestos a este tipo de ataques y entren bajo los criterios de elegibilidad de Deflect, algunos pueden ser defensores de derechos humanos, organizaciones civiles, medios independientes o personas que trabajen en cualquier grupo afín a estos temas y, por otro lado, Deflect se rehusa a trabajar o colaborar con grupos que vulneren la Declaración Universal de Derechos Humanos y/o promuevan discursos de odio o discriminación.
¿Cómo funciona Deflect?
Deflect funciona sobre una infraestructura robusta que utiliza múltiples servidores como respaldo “espejo” del sitio, esto significa que existe una copia almacenada en múltiples servidores y que cuando deseamos “ingresar” al sitio, realmente estamos ingresando a una de las copias que se encuentran en alguno de los servidores de Deflect, estos servidores son los que reciben el ataque por lo que el sitio “real” u “original” nunca se ve afectado y permanece anónimo u oculto al atacante.
Para que lo anterior pueda suceder es necesario realizar ciertas configuraciones en el sitio, en concreto es necesario apuntar el DNS del sitio a donde Deflect indique, DNS es el encargado de que al escribir “misitio.com”, nuestro navegador sepa a dónde dirigirse, esto es importante porque nuestro navegador o cualquiera que quiera acceder al sitio (por ejemplo un bot o un atacante) realmente se dirigirá a la copia existente en Deflect.
Es importante mencionar que para poder utilizar Deflect y configurarlo es necesario tener acceso a la configuración y cierta información técnica del sitio.
Configurar y utilizar Deflect
Registro
Como casi todo en la vida, lo primero es registrarnos. Para ellos debemos acceder a la url https://dashboard.deflect.ca/signup .
Después debemos proporcionar la url de nuestro sitio y un correo, opcionalmente podemos indicar si utilizamos llaves PGP para comunicación cifrada. Por default, el primer correo que nos llega de Deflect no está cifrado en caso de haber indicado que utilizamos llave PGP.
Una vez registrados recibiremos un correo de confirmación, abrimos el enlace para acceder a una página de activación e introducimos la contraseña que usaremos para nuestra cuenta.
Una vez introducida la contraseña (dos veces), se nos confirmará que nuestra cuenta está activa y podemos regresar al formulario para iniciar sesión.
Configurar IP y DNS
Al iniciar sesión accedemos al “Dashboard” que es un panel de control. En nuestro primer inicio de sesión se mostrará únicamente un botón para comenzar la configuración del sitio y otro botón para cancelar y eliminar el sitio que habíamos registrado. Damos click en “Start setup”.
Configurar IP
Se solicitará ingresar la dirección IP del sitio. En caso de no conocerla, podemos ingresar a http://ip-lookup.net/domain.php , donde se ingresa el nombre del sitio y se muestra la dirección IP que le corresponde.
Una vez que tenemos la IP del sitio, se ingresa y damos click en “Save IP”.
Configurar DNS
Con lo anterior, Deflect automáticamente ha localizado la configuración DNS el sitio. Se presentará una ventana para confirmar o editar la información detectada. A continuación se da una pequeña explicación de lo que se muestra en la configuración DNS.
A website.com 129.128.127.210 -> Corresponde al dominio a proteger, hace referencia al nombre del sitio web y a la dirección IP del mismo.
CNAME www.website.com -> Es un “alias” para el sitio, lo que es una variante del nombre del sitio, por ejemplo, “website.com” y “www.website.com”, hacen referencia al mismo sitio, solamente que el primero es el nombre del sitio y el segundo es un alias.
MX website.com mail.website.com -> Es el dato para el correo electrónico (MX), por ejemplo, user@website.com
A mail.website.com 129.128.127.210 -> Es el dato que permite que se puedan recibir correos electrónicos en el servidor del sitio. Está asociado al valor de MX.
NS ns1.website.com -> Es el “nameserver” de nuestro dominio, lo mejor para este valor es no cambiarlo.
TXT website.com ‘This is a test’ -> Corresponde a un archivo de texto que se ha asociado a nuestro dominio. Es recomendable dejarlo como aparezca.
Una vez corroborados los datos de nuestro DNS, damos click en “Save, my records are OK.”
Es importante decir que tanto la configuración de IP y DNS se tiene que hacer por cada dominio o subdominio que se desee proteger. Para añadir más sitios o subdominios solo se debe dar click en el botón “Add new website”.
Asociar la página de inicio de su sitio a Deflect (Opcional)
Usualmente la mayoría de los sitios de divulgación suelen crearse con alguna plataforma como WordPress, Drupal, o Joomla, si este es el caso del sitio, Deflect nos brinda la opción de proteger los accesos a estas plataformas en donde esta el sitio.
Para ello, aparecerá una sección de “Seguridad” en la cual se debe introducir una contraseña que se puede compartir con lxs demás usuarixs para que puedan iniciar sesión sin problemas, así como el link de acceso para iniciar sesión en el sitio, por ejemplo, en WordPress: /wp-admin, en Drupal: /admin, en Joomla: /administrator.
Se ingresan los datos (contraseña y enlace) y se da click en “Save password and url”. Si no se cuenta con sección de inicio de sesión como las que se han mencionado, simplemente se da click en “Skip, I don’t have an admin section”.
La próxima vez que desees iniciar sesión en tu sitio se solicitará la contraseña que ingresaste en el paso anterior. En caso que existan intentos masivos de inicio de sesión en tu sitio, Deflect se encargará de desviar y bloquear estas solicitudes mientras para que tu sitio se mantenga funcional y accesible a solicitudes legítimas.
Configurar HTTPS (Opcional)
Deflect nos permite configurar cifrado TLS proporcionando varias opciones de configuración.
Esto es opcional pero altamente recomendado. Para activar el cifrado desde Deflect es necesario que nuestro servidor original tenga soporte para HTTPS/TLS.
Lo primero que se debe indicar en la plataforma es si se desea o no utilizar una conexión cifrada a nuestro sitio.
En caso de que el servidor no soporte una conexión TLS se mostrará un mensaje solicitando que se active el soporte TLS en el servidor.
Crear certificado HTTPS
Para que las conexiones cifradas funcionen es necesario tener un certificado público. Deflect permite crear automáticamente un certificado de Let’s Encrypt de manera gratuita, también permite subir un certificado generado por terceros.
La asignación del certificado es un paso en el proceso de configurar un sitio por primera vez, si se quiere modificar posteriormente se puede hacer en la pestaña de “Security”.
Para utilizar Let’s Encrypt basta con seleccionar la opción “Use a free Let’s Encrypt certificate” y dar click en “Save TLS configuration”.
Para utilizar un certificado generado externamente basta con seleccionar “Upload a custom TLS certificate bundle”, subir los archivos requeridos y guardar la configuración.
Seleccionar configuración
Una vez creado un certificado, se debe elegir el tipo de configuración para las conexiones al sitio, las opciones disponibles son las siguientes:
Redirect all HTTP traffic to HTTPS – Es la solución más segura para “no-expertos”, Deflect hará todo para que las conexiones sean seguras. Es necesario que el servidor soporte cifrado TLS.
Both HTTP and HTTPS – Es recomendada si se desea conservar completo control de qué elementos son entregados por HTTP o HTTPS. Se debe utilizar si se quieren hacer otras configuraciones más adelante en el servidor.
HTTPS only – Esta opción solo permite tener acceso al sitio mediante HTTPS, puede causar algunos problemas ya que si el enlace desde el que se accede al sitio no contiene explícitamente “https://” no se podrá acceder al sitio.
Se elige la opción que más se adecua a sus necesidades y se da click en “Save”.
Apuntar DNS y finalizar
Todo lo anterior fue solo para registrar el sitio en Deflect. Una vez terminado lo anterior Deflect tendrá lo necesario para proteger el sitio, se recibirá un correo de confirmación para continuar el proceso.
Cuando se haya confirmado el correo la pantalla anterior cambiará a la siguiente.
Una vez confirmado, es necesario apuntar los DNS a los que se indica Deflect, una vez apuntados los DNS se selecciona “Done. NS settings saved”.
Los ajustes del DNS se realizan directamente con el proveedor de hosting quien es usualmente el que brinda el servicio DNS. Si no hay seguridad de cómo realizarlo se puede seleccionar “I’m not sure what this means” en donde se nos despliega un menú de ayuda. En caso de no comprender exactamente el proceso del DNS, se puede solicitar apoyo al equipo de soporte del proveedor de servicio de hosting o buscar en “Ayuda” o “FAQ” del proveedor.
Una vez apuntados los DNS a los de Deflect, hay esperar entre 1 y 48 horas para que esto se vea reflejado en internet.
Con todo lo anterior quedaría configurado un sitio para utilizar Deflect.
Panel de control
Una vez configurado el primer sitio, se puede acceder al “Dashboard” o panel de control.
Aquí se pueden añadir nuevos sitios (el proceso es similar al descrito anteriormente) o revisar el estado de nuestros sitios añadidos anteriormente (dando click en el nombre del sitio).
Podemos realizar otras acciones como configurar nuestra cuenta para añadir otros usuarios que puedan administrar los sitios, cambiar el idioma, reportar un incidente/ataque o solicitar soporte del equipo de Deflect.
Ayuda
En la sección de ayuda “Help” del “Dashboard” podemos levantar reportes ya sea de incidente o de solicitudes de soporte.
En caso de experimentar problemas con alguno de nuestros sitios o con la plataforma en general, podemos hacer click en “Report an incident” y llenar los datos que nos solicitan.
En caso de requerir apoyo para configurar un sitio o alguna opción de la plataforma, se debe dar click en “Support”, seleccionar el tipo de ayuda que se necesita y llenar los datos que se solicitan.
Reportar un ataque DDoS
En caso de que tener razones para creer que uno de los sitios ha sido atacado, para reportarlo hay que dar click en “Deflected websites” en el “Dashboard”, esto nos llevará a la interfaz de control de este sitio.
Lo siguiente es dar click en “My site is under attack”, esto se encuentra junto al nombre del sitio en la parte superior de la pantalla.
A continuación es necesario hacer click en “One of the above applies, my site is under attack” e inmediatamente el equipo de Deflect será notificado de que el sitio está bajo ataque y podrá tomar las medidas necesarias.