Skip to content

Commit 1dbde23

Browse files
committed
feat(nhi): add secret is_vaulted info in ggshield output
1 parent d518ac6 commit 1dbde23

File tree

12 files changed

+157
-1
lines changed

12 files changed

+157
-1
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<!--
2+
A new scriv changelog fragment.
3+
4+
Uncomment the section that is right (remove the HTML comment wrapper).
5+
For top level release notes, leave all the headers commented out.
6+
-->
7+
8+
<!--
9+
### Removed
10+
11+
- A bullet item for the Removed category.
12+
13+
-->
14+
15+
### Added
16+
17+
- Added a new section in ggshield's outputs (text and json) to notify if a secret is in one of the accounts' secrets managers.
18+
19+
<!--
20+
### Changed
21+
22+
- A bullet item for the Changed category.
23+
24+
-->
25+
<!--
26+
### Deprecated
27+
28+
- A bullet item for the Deprecated category.
29+
30+
-->
31+
<!--
32+
### Fixed
33+
34+
- A bullet item for the Fixed category.
35+
36+
-->
37+
<!--
38+
### Security
39+
40+
- A bullet item for the Security category.
41+
42+
-->

doc/schemas/secret.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@
9696
"known_secret": {
9797
"type": "boolean"
9898
},
99+
"secret_vaulted": {
100+
"type": "boolean"
101+
},
99102
"occurrences": {
100103
"type": "array",
101104
"items": {

ggshield/verticals/secret/output/schemas.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class FlattenedPolicyBreak(BaseSchema):
2222
incident_details = fields.Nested(SecretIncidentSchema)
2323
known_secret = fields.Bool(required=True, dump_default=False)
2424
ignore_reason = fields.Nested(IgnoreReasonSchema, dump_default=None)
25+
secret_vaulted = fields.Bool(required=True, dump_default=False)
2526

2627

2728
class JSONResultSchema(BaseSchema):

ggshield/verticals/secret/output/secret_json_output_handler.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ def serialized_secret(
141141
secrets[0].ignore_reason
142142
)
143143

144+
if secrets[0].is_vaulted:
145+
flattened_dict["secret_vaulted"] = secrets[0].is_vaulted
144146
for secret in secrets:
145147
flattened_dict["occurrences"].extend(self.serialize_secret_matches(secret))
146148

ggshield/verticals/secret/output/secret_sarif_output_handler.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ def _create_sarif_result_dict(
8383
markdown_message = f"Secret detected: [{secret.detector_display_name}]({secret.documentation_url})"
8484
else:
8585
markdown_message = f"Secret detected: {secret.detector_display_name}"
86+
markdown_message += f"\nSecret in Secrets Manager: {secret.is_vaulted}"
8687
markdown_message += f"\nMatches:\n{matches_li}"
8788

8889
# Create dict

ggshield/verticals/secret/output/secret_text_output_handler.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,9 @@ def secret_header(
305305
{start_line} Secret detected: {secret_type}{validity_msg}
306306
{indent}Occurrences: {number_occurrences}
307307
{indent}Known by GitGuardian dashboard: {"YES" if known_secret else "NO"}
308-
{indent}Incident URL: {secrets[0].incident_url if known_secret and secret.incident_url else "N/A"}
308+
{indent}Incident URL: {secret.incident_url if known_secret and secret.incident_url else "N/A"}
309309
{indent}Secret SHA: {ignore_sha}
310+
{indent}Secret in Secrets Manager: {secret.is_vaulted}
310311
"""
311312
if secret.documentation_url is not None:
312313
message += f"{indent}Detector documentation: {secret.documentation_url}\n"

ggshield/verticals/secret/secret_scan_collection.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class Secret:
9393
matches: List[ExtendedMatch]
9494
ignore_reason: Optional[IgnoreReason]
9595
diff_kind: Optional[DiffKind]
96+
is_vaulted: bool
9697

9798
@property
9899
def policy(self) -> str:
@@ -199,6 +200,7 @@ def from_scan_result(
199200
],
200201
ignore_reason=ignore_reason,
201202
diff_kind=policy_break.diff_kind,
203+
is_vaulted=policy_break.is_vaulted,
202204
)
203205
for policy_break, ignore_reason in to_keep
204206
]

tests/factories.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ class Meta:
6767
known_secret = False
6868
incident_url = None
6969
is_excluded = False
70+
is_vaulted = False
7071
exclude_reason = None
7172
diff_kind = None
7273
content = factory.Faker("text")
@@ -109,3 +110,4 @@ class Meta:
109110
matches = []
110111
ignore_reason = None
111112
diff_kind = None
113+
is_vaulted = False

tests/unit/verticals/secret/output/snapshots/snap_test_text_output.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
Known by GitGuardian dashboard: NO
1616
Incident URL: N/A
1717
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
18+
Secret in Secrets Manager: False
1819
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
1920
2021
| @@ -0,0 +1 @@
@@ -34,6 +35,7 @@
3435
Known by GitGuardian dashboard: NO
3536
Incident URL: N/A
3637
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
38+
Secret in Secrets Manager: False
3739
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
3840
3941
| @@ -0,0 +1 @@
@@ -55,6 +57,7 @@
5557
Known by GitGuardian dashboard: NO
5658
Incident URL: N/A
5759
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
60+
Secret in Secrets Manager: False
5861
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
5962
6063
| @@ -0,0 +1 @@
@@ -76,6 +79,7 @@
7679
Known by GitGuardian dashboard: NO
7780
Incident URL: N/A
7881
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
82+
Secret in Secrets Manager: False
7983
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
8084
8185
| @@ -0,0 +1 @@
@@ -95,6 +99,7 @@
9599
Known by GitGuardian dashboard: NO
96100
Incident URL: N/A
97101
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
102+
Secret in Secrets Manager: False
98103
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
99104
100105
| @@ -0,0 +1 @@
@@ -114,6 +119,7 @@
114119
Known by GitGuardian dashboard: NO
115120
Incident URL: N/A
116121
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
122+
Secret in Secrets Manager: False
117123
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
118124
119125
| @@ -0,0 +1 @@
@@ -135,6 +141,7 @@
135141
Known by GitGuardian dashboard: NO
136142
Incident URL: N/A
137143
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
144+
Secret in Secrets Manager: False
138145
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
139146
140147
| @@ -0,0 +1 @@
@@ -156,6 +163,7 @@
156163
Known by GitGuardian dashboard: NO
157164
Incident URL: N/A
158165
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
166+
Secret in Secrets Manager: False
159167
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
160168
161169
| @@ -0,0 +1 @@
@@ -175,6 +183,7 @@
175183
Known by GitGuardian dashboard: NO
176184
Incident URL: N/A
177185
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
186+
Secret in Secrets Manager: False
178187
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
179188
180189
| @@ -0,0 +2 @@
@@ -194,6 +203,7 @@
194203
Known by GitGuardian dashboard: NO
195204
Incident URL: N/A
196205
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
206+
Secret in Secrets Manager: False
197207
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
198208
199209
| @@ -0,0 +2 @@
@@ -215,6 +225,7 @@
215225
Known by GitGuardian dashboard: NO
216226
Incident URL: N/A
217227
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
228+
Secret in Secrets Manager: False
218229
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
219230
220231
| @@ -0,0 +2 @@
@@ -236,6 +247,7 @@
236247
Known by GitGuardian dashboard: NO
237248
Incident URL: N/A
238249
Secret SHA: 38d9d3464520ed68f18d16e640a4a8b37ef5b17608b455267d100aa487ead314
250+
Secret in Secrets Manager: False
239251
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
240252
241253
| @@ -0,0 +2 @@
@@ -255,6 +267,7 @@
255267
Known by GitGuardian dashboard: NO
256268
Incident URL: N/A
257269
Secret SHA: 1945f4a0c42abb19c1a420ddd09b4b4681249a3057c427b95f794b18595e7ffa
270+
Secret in Secrets Manager: False
258271
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
259272
260273
| @@ -0,0 +1,29 @@
@@ -270,6 +283,7 @@
270283
Known by GitGuardian dashboard: NO
271284
Incident URL: N/A
272285
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
286+
Secret in Secrets Manager: False
273287
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
274288
275289
| @@ -0,0 +1,29 @@
@@ -289,6 +303,7 @@
289303
Known by GitGuardian dashboard: NO
290304
Incident URL: N/A
291305
Secret SHA: 530e5a4a7ea00814db8845dd0cae5efaa4b974a3ce1c76d0384ba715248a5dc1
306+
Secret in Secrets Manager: False
292307
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/sendgrid_key
293308
294309
7 | +**********************+*****************************************
@@ -307,6 +322,7 @@
307322
Known by GitGuardian dashboard: NO
308323
Incident URL: N/A
309324
Secret SHA: 1945f4a0c42abb19c1a420ddd09b4b4681249a3057c427b95f794b18595e7ffa
325+
Secret in Secrets Manager: False
310326
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
311327
312328
| @@ -0,0 +1,29 @@
@@ -322,6 +338,7 @@
322338
Known by GitGuardian dashboard: NO
323339
Incident URL: N/A
324340
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
341+
Secret in Secrets Manager: False
325342
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
326343
327344
| @@ -0,0 +1,29 @@
@@ -341,6 +358,7 @@
341358
Known by GitGuardian dashboard: NO
342359
Incident URL: N/A
343360
Secret SHA: 530e5a4a7ea00814db8845dd0cae5efaa4b974a3ce1c76d0384ba715248a5dc1
361+
Secret in Secrets Manager: False
344362
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/sendgrid_key
345363
346364
7 | +bLaA/DCNPniBAiA0l//bzg+M3srIhm04xzLdR9Vb9IjPRlkvN074zdKDVwIhAKJb
@@ -361,6 +379,7 @@
361379
Known by GitGuardian dashboard: NO
362380
Incident URL: N/A
363381
Secret SHA: 1945f4a0c42abb19c1a420ddd09b4b4681249a3057c427b95f794b18595e7ffa
382+
Secret in Secrets Manager: False
364383
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
365384
366385
| @@ -0,0 +1,29 @@
@@ -376,6 +395,7 @@
376395
Known by GitGuardian dashboard: NO
377396
Incident URL: N/A
378397
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
398+
Secret in Secrets Manager: False
379399
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
380400
381401
| @@ -0,0 +1,29 @@
@@ -395,6 +415,7 @@
395415
Known by GitGuardian dashboard: NO
396416
Incident URL: N/A
397417
Secret SHA: 530e5a4a7ea00814db8845dd0cae5efaa4b974a3ce1c76d0384ba715248a5dc1
418+
Secret in Secrets Manager: False
398419
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/sendgrid_key
399420
400421
7 | +**********************+*****************************************
@@ -415,6 +436,7 @@
415436
Known by GitGuardian dashboard: NO
416437
Incident URL: N/A
417438
Secret SHA: 1945f4a0c42abb19c1a420ddd09b4b4681249a3057c427b95f794b18595e7ffa
439+
Secret in Secrets Manager: False
418440
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/facebook_access_token
419441
420442
| @@ -0,0 +1,29 @@
@@ -430,6 +452,7 @@
430452
Known by GitGuardian dashboard: NO
431453
Incident URL: N/A
432454
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
455+
Secret in Secrets Manager: False
433456
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
434457
435458
| @@ -0,0 +1,29 @@
@@ -449,6 +472,7 @@
449472
Known by GitGuardian dashboard: NO
450473
Incident URL: N/A
451474
Secret SHA: 530e5a4a7ea00814db8845dd0cae5efaa4b974a3ce1c76d0384ba715248a5dc1
475+
Secret in Secrets Manager: False
452476
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/sendgrid_key
453477
454478
7 | +bLaA/DCNPniBAiA0l//bzg+M3srIhm04xzLdR9Vb9IjPRlkvN074zdKDVwIhAKJb
@@ -467,6 +491,7 @@
467491
Known by GitGuardian dashboard: NO
468492
Incident URL: N/A
469493
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
494+
Secret in Secrets Manager: False
470495
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
471496
472497
| @@ -0,0 +1,29 @@
@@ -493,6 +518,7 @@
493518
Known by GitGuardian dashboard: NO
494519
Incident URL: N/A
495520
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
521+
Secret in Secrets Manager: False
496522
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
497523
498524
| @@ -0,0 +1,29 @@
@@ -521,6 +547,7 @@
521547
Known by GitGuardian dashboard: NO
522548
Incident URL: N/A
523549
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
550+
Secret in Secrets Manager: False
524551
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
525552
526553
| @@ -0,0 +1,29 @@
@@ -549,6 +576,7 @@
549576
Known by GitGuardian dashboard: NO
550577
Incident URL: N/A
551578
Secret SHA: 060bf63de122848f5efa122fe6cea504aae3b24cea393d887fdefa1529c6a02e
579+
Secret in Secrets Manager: False
552580
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/private_key_rsa
553581
554582
| @@ -0,0 +1,29 @@
@@ -575,6 +603,7 @@
575603
Known by GitGuardian dashboard: NO
576604
Incident URL: N/A
577605
Secret SHA: 2b5840babacb6f089ddcce1fe5a56b803f8b1f636c6f44cdbf14b0c77a194c93
606+
Secret in Secrets Manager: False
578607
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/github_access_token
579608
580609
| @@ -0,0 +1 @@
@@ -592,6 +621,7 @@
592621
Known by GitGuardian dashboard: NO
593622
Incident URL: N/A
594623
Secret SHA: 2b5840babacb6f089ddcce1fe5a56b803f8b1f636c6f44cdbf14b0c77a194c93
624+
Secret in Secrets Manager: False
595625
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/github_access_token
596626
597627
| @@ -0,0 +1 @@
@@ -611,6 +641,7 @@
611641
Known by GitGuardian dashboard: NO
612642
Incident URL: N/A
613643
Secret SHA: 2b5840babacb6f089ddcce1fe5a56b803f8b1f636c6f44cdbf14b0c77a194c93
644+
Secret in Secrets Manager: False
614645
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/github_access_token
615646
616647
| @@ -0,0 +1 @@
@@ -630,6 +661,7 @@
630661
Known by GitGuardian dashboard: NO
631662
Incident URL: N/A
632663
Secret SHA: 2b5840babacb6f089ddcce1fe5a56b803f8b1f636c6f44cdbf14b0c77a194c93
664+
Secret in Secrets Manager: False
633665
Detector documentation: https://docs.gitguardian.com/secrets-detection/secrets-detection-engine/detectors/specifics/github_access_token
634666
635667
| @@ -0,0 +1 @@

0 commit comments

Comments
 (0)