Stack SMS: ejemplo IoT con Raspberry Pi y actualización del repositorio

Ideas Locas, CDO de Telefónica    19 diciembre, 2019
Stack SMS: ejemplo IoT con Raspberry Pi y actualización del repositorio

Coincidiendo con la grabación del último Code Talks For Devs, el cual trata precisamente de Stack SMS IoT, hemos realizado una serie de actualizaciones en el repositorio GitHub de esta herramienta. En dicho talk, que pertenece a nuestra serie de webinars para desarrolladores, hemos hablado de la aplicación práctica de Stack SMS como posible solución a un ataque DDoS, creando un canal alternativo de comunicaciones en nuestra infraestructura. De esta forma, sería posible acceder al resto de los dispositivos que componen nuestra red IoT e incluso llegar a ejecutar acciones complejas directamente sobre ellos. Puedes obtener más información sobre Stack SMS y dicho ejemplo en este artículo que escribimos en el blog de Chema Alonso o en el paper publicado.

Implementando Stack SMS IoT con Raspberry Pi y módulo GSM

Implementación con Rasbperry Pi y módulo GSM de Stack SMS IoT.
Figura 1. Implementación con Rasbperry Pi y módulo GSM de Stack SMS IoT.

Resumiendo, la solución mostrada se basa en una Rasbperry Pi y un módulo (shield) de GSM que permite realizar acciones sobre dicha infraestructura simplemente enviando mensajes SMS desde una aplicación. Esta aplicación también la hemos implementado en Android la cual nos permite controlar los dispositivos desde el móvil. Este ejemplo es un buen punto de partida para que puedas crear tu propia implementación de Stack SMS sea cual sea el entorno o la aplicación que necesites ejecutar, ya que se muestra en detalle como interactuar y codificar y decodificar los SMS utilizando el SDK de Stack SMS.

Stack SMS en el repositorio de GitHub

Pues precisamente, este ejemplo que explicamos en el Code Talk es la principal actualización que hemos realizado al repositorio de Stack SMS. En la carpeta “examples” podéis encontrar ahora la implementación completa, tanto de la aplicación Android que mostramos como del código necesario para ejecutar Stack SMS como servidor en la Raspberry Pi. Dentro existen dos carpetas, una para la aplicación Android y su código fuente llamada SmsHomeStackApp y otra con la implementación para la Rasbperry Pi llamada sms-home-stack.

La carpeta sms-home-stack, es decir, la aplicación en Python para su utilización en una Raspberry Pi como ya hemos comentado, contiene varios ficheros que pasamos a describir brevemente:

  • sms_broadcaster.py: es el encargado de enviar el mensaje o las acciones a través de SMS, utilizando la codificación serie con el comando AT, como se puede apreciar en este ejemplo: ‘AT+CMGS=”{}”\r’
  • sms_layer_rasp.py: aquí podemos encontrar la implementación del layer (o capa) de Stack SMS. Recordemos que  es un protocolo que se encapsula según la aplicación que queramos controlar, en este caso orientado a la Raspberry Pi. En otras palabras, podríamos decir que esta sería la implementación de la capa de aplicación.
  • sms_stack_Controller: este módulo es el encargado de ir recibiendo y enviando los SMS. Utiliza varios métodos propios de Stack SMS como la gestión de un paquete/mensaje, si recibimos todo el stream de paquetes/mensajes de un hilo en concreto, etc. 
  • sms_stack_base.py:es la implementación principal que centraliza todas las peticiones y las gestiones de comunicación SMS. También es aquí donde se implementa la comunicación y la ejecución de los comandos que recibirá la Rasbperry Pi y el tipo de ejecución que realizará. Esta implementación se explica en detalle en el Code Talk antes mencionado.

La carpeta SmsHomeStackApp contiene el código fuente de la aplicación en Android que hemos utilizado para gestionar el envío y recepción de SMSs codificados con Stack SMS entre la Raspberry Pi y la aplicación, así como su decodificación.

Esquema de la solución usando Stack SMS en un ataque DDoS
Figura 2. Esquema de la solución usando Stack SMS en un ataque DDoS

Esperamos que la publicación del código de de este ejemplo os anime a experimentar con Stack SMS. Recordar que nuestra serie de Code Talks For Devs contiene otros proyectos interesantes como Stack SMS, así que no dudéis en echarle un vistazo.


#CodeTalks4Devs sobre StackSMS ya disponible

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *