Este repositorio contiene todo el desarrollo del Trabajo de Fin de Máster. Por una parte contiene todos los scripts elaborados para realizar los análisis del proyecto. Por otro lado cuenta con la herramienta con interfaz de usuario para generar notificaciones.
-
Añadir los datos de Telegram en user_notify.py, esto habilitará las notificaciones.
-
Instalar los requisitos necesarios:
pip install -r requirements.txt
3.1. Para ejecutar la herramienta con UI, lanzar los siguientes comandos:
cd scrapers_python
go run ../cmd/main.go
3.2. Para realizar análisis sin UI, ejecutar user_notify.py
:
cd scrapers_python
python3 user_notify.py
/cmd
main.go: punto de entrada para la herramienta con UI
/internal
/database
database.go: gestiona las operaciones sobre la BD
/packages
packages.go: maneja la gestión de paquetes
/ui
ui.go: código de la interfaz de usuario
/scrapers_python
incibe.py: interactúa con el servicio de Alerta Temprana del Incibe.
latest.py: recoge los CVE más recientes de la NVD y hace las peticiones a los módulos.
qualys_searcher.py: interacciona con la Vulnerability Pipeline para checkear la existencia de un CVE.
qualys_tracker.py: utilizado para revisar el estado de CVE ya almacenados que no se encontraban en el Pipeline.
user_notify.py: matchea paquetes del usuario con CVE y envía notificaciones.
/metrics
/graphics
daydiff_extended.py: saca el análisis de tiempos entre asignación y publicación.
incibe_analytics.py: genera gráficos de analíticas sobre el servicio de Alerta Temprana.
qualys_diff.py: genera gráficas sobre el tiempo que tarda un CVE en añadirse al pipeline.
qualys_results.py: muestra diagramas de resultados de Qualys.
/extra
cveorg.py: scraper de la página cve.org.
telegram_mvd.py: código del primer *approach* utilizando grupos de Telegram y matcheando con la NVD.
telegram.go: scraper del grupo de Telegram en golang.