
Una herramienta gráfica de análisis de seguridad para redes IoT
Aviso de archivo - Tras la finalización de mi grado de investigación, el repositorio ha sido archivado.
ASTo ha tenido un impacto significativo en mi investigación. Quiero expresar mi gratitud a todos los que ayudaron a mejorarlo.
Sin embargo, esto no es el fin. El desarrollo activo continuará en el repositorio de CyberLens's. Por favor, reporta problemas y solicitudes de funciones allí.
ASTo es una herramienta de análisis de seguridad para redes IoT. Está desarrollada para apoyar el marco de seguridad Apparatus. ASTo está basado en electron y cytoscape.js. Los iconos son proporcionados por Material Design de Google.
La aplicación está en etapa alfa. El enfoque ahora es mejorar la funcionalidad principal de la aplicación junto con la introducción de características adicionales, para alcanzar la etapa beta.
Algunas capturas de pantalla




ASTo tiene una consola de línea de comandos disponible en la esquina inferior derecha de la aplicación. Se obtiene el foco en la consola presionando la combinación de teclas cmd + l para macOS y ctrl + l para Windows/Linux. Si escribes help, se mostrará una lista de opciones de la consola.
La consola se puede usar para buscar objetos específicos en el grafo o realizar operaciones. Se usa texto sin formato como entrada de búsqueda. Por ejemplo, si escribes device, ASTo resaltará todos los nodos en el grafo que tengan la palabra device como atributo.
Todos los comandos de la consola deben ir precedidos por un :. Por ejemplo, escribir :insights ejecutará las funciones de información de seguridad. Por otro lado, escribir insights (sin el :) realizará una operación de búsqueda en los elementos del grafo con la palabra clave insights.
ASTo admite un tema de color claro y uno oscuro. Los temas de color se basan en One Dark y One Light de Atom. Para cambiar entre temas, usa el botón de alternancia en la esquina inferior izquierda.
Para clonar y ejecutar este repositorio necesitarás Git y Node.js instalados en tu computadora. Para descargar e instalar la aplicación, escribe lo siguiente en tu terminal:
# Clonar este repositorio
git clone https://github.com/Or3stis/apparatus.git
# Navegar al repositorio
cd apparatus
# Instalar dependencias
npm install
Diferentes modos de operación de la aplicación.
# Para ejecutar la aplicación en el modo predeterminado
npm start
# Para ejecutar la aplicación en modo desarrollador
npm run dev
# Para compilar la aplicación en binario
npm run dist
Debido a que la aplicación aún está en etapa de prototipo, es mejor mantenerse actualizado con los commits más recientes. Para ello, antes de iniciar la aplicación, escribe:
# dentro del directorio apparatus
# actualizar a la última versión
git pull
Una vez que la aplicación se inicia, la primera ventana (pantalla de inicio) te preguntará qué fase de modelado te gustaría usar. Después de seleccionar una fase, se te presentarán tres opciones. La primera es crear un nuevo grafo. La segunda opción es cargar un grafo existente. La tercera opción es la aplicación de depuración, que carga un grafo predeterminado utilizado con fines de depuración.
Encontrarás algunos grafos de ejemplo en la carpeta sample.
- Nota sobre el rendimiento. Si renderizas un grafo con más de mil nodos, dependiendo de tu hardware, podrías detectar algunos problemas de rendimiento. La razón es que el renderizado predeterminado de etiquetas de nodos y bordes en ASTo es bastante costoso. Renderizar etiquetas en nodos y bordes junto con flechas direccionales es costoso en CPU. Para mejorar el rendimiento, puedes ocultar las etiquetas y las flechas direccionales presionando el botón label.
Puedes encontrar más información sobre las optimizaciones de rendimiento de Cytoscape en este enlace.
El Software no recopila información personal de ningún tipo.
La única operación de red que realiza la aplicación es cuando se utiliza el proceso de identificación de vulnerabilidades. La identificación de vulnerabilidades realiza una solicitud de red a 'https://cve.circl.lu/api/search/' (se puede cambiar en la configuración), que mantiene sus propias analíticas.
Si quieres contribuir al proyecto, ¡genial 😃. Consulta la guía de contribución. La aplicación se está desarrollando en macOS. Esto significa que los nuevos commits podrían introducir cambios que rompan la funcionalidad en otras plataformas. Especialmente los commits que implican acceso al sistema de archivos. Si algo no funciona, no dudes en crear un issue.
Si quieres saber cómo funciona la aplicación, consulta la wiki.
Puedes consultar las funciones planificadas del proyecto en la hoja de ruta.
Un agradecimiento especial a @NOMNUDS y @nickarg que proporcionaron los comentarios tan necesarios en Windows.