datadog 2.14.0 → 2.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -2
  3. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +7 -6
  4. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +3 -0
  5. data/ext/datadog_profiling_native_extension/encoded_profile.c +69 -0
  6. data/ext/datadog_profiling_native_extension/encoded_profile.h +7 -0
  7. data/ext/datadog_profiling_native_extension/http_transport.c +25 -32
  8. data/ext/datadog_profiling_native_extension/profiling.c +2 -0
  9. data/ext/datadog_profiling_native_extension/stack_recorder.c +22 -21
  10. data/ext/libdatadog_api/datadog_ruby_common.h +3 -0
  11. data/lib/datadog/appsec/assets/waf_rules/README.md +50 -5
  12. data/lib/datadog/appsec/assets/waf_rules/processors.json +239 -10
  13. data/lib/datadog/appsec/assets/waf_rules/recommended.json +0 -1344
  14. data/lib/datadog/appsec/assets/waf_rules/scanners.json +926 -17
  15. data/lib/datadog/appsec/assets/waf_rules/strict.json +0 -1344
  16. data/lib/datadog/appsec/component.rb +19 -17
  17. data/lib/datadog/appsec/compressed_json.rb +40 -0
  18. data/lib/datadog/appsec/contrib/active_record/integration.rb +1 -1
  19. data/lib/datadog/appsec/event.rb +21 -50
  20. data/lib/datadog/appsec/remote.rb +4 -0
  21. data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
  22. data/lib/datadog/core/telemetry/metric.rb +5 -5
  23. data/lib/datadog/core/telemetry/request.rb +1 -1
  24. data/lib/datadog/di/probe_notification_builder.rb +1 -1
  25. data/lib/datadog/di/transport/http/diagnostics.rb +0 -1
  26. data/lib/datadog/di/transport/http/input.rb +0 -1
  27. data/lib/datadog/di/transport/http.rb +0 -6
  28. data/lib/datadog/profiling/collectors/info.rb +3 -0
  29. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  30. data/lib/datadog/profiling/exporter.rb +2 -3
  31. data/lib/datadog/profiling/ext.rb +0 -1
  32. data/lib/datadog/profiling/flush.rb +4 -7
  33. data/lib/datadog/profiling/http_transport.rb +10 -59
  34. data/lib/datadog/profiling/stack_recorder.rb +4 -4
  35. data/lib/datadog/profiling.rb +1 -0
  36. data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
  37. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +17 -0
  38. data/lib/datadog/tracing/contrib/opensearch/ext.rb +9 -0
  39. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +5 -1
  40. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  41. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +1 -1
  42. data/lib/datadog/tracing/span_event.rb +1 -1
  43. data/lib/datadog/version.rb +1 -1
  44. metadata +10 -6
@@ -1,11 +1,861 @@
1
1
  [
2
+ {
3
+ "id": "406f8606-52c4-4663-8db9-df70f9e8766c",
4
+ "name": "ZIP Code",
5
+ "key": {
6
+ "operator": "match_regex",
7
+ "parameters": {
8
+ "regex": "\\b(?:zip|postal)\\b",
9
+ "options": {
10
+ "case_sensitive": false,
11
+ "min_length": 3
12
+ }
13
+ }
14
+ },
15
+ "value": {
16
+ "operator": "match_regex",
17
+ "parameters": {
18
+ "regex": "^[0-9]{5}(?:-[0-9]{4})?$",
19
+ "options": {
20
+ "case_sensitive": true,
21
+ "min_length": 5
22
+ }
23
+ }
24
+ },
25
+ "tags": {
26
+ "type": "zipcode",
27
+ "category": "address"
28
+ }
29
+ },
30
+ {
31
+ "id": "JU1sRk3mSzqSUJn6GrVn7g",
32
+ "name": "American Express Card Scanner (4+4+4+3 digits)",
33
+ "key": {
34
+ "operator": "match_regex",
35
+ "parameters": {
36
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
37
+ "options": {
38
+ "case_sensitive": false,
39
+ "min_length": 3
40
+ }
41
+ }
42
+ },
43
+ "value": {
44
+ "operator": "match_regex",
45
+ "parameters": {
46
+ "regex": "\\b3[47]\\d{2}(?:(?:\\s\\d{4}\\s\\d{4}\\s\\d{3})|(?:\\,\\d{4}\\,\\d{4}\\,\\d{3})|(?:-\\d{4}-\\d{4}-\\d{3})|(?:\\.\\d{4}\\.\\d{4}\\.\\d{3}))\\b",
47
+ "options": {
48
+ "case_sensitive": false,
49
+ "min_length": 16
50
+ }
51
+ }
52
+ },
53
+ "tags": {
54
+ "type": "card",
55
+ "card_type": "amex",
56
+ "category": "payment"
57
+ }
58
+ },
59
+ {
60
+ "id": "edmH513UTQWcRiQ9UnzHlw-mod",
61
+ "name": "American Express Card Scanner (4+6|5+5|6 digits)",
62
+ "key": {
63
+ "operator": "match_regex",
64
+ "parameters": {
65
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
66
+ "options": {
67
+ "case_sensitive": false,
68
+ "min_length": 3
69
+ }
70
+ }
71
+ },
72
+ "value": {
73
+ "operator": "match_regex",
74
+ "parameters": {
75
+ "regex": "\\b3[47]\\d{2}(?:(?:\\s\\d{5,6}\\s\\d{5,6})|(?:\\.\\d{5,6}\\.\\d{5,6})|(?:-\\d{5,6}-\\d{5,6})|(?:,\\d{5,6},\\d{5,6}))\\b",
76
+ "options": {
77
+ "case_sensitive": false,
78
+ "min_length": 17
79
+ }
80
+ }
81
+ },
82
+ "tags": {
83
+ "type": "card",
84
+ "card_type": "amex",
85
+ "category": "payment"
86
+ }
87
+ },
88
+ {
89
+ "id": "e6K4h_7qTLaMiAbaNXoSZA",
90
+ "name": "American Express Card Scanner (8+7 digits)",
91
+ "key": {
92
+ "operator": "match_regex",
93
+ "parameters": {
94
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
95
+ "options": {
96
+ "case_sensitive": false,
97
+ "min_length": 3
98
+ }
99
+ }
100
+ },
101
+ "value": {
102
+ "operator": "match_regex",
103
+ "parameters": {
104
+ "regex": "\\b3[47]\\d{6}(?:(?:\\s\\d{7})|(?:\\,\\d{7})|(?:-\\d{7})|(?:\\.\\d{7}))\\b",
105
+ "options": {
106
+ "case_sensitive": false,
107
+ "min_length": 16
108
+ }
109
+ }
110
+ },
111
+ "tags": {
112
+ "type": "card",
113
+ "card_type": "amex",
114
+ "category": "payment"
115
+ }
116
+ },
117
+ {
118
+ "id": "K2rZflWzRhGM9HiTc6whyQ",
119
+ "name": "American Express Card Scanner (1x15 digits)",
120
+ "key": {
121
+ "operator": "match_regex",
122
+ "parameters": {
123
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
124
+ "options": {
125
+ "case_sensitive": false,
126
+ "min_length": 3
127
+ }
128
+ }
129
+ },
130
+ "value": {
131
+ "operator": "match_regex",
132
+ "parameters": {
133
+ "regex": "\\b3[47]\\d{13}\\b",
134
+ "options": {
135
+ "case_sensitive": false,
136
+ "min_length": 15
137
+ }
138
+ }
139
+ },
140
+ "tags": {
141
+ "type": "card",
142
+ "card_type": "amex",
143
+ "category": "payment"
144
+ }
145
+ },
146
+ {
147
+ "id": "9d7756e343cefa22a5c098e1092590f806eb5446",
148
+ "name": "Basic Authentication Scanner",
149
+ "key": {
150
+ "operator": "match_regex",
151
+ "parameters": {
152
+ "regex": "\\bauthorization\\b",
153
+ "options": {
154
+ "case_sensitive": false,
155
+ "min_length": 13
156
+ }
157
+ }
158
+ },
159
+ "value": {
160
+ "operator": "match_regex",
161
+ "parameters": {
162
+ "regex": "^basic\\s+[A-Za-z0-9+/=]+",
163
+ "options": {
164
+ "case_sensitive": false,
165
+ "min_length": 7
166
+ }
167
+ }
168
+ },
169
+ "tags": {
170
+ "type": "basic_auth",
171
+ "category": "credentials"
172
+ }
173
+ },
174
+ {
175
+ "id": "mZy8XjZLReC9smpERXWnnw",
176
+ "name": "Bearer Authentication Scanner",
177
+ "key": {
178
+ "operator": "match_regex",
179
+ "parameters": {
180
+ "regex": "\\bauthorization\\b",
181
+ "options": {
182
+ "case_sensitive": false,
183
+ "min_length": 13
184
+ }
185
+ }
186
+ },
187
+ "value": {
188
+ "operator": "match_regex",
189
+ "parameters": {
190
+ "regex": "^bearer\\s+[-a-z0-9._~+/]{4,}",
191
+ "options": {
192
+ "case_sensitive": false,
193
+ "min_length": 11
194
+ }
195
+ }
196
+ },
197
+ "tags": {
198
+ "type": "bearer_token",
199
+ "category": "credentials"
200
+ }
201
+ },
202
+ {
203
+ "id": "450239afc250a19799b6c03dc0e16fd6a4b2a1af",
204
+ "name": "Canadian Social Insurance Number Scanner",
205
+ "key": {
206
+ "operator": "match_regex",
207
+ "parameters": {
208
+ "regex": "\\b(?:social[\\s_]?(?:insurance(?:\\s+number)?)?|SIN|Canadian[\\s_]?(?:social[\\s_]?(?:insurance)?|insurance[\\s_]?number)?)\\b",
209
+ "options": {
210
+ "case_sensitive": false,
211
+ "min_length": 3
212
+ }
213
+ }
214
+ },
215
+ "value": {
216
+ "operator": "match_regex",
217
+ "parameters": {
218
+ "regex": "\\b\\d{3}-\\d{3}-\\d{3}\\b",
219
+ "options": {
220
+ "case_sensitive": false,
221
+ "min_length": 11
222
+ }
223
+ }
224
+ },
225
+ "tags": {
226
+ "type": "canadian_sin",
227
+ "category": "pii"
228
+ }
229
+ },
230
+ {
231
+ "id": "87a879ff33693b46c8a614d8211f5a2c289beca0",
232
+ "name": "Digest Authentication Scanner",
233
+ "key": {
234
+ "operator": "match_regex",
235
+ "parameters": {
236
+ "regex": "\\bauthorization\\b",
237
+ "options": {
238
+ "case_sensitive": false,
239
+ "min_length": 13
240
+ }
241
+ }
242
+ },
243
+ "value": {
244
+ "operator": "match_regex",
245
+ "parameters": {
246
+ "regex": "^digest\\s+",
247
+ "options": {
248
+ "case_sensitive": false,
249
+ "min_length": 7
250
+ }
251
+ }
252
+ },
253
+ "tags": {
254
+ "type": "digest_auth",
255
+ "category": "credentials"
256
+ }
257
+ },
258
+ {
259
+ "id": "qWumeP1GQUa_E4ffAnT-Yg",
260
+ "name": "American Express Card Scanner (1x14 digits)",
261
+ "key": {
262
+ "operator": "match_regex",
263
+ "parameters": {
264
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
265
+ "options": {
266
+ "case_sensitive": false,
267
+ "min_length": 3
268
+ }
269
+ }
270
+ },
271
+ "value": {
272
+ "operator": "match_regex",
273
+ "parameters": {
274
+ "regex": "(?:30[0-59]\\d|3[689]\\d{2})(?:\\d{10})",
275
+ "options": {
276
+ "case_sensitive": false,
277
+ "min_length": 14
278
+ }
279
+ }
280
+ },
281
+ "tags": {
282
+ "type": "card",
283
+ "card_type": "diners",
284
+ "category": "payment"
285
+ }
286
+ },
287
+ {
288
+ "id": "NlTWWM5LS6W0GSqBLuvtRw",
289
+ "name": "Diners Card Scanner (4+4+4+2 digits)",
290
+ "key": {
291
+ "operator": "match_regex",
292
+ "parameters": {
293
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
294
+ "options": {
295
+ "case_sensitive": false,
296
+ "min_length": 3
297
+ }
298
+ }
299
+ },
300
+ "value": {
301
+ "operator": "match_regex",
302
+ "parameters": {
303
+ "regex": "\\b(?:30[0-59]\\d|3[689]\\d{2})(?:(?:\\s\\d{4}\\s\\d{4}\\s\\d{2})|(?:\\,\\d{4}\\,\\d{4}\\,\\d{2})|(?:-\\d{4}-\\d{4}-\\d{2})|(?:\\.\\d{4}\\.\\d{4}\\.\\d{2}))\\b",
304
+ "options": {
305
+ "case_sensitive": false,
306
+ "min_length": 17
307
+ }
308
+ }
309
+ },
310
+ "tags": {
311
+ "type": "card",
312
+ "card_type": "diners",
313
+ "category": "payment"
314
+ }
315
+ },
316
+ {
317
+ "id": "Xr5VdbQSTXitYGGiTfxBpw",
318
+ "name": "Diners Card Scanner (4+6+4 digits)",
319
+ "key": {
320
+ "operator": "match_regex",
321
+ "parameters": {
322
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
323
+ "options": {
324
+ "case_sensitive": false,
325
+ "min_length": 3
326
+ }
327
+ }
328
+ },
329
+ "value": {
330
+ "operator": "match_regex",
331
+ "parameters": {
332
+ "regex": "\\b(?:30[0-59]\\d|3[689]\\d{2})(?:(?:\\s\\d{6}\\s\\d{4})|(?:\\.\\d{6}\\.\\d{4})|(?:-\\d{6}-\\d{4})|(?:,\\d{6},\\d{4}))\\b",
333
+ "options": {
334
+ "case_sensitive": false,
335
+ "min_length": 16
336
+ }
337
+ }
338
+ },
339
+ "tags": {
340
+ "type": "card",
341
+ "card_type": "diners",
342
+ "category": "payment"
343
+ }
344
+ },
345
+ {
346
+ "id": "gAbunN_WQNytxu54DjcbAA-mod",
347
+ "name": "Diners Card Scanner (8+6 digits)",
348
+ "key": {
349
+ "operator": "match_regex",
350
+ "parameters": {
351
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
352
+ "options": {
353
+ "case_sensitive": false,
354
+ "min_length": 3
355
+ }
356
+ }
357
+ },
358
+ "value": {
359
+ "operator": "match_regex",
360
+ "parameters": {
361
+ "regex": "\\b(?:30[0-59]\\d{5}|3[689]\\d{6})\\s?(?:(?:\\s\\d{6})|(?:\\,\\d{6})|(?:-\\d{6})|(?:\\.\\d{6}))\\b",
362
+ "options": {
363
+ "case_sensitive": false,
364
+ "min_length": 14
365
+ }
366
+ }
367
+ },
368
+ "tags": {
369
+ "type": "card",
370
+ "card_type": "diners",
371
+ "category": "payment"
372
+ }
373
+ },
374
+ {
375
+ "id": "9cs4qCfEQBeX17U7AepOvQ",
376
+ "name": "MasterCard Scanner (2x8 digits)",
377
+ "key": {
378
+ "operator": "match_regex",
379
+ "parameters": {
380
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
381
+ "options": {
382
+ "case_sensitive": false,
383
+ "min_length": 3
384
+ }
385
+ }
386
+ },
387
+ "value": {
388
+ "operator": "match_regex",
389
+ "parameters": {
390
+ "regex": "\\b(?:6221(?:2[6-9]|[3-9][0-9])\\d{2}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8})|6229(?:[01][0-9]|2[0-5])\\d{2}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8})|(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])\\d{4}(?:,\\d{8}|\\s\\d{8}|-\\d{8}|\\.\\d{8}))\\b",
391
+ "options": {
392
+ "case_sensitive": false,
393
+ "min_length": 16
394
+ }
395
+ }
396
+ },
397
+ "tags": {
398
+ "type": "card",
399
+ "card_type": "discover",
400
+ "category": "payment"
401
+ }
402
+ },
403
+ {
404
+ "id": "YBIDWJIvQWW_TFOyU0CGJg",
405
+ "name": "Discover Card Scanner (4x4 digits)",
406
+ "key": {
407
+ "operator": "match_regex",
408
+ "parameters": {
409
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
410
+ "options": {
411
+ "case_sensitive": false,
412
+ "min_length": 3
413
+ }
414
+ }
415
+ },
416
+ "value": {
417
+ "operator": "match_regex",
418
+ "parameters": {
419
+ "regex": "\\b(?:(?:(?:6221(?:2[6-9]|[3-9][0-9])\\d{2}(?:,\\d{4}){2})|(?:6221\\s(?:2[6-9]|[3-9][0-9])\\d{2}(?:\\s\\d{4}){2})|(?:6221\\.(?:2[6-9]|[3-9][0-9])\\d{2}(?:\\.\\d{4}){2})|(?:6221-(?:2[6-9]|[3-9][0-9])\\d{2}(?:-\\d{4}){2}))|(?:(?:6229(?:[01][0-9]|2[0-5])\\d{2}(?:,\\d{4}){2})|(?:6229\\s(?:[01][0-9]|2[0-5])\\d{2}(?:\\s\\d{4}){2})|(?:6229\\.(?:[01][0-9]|2[0-5])\\d{2}(?:\\.\\d{4}){2})|(?:6229-(?:[01][0-9]|2[0-5])\\d{2}(?:-\\d{4}){2}))|(?:(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})))\\b",
420
+ "options": {
421
+ "case_sensitive": false,
422
+ "min_length": 16
423
+ }
424
+ }
425
+ },
426
+ "tags": {
427
+ "type": "card",
428
+ "card_type": "discover",
429
+ "category": "payment"
430
+ }
431
+ },
432
+ {
433
+ "id": "12cpbjtVTMaMutFhh9sojQ",
434
+ "name": "Discover Card Scanner (1x16 digits)",
435
+ "key": {
436
+ "operator": "match_regex",
437
+ "parameters": {
438
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
439
+ "options": {
440
+ "case_sensitive": false,
441
+ "min_length": 3
442
+ }
443
+ }
444
+ },
445
+ "value": {
446
+ "operator": "match_regex",
447
+ "parameters": {
448
+ "regex": "\\b(?:6221(?:2[6-9]|[3-9][0-9])\\d{10}|6229(?:[01][0-9]|2[0-5])\\d{10}|(?:6011|65\\d{2}|64[4-9]\\d|622[2-8])\\d{12})\\b",
449
+ "options": {
450
+ "case_sensitive": false,
451
+ "min_length": 16
452
+ }
453
+ }
454
+ },
455
+ "tags": {
456
+ "type": "card",
457
+ "card_type": "discover",
458
+ "category": "payment"
459
+ }
460
+ },
461
+ {
462
+ "id": "PuXiVTCkTHOtj0Yad1ppsw",
463
+ "name": "Standard E-mail Address",
464
+ "key": {
465
+ "operator": "match_regex",
466
+ "parameters": {
467
+ "regex": "\\b(?:(?:e[-\\s]?)?mail|address|sender|\\bto\\b|from|recipient)\\b",
468
+ "options": {
469
+ "case_sensitive": false,
470
+ "min_length": 2
471
+ }
472
+ }
473
+ },
474
+ "value": {
475
+ "operator": "match_regex",
476
+ "parameters": {
477
+ "regex": "\\b[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*(%40|@)(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}\\b",
478
+ "options": {
479
+ "case_sensitive": false,
480
+ "min_length": 5
481
+ }
482
+ }
483
+ },
484
+ "tags": {
485
+ "type": "email",
486
+ "category": "pii"
487
+ }
488
+ },
489
+ {
490
+ "id": "8VS2RKxzR8a_95L5fuwaXQ",
491
+ "name": "IBAN",
492
+ "key": {
493
+ "operator": "match_regex",
494
+ "parameters": {
495
+ "regex": "\\b(?:iban|account|sender|receiver)\\b",
496
+ "options": {
497
+ "case_sensitive": false,
498
+ "min_length": 3
499
+ }
500
+ }
501
+ },
502
+ "value": {
503
+ "operator": "match_regex",
504
+ "parameters": {
505
+ "regex": "\\b(?:NO\\d{2}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{3}|BE\\d{2}(?:[ \\-]?\\d{4}){3}|(?:DK|FO|FI|GL|SD)\\d{2}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|NL\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{2}|MK\\d{2}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]\\d{2}|SI\\d{17}|(?:AT|BA|EE|LT|XK)\\d{18}|(?:LU|KZ|EE|LT)\\d{5}[A-Z0-9]{13}|LV\\d{2}[A-Z]{4}[A-Z0-9]{13}|(?:LI|CH)\\d{2}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]|HR\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d|GE\\d{2}[ \\-]?[A-Z0-9]{2}\\d{2}\\d{14}|VA\\d{20}|BG\\d{2}[A-Z]{4}\\d{6}[A-Z0-9]{8}|BH\\d{2}[A-Z]{4}[A-Z0-9]{14}|GB\\d{2}[A-Z]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|IE\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{2}|(?:CR|DE|ME|RS)\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d{2}|(?:AE|TL|IL)\\d{2}(?:[ \\-]?\\d{4}){4}[ \\-]?\\d{3}|GI\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){3}[ \\-]?[A-Z0-9]{3}|IQ\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){3}[ \\-]?\\d{3}|MD\\d{2}(?:[ \\-]?[A-Z0-9]{4}){5}|SA\\d{2}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){4}|RO\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){4}|(?:PK|VG)\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){4}|AD\\d{2}(?:[ \\-]?\\d{4}){2}(?:[ \\-]?[A-Z0-9]{4}){3}|(?:CZ|SK|ES|SE|TN)\\d{2}(?:[ \\-]?\\d{4}){5}|(?:LY|PT|ST)\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d|TR\\d{2}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{4}){3}[ \\-]?[A-Z0-9]{2}|IS\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{2}|(?:IT|SM)\\d{2}[ \\-]?[A-Z]\\d{3}[ \\-]?\\d{4}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]{3}|GR\\d{2}[ \\-]?\\d{4}[ \\-]?\\d{3}[A-Z0-9](?:[ \\-]?[A-Z0-9]{4}){3}[A-Z0-9]{3}|(?:FR|MC)\\d{2}(?:[ \\-]?\\d{4}){2}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){2}[ \\-]?[A-Z0-9]\\d{2}|MR\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{3}|(?:SV|DO)\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){5}|BY\\d{2}[ \\-]?[A-Z]{4}[ \\-]?\\d{4}(?:[ \\-]?[A-Z0-9]{4}){4}|GT\\d{2}(?:[ \\-]?[A-Z0-9]{4}){6}|AZ\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{5}){4}|LB\\d{2}[ \\-]?\\d{4}(?:[ \\-]?[A-Z0-9]{5}){4}|(?:AL|CY)\\d{2}(?:[ \\-]?\\d{4}){2}(?:[ \\-]?[A-Z0-9]{4}){4}|(?:HU|PL)\\d{2}(?:[ \\-]?\\d{4}){6}|QA\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){5}[ \\-]?[A-Z0-9]|PS\\d{2}[ \\-]?[A-Z0-9]{4}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d|UA\\d{2}[ \\-]?\\d{4}[ \\-]?\\d{2}[A-Z0-9]{2}(?:[ \\-]?[A-Z0-9]{4}){4}[ \\-]?[A-Z0-9]|BR\\d{2}(?:[ \\-]?\\d{4}){5}[ \\-]?\\d{3}[A-Z0-9][ \\-]?[A-Z0-9]|EG\\d{2}(?:[ \\-]?\\d{4}){6}\\d|MU\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){4}\\d{3}[A-Z][ \\-]?[A-Z]{2}|(?:KW|JO)\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){5}[ \\-]?[A-Z0-9]{2}|MT\\d{2}[ \\-]?[A-Z]{4}[ \\-]?\\d{4}[ \\-]?\\d[A-Z0-9]{3}(?:[ \\-]?[A-Z0-9]{3}){4}[ \\-]?[A-Z0-9]{3}|SC\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?\\d{4}){5}[ \\-]?[A-Z]{3}|LC\\d{2}[ \\-]?[A-Z]{4}(?:[ \\-]?[A-Z0-9]{4}){6})\\b",
506
+ "options": {
507
+ "case_sensitive": false,
508
+ "min_length": 15
509
+ }
510
+ }
511
+ },
512
+ "tags": {
513
+ "type": "iban",
514
+ "category": "payment"
515
+ }
516
+ },
517
+ {
518
+ "id": "h6WJcecQTwqvN9KeEtwDvg",
519
+ "name": "JCB Card Scanner (1x16 digits)",
520
+ "key": {
521
+ "operator": "match_regex",
522
+ "parameters": {
523
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
524
+ "options": {
525
+ "case_sensitive": false,
526
+ "min_length": 3
527
+ }
528
+ }
529
+ },
530
+ "value": {
531
+ "operator": "match_regex",
532
+ "parameters": {
533
+ "regex": "\\b35(?:2[89]|[3-9][0-9])(?:\\d{12})\\b",
534
+ "options": {
535
+ "case_sensitive": false,
536
+ "min_length": 16
537
+ }
538
+ }
539
+ },
540
+ "tags": {
541
+ "type": "card",
542
+ "card_type": "jcb",
543
+ "category": "payment"
544
+ }
545
+ },
546
+ {
547
+ "id": "gcEaMu_VSJ2-bGCEkgyC0w",
548
+ "name": "JCB Card Scanner (2x8 digits)",
549
+ "key": {
550
+ "operator": "match_regex",
551
+ "parameters": {
552
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
553
+ "options": {
554
+ "case_sensitive": false,
555
+ "min_length": 3
556
+ }
557
+ }
558
+ },
559
+ "value": {
560
+ "operator": "match_regex",
561
+ "parameters": {
562
+ "regex": "\\b35(?:2[89]|[3-9][0-9])\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))\\b",
563
+ "options": {
564
+ "case_sensitive": false,
565
+ "min_length": 17
566
+ }
567
+ }
568
+ },
569
+ "tags": {
570
+ "type": "card",
571
+ "card_type": "jcb",
572
+ "category": "payment"
573
+ }
574
+ },
575
+ {
576
+ "id": "imTliuhXT5GAeRNhqChXQQ",
577
+ "name": "JCB Card Scanner (4x4 digits)",
578
+ "key": {
579
+ "operator": "match_regex",
580
+ "parameters": {
581
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
582
+ "options": {
583
+ "case_sensitive": false,
584
+ "min_length": 3
585
+ }
586
+ }
587
+ },
588
+ "value": {
589
+ "operator": "match_regex",
590
+ "parameters": {
591
+ "regex": "\\b35(?:2[89]|[3-9][0-9])(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
592
+ "options": {
593
+ "case_sensitive": false,
594
+ "min_length": 16
595
+ }
596
+ }
597
+ },
598
+ "tags": {
599
+ "type": "card",
600
+ "card_type": "jcb",
601
+ "category": "payment"
602
+ }
603
+ },
604
+ {
605
+ "id": "9osY3xc9Q7ONAV0zw9Uz4A",
606
+ "name": "JSON Web Token",
607
+ "value": {
608
+ "operator": "match_regex",
609
+ "parameters": {
610
+ "regex": "\\bey[I-L][\\w=-]+\\.ey[I-L][\\w=-]+(\\.[\\w.+\\/=-]+)?\\b",
611
+ "options": {
612
+ "case_sensitive": false,
613
+ "min_length": 20
614
+ }
615
+ }
616
+ },
617
+ "tags": {
618
+ "type": "json_web_token",
619
+ "category": "credentials"
620
+ }
621
+ },
622
+ {
623
+ "id": "d1Q9D3YMRxuVKf6CZInJPw",
624
+ "name": "Maestro Card Scanner (1x16 digits)",
625
+ "key": {
626
+ "operator": "match_regex",
627
+ "parameters": {
628
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
629
+ "options": {
630
+ "case_sensitive": false,
631
+ "min_length": 3
632
+ }
633
+ }
634
+ },
635
+ "value": {
636
+ "operator": "match_regex",
637
+ "parameters": {
638
+ "regex": "\\b(?:5[06-9]\\d{2}|6\\d{3})(?:\\d{12})\\b",
639
+ "options": {
640
+ "case_sensitive": false,
641
+ "min_length": 16
642
+ }
643
+ }
644
+ },
645
+ "tags": {
646
+ "type": "card",
647
+ "card_type": "maestro",
648
+ "category": "payment"
649
+ }
650
+ },
651
+ {
652
+ "id": "M3YIQKKjRVmoeQuM3pjzrw",
653
+ "name": "Maestro Card Scanner (2x8 digits)",
654
+ "key": {
655
+ "operator": "match_regex",
656
+ "parameters": {
657
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
658
+ "options": {
659
+ "case_sensitive": false,
660
+ "min_length": 3
661
+ }
662
+ }
663
+ },
664
+ "value": {
665
+ "operator": "match_regex",
666
+ "parameters": {
667
+ "regex": "\\b(?:5[06-9]\\d{6}|6\\d{7})(?:\\s\\d{8}|\\.\\d{8}|-\\d{8}|,\\d{8})\\b",
668
+ "options": {
669
+ "case_sensitive": false,
670
+ "min_length": 17
671
+ }
672
+ }
673
+ },
674
+ "tags": {
675
+ "type": "card",
676
+ "card_type": "maestro",
677
+ "category": "payment"
678
+ }
679
+ },
680
+ {
681
+ "id": "hRxiQBlSSVKcjh5U7LZYLA",
682
+ "name": "Maestro Card Scanner (4x4 digits)",
683
+ "key": {
684
+ "operator": "match_regex",
685
+ "parameters": {
686
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
687
+ "options": {
688
+ "case_sensitive": false,
689
+ "min_length": 3
690
+ }
691
+ }
692
+ },
693
+ "value": {
694
+ "operator": "match_regex",
695
+ "parameters": {
696
+ "regex": "\\b(?:5[06-9]\\d{2}|6\\d{3})(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
697
+ "options": {
698
+ "case_sensitive": false,
699
+ "min_length": 16
700
+ }
701
+ }
702
+ },
703
+ "tags": {
704
+ "type": "card",
705
+ "card_type": "maestro",
706
+ "category": "payment"
707
+ }
708
+ },
709
+ {
710
+ "id": "NwhIYNS4STqZys37WlaIKA",
711
+ "name": "MasterCard Scanner (2x8 digits)",
712
+ "key": {
713
+ "operator": "match_regex",
714
+ "parameters": {
715
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
716
+ "options": {
717
+ "case_sensitive": false,
718
+ "min_length": 3
719
+ }
720
+ }
721
+ },
722
+ "value": {
723
+ "operator": "match_regex",
724
+ "parameters": {
725
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:(?:\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))))\\b",
726
+ "options": {
727
+ "case_sensitive": false,
728
+ "min_length": 16
729
+ }
730
+ }
731
+ },
732
+ "tags": {
733
+ "type": "card",
734
+ "card_type": "mastercard",
735
+ "category": "payment"
736
+ }
737
+ },
738
+ {
739
+ "id": "axxJkyjhRTOuhjwlsA35Vw",
740
+ "name": "MasterCard Scanner (4x4 digits)",
741
+ "key": {
742
+ "operator": "match_regex",
743
+ "parameters": {
744
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
745
+ "options": {
746
+ "case_sensitive": false,
747
+ "min_length": 3
748
+ }
749
+ }
750
+ },
751
+ "value": {
752
+ "operator": "match_regex",
753
+ "parameters": {
754
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3}|(?:,\\d{4}){3})\\b",
755
+ "options": {
756
+ "case_sensitive": false,
757
+ "min_length": 16
758
+ }
759
+ }
760
+ },
761
+ "tags": {
762
+ "type": "card",
763
+ "card_type": "mastercard",
764
+ "category": "payment"
765
+ }
766
+ },
767
+ {
768
+ "id": "76EhmoK3TPqJcpM-fK0pLw",
769
+ "name": "MasterCard Scanner (1x16 digits)",
770
+ "key": {
771
+ "operator": "match_regex",
772
+ "parameters": {
773
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
774
+ "options": {
775
+ "case_sensitive": false,
776
+ "min_length": 3
777
+ }
778
+ }
779
+ },
780
+ "value": {
781
+ "operator": "match_regex",
782
+ "parameters": {
783
+ "regex": "\\b(?:(?:5[1-5]\\d{2})|(?:222[1-9])|(?:22[3-9]\\d)|(?:2[3-6]\\d{2})|(?:27[0-1]\\d)|(?:2720))(?:\\d{12})\\b",
784
+ "options": {
785
+ "case_sensitive": false,
786
+ "min_length": 16
787
+ }
788
+ }
789
+ },
790
+ "tags": {
791
+ "type": "card",
792
+ "card_type": "mastercard",
793
+ "category": "payment"
794
+ }
795
+ },
796
+ {
797
+ "id": "18b608bd7a764bff5b2344c0",
798
+ "name": "Phone number",
799
+ "key": {
800
+ "operator": "match_regex",
801
+ "parameters": {
802
+ "regex": "\\bphone|number|mobile\\b",
803
+ "options": {
804
+ "case_sensitive": false,
805
+ "min_length": 3
806
+ }
807
+ }
808
+ },
809
+ "value": {
810
+ "operator": "match_regex",
811
+ "parameters": {
812
+ "regex": "^(?:\\(\\+\\d{1,3}\\)|\\+\\d{1,3}|00\\d{1,3})?[-\\s\\.]?(?:\\(\\d{3}\\)[-\\s\\.]?)?(?:\\d[-\\s\\.]?){6,10}$",
813
+ "options": {
814
+ "case_sensitive": false,
815
+ "min_length": 6
816
+ }
817
+ }
818
+ },
819
+ "tags": {
820
+ "type": "phone",
821
+ "category": "pii"
822
+ }
823
+ },
824
+ {
825
+ "id": "de0899e0cbaaa812bb624cf04c912071012f616d-mod",
826
+ "name": "UK National Insurance Number Scanner",
827
+ "key": {
828
+ "operator": "match_regex",
829
+ "parameters": {
830
+ "regex": "^nin$|\\binsurance\\b",
831
+ "options": {
832
+ "case_sensitive": false,
833
+ "min_length": 3
834
+ }
835
+ }
836
+ },
837
+ "value": {
838
+ "operator": "match_regex",
839
+ "parameters": {
840
+ "regex": "\\b[A-Z]{2}[\\s-]?\\d{6}[\\s-]?[A-Z]?\\b",
841
+ "options": {
842
+ "case_sensitive": false,
843
+ "min_length": 8
844
+ }
845
+ }
846
+ },
847
+ "tags": {
848
+ "type": "uk_nin",
849
+ "category": "pii"
850
+ }
851
+ },
2
852
  {
3
853
  "id": "d962f7ddb3f55041e39195a60ff79d4814a7c331",
4
854
  "name": "US Passport Scanner",
5
855
  "key": {
6
856
  "operator": "match_regex",
7
857
  "parameters": {
8
- "regex": "passport",
858
+ "regex": "\\bpassport\\b",
9
859
  "options": {
10
860
  "case_sensitive": false,
11
861
  "min_length": 8
@@ -27,13 +877,41 @@
27
877
  "category": "pii"
28
878
  }
29
879
  },
880
+ {
881
+ "id": "7771fc3b-b205-4b93-bcef-28608c5c1b54",
882
+ "name": "United States Social Security Number Scanner",
883
+ "key": {
884
+ "operator": "match_regex",
885
+ "parameters": {
886
+ "regex": "\\b(?:SSN|(?:(?:social)?[\\s_]?(?:security)?[\\s_]?(?:number)?)?)\\b",
887
+ "options": {
888
+ "case_sensitive": false,
889
+ "min_length": 3
890
+ }
891
+ }
892
+ },
893
+ "value": {
894
+ "operator": "match_regex",
895
+ "parameters": {
896
+ "regex": "\\b\\d{3}[-\\s\\.]{1}\\d{2}[-\\s\\.]{1}\\d{4}\\b",
897
+ "options": {
898
+ "case_sensitive": false,
899
+ "min_length": 11
900
+ }
901
+ }
902
+ },
903
+ "tags": {
904
+ "type": "us_ssn",
905
+ "category": "pii"
906
+ }
907
+ },
30
908
  {
31
909
  "id": "ac6d683cbac77f6e399a14990793dd8fd0fca333",
32
910
  "name": "US Vehicle Identification Number Scanner",
33
911
  "key": {
34
912
  "operator": "match_regex",
35
913
  "parameters": {
36
- "regex": "vehicle[_\\s-]*identification[_\\s-]*number|vin",
914
+ "regex": "\\b(?:vehicle[_\\s-]*identification[_\\s-]*number|vin)\\b",
37
915
  "options": {
38
916
  "case_sensitive": false,
39
917
  "min_length": 3
@@ -56,12 +934,12 @@
56
934
  }
57
935
  },
58
936
  {
59
- "id": "de0899e0cbaaa812bb624cf04c912071012f616d",
60
- "name": "UK National Insurance Number Scanner",
937
+ "id": "wJIgOygRQhKkR69b_9XbRQ",
938
+ "name": "Visa Card Scanner (2x8 digits)",
61
939
  "key": {
62
940
  "operator": "match_regex",
63
941
  "parameters": {
64
- "regex": "national[\\s_]?(?:insurance(?:\\s+number)?)?|NIN|NI[\\s_]?number|insurance[\\s_]?number",
942
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
65
943
  "options": {
66
944
  "case_sensitive": false,
67
945
  "min_length": 3
@@ -71,25 +949,26 @@
71
949
  "value": {
72
950
  "operator": "match_regex",
73
951
  "parameters": {
74
- "regex": "\\b[A-Z]{2}\\d{6}[A-Z]?\\b",
952
+ "regex": "\\b4\\d{3}(?:(?:\\d{4}(?:(?:,\\d{8})|(?:-\\d{8})|(?:\\s\\d{8})|(?:\\.\\d{8}))))\\b",
75
953
  "options": {
76
954
  "case_sensitive": false,
77
- "min_length": 8
955
+ "min_length": 16
78
956
  }
79
957
  }
80
958
  },
81
959
  "tags": {
82
- "type": "uk_nin",
83
- "category": "pii"
960
+ "type": "card",
961
+ "card_type": "visa",
962
+ "category": "payment"
84
963
  }
85
964
  },
86
965
  {
87
- "id": "450239afc250a19799b6c03dc0e16fd6a4b2a1af",
88
- "name": "Canadian Social Insurance Number Scanner",
966
+ "id": "0o71SJxXQNK7Q6gMbBesFQ",
967
+ "name": "Visa Card Scanner (4x4 digits)",
89
968
  "key": {
90
969
  "operator": "match_regex",
91
970
  "parameters": {
92
- "regex": "social[\\s_]?(?:insurance(?:\\s+number)?)?|SIN|Canadian[\\s_]?(?:social[\\s_]?(?:insurance)?|insurance[\\s_]?number)?",
971
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
93
972
  "options": {
94
973
  "case_sensitive": false,
95
974
  "min_length": 3
@@ -99,16 +978,46 @@
99
978
  "value": {
100
979
  "operator": "match_regex",
101
980
  "parameters": {
102
- "regex": "\\b\\d{3}-\\d{3}-\\d{3}\\b",
981
+ "regex": "\\b4\\d{3}(?:(?:,\\d{4}){3}|(?:\\s\\d{4}){3}|(?:\\.\\d{4}){3}|(?:-\\d{4}){3})\\b",
103
982
  "options": {
104
983
  "case_sensitive": false,
105
- "min_length": 11
984
+ "min_length": 16
106
985
  }
107
986
  }
108
987
  },
109
988
  "tags": {
110
- "type": "canadian_sin",
111
- "category": "pii"
989
+ "type": "card",
990
+ "card_type": "visa",
991
+ "category": "payment"
992
+ }
993
+ },
994
+ {
995
+ "id": "QrHD6AfgQm6z-j0wStxTvA",
996
+ "name": "Visa Card Scanner (1x15 & 1x16 & 1x19 digits)",
997
+ "key": {
998
+ "operator": "match_regex",
999
+ "parameters": {
1000
+ "regex": "\\b(?:card|cc|credit|debit|payment|amex|visa|mastercard|maestro|discover|jcb|diner)\\b",
1001
+ "options": {
1002
+ "case_sensitive": false,
1003
+ "min_length": 3
1004
+ }
1005
+ }
1006
+ },
1007
+ "value": {
1008
+ "operator": "match_regex",
1009
+ "parameters": {
1010
+ "regex": "4[0-9]{12}(?:[0-9]{3})?",
1011
+ "options": {
1012
+ "case_sensitive": false,
1013
+ "min_length": 13
1014
+ }
1015
+ }
1016
+ },
1017
+ "tags": {
1018
+ "type": "card",
1019
+ "card_type": "visa",
1020
+ "category": "payment"
112
1021
  }
113
1022
  }
114
- ]
1023
+ ]