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
https://dashlord.incubateur.net
Pour déployer votre version de DashLord :
- Créer un nouveau repository à partir du template dashlord
- Éditer le fichier
dashlord.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.
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 exécuté et génère un fichier JSON qui sera versionné dans le dépôt
- 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
- Une fois la feature développée en local, ouvrir la PR
- Lancer la Github Action dans l'onglet "Actions" en précisant :
- la branche sur laquelle lancer l'action -> il s'agit de la branche qui contient votre feature
- s'il s'agit de l'action "Scans", préciser l'adresse que vous souhaitez scanner : le scan de toutes les URLs du dashlord.yml est très long sinon.