martes, abril 05, 2022

"Cognitive Services & Cyber Security: Ideas Locas": Draw Your Web, Your Infra & Your Pentesting

Como con el resto de los sistemas tecnológicos, también se pueden utilizar los Cognitive Services para crear interfaces basados en NLP (Natural Language Processing) o Artificial Vision, y con esta premisa diseñamos hace tiempo unas Pruebas de Concepto que terminaron en una solicitud de patente para dibujar interfaces de usuario web, diseños de infraestructura y, para nuestra querida RootedCON, procesos de pentesting en base a algo que hacemos mucho: Dibujar en una pizarra.

Figura 35: "Cognitive Services & Cyber Security: Ideas Locas".
Draw Your Web, Your Infra & Your Pentesting

El proyecto, inicialmente se llamó Draw Your Own Web, pero posteriormente lo fuimos migrando al resto de opciones que le fuimos incluyendo. Y al realidad es que hoy en día se puede aplicar a casi cualquier construcción tecnológica. Al final, es educar a un Cognitive Service a reconocer gráficos, escritura natural, o formas dibujadas en una pizarra, y con la lista de elementos reconocidos, realizar acciones.

Draw Your Web

La idea es tan sencilla como tener un dibujo en una pizarra, que pueda ser reconocido por una Cognitive Service de Visión Artificial, que localice los objetos y reconozca los controles de la web que estamos dibujando para luego procesarlos.

Figura 36: Dibujo de prueba para hacer una web

En nuestra Prueba de Concepto de Draw Your Web no utilizamos la Webcam en tiempo real, sino que una vez hecho el dibujo en la pizarra, se hace una foto y se sube a la web que hemos creado, que utiliza el Cognitive Service para reconocer los elementos.

Figura 37: Draw Your Web

Una vez acabado el procesamiento de la imagen, y reconocidos los elementos, se muestra la web que se ha reconocido desde el dibujo, y se hace una previsualización para que desde ahí se pueda descargar la web en un formato con el que se pueda trabajar.

Figura 38: Previsualización de la web creada

Una vez descargado, como podéis ver, se tiene una estructura básica de una web con la que se puede trabajar para conseguir acelerar el proceso. Es como un WSYIWYG, pero desde los dibujos en la pizarra o en papel que se hacen las reuniones.

Figura 39: Ejemplo de la web abierta

En este pequeño vídeo tenéis el proceso completo que os acabo de describir, para que veáis en qué consiste la prueba de concepto.

Figura 40: Vídeo de la PoC de Draw Your Web

Esta prueba de concepto utiliza como componentes,  Sketch to Code de MicrosoftOpenCV para el reconocimiento de los dibujos realizados en papel y luego Tensorflow y Keras para la creación y entrenamiento de las redes neuronales. 

Figura 41: Arquitectura de Draw Your Web

Por último se utiliza Flask, para crear las páginas y usamos el lenguaje de programación Python. En este trabajo no solo se crean los ficheros y componentes necesarios para el FrontEnd, sino que también se hace el trabajo para el BackEnd.

Draw Your Infra: DB, Red Neuronal & Cloud

Con la misma filosofía, extender las funcionalidades de esta tecnología a Bases de Datos e Infraestructura en general era bastante evidente, así que comenzamos a hacer funcionalidades para arquitecturas Cloud, para Redes Neurolanes o para Bases de Datos.

Figura 42: Draw Your Web & Draw Your DB

En todos los casos el funcionamiento consiste en elegir cuáles son los tipos de dibujos que vas a usar para representar los componentes, entrenar tus modelos de Visión Artificial para reconocerlos, y después establecer las acciones a realizar para cada uno de esos elementos recogidos.

Figura 43: Draw Your Cloud & Your Neural Network

Un trabajo que puede parecer un poco engorroso, pero que ayuda a definir interfaces de trabajo con la tecnología muy sencillos. Al final, se trata de hacer una especia de "Visio" pero con las pizarras y los papeles, algo que parece bastante probable que va a ser una forma en el futuro de trabar con la tecnología.

Draw Your Pentesting

Y por qué no, una vez que teníamos ya creado todo el sistema porque no diseñar un modelo para poder reconocer comandos de pentesting en un pizarra - en este caso con escritura natural - para poder crear los scripts de lanzamiento de pruebas de hacking ético.

Figura: 44: Draw Your Pentest: SQLMap

Para ello hicimos un par de pruebas, con SQLMap y con Nmap, con el objetivo de enseñarlo en la pasada RootedCON, y metimos también la ejecución automática, con lo que si se quisiera se podría estar lanzando un pentesting directamente desde una pizarra.

Figura 45: Draw Your Pentesting: Nmap

Como podéis ver, son todo IdeasLocas para trabajar con los Cognitive Services en entornos de creación de tecnología, arquitectura y pruebas de seguridad aprovechando los interfaces de visión artificial. Lo que hagas con ellos, lo decides tú. Es así de sencillo.

¡Saludos Malignos!

*****************************************************************************************
*****************************************************************************************

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario