Rapports de securite
Le centre de securite detecte les problemes. Les rapports de securite, eux, racontent l'histoire : comment la securite evolue dans le temps, quels problemes ont ete resolus, quels nouveaux risques sont apparus, et quel est le niveau de securite global. Chaque scan genere un rapport complet, analyse par Claude Sonnet (l'IA d'Anthropic), qui traduit les resultats techniques en recommandations concretes et comprehensibles --- meme pour un decideur non technique.
Page : /backoffice/security-reports | Sidebar : Section "SECURITE" (rouge) > Rapports securite
La page est une vue dediee full-width (en dehors du SecurityCenterPanel). La sidebar interne du Security Center redirige vers cette page au lieu d'afficher les rapports inline.
Score et note globale
Pour evaluer rapidement le niveau de securite sans lire l'integralite du rapport, chaque scan produit un score (0-100) et une note (A-F). C'est comme une note scolaire : elle resume la situation en un coup d'oeil, tout en invitant a consulter le detail pour comprendre les points a ameliorer.
| Note | Score | Interpretation | Action |
|---|---|---|---|
| A | 90-100 | Excellent --- securite robuste | Maintenir, audit periodique |
| B | 75-89 | Bon --- quelques ameliorations possibles | Planifier les corrections medium |
| C | 60-74 | Acceptable --- risques moderes | Corriger les high dans la semaine |
| D | 45-59 | Insuffisant --- risques significatifs | Action rapide sur les high/critical |
| E | 25-44 | Mauvais --- vulnerabilites multiples | Remediation urgente |
| F | 0-24 | Critique --- infrastructure compromise | Intervention immediate |
Le score est calcule a partir du nombre et de la severite des findings ouverts. Les findings marques false_positive ou resolved sont exclus du calcul --- ils ont ete traites et ne doivent plus peser sur l'evaluation.
Analyse Claude enrichie
Un listing de findings bruts est difficile a interpreter : lequel est le plus urgent ? Quel est l'impact reel ? Que faut-il corriger en priorite ? C'est pourquoi chaque rapport est analyse par Claude Sonnet (claude-sonnet-4-20250514), qui genere un rapport structure de qualite professionnelle. Claude lit les findings, les croise, evalue leur impact et produit des recommandations priorisees.
Le modele, la temperature, les max_tokens, le timeout outils, le max findings et le system prompt sont configurables dynamiquement via /backoffice/ai-config onglet Audit Securite.
Les parametres sont charges via loadAgentConfig('security_audit') avec cache 5 minutes.
Structure du rapport enrichi
Le rapport genere par Claude couvre tous les aspects necessaires a une prise de decision eclairee :
| Section | Description |
|---|---|
| Grade et score | Note A-F (badge couleur vert/ambre/rouge) + score /100 |
| Niveau de risque | critical, high, medium ou low --- le niveau de risque global de l'infrastructure |
| Resume executif | Synthese non-technique pour decision-makers (CEO, RSSI) --- l'essentiel en quelques phrases |
| Ventilation severites | Compteurs par niveau : critical, high, medium, low, info |
| Top findings | Findings classes par rang d'importance, expandables (voir detail ci-dessous) |
| Conformite OWASP Top 10 | Grille avec statut pass/warning/fail pour chaque categorie A01 a A10 (le referentiel mondial des risques web) |
| Points positifs | Elements de securite bien configures (ex: "HSTS correctement configure", "TLS 1.3 actif") --- important pour valoriser le travail deja fait |
| Recommandations | Actions classees par priorite : immediate, court terme, moyen terme |
| Exposition RGPD | Analyse des risques lies aux donnees personnelles (important pour la conformite europeenne) |
| Notes infrastructure | Observations techniques sur l'infra (Docker, Traefik, Cloudflare, etc.) |
| Faux positifs identifies | Liste des faux positifs detectes par l'audit |
| Priorite prochain audit | Outils/domaines a prioriser pour le prochain audit |
Detail d'un finding dans le rapport
Chaque finding dans la section "Top findings" est detaille pour faciliter sa correction. L'objectif est qu'un developpeur puisse lire le finding et savoir exactement quoi faire, sans recherche supplementaire :
| Champ | Description |
|---|---|
| Rang | Position dans le classement par severite/impact |
| Titre | Description du finding |
| Severite | critical / high / medium / low / info |
| Outils confirmant | Liste des outils ayant detecte ce finding (un probleme confirme par plusieurs outils est plus fiable) |
| Impact | Description de l'impact potentiel (ex : "un attaquant pourrait...") |
| Description detaillee | Explication technique complete |
| Etapes de remediation | Liste ordonnee des actions correctives concretes |
| Code correctif | Snippet de code si applicable (ex : header a ajouter dans la configuration) |
| References | Liens OWASP/CWE (ex: "OWASP A01:2021", "CWE-79") |
| Effort estime | Duree estimee de la correction (ex: "30 min", "2h") |
| Urgence | Niveau d'urgence (ex: "immediate", "cette semaine") |
Grille OWASP Top 10
L'OWASP Top 10 est la liste de reference des 10 risques de securite les plus critiques pour les applications web, mise a jour regulierement par la communaute mondiale de securite. Le rapport inclut une analyse de conformite pour chaque categorie :
| Categorie | Description |
|---|---|
| A01:2021 | Broken Access Control (controle d'acces defaillant) |
| A02:2021 | Cryptographic Failures (failles cryptographiques) |
| A03:2021 | Injection (injection SQL, XSS, etc.) |
| A04:2021 | Insecure Design (conception non securisee) |
| A05:2021 | Security Misconfiguration (mauvaise configuration) |
| A06:2021 | Vulnerable and Outdated Components (composants vulnerables ou obsoletes) |
| A07:2021 | Identification and Authentication Failures (failles d'authentification) |
| A08:2021 | Software and Data Integrity Failures (integrite du code et des donnees) |
| A09:2021 | Security Logging and Monitoring Failures (monitoring insuffisant) |
| A10:2021 | Server-Side Request Forgery (SSRF) |
Chaque categorie recoit un statut : pass (vert --- conforme), warning (ambre --- partiel) ou fail (rouge --- non conforme).
Statistiques des findings
Ces metriques donnent une vue quantitative du scan --- combien de problemes ont ete detectes, de quelle gravite, et combien d'outils ont fonctionne correctement :
| Metrique | Description |
|---|---|
| Total findings | Nombre total de findings detectes lors du scan |
| Par severite | Repartition : critical, high, medium, low, info (barre coloree pour visualiser la proportion) |
| Par statut | Repartition : open, acknowledged, false_positive, resolved |
| Outils executes | Nombre d'outils ayant complete leur scan avec succes |
| Outils en erreur | Nombre d'outils ayant echoue (timeout, erreur API, cle manquante, etc.) |
Historique des rapports
La veritable valeur des rapports de securite emerge sur la duree : ils permettent de voir si la posture de securite s'ameliore, stagne ou se degrade. La page d'historique liste tous les rapports passes :
| Colonne | Description |
|---|---|
| Date | Date et heure du scan |
| Mode | cron (quotidien 03:30 UTC --- automatique), manual (lance depuis l'interface), post_deploy (apres deploiement) |
| Note | Note alphabetique obtenue (A-F) avec badge couleur |
| Score | Score numerique (0-100) |
| Outils | Nombre d'outils executes / echoues |
Un clic sur une ligne ouvre le rapport complet pour cette date.
Lancer un audit manuel
Parfois, on veut un resultat immediat sans attendre le cron de 03:30 UTC --- par exemple apres avoir corrige un finding ou modifie une configuration. Voici la procedure :
- Sur la page Rapports, cliquer le bouton "Lancer un audit"
- L'audit execute les 19 outils en parallele (avec timeouts individuels par outil)
- Un polling toutes les 5 secondes affiche la progression en temps reel (combien d'outils ont termine)
- Claude Sonnet analyse les resultats et genere le rapport structure
- Le rapport apparait dans la liste avec le grade et le score
Suivi de la progression
L'objectif n'est pas simplement de detecter des problemes, mais de mesurer leur resolution. Le rapport inclut un comparatif avec le scan precedent pour voir ce qui a change :
| Indicateur | Description |
|---|---|
| Findings resolus | Nombre de findings qui etaient open lors du scan precedent et sont maintenant resolved (bonne nouvelle !) |
| Nouveaux findings | Findings detectes pour la premiere fois dans ce scan (a investiguer) |
| Findings persistants | Findings toujours open depuis le scan precedent (n'ont pas encore ete corriges) |
| Evolution du score | Variation du score par rapport au rapport precedent (ex : +5 points = amelioration, -3 points = regression) |
Tendance sur 30 jours
Un graphique lineaire affiche l'evolution de la note de securite sur les 30 derniers jours. Cette vue est particuli erement precieuse pour les decideurs car elle permet d'identifier en un coup d'oeil :
- Les ameliorations : remediation de findings critiques ayant fait monter la note (pic vers le haut)
- Les regressions : nouvelles vulnerabilites detectees apres un deploiement (chute soudaine)
- La stabilite : une note constante indique une posture de securite maitrisee
Apres chaque deploiement, un audit automatique est declenche par deploy.sh. Si de nouveaux findings critical ou high apparaissent, ils sont vraisemblablement lies aux changements deployes. Consultez le changelog pour identifier les commits potentiellement responsables et corrigez rapidement.
Export PDF
Les rapports de securite ne servent pas qu'a l'equipe technique : ils peuvent etre partages avec la direction, un client, un partenaire ou un auditeur de conformite. L'export PDF permet de produire un document professionnel et autonome, lisible sans acces au backoffice.
Comment exporter
- Ouvrir un rapport de securite
- Cliquer le bouton "Exporter PDF" (icone document)
- Le PDF est genere cote client (dans le navigateur, sans envoyer les donnees a un serveur externe) et telecharge automatiquement
Contenu du PDF
Le PDF A4 portrait contient toutes les sections du rapport enrichi, mises en page pour l'impression :
| Section PDF | Description |
|---|---|
| En-tete | Titre "BeePass --- Rapport de securite", date du rapport, mode (cron/manuel/post_deploy) |
| Grade | Badge couleur avec note A-F et score /100 |
| Resume executif | Synthese non-technique |
| Ventilation severites | Barre horizontale coloree (critical/high/medium/low/info) avec compteurs |
| Findings detailles | Blocs par finding : titre, severite couleur, description complete, etapes de remediation, code correctif, references externes, urgence |
| Grille OWASP | A01-A10 avec statut pass/warning/fail et description (contenu complet) |
| Recommandations | Actions classees par categorie et priorite (contenu complet) |
| Faux positifs | Section dediee listant les faux positifs identifies |
| Next audit priority | Outils/domaines a prioriser pour le prochain audit |
| Footer | "Genere par BeePass Security Center" + URL beepass.io |
Dependances
- jsPDF : generation PDF cote client (import dynamique, pas de surcharge au chargement initial de la page)
- jspdf-autotable : plugin jsPDF pour les tables formatees (colonnes, couleurs, pagination automatique)
Comparaison de rapports
Corriger une faille, c'est bien. Pouvoir prouver qu'elle a ete corrigee, c'est mieux. La fonctionnalite de comparaison permet d'afficher cote a cote deux rapports d'audit de dates differentes :
| Element compare | Description |
|---|---|
| Score / Note | Evolution de la note globale entre les deux dates |
| Findings ajoutes | Findings presents dans le rapport recent mais absents de l'ancien (problemes apparus depuis) |
| Findings resolus | Findings presents dans l'ancien rapport mais absents du recent (problemes corriges) |
| Findings communs | Findings presents dans les deux rapports (avec evolution du statut) |
Cette vue est particulierement utile pour :
- Mesurer l'impact d'une campagne de remediation ("on a corrige 5 findings critical en une semaine")
- Identifier les regressions introduites par une mise a jour
- Preparer un rapport de conformite montrant la progression sur une periode donnee
Export et conformite
Les rapports de securite sont des documents precieux pour la conformite reglementaire (RGPD, audits clients, certifications). Ils demontrent une demarche proactive de surveillance continue :
| Donnee | Usage conformite |
|---|---|
| Historique des notes | Demontrer l'amelioration continue de la posture de securite |
| Findings resolus | Prouver la reactivite face aux vulnerabilites detectees (delai de correction) |
| Faux positifs documentes | Justifier les exclusions avec des explications tracees (transparence) |
| Frequence des scans | Attester de la surveillance quotidienne automatisee (03:30 UTC) |
| Conformite OWASP | Grille A01-A10 avec statut par categorie (referentiel reconnu internationalement) |
| Exposition RGPD | Analyse des risques lies aux donnees personnelles |
Conservez un historique des rapports sur au moins 12 mois pour demontrer une trajectoire d'amelioration lors des audits de conformite. Les rapports sont generes quotidiennement a 03:30 UTC, fournissant une granularite suffisante pour la plupart des cadres reglementaires. L'export PDF permet de constituer un dossier autonome transmissible a un auditeur externe.
Routes API
| Route | Methode | Description |
|---|---|---|
/api/admin/security/audit | POST | Lancer un audit complet (19 outils en parallele) |
/api/admin/security/audit | GET | Liste des rapports (date, mode, grade, score, outils) |
/api/admin/security/audit/[id] | GET | Detail complet d'un rapport (analyse Claude incluse) |
/api/cron/security-audit | GET | Declenchement cron (Bearer CRON_SECRET, timingSafeEqual) |
Sidebar section SECURITE
La sidebar admin a une section SECURITE dediee (texte rouge) regroupant les trois pages liees a la securite :
| Entree | Icone | Page |
|---|---|---|
| Security Center | Shield keyhole | /backoffice/security --- dashboard + 19 outils de scan |
| Rapports securite | Document medicine | /backoffice/security-reports --- rapports d'audit enrichis |
| VPN WireGuard | Lock keyhole | /backoffice/wireguard --- gestion VPN admin |
Voir aussi : Centre de securite | VPN WireGuard | Monitoring operations