Hackobot, cazando sospechosos

hackobotLas amenazas cyber-terroristas cada día toman más importancia; por ello, muchos países desarrollan su defensa en dos frentes diferentes: el frente clásico, de fronteras, aviones y soldados; y el ciberespacio.

En base a esta premisa, hace un año desarrollamos Hackobot, un proyecto en colaboración con Telefónica y el equipo de Sinfonier para tratar de detectar actividad cyberterrorista y ciberactivista en Internet. Hackobot se apoya en tres pilares para procesar datos de diferentes fuentes (páginas de paste como Pastebin, redes sociales como Facebook y Twitter, y el chat más conocido de Internet, IRC), mantener conversaciones sencillas con sospechosos, interactuar en las redes sociales y generar bots dinámicamente. Estos pilares son el (1) Sistema de monitorización, procesamiento y filtrado de datos, (2) Sistema de interacción automática y finalmente, el (3) Sistema de generación automática de cuentas.

En este proyecto combinamos tecnologías de procesamiento masivo de datos, Procesamiento de Lenguaje Natural (NLP en sus siglas inglesas), Aprendizaje Automático y mucho web scrapping. En este post vamos a describir las herramientas principales que han dado vida a Hackobot.

Para que Hackobot procesara datos casi en tiempo real, de forma escalable y tolerante a fallos utilizamos Apache Storm, un framework para procesar streams de datos de forma distribuida y tolerante a fallos. Storm es parte del paradigma stream processing, que trata de procesar “unidades de datos” según se van generando; de esta forma a medida que Hackobot va capturando nuevos tweets, entradas en Pastebin etc, podemos procesarlos de forma individual, filtrando con listas blancas y negras, expresiones regulares y modelos de aprendizaje automático posibles actividades sospechosas.

Estos filtros de aprendizaje automático se crearon con la herramienta WEKA. Con esta herramienta podemos generar modelos que detectan actividades sospechosas e introducirlos en nuestro sistema de monitorización, de esta forma, conseguimos descartar la información irrelevante.

El procesado de datos por sí solo no es suficiente, y aquí es donde entra el paradigma del NLP. Por un lado, gracias al reconocimiento de entidades nombradas podemos hacer que una máquina detecte que el string ‘Irene’ se refiere a una persona y ‘Universidad de Deusto’ a un lugar. Con el framework NLTK  conseguimos crear modelos para detectar nuevas entidades en el texto procesado, de esta forma Hackobot es capaz de detectar nuevos sospechosos y centrar la monitorización en ellos. Por otro lado, generamos un sistema conversacional basado en el antiguo ELIZA, que trataba de camuflar a nuestros bots dándoles aires conversacionales humanos, así como tratar de sonsacar información a los sospechosos.

Irene Díez
Acerca de
Investigadora de DT
Expertise: Operating systems, program analysis

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.