Tableau de bord des données brutes aggrégées de plusieurs outils qui évaluent une URL.
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/dashlord
Pour déployer votre version de DashLord :
- Créer un nouveau repository à partir du template dashlord
- Éditer le fichier
dashlord.yml - Lancer
DashLord scansdans l'ongletActionsde 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 scanspermet de lancer un scan sur les URLs, il est executé lors d'un changement dans le fichierdashlord.yml - Le workflow
DashLord reportest lancé à la fin de chaqueDashLord scanset produit le rapport sous forme de site web.
Ces workflows sont également déclenchables manuellement dans l'onglet "Actions"
- Le fichier
dashlord.ymlpermet de paramétrer les urls et quelques options du tableau de bord - Le workflow
scans.ymlpermet d'activer/désactiver certains scanners - Le workflow
report.ymlpermet de modifier le rapport généré en se basant sur SocialGouv/dashlord-report-action.
| outil | description |
|---|---|
| Google Lighthouse | Audit automatique de page web (best-practices a11y, webperf, seo...) |
| OWASP Zed Attack Proxy | Scan de vulnérabilités passif "baseline" |
| testssl.sh | Évaluation du niveau de confiance d'un certificat SSL |
| Mozilla HTTP observatory | Évalue le niveau de qualité/sécurité de la page web et de son serveur |
| Third parties | Liste tous les cookies et scripts externes |
| GeoIP2 | Géolocalisation des ressources de la page web |
| Nuclei | Détection d'erreurs de configuration courantes |
| Wappalyzer | Détection des technologies web, Javascript, CMS, outillage... |
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 |
| 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