Monday, September 25, 2017
Un bot de Telegram protegido con Latch en un Datacenter
Un bot de Telegram protegido con Latch en un Datacenter
Como es sabido, una de las funcionalidades atractivas y muy utilizadas en Telegram es la posibilidad de crear e interactuar con bots. La API para crear bots de Telegram es p�blica y justamente por eso es posible encontrar much�simas implementaciones de bots creados para ella tambi�n de forma p�blica.
Un bot de Telegram es un programa que se ejecuta en un sistema propio (un sistema del tipo C&C) y que realiza las acciones que el usuario le solicite a trav�s de mensajes, llamados �ordenes�, enviados desde la cuenta del mismo Telegram por chat y con en el siguiente formato: /help, /ping, /lo_que_se_desee_hacer. Ya hemos visto ejemplos en varios art�culos aqu�:
Todo hace pensar que es ideal entonces para administraciones remotas. Sin embargo, a pesar de las ventajas de este modelo, existe un gran desaf�o al momento de querer crear un bot que brinde acceso a datos o servicios sensibles de una organizaci�n porque, por defecto, no se permite autenticaci�n y autorizaci�n de usuarios. Es decir, dada ciertas condiciones, cualquier persona puede agregarse a un grupo y acceder a datos sensibles del mismo.
Una posible soluci�n ser�a no utilizar bots para manipular informaci�n confidencial y, si bien este acercamiento es cierto en la mayor�a de los escenarios, deber�amos plantearnos �qu� sucede si realmente queremos maximizar los beneficios y posibilidades que brindan los bots para ejecutar tareas sencillas y repetitivas (aunque a�n confidenciales)?
Un bot de Telegram protegido con Latch en un Datacenter
El equipo t�cnico del DataCenter de Telef�nica de Argentina est� compuesto por personas que se hacen este tipo de preguntas y que intentan buscarles respuestas, y por ello crearon un bot que permite agregar un m�todo de autenticaci�n y autorizaci�n robusto mediante la utilizaci�n de una herramienta conocida por los lectores de este blog: Latch.
La soluci�n se basa en integrar un middleware para sistemas internos - sistemas de monitoreo, medici�n de consumos energ�ticos, temperaturas, sistemas de ticketing, etc�tera - con un bot de Telegram, que pueda ser consultado desde los tel�fonos m�viles del personal que, previamente, debe acceder a ellos mediante Latch que actuar� como Segundo Factor de Autorizaci�n.
Las ventajas son muchas. Una vez que el usuario se haya autenticado y aprobado su acceso, puede ejecutar tareas directamente sobre los sistemas internos del CPD y de esta manera se puede automatizar y acelerar el tratamiento de tareas rutinarias y repetitivas, minimizar el tiempo que un operador debe pasar dentro del centro o frente a una consola, garantizar que todas estas tareas son realizadas por personal autorizado.
Como siempre, existe una primera fase de alta y validaci�n de usuarios que ser�n agregados al grupo de Telegram y luego se usa Latch para evitar transmitir datos que tienen cierto nivel de sensibilidad, de forma no autorizada. Si un usuario �cierra� su Latch, la aplicaci�n informa que �alguien� ha intentado acceder a su cuenta y se bloquea el acceso. El proceso de creaci�n de esta interesante implementaci�n, ser�a de la siguiente manera:
Antes que nada registrarse en Latch como desarrollador y crear una aplicaci�n. Es bueno recordar que no es necesario brindar ning�n dato que nos relacione a una organizaci�n, el correo electr�nico o el tel�fono, los datos son solo representativos y sirven para obtener el Application ID y el Secret de la aplicaci�n creada. Ahora puedes gestionar hasta los permisos que quieres dar a cada Secret. En este ejemplo tienes un paso a paso de c�mo integrar una aplicaci�n web con Latch.
En el bot de Telegram se utilizan estos datos para procesar la validaci�n del usuario de Latch. En este caso el c�digo del bot propiamente dicho est� creado en Python por lo que es necesario descargar la el SDK Python correspondiente de Latch y luego realizar la autenticaci�n a trav�s de los datos obtenidos previamente (app_id y secret_key):
Una vez creado el bot de Telegram, se debe proceder a programar la integraci�n con Latch y agregar las ordenes que se desee que el bot lleve a cabo. El bot tiene una serie de par�metros y opciones que deber�n ser agregados y que servir�n para interactuar con el mismo. Por ejemplo, en este caso �/remedio� servir�a para descargar e instalar una actualizaci�n determinada en el sistema operativo.
Funcionamiento del bot de Telegram protegido por Latch
Ya con todo el desarrollo terminado, as� es como se ve la interacci�n del usuario (operador), para ejecutar tareas en el centro de datos a trav�s del bot de Telegram que se ha creado, protegido con Latch.
Y as� se ver�a el resultado al momento de cerrar el Latch para un usuario determinado, es decir, deshabilitar la autorizaci�n para que ejecute acciones y por tanto el bot no las ejecutar�.
Como puede verse, es sencillo crear un servicio que utilice un bot de Telegram para intercambiar informaci�n con un grupo de usuarios previamente autorizados con Latch y de esa forma potenciar el uso de ambas herramientas para realizar tareas sencillas, obteniendo un gran beneficio para todos. Por ejemplo, obtener el estado de un servidor o ejecutar un proceso urgente a distancia y, al mismo tiempo, proteger informaci�n sensible de la organizaci�n.
Autor: Claudio Caracciolo (@holesec)
CSA de ElevenPaths en Argentina
![]() |
Figura 1: Un bot de Telegram protegido por Latch en un Datacenter... |
Un bot de Telegram es un programa que se ejecuta en un sistema propio (un sistema del tipo C&C) y que realiza las acciones que el usuario le solicite a trav�s de mensajes, llamados �ordenes�, enviados desde la cuenta del mismo Telegram por chat y con en el siguiente formato: /help, /ping, /lo_que_se_desee_hacer. Ya hemos visto ejemplos en varios art�culos aqu�:
- Pi Guardian: Video-Vigilancia controlada por un bot de TelegramLos bots son una gran herramienta a la hora de querer difundir informaci�n entre miembros de un grupo de usuarios. Al utilizar Telegram como canal de comunicaci�n, se aprovecha del cifrado de la conexi�n del chat, y permite utilizar cuentas an�nimas, es decir sin la necesidad de identificar a los usuarios reales o a la organizaci�n que lo ha implementado. E incluso puedes seguir este blog "El lado del mal" por Telegram.
- Usar bots de Telegram para crear una botnet
- Controlar Sinfonier con un bot de Telegram
Figura 2: Demo de Pi Guardian controlado por un bot de Telegram
Todo hace pensar que es ideal entonces para administraciones remotas. Sin embargo, a pesar de las ventajas de este modelo, existe un gran desaf�o al momento de querer crear un bot que brinde acceso a datos o servicios sensibles de una organizaci�n porque, por defecto, no se permite autenticaci�n y autorizaci�n de usuarios. Es decir, dada ciertas condiciones, cualquier persona puede agregarse a un grupo y acceder a datos sensibles del mismo.
Figura 3: Demo de Sinfonier controlado por un bot de Telegram
Una posible soluci�n ser�a no utilizar bots para manipular informaci�n confidencial y, si bien este acercamiento es cierto en la mayor�a de los escenarios, deber�amos plantearnos �qu� sucede si realmente queremos maximizar los beneficios y posibilidades que brindan los bots para ejecutar tareas sencillas y repetitivas (aunque a�n confidenciales)?
Un bot de Telegram protegido con Latch en un Datacenter
El equipo t�cnico del DataCenter de Telef�nica de Argentina est� compuesto por personas que se hacen este tipo de preguntas y que intentan buscarles respuestas, y por ello crearon un bot que permite agregar un m�todo de autenticaci�n y autorizaci�n robusto mediante la utilizaci�n de una herramienta conocida por los lectores de este blog: Latch.
La soluci�n se basa en integrar un middleware para sistemas internos - sistemas de monitoreo, medici�n de consumos energ�ticos, temperaturas, sistemas de ticketing, etc�tera - con un bot de Telegram, que pueda ser consultado desde los tel�fonos m�viles del personal que, previamente, debe acceder a ellos mediante Latch que actuar� como Segundo Factor de Autorizaci�n.
![]() |
Figura 4: Configuraci�n de la app de Latch para controlar el bot de Telegram |
Las ventajas son muchas. Una vez que el usuario se haya autenticado y aprobado su acceso, puede ejecutar tareas directamente sobre los sistemas internos del CPD y de esta manera se puede automatizar y acelerar el tratamiento de tareas rutinarias y repetitivas, minimizar el tiempo que un operador debe pasar dentro del centro o frente a una consola, garantizar que todas estas tareas son realizadas por personal autorizado.
Como siempre, existe una primera fase de alta y validaci�n de usuarios que ser�n agregados al grupo de Telegram y luego se usa Latch para evitar transmitir datos que tienen cierto nivel de sensibilidad, de forma no autorizada. Si un usuario �cierra� su Latch, la aplicaci�n informa que �alguien� ha intentado acceder a su cuenta y se bloquea el acceso. El proceso de creaci�n de esta interesante implementaci�n, ser�a de la siguiente manera:
![]() |
Figura 5: C�digo para integrar Latch en nuestro bot de Telegram |
Antes que nada registrarse en Latch como desarrollador y crear una aplicaci�n. Es bueno recordar que no es necesario brindar ning�n dato que nos relacione a una organizaci�n, el correo electr�nico o el tel�fono, los datos son solo representativos y sirven para obtener el Application ID y el Secret de la aplicaci�n creada. Ahora puedes gestionar hasta los permisos que quieres dar a cada Secret. En este ejemplo tienes un paso a paso de c�mo integrar una aplicaci�n web con Latch.
![]() |
Figura 6: SDK de Latch para lenguaje Python |
En el bot de Telegram se utilizan estos datos para procesar la validaci�n del usuario de Latch. En este caso el c�digo del bot propiamente dicho est� creado en Python por lo que es necesario descargar la el SDK Python correspondiente de Latch y luego realizar la autenticaci�n a trav�s de los datos obtenidos previamente (app_id y secret_key):
![]() |
Figura 7: Control de ejecuci�n de �rdenes con Latch |
Una vez creado el bot de Telegram, se debe proceder a programar la integraci�n con Latch y agregar las ordenes que se desee que el bot lleve a cabo. El bot tiene una serie de par�metros y opciones que deber�n ser agregados y que servir�n para interactuar con el mismo. Por ejemplo, en este caso �/remedio� servir�a para descargar e instalar una actualizaci�n determinada en el sistema operativo.
Funcionamiento del bot de Telegram protegido por Latch
Ya con todo el desarrollo terminado, as� es como se ve la interacci�n del usuario (operador), para ejecutar tareas en el centro de datos a trav�s del bot de Telegram que se ha creado, protegido con Latch.
![]() |
Figura 8: El bot ejecuta el comando porque el Latch est� abierto |
Y as� se ver�a el resultado al momento de cerrar el Latch para un usuario determinado, es decir, deshabilitar la autorizaci�n para que ejecute acciones y por tanto el bot no las ejecutar�.
![]() |
Figura 9: Operaci�n denegada por el bloqueo de Latch |
Como puede verse, es sencillo crear un servicio que utilice un bot de Telegram para intercambiar informaci�n con un grupo de usuarios previamente autorizados con Latch y de esa forma potenciar el uso de ambas herramientas para realizar tareas sencillas, obteniendo un gran beneficio para todos. Por ejemplo, obtener el estado de un servidor o ejecutar un proceso urgente a distancia y, al mismo tiempo, proteger informaci�n sensible de la organizaci�n.
Autor: Claudio Caracciolo (@holesec)
CSA de ElevenPaths en Argentina
Sigue Un inform�tico en el lado del mal - Google+ RSS 0xWord

download file now