@akasecurity/cli 0.8.1 → 0.9.0-rc1
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.
- package/README.md +2 -0
- package/dist/cli.js +2353 -1293
- package/package.json +12 -6
- package/web-ui/packages/dashboard-ui/package.json +1 -1
- package/web-ui/packages/detections/package.json +2 -2
- package/web-ui/packages/local-ops/package.json +3 -2
- package/web-ui/packages/persistence/package.json +2 -2
- package/web-ui/packages/plugin-sdk/package.json +29 -0
- package/web-ui/packages/schema/package.json +2 -2
- package/web-ui/rules/code-flaws/auth-jwt-no-verify.json +20 -0
- package/web-ui/rules/code-flaws/auth-ssl-verify-false.json +19 -0
- package/web-ui/rules/code-flaws/cmd-inject-exec.json +20 -0
- package/web-ui/rules/code-flaws/cmd-inject-node-exec.json +20 -0
- package/web-ui/rules/code-flaws/cmd-inject-shell.json +20 -0
- package/web-ui/rules/code-flaws/crypto-insecure-random.json +20 -0
- package/web-ui/rules/code-flaws/crypto-weak-hash-md5.json +16 -0
- package/web-ui/rules/code-flaws/crypto-weak-hash-sha1.json +23 -0
- package/web-ui/rules/code-flaws/deser-java-ois.json +22 -0
- package/web-ui/rules/code-flaws/deser-pickle.json +16 -0
- package/web-ui/rules/code-flaws/deser-yaml-unsafe.json +16 -0
- package/web-ui/rules/code-flaws/dev-debug-enabled.json +13 -0
- package/web-ui/rules/code-flaws/dev-placeholder-secret.json +24 -0
- package/web-ui/rules/code-flaws/dev-wildcard-cors.json +17 -0
- package/web-ui/rules/code-flaws/eval-dynamic-exec.json +17 -0
- package/web-ui/rules/code-flaws/hardcoded-password.json +23 -0
- package/web-ui/rules/code-flaws/hardcoded-secret-key.json +17 -0
- package/web-ui/rules/code-flaws/path-traversal-join.json +19 -0
- package/web-ui/rules/code-flaws/path-traversal-open.json +20 -0
- package/web-ui/rules/code-flaws/prototype-pollution-merge.json +16 -0
- package/web-ui/rules/code-flaws/regex-redos-backtrack.json +13 -0
- package/web-ui/rules/code-flaws/sql-inject-concat-dot.json +16 -0
- package/web-ui/rules/code-flaws/sql-inject-concat.json +13 -0
- package/web-ui/rules/code-flaws/sql-inject-format.json +16 -0
- package/web-ui/rules/code-flaws/sql-inject-interp.json +19 -0
- package/web-ui/rules/code-flaws/ssrf-user-url.json +16 -0
- package/web-ui/rules/code-flaws/xss-dangerously-set.json +16 -0
- package/web-ui/rules/code-flaws/xss-inner-html.json +16 -0
- package/web-ui/rules/code-flaws/xss-unescaped-render.json +16 -0
- package/web-ui/rules/core-code-context/db-table-name.json +29 -0
- package/web-ui/rules/core-code-context/feature-flag.json +24 -0
- package/web-ui/rules/core-code-context/file-path.json +17 -0
- package/web-ui/rules/core-code-context/internal-domain.json +13 -0
- package/web-ui/rules/core-code-context/internal-ip.json +13 -0
- package/web-ui/rules/core-code-context/internal-url.json +27 -0
- package/web-ui/rules/core-code-context/localhost-ref.json +13 -0
- package/web-ui/rules/core-code-context/stack-trace.json +13 -0
- package/web-ui/rules/core-financial/credit-card.json +14 -0
- package/web-ui/rules/core-financial/cusip.json +14 -0
- package/web-ui/rules/core-financial/cvv.json +13 -0
- package/web-ui/rules/core-financial/iban.json +17 -0
- package/web-ui/rules/core-financial/paypal.json +14 -0
- package/web-ui/rules/core-financial/routing-number.json +14 -0
- package/web-ui/rules/core-financial/salary.json +23 -0
- package/web-ui/rules/core-financial/swift.json +14 -0
- package/web-ui/rules/core-phi/biometric-ref.json +23 -0
- package/web-ui/rules/core-phi/genetic-data.json +24 -0
- package/web-ui/rules/core-phi/group-id.json +19 -0
- package/web-ui/rules/core-phi/hipaa-identifier.json +13 -0
- package/web-ui/rules/core-phi/icd10-code.json +14 -0
- package/web-ui/rules/core-phi/member-id.json +13 -0
- package/web-ui/rules/core-phi/mrn.json +13 -0
- package/web-ui/rules/core-phi/ndc-code.json +13 -0
- package/web-ui/rules/core-pii/dob.json +18 -0
- package/web-ui/rules/core-pii/drivers-license-us.json +14 -0
- package/web-ui/rules/core-pii/email.json +13 -0
- package/web-ui/rules/core-pii/home-address.json +21 -0
- package/web-ui/rules/core-pii/ip-address.json +13 -0
- package/web-ui/rules/core-pii/mac-address.json +13 -0
- package/web-ui/rules/core-pii/name.json +21 -0
- package/web-ui/rules/core-pii/national-id.json +27 -0
- package/web-ui/rules/core-pii/passport-us.json +17 -0
- package/web-ui/rules/core-pii/phone-intl.json +13 -0
- package/web-ui/rules/core-pii/phone-us.json +17 -0
- package/web-ui/rules/core-pii/ssn.json +13 -0
- package/web-ui/rules/core-pii/vin.json +13 -0
- package/web-ui/rules/core-pii/zip.json +30 -0
- package/web-ui/rules/secrets/anthropic-api-key.json +14 -0
- package/web-ui/rules/secrets/aws-access-key.json +14 -0
- package/web-ui/rules/secrets/aws-secret-key.json +15 -0
- package/web-ui/rules/secrets/azure-connection-string.json +13 -0
- package/web-ui/rules/secrets/cloudflare-api-key.json +15 -0
- package/web-ui/rules/secrets/datadog-key.json +15 -0
- package/web-ui/rules/secrets/digitalocean-token.json +13 -0
- package/web-ui/rules/secrets/discord-token.json +14 -0
- package/web-ui/rules/secrets/gcp-service-account.json +16 -0
- package/web-ui/rules/secrets/github-pat.json +16 -0
- package/web-ui/rules/secrets/gitlab-token.json +14 -0
- package/web-ui/rules/secrets/heroku-api-key.json +14 -0
- package/web-ui/rules/secrets/npm-token.json +14 -0
- package/web-ui/rules/secrets/openai-api-key.json +14 -0
- package/web-ui/rules/secrets/pulumi-access-token.json +14 -0
- package/web-ui/rules/secrets/sendgrid-key.json +14 -0
- package/web-ui/rules/secrets/slack-token.json +13 -0
- package/web-ui/rules/secrets/stripe-live-key.json +14 -0
- package/web-ui/rules/secrets/terraform-cloud-token.json +16 -0
- package/web-ui/rules/secrets/twilio-key.json +13 -0
- package/web-ui/rules/secrets/vault-token.json +14 -0
- package/web-ui/rules/secrets-infra/api-key-header.json +15 -0
- package/web-ui/rules/secrets-infra/basic-auth-header.json +13 -0
- package/web-ui/rules/secrets-infra/basic-auth-url.json +13 -0
- package/web-ui/rules/secrets-infra/bearer-token.json +17 -0
- package/web-ui/rules/secrets-infra/db-connection-string.json +13 -0
- package/web-ui/rules/secrets-infra/docker-config-auth.json +13 -0
- package/web-ui/rules/secrets-infra/env-key-value.json +14 -0
- package/web-ui/rules/secrets-infra/generic-high-entropy-secret.json +18 -0
- package/web-ui/rules/secrets-infra/jwt-token.json +16 -0
- package/web-ui/rules/secrets-infra/kubeconfig-token.json +14 -0
- package/web-ui/rules/secrets-infra/password-field.json +14 -0
- package/web-ui/rules/secrets-infra/pgp-private-key.json +15 -0
- package/web-ui/rules/secrets-infra/ssh-private-key.json +15 -0
- package/web-ui/web-ui/.next/BUILD_ID +1 -1
- package/web-ui/web-ui/.next/app-build-manifest.json +56 -55
- package/web-ui/web-ui/.next/app-path-routes-manifest.json +6 -6
- package/web-ui/web-ui/.next/build-manifest.json +2 -2
- package/web-ui/web-ui/.next/prerender-manifest.json +15 -15
- package/web-ui/web-ui/.next/required-server-files.json +4 -3
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/data-shares/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/detections/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/detections/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/detections/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/findings/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/findings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/inventory/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/policies/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/policies/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/policies/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/scan/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/settings/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/settings/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
- package/web-ui/web-ui/.next/server/app/(app)/updates/page.js.nft.json +1 -1
- package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.html +1 -1
- package/web-ui/web-ui/.next/server/app/_not-found.rsc +2 -2
- package/web-ui/web-ui/.next/server/app/index.html +1 -1
- package/web-ui/web-ui/.next/server/app/index.rsc +2 -2
- package/web-ui/web-ui/.next/server/app/page.js +1 -1
- package/web-ui/web-ui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/app-paths-manifest.json +6 -6
- package/web-ui/web-ui/.next/server/chunks/366.js +582 -0
- package/web-ui/web-ui/.next/server/chunks/45.js +1 -1
- package/web-ui/web-ui/.next/server/chunks/461.js +5 -5
- package/web-ui/web-ui/.next/server/chunks/484.js +580 -0
- package/web-ui/web-ui/.next/server/chunks/773.js +4 -4
- package/web-ui/web-ui/.next/server/chunks/900.js +1 -0
- package/web-ui/web-ui/.next/server/chunks/918.js +2 -0
- package/web-ui/web-ui/.next/server/functions-config-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
- package/web-ui/web-ui/.next/server/pages/404.html +1 -1
- package/web-ui/web-ui/.next/server/pages/500.html +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.js +1 -1
- package/web-ui/web-ui/.next/server/server-reference-manifest.json +1 -1
- package/web-ui/web-ui/.next/static/chunks/{24-b20c857178647805.js → 24-55b96836aea5ce23.js} +3 -3
- package/web-ui/web-ui/.next/static/chunks/561-c3388f066f813e17.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-0c208c8b275a69ac.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-041187c76bd42461.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-481fedcbfb474cef.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-a20e7d7a2f0ad507.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-2cfe42c3dd4833c3.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-849d66cc2cd77cb6.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-d33f3999e89c7e77.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-76edd10592ba3cb1.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-d15081016f40ac92.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-50b604f229747240.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-92d1086c8e8ed3bf.js +1 -0
- package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/{page-b9607b5e2e8700d6.js → page-c3c1671d32547619.js} +1 -1
- package/web-ui/web-ui/.next/static/chunks/app/{layout-8b19b03146218dc7.js → layout-40fea3e270a8e120.js} +1 -1
- package/web-ui/web-ui/.next/static/css/43f95c94ecc1bd17.css +2 -0
- package/web-ui/web-ui/package.json +1 -1
- package/web-ui/web-ui/server.js +1 -1
- package/LICENSE +0 -201
- package/web-ui/web-ui/.next/server/chunks/116.js +0 -536
- package/web-ui/web-ui/.next/server/chunks/223.js +0 -534
- package/web-ui/web-ui/.next/server/chunks/226.js +0 -2
- package/web-ui/web-ui/.next/server/chunks/640.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/561-3a19cd28d2b941fa.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/page-f6b1b344709ee48e.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/page-548fa0d3dee6e829.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-0bfa1f371b65b5ad.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-56ec5c05f347108a.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/page-cb33dc32fd3648bf.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-b6fbc540ef0a50f8.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/page-94eb9d838ae00222.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-89cf3ac5a30e76a0.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/layout-a86819fe3aeb2491.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-0d43a6b2acafe349.js +0 -1
- package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/page-2cf02a09402cfb4d.js +0 -1
- package/web-ui/web-ui/.next/static/css/69dfaec5234c6b99.css +0 -2
- /package/web-ui/web-ui/.next/static/{X9C7-HlMI5zAQEKfIW_6e → unUYwnPVSRwxtrUFgSAxr}/_buildManifest.js +0 -0
- /package/web-ui/web-ui/.next/static/{X9C7-HlMI5zAQEKfIW_6e → unUYwnPVSRwxtrUFgSAxr}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/national-id",
|
|
4
|
+
"name": "National ID number (multi-country)",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-Z]{2}\\d{6}[A-D]\\b|\\b[2-9]\\d{11}\\b|(?:national\\s*id|aadhaar|\\bSIN\\b).{0,10}?\\d{3}[\\s-]?\\d{3}[\\s-]?\\d{3}\\b",
|
|
10
|
+
"flags": "gi"
|
|
11
|
+
},
|
|
12
|
+
"requiresNearby": {
|
|
13
|
+
"labels": [
|
|
14
|
+
"national id",
|
|
15
|
+
"national identity",
|
|
16
|
+
"national insurance",
|
|
17
|
+
"nino",
|
|
18
|
+
"ni",
|
|
19
|
+
"aadhaar",
|
|
20
|
+
"sin",
|
|
21
|
+
"identity number",
|
|
22
|
+
"id number"
|
|
23
|
+
],
|
|
24
|
+
"windowChars": 160
|
|
25
|
+
},
|
|
26
|
+
"examples": ["Aadhaar: 234567890123", "NI: AB123456C", "SIN: 123-456-789"]
|
|
27
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/passport-us",
|
|
4
|
+
"name": "US passport number",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-Z]\\d{8}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"requiresNearby": {
|
|
13
|
+
"labels": ["passport"],
|
|
14
|
+
"windowChars": 160
|
|
15
|
+
},
|
|
16
|
+
"examples": ["Passport: A12345678"]
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/phone-intl",
|
|
4
|
+
"name": "International phone number",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\+\\d{1,3}(?:[-.\\s]\\d{1,14}){1,5}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["+44 20 7946 0958", "+86 138 0013 8000"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/phone-us",
|
|
4
|
+
"name": "US phone number",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "(?<!\\d)(?:\\+?1[-.\\s]?)?(?:\\([2-9]\\d{2}\\)[-.\\s]?|[2-9]\\d{2}[-.\\s])\\d{3}[-.\\s]\\d{4}(?!\\d)",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"requiresNearby": {
|
|
13
|
+
"labels": ["phone", "call", "mobile", "cell", "tel", "telephone", "contact", "fax", "dial"],
|
|
14
|
+
"windowChars": 160
|
|
15
|
+
},
|
|
16
|
+
"examples": ["(555) 123-4567", "+1-555-123-4567"]
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/ssn",
|
|
4
|
+
"name": "US Social Security Number",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?!000|666|9\\d{2})\\d{3}[\\s\\-](?!00)\\d{2}[\\s\\-](?!0000)\\d{4}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["123-45-6789"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/vin",
|
|
4
|
+
"name": "Vehicle Identification Number",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "medium",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-HJ-NPR-Z0-9]{17}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["1HGCM82633A004352"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "core-pii/zip",
|
|
4
|
+
"name": "US ZIP / ZIP+4 postal code",
|
|
5
|
+
"category": "pii",
|
|
6
|
+
"severity": "low",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b\\d{5}(?:-\\d{4})?\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"requiresNearby": {
|
|
13
|
+
"ruleIds": ["core-pii/home-address"],
|
|
14
|
+
"labels": [
|
|
15
|
+
"address",
|
|
16
|
+
"street",
|
|
17
|
+
"avenue",
|
|
18
|
+
"boulevard",
|
|
19
|
+
"mailing",
|
|
20
|
+
"shipping",
|
|
21
|
+
"billing",
|
|
22
|
+
"suite",
|
|
23
|
+
"p.o. box",
|
|
24
|
+
"po box",
|
|
25
|
+
"postal"
|
|
26
|
+
],
|
|
27
|
+
"windowChars": 120
|
|
28
|
+
},
|
|
29
|
+
"examples": ["Shipping address: 123 Main Street, Springfield, IL 94107-1234"]
|
|
30
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/anthropic-api-key",
|
|
4
|
+
"name": "Anthropic API key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bsk-ant-[A-Za-z0-9_-]{40,}",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["sk-ant-AbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYz"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/aws-access-key",
|
|
4
|
+
"name": "AWS Access Key ID",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(AKIA|ASIA|AROA|AIDA|ANPA|ANVA|APKA)[A-Z0-9]{16}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["AKIAIOSFODNN7EXAMPLE"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/aws-secret-key",
|
|
4
|
+
"name": "AWS Secret Access Key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "aws[_.-]?secret[_.-]?(?:access[_.-]?)?key[\"'\\s:=]{1,5}([A-Za-z0-9/+]{40})",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": ["AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"]
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/azure-connection-string",
|
|
4
|
+
"name": "Azure connection string",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "(?<![A-Za-z0-9])(?:DefaultEndpointsProtocol|AccountEndpoint|AccountName|AccountKey|SharedAccessSignature|SharedAccessKeyName|SharedAccessKey|EndpointSuffix|BlobEndpoint|QueueEndpoint|TableEndpoint|FileEndpoint|HostName|Endpoint)=(?![{<($])[^\\x3B\\r\\n]{1,400}\\x3B(?:[A-Za-z][A-Za-z0-9_]{0,39}=[^\\x3B\\r\\n]{1,400}\\x3B){0,10}(?:DefaultEndpointsProtocol|AccountEndpoint|AccountName|AccountKey|SharedAccessSignature|SharedAccessKeyName|SharedAccessKey|EndpointSuffix|BlobEndpoint|QueueEndpoint|TableEndpoint|FileEndpoint|HostName|Endpoint)=(?![{<($])[^\\x3B\\r\\n]{1,400}(?:\\x3B[A-Za-z][A-Za-z0-9_]{0,39}=[^\\x3B\\r\\n]{1,400}){0,10}",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["AccountName=mystorage;AccountKey=abc123=="]
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/cloudflare-api-key",
|
|
4
|
+
"name": "Cloudflare API token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "cloudflare.{0,40}?[\"'\\s:=]([A-Za-z0-9_-]{40})",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": ["CLOUDFLARE_API_TOKEN=kQ9fL2mP7xR4tY6wB1nC8vD3jH5sZ0aG2eU4iO7p"]
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/datadog-key",
|
|
4
|
+
"name": "Datadog API/Application key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:DD_API_KEY|DD_APP_KEY|DATADOG_API_KEY|DATADOG_APP_KEY)[\\s:=]+([A-Za-z0-9]{32,40})\\b",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": ["DD_API_KEY=a3F5g8H1j4K7m2N0p9Q6r1S4t7U0v3W8"]
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/digitalocean-token",
|
|
4
|
+
"name": "DigitalOcean Personal Access Token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bdop_v1_[A-Za-z0-9]{64}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["dop_v1_1234567890123456789012345678901234567890123456789012345678901234"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/discord-token",
|
|
4
|
+
"name": "Discord bot token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-Za-z0-9]{24}\\.[A-Za-z0-9]{6}\\.[A-Za-z0-9_\\-]{27}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["AbCdEfGhIjKlMnOpQrStUvWx.YzAbCd.ABCdEfGhIjKlMnOpQrStUvWxYzAbCdEf"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/gcp-service-account",
|
|
4
|
+
"name": "GCP service account key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[a-z0-9][a-z0-9-]{2,60}@[a-z0-9][a-z0-9-]{2,60}\\.iam\\.gserviceaccount\\.com\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": [
|
|
13
|
+
"deploy-bot@sample-project.iam.gserviceaccount.com",
|
|
14
|
+
"12345678-1234-1234-1234-123456789012@my-project.iam.gserviceaccount.com"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/github-pat",
|
|
4
|
+
"name": "GitHub Personal Access Token (classic and fine-grained)",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:gh[psou]_[A-Za-z0-9]{36}|github_pat_[0-9A-Za-z_]{82})\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": [
|
|
13
|
+
"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",
|
|
14
|
+
"ghp_aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/gitlab-token",
|
|
4
|
+
"name": "GitLab Personal/Project Access Token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bglpat-[A-Za-z0-9\\-_]{20,40}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["glpat-ABCdEfGhIjKlMnOpQrStUvWxYz1234567890"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/heroku-api-key",
|
|
4
|
+
"name": "Heroku API key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "heroku.{0,40}?([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"examples": ["HEROKU_API_KEY=3f8a1c2e-9b4d-4e6f-a1b2-c3d4e5f6a7b8"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/npm-token",
|
|
4
|
+
"name": "npm access token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bnpm_[A-Za-z0-9]{36,60}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["npm_AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjKlMnO"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/openai-api-key",
|
|
4
|
+
"name": "OpenAI API key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bsk-proj-[A-Za-z0-9]{20,60}\\b|\\bsk-[A-Za-z0-9]{40,55}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["sk-proj-AbCdEfGhIjKlMnOpQrStUvWxYz1234567890AbCdEfGhIjK"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/pulumi-access-token",
|
|
4
|
+
"name": "Pulumi access token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bpul-[A-Za-z0-9]{20,60}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["pul-ABCdEfGhIjKlMnOpQrStUvWxYz1234567890"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/sendgrid-key",
|
|
4
|
+
"name": "SendGrid API key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bSG\\.[A-Za-z0-9_\\-]{20,60}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["SG.AbCdEfGhIjKlMnOpQrStUvWxYzAbCdEfGhIjKlMnOpQrStUvWxYz"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/slack-token",
|
|
4
|
+
"name": "Slack API token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:xox[baprs]-[A-Za-z0-9]{10,60}|xapp-[A-Za-z0-9-]{10,60})\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["xoxb-123456789012-123456789012-ABCdEfGhIjKlMnOpQrStUvWx"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/stripe-live-key",
|
|
4
|
+
"name": "Stripe live API key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:sk|pk|rk)_live_[A-Za-z0-9]{24,40}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["sk_live_aBcDeFgHiJkLmNoPqRsTuVwXyZ"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/terraform-cloud-token",
|
|
4
|
+
"name": "Terraform Cloud / TFE user token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-Za-z0-9]{14}\\.atlasv1\\.[A-Za-z0-9_\\-]{60,80}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": [
|
|
14
|
+
"AbCdEfGhIjKlMnOp.atlasv1.XyZ1234567890123456789012345678901234567890123456789012345678901234567890"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/twilio-key",
|
|
4
|
+
"name": "Twilio Account SID",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\bAC[A-Za-z0-9]{32}\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["AC12345678901234567890123456789012"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets/vault-token",
|
|
4
|
+
"name": "HashiCorp Vault token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:hvs\\.[A-Za-z0-9\\-_]{20,50}|s\\.[A-Za-z0-9\\-_]{20,50})\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": ["hvs.AbCdEfGhIjKlMnOpQrStUvWxYz1234567890"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/api-key-header",
|
|
4
|
+
"name": "API key in a custom HTTP header",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "[\"']?\\bapi-?key\\b[\"']?\\s*:\\s*[\"']?([A-Za-z0-9+/_\\-.]{16,500})[\"']?",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": ["X-Api-Key: aBc123XyZ789kLmNoPqRsTuVwXyZ1234567890"]
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/basic-auth-header",
|
|
4
|
+
"name": "HTTP Basic auth Authorization header",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "authorization\\s*:\\s*basic\\s+[A-Za-z0-9+/=]{16,}",
|
|
10
|
+
"flags": "gi"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["Authorization: Basic dXNlcjpwYXNzd29yZDEyMzQ="]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/basic-auth-url",
|
|
4
|
+
"name": "URL with embedded basic auth credentials",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "https?://[A-Za-z0-9_%\\-]+:[A-Za-z0-9_%\\-]+@[A-Za-z0-9.\\-]+",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["https://user:password@example.com/path"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/bearer-token",
|
|
4
|
+
"name": "Generic Authorization Bearer token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:Bearer|bearer)\\s+([A-Za-z0-9_\\-.]{20,500})",
|
|
10
|
+
"flags": "g",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": [
|
|
15
|
+
"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/db-connection-string",
|
|
4
|
+
"name": "Database connection string with credentials",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:postgres(?:ql)?|mysql|mongodb(?:\\+srv)?|redis|rediss)://[A-Za-z0-9_%\\-]+:[A-Za-z0-9_%\\-]+@[A-Za-z0-9.\\-]+(?:\\:\\d+)?",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["postgresql://user:password@localhost:5432/mydb"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/docker-config-auth",
|
|
4
|
+
"name": "Docker config.json auth (base64-encoded)",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\"auth\"\\s*:\\s*\"[A-Za-z0-9+/]{12,}={0,2}\"",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"examples": ["\"auths\": {\"https://index.docker.io/v1/\": {\"auth\": \"dXNlcjpwYXNzd29yZA==\"}}"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/env-key-value",
|
|
4
|
+
"name": "Environment variable assignment with sensitive key",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b[A-Za-z0-9_]*(?:API_KEY|API_SECRET|SECRET_KEY|SECRET|TOKEN|PASSWORD|PASS|CREDENTIALS|PRIVATE_KEY|ENCRYPTION_KEY|SIGNING_KEY)\\s*=\\s*[\"']?([^\\s\"']{4,})",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"examples": ["API_KEY=aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890"]
|
|
14
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/generic-high-entropy-secret",
|
|
4
|
+
"name": "Generic high-entropy secret assigned to a credential-shaped field",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "(?<![A-Za-z0-9_-])[A-Za-z0-9_]{0,34}(?:(?:secret|token|passw(?:or)?d|credentials?|(?<!api[_-]?)key)(?:[\"']?\\s*:|\\s+=)|(?:passwd|credential|(?<!api[_-]?)(?<!secret_)(?<!private_)(?<!encryption_)(?<!signing_)key)=)\\s*[\"']?((?!eyJ)[A-Za-z0-9+/_\\-]{20,200})",
|
|
10
|
+
"flags": "gi",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"postValidators": ["entropy"],
|
|
14
|
+
"examples": [
|
|
15
|
+
"authToken: \"aBc123XyZ789kLmNoPqRsTuVwXyZ1234567890\"",
|
|
16
|
+
"MASTER_KEY=aBc123XyZ789kLmNoPqRsTuVwXyZ1234567890"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/jwt-token",
|
|
4
|
+
"name": "JSON Web Token (JWT)",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "high",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\beyJ[A-Za-z0-9_\\-+/]+\\.[A-Za-z0-9_\\-+/]+\\.[A-Za-z0-9_\\-+/]+\\b",
|
|
10
|
+
"flags": "g"
|
|
11
|
+
},
|
|
12
|
+
"postValidators": ["entropy"],
|
|
13
|
+
"examples": [
|
|
14
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": 1,
|
|
3
|
+
"id": "secrets-infra/kubeconfig-token",
|
|
4
|
+
"name": "Kubernetes kubeconfig embedded token",
|
|
5
|
+
"category": "secret",
|
|
6
|
+
"severity": "critical",
|
|
7
|
+
"matcher": {
|
|
8
|
+
"type": "regex",
|
|
9
|
+
"pattern": "\\b(?:client-(?:certificate|key)-data|token):\\s+([A-Za-z0-9+/=_.-]{20,})",
|
|
10
|
+
"flags": "g",
|
|
11
|
+
"captureGroup": 1
|
|
12
|
+
},
|
|
13
|
+
"examples": ["token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9..."]
|
|
14
|
+
}
|