Tableau de bord des données brutes issues de plusieurs outils qui évaluent une URL et les repositories associés
L'acquisition des données ainsi que la génération du rapport sont automatisés par des GitHub actions
Démo : https://socialgouv.github.io/dnum-dashboard
Pour déployer votre version de DashLord :
- Créer un nouveau repository à partir du template dashlord
- Éditer le fichier
dashlord.yml
- Éditer le fichier
scans.yml
- Lancer
DashLord scans
dans l'ongletActions
de votre projet GitHub
Une fois les scans terminés, un rapport sera généré dans la branche gh-pages
du repository. Vous devez aller dans l'onglet Settings
du repository pour activer la fonctionnalité "GitHub Pages" et choisir la source gh-pages
. Ceci permet de publier le rapport sur https://[organisation].github.io/[repository]
(publiquement).
- Le workflow
DashLord scans
permet de lancer un scan sur les URLs, il est executé lors d'un changement dans le fichierdashlord.yml
- Le workflow
DashLord report
est lancé à la fin de chaqueDashLord scans
et produit le rapport sous forme de site web.
Ces workflows sont également déclenchables manuellement dans l'onglet "Actions"
- Le fichier
dashlord.yml
permet de paramétrer les urls et quelques options du tableau de bord - Le workflow
scans.yml
permet d'activer/désactiver certains scanners - Le workflow
report.yml
permet de modifier le rapport généré en se basant sur SocialGouv/dashlord-report-action.
title: Dashboard title
# `tools` allows to activate only some of the tools in the report
tools:
- lighthouse
- testssl
- updownio
urls:
- url: https://www.free.fr
title: Homepage free.fr
tags:
- telecom
- provider
repositories:
- free/free-ui
- free/free-css
- url: https://www.lemonde.fr
title: Homepage lemonde.fr
tags:
- presse
Chaque outil peut être activé/désactivé dans le rapport avec la clé tools
de dashlord.yaml. Les outils dans le fichier scans.yaml
doivent refléter cette configuration.
id | outil | description |
---|---|---|
lighthouse | Google Lighthouse | Audit automatique de page web (best-practices a11y, webperf, seo...) |
zap | OWASP Zed Attack Proxy | Scan de vulnérabilités passif "baseline" |
testssl | testssl.sh | Évaluation du niveau de confiance d'un certificat SSL |
http | Mozilla HTTP observatory | Évalue le niveau de qualité/sécurité de la page web et de son serveur |
thirdparties | Third parties | Liste tous les cookies et scripts externes |
- | GeoIP2 | Géolocalisation des ressources de la page web |
nuclei | Nuclei | Détection d'erreurs de configuration courantes |
wappalyzer | Wappalyzer | Détection des technologies web, Javascript, CMS, outillage... |
updownio | UpDown.io | Monitoring d'uptime et performance |
dependabot | Dependabot security alerts | Alertes de vulnerabilités |
Vous pouvez contribuer en remontant des issues de qualité, en améliorant la documentation, ou en ajoutant du code.
🤗 Toutes les suggestions sont bienvenues.
DashLord fonctionne en deux étapes :
- Acquisition des données : Pour chaque URL, chaque outil est executé et génère un fichier JSON qui sera versionné dans le repository
- Génération du rapport : À partir des données existantes, l'action dashlord-report-action aggrège, compresse les résultats et produit un rapport web statique.
Repo | desc |
---|---|
SocialGouv/dashlord-report-action | action to aggregate scanners data and produce a web report |
SocialGouv/dashlord-nuclei-action | Dump nuclei result |
SocialGouv/dashlord-httpobs-action | Dump Mozilla HTTP Observatory result |
SocialGouv/thirdparties-action | Dump third party scripts scan result |
SocialGouv/wappalyzer-action | Dump Wappalyzer scan result |
MTES-MCT/dependabotalerts-action | Dump Github dependabot security alerts |
MTES-MCT/updownio-action | Dump updown.io stats |
SocialGouv/thirdparties | thirdparty scripts database |
SocialGouv/dashlord-init-action | action that parse the configuration for a job matrix |
SocialGouv/dashlord-save-action | aggregate all scanners data and saves it locally |
- Créer une action github qui produit un JSON (cf exemple ci-dessus)
- Ajouter le support pour ce type de données dans dashlord-report-action repo