Exporter les données
GitGuardian vous permet d'exporter des données sous forme de rapport CSV.
Rapport CSV
Options d'export
Les rapports CSV ne sont actuellement disponibles que pour les incidents de secrets. Pour exporter des données, utilisez le menu dans la vue, puis sélectionnez les options de l'export :
- Individual secrets incidents vs All occurrences.
- Individual secrets incidents vous donne la liste des incidents de secrets présents sur votre périmètre sans détails sur les multiples occurrences qu'ils peuvent contenir. C'est utile pour un reporting de haut niveau.
- All occurrences vous donne la liste détaillée de toutes les occurrences et de leur emplacement. De tels rapports peuvent être utilisés pour la remédiation ou une analyse plus granulaire.
Ces deux rapports sont cohérents entre eux et vous pouvez croiser leurs données à l'aide de la clé communeincident_id.
- Show secrets vs Hide secrets : pour lutter contre la prolifération des secrets, GitGuardian vous donne la possibilité de masquer le secret lui-même dans vos exports CSV.
- Filtering : les rapports CSV peuvent refléter votre filtrage et votre sélection.
- Matching the current filters and search query : seuls les incidents correspondant à vos critères de filtrage actuels seront exportés.
- Matching view : les incidents correspondant aux filtres de la vue active seront exportés. Si vous avez des modifications non enregistrées dans la vue, elles ne s'appliqueront pas.
- No filters : tous les incidents seront exportés, quels que soient la vue ou les filtres appliqués.
- Separator : personnalisez le séparateur du rapport.
- comma-separated
- tab-separated

Notez qu'il est également possible d'exporter les incidents qui ont été sélectionnés manuellement. Sélectionnez vos incidents et cliquez sur Download dans la barre d'actions groupées :

Format d'export
Le format de l'export CSV ressemblera aux exemples ci-dessous.
Individual secrets incidents
| incident_id | created_at | secret_hash | detector_name | matches | occurrences_count | assignees | resolved_at | ignored_at | gitguardian_url | severity | risk_score | validity | status | ignore_reason | custom_tags | secret_revoked | tags | incident_name |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 186644 | 2020-11-17 08:19:48.374388+00:00 | CKRCZ36VU1JgnPTN2oWtW5Rn2fE7p/d9G+XQveEXlSg0d+Vjq3vgT7VWMTb6ax/h | Slack User Token | {"apikey": "xoxp-6378355290-4543728424-36021270421-7714dc2119e296b6e8be1cb6cde31ef5"} | 2 | https://dashboard.gitguardian.com/workspace/8/incidents/186644 | Critical | 55 | valid | TRIGGERED | Slack User Token in... | |||||||
| 49568 | 2020-03-25 13:26:11.134688+00:00 | kFXL5aDL5Pvf3odFhfS1Sfxxguqg7/tFOLgmM94+EPnMHwNGLCAWyy4SR5jhsuGk | AWS Keys | {"client_id": "AROAK1XZAJSZHCUDQSHT", "client_secret": "cH1SL1LFzSwWoJV5wDtn8rcTSNiieufBOe58b6Lu"} | 4 | john.doe@company.com | 2020-11-03 14:48:41.634750+00:00 | https://dashboard.gitguardian.com/workspace/8/incidents/49568 | Medium | 30 | invalid | RESOLVED | team:backend|env:production | TRUE | SENSITIVE_FILE | AWS Keys in config.yml | ||
| .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... |
- incident_id : id de l'incident GitGuardian
- created_at : date de l'incident
- secret_hash : hash des matches réels du secret. Il est unique par secret.
- detector_name : type du secret détecté par le moteur de détection de secrets GitGuardian
- matches : le secret réel. Il peut parfois être composé de plusieurs composants que GitGuardian appelle matches (par exemple :
client_id,client_secret). C'est pourquoi il est au format JSON. Vide si vous sélectionnez l'option Hide secrets. - occurrences_count : nombre d'occurrences de l'incident de secret
- assignees : e-mail de l'assigné de l'incident qui est membre du workspace GitGuardian
- resolved_at : timestamp de la date de résolution de l'incident. S'il n'est pas vide, cela signifie que le statut de l'incident est resolved
- ignored_at : timestamp de la date d'ignorance de l'incident. S'il n'est pas vide, cela signifie que le statut de l'incident est ignored
- gitguardian_url : lien vers la page de l'incident sur votre workspace GitGuardian
- severity : niveau de sévérité de l'incident
- risk_score : score de risque de l'incident (entier, peut être null)
- validity : validité du secret (valid, invalid, no_checker, failed_to_check, unknown)
- status : statut de l'incident (TRIGGERED, ASSIGNED, RESOLVED, IGNORED)
- ignore_reason : raison déclarative d'ignorance par la personne qui a ignoré l'incident (test_credential, false_positive, low_risk, invalid)
- custom_tags : tags personnalisés assignés à l'incident, paires clé:valeur séparées par des barres verticales (par exemple
team:backend|env:production) - secret_revoked : information déclarative indiquant si le secret est révoqué ou non par la personne qui a résolu l'incident (True ou False)
- tags : tags de l'incident (CHECK_RUN_SKIP_FALSE_POSITIVE, CHECK_RUN_SKIP_LOW_RISK, CHECK_RUN_SKIP_TEST_CRED, DEFAULT_BRANCH, FALSE_POSITIVE, FROM_HISTORICAL_SCAN, IGNORED_IN_CHECK_RUN, PUBLIC, PUBLICLY_LEAKED, REGRESSION, REVOCABLE_BY_GG, SENSITIVE_FILE, TEST_FILE). Note : le tag
PUBLICLY_LEAKEDindique tout type d'exposition publique. Consultez Informations sur l'exposition publique pour plus de détails sur les types d'exposition. - incident_name : nom d'affichage de l'incident
All occurrences
| created_at | secret_hash | detector_name | matches | source_url | source_name | commit_url | commit_sha | commit_author | author_email | filepath | incident_id | gitguardian_url | validity | presence | occurrence_id | tags | element_url | author_name | incident_name |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2020-11-17 10:19:41.495062+00:00 | CKRCZ36VU1JgnPTN2oWtW5Rn2fE7p/d9G+XQveEXlSg0d+Vjq3vgT7VWMTb6ax/h | Slack User Token | {"apikey": "xoxp-6378355290-4543728424-36021270421-7714dc2119e296b6e8be1cb6cde31ef5"} | https://github.com/my-org/my-repos | my-org/my-repos | https://github.com/my-org/my-repos/commit/722682f316a934129996eccc4286d56a33812212#diff-568470d013cd12e4f388206520da39ab9a4e4c3c6b95846cbc281abc1ba3c959L3 | 722682f316a934129996eccc4286d56a33812212 | Lucius Fox | lucius-fox-gg@protonmail.com | app.py | 186644 | https://dashboard.gitguardian.com/workspace/8/incidents/186644 | valid | present | 4367688 | PUBLICLY_EXPOSED | https://github.com/my-org/my-repos/commits/commit-leaked | John Doe | Slack User Token in... |
| .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... |
- created_at : date de l'occurrence
- secret_hash : hash des matches réels du secret. Il est unique par secret.
- detector_name : type du secret détecté par le moteur de détection de secrets GitGuardian
- matches : le secret réel. Il peut parfois être composé de plusieurs composants que GitGuardian appelle matches (par exemple :
client_id,client_secret). C'est pourquoi il est au format JSON. Vide si vous sélectionnez l'option Hide secrets. - source_url : lien VCS de la source
- source_name : nom de la source
- commit_url : lien VCS du commit (déprécié, veuillez utiliser element_url à la place)
- commit_sha : sha du commit
- commit_author : nom git de l'auteur du commit (déprécié, veuillez utiliser author_name à la place)
- author_email : e-mail de l'auteur de l'élément de l'occurrence
- filepath : chemin du fichier contenant l'occurrence
- incident_id : id de l'incident GitGuardian auquel appartient l'occurrence
- gitguardian_url : lien de la page de l'incident sur votre workspace GitGuardian
- validity : validité du secret (valid, invalid, no_checker, failed_to_check, unknown)
- presence : présence dans l'historique git de l'occurrence (present, removed)
- occurrence_id : id de l'occurrence
- tags : tags de l'occurrence (CHECK_RUN_SKIP_FALSE_POSITIVE, CHECK_RUN_SKIP_LOW_RISK, CHECK_RUN_SKIP_TEST_CRED, DEFAULT_BRANCH, FALSE_POSITIVE, FROM_HISTORICAL_SCAN, IGNORED_IN_CHECK_RUN, PUBLIC, PUBLICLY_EXPOSED, PUBLICLY_LEAKED, REGRESSION, REVOCABLE_BY_GG, SENSITIVE_FILE, TEST_FILE)
- element_url : lien vers l'élément de l'occurrence
- author_name : nom de l'auteur de l'élément de l'occurrence
- incident_name : nom d'affichage de l'incident
Export CSV de Public Monitoring
Les champs suivants sont spécifiques aux exports Public Monitoring. Ils diffèrent des exports Internal Monitoring en raison de la nature des secrets exposés publiquement.
Individual secrets incidents (Public Monitoring)
L'export des incidents Public Monitoring inclut tous les champs de l'export d'incidents de base (de incident_id à custom_tags), plus les champs suivants à la place de secret_revoked :
| incident_id | created_at | secret_hash | detector_name | matches | occurrences_count | assignees | resolved_at | ignored_at | gitguardian_url | severity | risk_score | validity | status | ignore_reason | custom_tags | ignore_reason | resolve_reason | tags | sources_count | attachment_reasons |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... |
Les champs partagés avec Internal Monitoring sont documentés ci-dessus. Les suivants sont spécifiques à Public Monitoring :
- resolve_reason : raison fournie lorsque l'incident a été résolu
- sources_count : nombre de sources distinctes où le secret a été trouvé
- attachment_reasons : liste séparée par des espaces des raisons pour lesquelles l'incident est rattaché au périmètre du compte
- tags : tags de l'incident, séparés par des espaces (COMPANY_NAME_IN_COMMIT, DECODED_BASE64, DECRYPTED, DOMAIN, FALSE_POSITIVE, FROM_EXPLORE, FROM_HISTORICAL_SCAN, FROM_SECRET_GRASPER, INTERNALLY_LEAKED, IS_COMPANY_CONTEXT, JWT_PROPERTIES, MINIFIED_FILE, PROD, SENSITIVE_FILE, TEST_FILE, WHITELISTED)
All occurrences (Public Monitoring)
L'export des occurrences Public Monitoring a une structure différente d'Internal Monitoring, avec des informations supplémentaires sur les acteurs provenant de GitHub :
| created_at | secret_hash | detector_name | matches | source_url | source_name | filepath | commit_url | commit_sha | committer_name | committer_email | committer_github_id | committer_github_login | author_email | author_name | author_github_id | author_github_login | actor_github_id | actor_github_login | incident_id | incident_status | gitguardian_url | validity | presence | occurrence_id | tags | attachment_reasons |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... | .... |
Les champs partagés avec Internal Monitoring sont documentés ci-dessus. Les suivants sont spécifiques aux occurrences Public Monitoring :
- committer_name : nom du committer du commit
- committer_email : e-mail du committer du commit
- committer_github_id : ID GitHub du committer
- committer_github_login : login GitHub du committer
- author_github_id : ID GitHub de l'auteur du commit
- author_github_login : login GitHub de l'auteur du commit
- actor_github_id : ID GitHub du pusher
- actor_github_login : login GitHub du pusher
- incident_status : statut de l'incident parent (TRIGGERED, ASSIGNED, RESOLVED, IGNORED)
- tags : tags de l'occurrence, séparés par des espaces (COMPANY_NAME_IN_COMMIT, DECODED_BASE64, DECRYPTED, DOMAIN, FALSE_POSITIVE, FROM_EXPLORE, FROM_HISTORICAL_SCAN, FROM_SECRET_GRASPER, IS_COMPANY_CONTEXT, JWT_PROPERTIES, MINIFIED_FILE, PROD, SENSITIVE_FILE, TEST_FILE, WHITELISTED)
- attachment_reasons : liste séparée par des espaces des raisons pour lesquelles l'occurrence est rattachée au périmètre du compte