Utilizando Sinfonier para visualizar redes inalámbricas inseguras en México

·3 min de lectura
big datacomputo distribuidodata visualizationsinfonierwifi

Durante la pasada edición del Campus Party México decidimos formar un equipo y registrarnos al reto de seguridad de Movistar. La experiencia fue buena y tuvimos la oportunidad de ser beta testers de éste nuevo producto de Telefónica llamado Sinfonier.

Descripción de Sinfonier

La descripción de su sitio web dice lo siguiente:

Sinfonier provides a human cloud of analysts with a secure and open environment,
to graphically build high-level Apache Storm topologies, and execute and
share them for a definable period of time.

En mis palabras yo describiría Sinfonier como una herramienta que ofrece una interfaz estilo Yahoo Pipes para desplegar topologías de Apache Storm fácilmente. El objetivo de Sinfonier es ayudarnos a procesar y analizar fuentes de datos a nuestra disposición para convertirlas en inteligencia con ayuda del poder del cómputo distribuido. Una herramienta muy valiosa para cualquier analista de seguridad.

editor sinfonier

\

Nuestra topología

Utilizamos Sinfonier para realizar un panel de visualización que nos ayude a generar estadísticas de redes inalámbricas inseguras en México. Para llevar a cabo esto utilizamos los componentes que describiré a continuación.

Componentes

Sinfonier introduce un nuevo componente llamado “Drain” que tiene como objetivo el almacenamiento de información para su visualización. Si no están familiarizados con los componentes de Apache Storm pueden leer más aquí sobre ellos.

Spout: RSS feed

éste spout lee un RSS feed según el intervalo de tiempo definido. Acepta dos argumentos: URL y frecuencia de lectura.

Bolt: Filter

El bolt sirve para poder aplicar las siguientes comparaciones a las tuplas procesadas para filtrar resultados. Adicionalmente permite la ejecución de múltiples reglas dentro de cada instancia del módulo. Las operaciones soportadas son:

  • <
  • <=
  • >
  • >=
  • ==
  • !=
  • match
  • contains
  • not contains

Bolt: Counter

éste bolt simplemente tiene el objetivo de incrementar un contador por cada tupla procesada. Este módulo lo tuvimos que desarrollar y el código es tan aburrido como solo un contador puede ser: https://gist.github.com/cldrn/60248b4c29bc6cdf4003. Sin embargo, algo importante de éste módulo es que Sinfonier permite su ejecución deshabilitando paralelismo para poder cumplir el objetivo de llevar un contador global.

Drain: DucksBoardBars

El drain DucksBoardBars utiliza la API de DucksBoard para crear gráficas de barra.

\

Drain: DucksBoardMap

éste drain utiliza la API de mapa de DucksBoard para representar geográficamente la información que deseemos.

Drain: DucksBoardTimeline

El drain DucksboardTimeline publica en una línea de tiempo la información deseada.

Drain: LogIt

El drain LogIt sirve para imprimir en la consola de depuración de Sinfonier.

Construyendo nuestra topología

Primero utilizaremos el spout de RSS feed como fuente de datos y lo procesaremos con una sencilla secuencia de bolts que nos dará como resultado final las tuplas pertenecientes a redes inalámbricas abiertas o con cifrado WEP y un conteo de ellas.

Las tuplas que sean procesadas se enviarán a los diferentes drains que conforman el tablero de visualización de nuestra información.

Nota: Aquí no pudimos incluir las dos reglas de los filtros correspondientes a WEP y sin cifrado en la misma instancia del módulo debido a un bug que existe actualmente. Los desarrolladores de Sinfonier ya están trabajando en repararlo.

\

Resultado final

Finalmente nuestra topología queda de la siguiente manera:

Y así se ve nuestro tablero de visualización:

Registro a Sinfonier

Por el momento el producto se encuentra en etapa beta pero si les ha interesado este proyecto, pueden solicitar una invitación desde la siguiente dirección:

[http://sinfonier-project.net/

](http://sinfonier-project.net/)

Otros módulos desarrollados

Ligas relacionadas