@akasecurity/cli 0.8.0 → 0.8.2

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 (204) hide show
  1. package/README.md +65 -0
  2. package/dist/cli.js +2008 -1221
  3. package/package.json +7 -6
  4. package/web-ui/package.json +1 -1
  5. package/web-ui/packages/dashboard-ui/package.json +1 -1
  6. package/web-ui/packages/detections/package.json +2 -2
  7. package/web-ui/packages/local-ops/package.json +3 -2
  8. package/web-ui/packages/persistence/package.json +2 -2
  9. package/web-ui/packages/plugin-sdk/package.json +29 -0
  10. package/web-ui/packages/schema/package.json +2 -2
  11. package/web-ui/rules/code-flaws/auth-jwt-no-verify.json +20 -0
  12. package/web-ui/rules/code-flaws/auth-ssl-verify-false.json +19 -0
  13. package/web-ui/rules/code-flaws/cmd-inject-exec.json +20 -0
  14. package/web-ui/rules/code-flaws/cmd-inject-node-exec.json +20 -0
  15. package/web-ui/rules/code-flaws/cmd-inject-shell.json +20 -0
  16. package/web-ui/rules/code-flaws/crypto-insecure-random.json +20 -0
  17. package/web-ui/rules/code-flaws/crypto-weak-hash-md5.json +16 -0
  18. package/web-ui/rules/code-flaws/crypto-weak-hash-sha1.json +23 -0
  19. package/web-ui/rules/code-flaws/deser-java-ois.json +22 -0
  20. package/web-ui/rules/code-flaws/deser-pickle.json +16 -0
  21. package/web-ui/rules/code-flaws/deser-yaml-unsafe.json +16 -0
  22. package/web-ui/rules/code-flaws/dev-debug-enabled.json +13 -0
  23. package/web-ui/rules/code-flaws/dev-placeholder-secret.json +24 -0
  24. package/web-ui/rules/code-flaws/dev-wildcard-cors.json +17 -0
  25. package/web-ui/rules/code-flaws/eval-dynamic-exec.json +17 -0
  26. package/web-ui/rules/code-flaws/hardcoded-password.json +23 -0
  27. package/web-ui/rules/code-flaws/hardcoded-secret-key.json +17 -0
  28. package/web-ui/rules/code-flaws/path-traversal-join.json +19 -0
  29. package/web-ui/rules/code-flaws/path-traversal-open.json +20 -0
  30. package/web-ui/rules/code-flaws/prototype-pollution-merge.json +16 -0
  31. package/web-ui/rules/code-flaws/regex-redos-backtrack.json +13 -0
  32. package/web-ui/rules/code-flaws/sql-inject-concat-dot.json +16 -0
  33. package/web-ui/rules/code-flaws/sql-inject-concat.json +13 -0
  34. package/web-ui/rules/code-flaws/sql-inject-format.json +16 -0
  35. package/web-ui/rules/code-flaws/sql-inject-interp.json +19 -0
  36. package/web-ui/rules/code-flaws/ssrf-user-url.json +16 -0
  37. package/web-ui/rules/code-flaws/xss-dangerously-set.json +16 -0
  38. package/web-ui/rules/code-flaws/xss-inner-html.json +16 -0
  39. package/web-ui/rules/code-flaws/xss-unescaped-render.json +16 -0
  40. package/web-ui/rules/core-code-context/db-table-name.json +30 -0
  41. package/web-ui/rules/core-code-context/feature-flag.json +24 -0
  42. package/web-ui/rules/core-code-context/file-path.json +17 -0
  43. package/web-ui/rules/core-code-context/internal-domain.json +13 -0
  44. package/web-ui/rules/core-code-context/internal-ip.json +13 -0
  45. package/web-ui/rules/core-code-context/internal-url.json +27 -0
  46. package/web-ui/rules/core-code-context/localhost-ref.json +13 -0
  47. package/web-ui/rules/core-code-context/stack-trace.json +13 -0
  48. package/web-ui/rules/core-financial/credit-card.json +14 -0
  49. package/web-ui/rules/core-financial/cusip.json +14 -0
  50. package/web-ui/rules/core-financial/cvv.json +13 -0
  51. package/web-ui/rules/core-financial/iban.json +17 -0
  52. package/web-ui/rules/core-financial/paypal.json +14 -0
  53. package/web-ui/rules/core-financial/routing-number.json +14 -0
  54. package/web-ui/rules/core-financial/salary.json +23 -0
  55. package/web-ui/rules/core-financial/swift.json +14 -0
  56. package/web-ui/rules/core-phi/biometric-ref.json +23 -0
  57. package/web-ui/rules/core-phi/genetic-data.json +24 -0
  58. package/web-ui/rules/core-phi/group-id.json +19 -0
  59. package/web-ui/rules/core-phi/hipaa-identifier.json +13 -0
  60. package/web-ui/rules/core-phi/icd10-code.json +14 -0
  61. package/web-ui/rules/core-phi/member-id.json +13 -0
  62. package/web-ui/rules/core-phi/mrn.json +13 -0
  63. package/web-ui/rules/core-phi/ndc-code.json +13 -0
  64. package/web-ui/rules/core-pii/dob.json +18 -0
  65. package/web-ui/rules/core-pii/drivers-license-us.json +14 -0
  66. package/web-ui/rules/core-pii/email.json +13 -0
  67. package/web-ui/rules/core-pii/home-address.json +21 -0
  68. package/web-ui/rules/core-pii/ip-address.json +13 -0
  69. package/web-ui/rules/core-pii/mac-address.json +13 -0
  70. package/web-ui/rules/core-pii/name.json +21 -0
  71. package/web-ui/rules/core-pii/national-id.json +27 -0
  72. package/web-ui/rules/core-pii/passport-us.json +17 -0
  73. package/web-ui/rules/core-pii/phone-intl.json +13 -0
  74. package/web-ui/rules/core-pii/phone-us.json +17 -0
  75. package/web-ui/rules/core-pii/ssn.json +13 -0
  76. package/web-ui/rules/core-pii/vin.json +13 -0
  77. package/web-ui/rules/core-pii/zip.json +30 -0
  78. package/web-ui/rules/secrets/anthropic-api-key.json +14 -0
  79. package/web-ui/rules/secrets/aws-access-key.json +14 -0
  80. package/web-ui/rules/secrets/aws-secret-key.json +15 -0
  81. package/web-ui/rules/secrets/azure-connection-string.json +13 -0
  82. package/web-ui/rules/secrets/cloudflare-api-key.json +15 -0
  83. package/web-ui/rules/secrets/datadog-key.json +15 -0
  84. package/web-ui/rules/secrets/digitalocean-token.json +13 -0
  85. package/web-ui/rules/secrets/discord-token.json +14 -0
  86. package/web-ui/rules/secrets/gcp-service-account.json +16 -0
  87. package/web-ui/rules/secrets/github-pat.json +16 -0
  88. package/web-ui/rules/secrets/gitlab-token.json +14 -0
  89. package/web-ui/rules/secrets/heroku-api-key.json +14 -0
  90. package/web-ui/rules/secrets/npm-token.json +14 -0
  91. package/web-ui/rules/secrets/openai-api-key.json +14 -0
  92. package/web-ui/rules/secrets/pulumi-access-token.json +14 -0
  93. package/web-ui/rules/secrets/sendgrid-key.json +14 -0
  94. package/web-ui/rules/secrets/slack-token.json +13 -0
  95. package/web-ui/rules/secrets/stripe-live-key.json +14 -0
  96. package/web-ui/rules/secrets/terraform-cloud-token.json +16 -0
  97. package/web-ui/rules/secrets/twilio-key.json +13 -0
  98. package/web-ui/rules/secrets/vault-token.json +14 -0
  99. package/web-ui/rules/secrets-infra/api-key-header.json +15 -0
  100. package/web-ui/rules/secrets-infra/basic-auth-header.json +13 -0
  101. package/web-ui/rules/secrets-infra/basic-auth-url.json +13 -0
  102. package/web-ui/rules/secrets-infra/bearer-token.json +17 -0
  103. package/web-ui/rules/secrets-infra/db-connection-string.json +13 -0
  104. package/web-ui/rules/secrets-infra/docker-config-auth.json +13 -0
  105. package/web-ui/rules/secrets-infra/env-key-value.json +14 -0
  106. package/web-ui/rules/secrets-infra/generic-high-entropy-secret.json +18 -0
  107. package/web-ui/rules/secrets-infra/jwt-token.json +16 -0
  108. package/web-ui/rules/secrets-infra/kubeconfig-token.json +14 -0
  109. package/web-ui/rules/secrets-infra/password-field.json +14 -0
  110. package/web-ui/rules/secrets-infra/pgp-private-key.json +15 -0
  111. package/web-ui/rules/secrets-infra/ssh-private-key.json +15 -0
  112. package/web-ui/web-ui/.next/BUILD_ID +1 -1
  113. package/web-ui/web-ui/.next/app-build-manifest.json +39 -39
  114. package/web-ui/web-ui/.next/app-path-routes-manifest.json +6 -6
  115. package/web-ui/web-ui/.next/build-manifest.json +2 -2
  116. package/web-ui/web-ui/.next/prerender-manifest.json +3 -3
  117. package/web-ui/web-ui/.next/required-server-files.json +2 -1
  118. package/web-ui/web-ui/.next/server/app/(app)/activity/page.js +2 -2
  119. package/web-ui/web-ui/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  120. package/web-ui/web-ui/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  121. package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js +2 -2
  122. package/web-ui/web-ui/.next/server/app/(app)/data-shares/page.js.nft.json +1 -1
  123. package/web-ui/web-ui/.next/server/app/(app)/data-shares/page_client-reference-manifest.js +1 -1
  124. package/web-ui/web-ui/.next/server/app/(app)/detections/page.js +2 -2
  125. package/web-ui/web-ui/.next/server/app/(app)/detections/page.js.nft.json +1 -1
  126. package/web-ui/web-ui/.next/server/app/(app)/detections/page_client-reference-manifest.js +1 -1
  127. package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js +2 -2
  128. package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page.js.nft.json +1 -1
  129. package/web-ui/web-ui/.next/server/app/(app)/exceptions/[id]/page_client-reference-manifest.js +1 -1
  130. package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js +2 -2
  131. package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page.js.nft.json +1 -1
  132. package/web-ui/web-ui/.next/server/app/(app)/exceptions/new/page_client-reference-manifest.js +1 -1
  133. package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js +1 -1
  134. package/web-ui/web-ui/.next/server/app/(app)/exceptions/page.js.nft.json +1 -1
  135. package/web-ui/web-ui/.next/server/app/(app)/exceptions/page_client-reference-manifest.js +1 -1
  136. package/web-ui/web-ui/.next/server/app/(app)/findings/page.js +2 -2
  137. package/web-ui/web-ui/.next/server/app/(app)/findings/page.js.nft.json +1 -1
  138. package/web-ui/web-ui/.next/server/app/(app)/findings/page_client-reference-manifest.js +1 -1
  139. package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js +1 -1
  140. package/web-ui/web-ui/.next/server/app/(app)/inventory/page.js.nft.json +1 -1
  141. package/web-ui/web-ui/.next/server/app/(app)/inventory/page_client-reference-manifest.js +1 -1
  142. package/web-ui/web-ui/.next/server/app/(app)/policies/page.js +2 -2
  143. package/web-ui/web-ui/.next/server/app/(app)/policies/page.js.nft.json +1 -1
  144. package/web-ui/web-ui/.next/server/app/(app)/policies/page_client-reference-manifest.js +1 -1
  145. package/web-ui/web-ui/.next/server/app/(app)/scan/page.js +2 -2
  146. package/web-ui/web-ui/.next/server/app/(app)/scan/page.js.nft.json +1 -1
  147. package/web-ui/web-ui/.next/server/app/(app)/scan/page_client-reference-manifest.js +1 -1
  148. package/web-ui/web-ui/.next/server/app/(app)/security/page.js +1 -1
  149. package/web-ui/web-ui/.next/server/app/(app)/security/page.js.nft.json +1 -1
  150. package/web-ui/web-ui/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  151. package/web-ui/web-ui/.next/server/app/(app)/settings/page.js +2 -2
  152. package/web-ui/web-ui/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  153. package/web-ui/web-ui/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  154. package/web-ui/web-ui/.next/server/app/(app)/updates/page.js +2 -2
  155. package/web-ui/web-ui/.next/server/app/(app)/updates/page.js.nft.json +1 -1
  156. package/web-ui/web-ui/.next/server/app/(app)/updates/page_client-reference-manifest.js +1 -1
  157. package/web-ui/web-ui/.next/server/app/_not-found/page.js +1 -1
  158. package/web-ui/web-ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  159. package/web-ui/web-ui/.next/server/app/_not-found.html +1 -1
  160. package/web-ui/web-ui/.next/server/app/_not-found.rsc +2 -2
  161. package/web-ui/web-ui/.next/server/app/index.html +1 -1
  162. package/web-ui/web-ui/.next/server/app/index.rsc +2 -2
  163. package/web-ui/web-ui/.next/server/app/page.js +1 -1
  164. package/web-ui/web-ui/.next/server/app/page_client-reference-manifest.js +1 -1
  165. package/web-ui/web-ui/.next/server/app-paths-manifest.json +6 -6
  166. package/web-ui/web-ui/.next/server/chunks/366.js +566 -0
  167. package/web-ui/web-ui/.next/server/chunks/45.js +1 -1
  168. package/web-ui/web-ui/.next/server/chunks/484.js +564 -0
  169. package/web-ui/web-ui/.next/server/chunks/913.js +2 -0
  170. package/web-ui/web-ui/.next/server/functions-config-manifest.json +7 -7
  171. package/web-ui/web-ui/.next/server/middleware-manifest.json +5 -5
  172. package/web-ui/web-ui/.next/server/pages/404.html +1 -1
  173. package/web-ui/web-ui/.next/server/pages/500.html +1 -1
  174. package/web-ui/web-ui/.next/server/server-reference-manifest.js +1 -1
  175. package/web-ui/web-ui/.next/server/server-reference-manifest.json +1 -1
  176. package/web-ui/web-ui/.next/static/chunks/561-46ea4b9ad0419130.js +1 -0
  177. package/web-ui/web-ui/.next/static/chunks/app/(app)/activity/{page-f6b1b344709ee48e.js → page-49c63d0cec0da80d.js} +1 -1
  178. package/web-ui/web-ui/.next/static/chunks/app/(app)/data-shares/{page-485a76552d6dbabd.js → page-d469bd704615ea76.js} +1 -1
  179. package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-07ca4b0ce174ef7a.js +1 -0
  180. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-16d5fd7d373c8f0b.js +1 -0
  181. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/new/{page-e8498a1e48943abf.js → page-d6cfd847bb528eec.js} +1 -1
  182. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-291617f3a4d46a01.js +1 -0
  183. package/web-ui/web-ui/.next/static/chunks/app/(app)/findings/{page-94eb9d838ae00222.js → page-c59135e0cfa8d5c7.js} +1 -1
  184. package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-0eb54f5acb30a73e.js +1 -0
  185. package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-b00573441ac43bdf.js +1 -0
  186. package/web-ui/web-ui/.next/static/chunks/app/(app)/settings/{page-b9fba600c590896d.js → page-3b5fe92cd995b763.js} +1 -1
  187. package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-50f828314c9a5d91.js +1 -0
  188. package/web-ui/web-ui/.next/static/css/dfdcbdce6b7c9eb0.css +2 -0
  189. package/web-ui/web-ui/package.json +1 -1
  190. package/web-ui/web-ui/server.js +1 -1
  191. package/LICENSE +0 -201
  192. package/web-ui/web-ui/.next/server/chunks/116.js +0 -536
  193. package/web-ui/web-ui/.next/server/chunks/223.js +0 -534
  194. package/web-ui/web-ui/.next/server/chunks/226.js +0 -2
  195. package/web-ui/web-ui/.next/static/chunks/561-3a19cd28d2b941fa.js +0 -1
  196. package/web-ui/web-ui/.next/static/chunks/app/(app)/detections/page-8030433ea5c099fa.js +0 -1
  197. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/[id]/page-452be710e9e05ad5.js +0 -1
  198. package/web-ui/web-ui/.next/static/chunks/app/(app)/exceptions/page-1b841b6a60708c6d.js +0 -1
  199. package/web-ui/web-ui/.next/static/chunks/app/(app)/inventory/page-dd61001da0f891d3.js +0 -1
  200. package/web-ui/web-ui/.next/static/chunks/app/(app)/scan/page-158ed3ad2cee998b.js +0 -1
  201. package/web-ui/web-ui/.next/static/chunks/app/(app)/updates/page-241fdcbac6e942aa.js +0 -1
  202. package/web-ui/web-ui/.next/static/css/69dfaec5234c6b99.css +0 -2
  203. /package/web-ui/web-ui/.next/static/{v339u67-B5AsSrzDBfv22 → zNaHfOWePiRki0ugHKYzl}/_buildManifest.js +0 -0
  204. /package/web-ui/web-ui/.next/static/{v339u67-B5AsSrzDBfv22 → zNaHfOWePiRki0ugHKYzl}/_ssgManifest.js +0 -0
@@ -0,0 +1,19 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "code-flaws/sql-inject-interp",
4
+ "name": "SQL injection via Ruby string interpolation or PHP variable",
5
+ "category": "code_flaw",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(select|insert|update|delete|where)[^\\n]*?(#\\{|\\$[a-z_])",
10
+ "flags": "gi"
11
+ },
12
+ "examples": [
13
+ "\"SELECT * FROM users WHERE id = #{params[:id]}\"",
14
+ "\"SELECT * FROM users WHERE id = $userId\""
15
+ ],
16
+ "appliesTo": {
17
+ "extensions": [".rb", ".php"]
18
+ }
19
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "code-flaws/ssrf-user-url",
4
+ "name": "Server-side request forgery via user-controlled URL",
5
+ "category": "code_flaw",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(fetch|axios\\.\\w+|requests\\.get|urllib\\.request\\.urlopen)\\s*\\(\\s*(req|request|params|query|body)",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["fetch(req.query.url)", "requests.get(request.form['url'])"],
13
+ "appliesTo": {
14
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs", ".py"]
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "code-flaws/xss-dangerously-set",
4
+ "name": "XSS via React dangerouslySetInnerHTML",
5
+ "category": "code_flaw",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": ["dangerouslySetInnerHTML"],
10
+ "caseSensitive": true
11
+ },
12
+ "examples": ["<div dangerouslySetInnerHTML={{ __html: userContent }} />"],
13
+ "appliesTo": {
14
+ "extensions": [".js", ".jsx", ".ts", ".tsx"]
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "code-flaws/xss-inner-html",
4
+ "name": "XSS via innerHTML assignment",
5
+ "category": "code_flaw",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": ["innerHTML =", "innerHTML="],
10
+ "caseSensitive": true
11
+ },
12
+ "examples": ["element.innerHTML = userInput"],
13
+ "appliesTo": {
14
+ "extensions": [".js", ".jsx", ".ts", ".tsx", ".mjs", ".cjs"]
15
+ }
16
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "code-flaws/xss-unescaped-render",
4
+ "name": "XSS via unescaped template rendering",
5
+ "category": "code_flaw",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(\\braw\\s*\\(|\\bhtml_safe\\b|\\|\\s*safe\\b|\\bmark_safe\\s*\\()",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["<%= raw(user_comment) %>", "{{ user_input | safe }}", "mark_safe(user_html)"],
13
+ "appliesTo": {
14
+ "extensions": [".rb", ".py"]
15
+ }
16
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/db-table-name",
4
+ "name": "Internal database table/column name",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "SELECT * FROM ",
11
+ "SELECT COUNT(*) FROM ",
12
+ "INSERT INTO ",
13
+ "UPDATE ",
14
+ "DELETE FROM ",
15
+ "CREATE TABLE ",
16
+ "ALTER TABLE ",
17
+ "DROP TABLE ",
18
+ "FROM users",
19
+ "FROM orders",
20
+ "FROM employees",
21
+ "FROM customers",
22
+ "FROM accounts",
23
+ "FROM transactions",
24
+ "FROM products",
25
+ "FROM payments"
26
+ ],
27
+ "caseSensitive": false
28
+ },
29
+ "examples": ["SELECT * FROM users WHERE id = 1"]
30
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/feature-flag",
4
+ "name": "Feature flag / toggle name",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "feature_flag:",
11
+ "feature_toggle:",
12
+ "feature-flag:",
13
+ "feature-toggle:",
14
+ "FF_",
15
+ "FEATURE_FLAG_",
16
+ "FEATURE_TOGGLE_",
17
+ "unleash:",
18
+ "launchdarkly:",
19
+ "split.io:"
20
+ ],
21
+ "caseSensitive": false
22
+ },
23
+ "examples": ["feature_flag: new-checkout-flow", "FF_ENABLE_DARK_MODE"]
24
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/file-path",
4
+ "name": "User home / identity-bearing file path",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?:/home|/Users)/[A-Za-z0-9_.@-]+(?:/[A-Za-z0-9_.@+-]+)*|/root(?:/[A-Za-z0-9_.@+-]+)+|[A-Za-z]:\\\\[Uu]sers\\\\[A-Za-z0-9_.-]+(?:\\\\[A-Za-z0-9_.-]+)*",
10
+ "flags": "g"
11
+ },
12
+ "examples": [
13
+ "/home/user/.ssh/id_rsa",
14
+ "/Users/jane/projects/acme/secrets.env",
15
+ "C:\\Users\\admin\\config.yml"
16
+ ]
17
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/internal-domain",
4
+ "name": "Internal domain / hostname",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?<![A-Za-z0-9.-])[A-Za-z0-9][A-Za-z0-9.-]{0,251}\\.(?:internal|corp|local|lan|intranet|private|dev|staging|test|qa)(?:\\.(?:com|net|org|io|co|app))?\\b",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["db.internal.com", "app.corp.local", "api.staging.example.com"]
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/internal-ip",
4
+ "name": "Internal (RFC 1918) IP address",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?<![\\d.])(?:10\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|172\\.(?:1[6-9]|2\\d|3[01])\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)|192\\.168\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?))(?![\\d])",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["10.0.0.1", "192.168.1.1", "172.16.0.1"]
13
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/internal-url",
4
+ "name": "Internal environment URL",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "https://staging.",
11
+ "https://dev.",
12
+ "https://qa.",
13
+ "https://test.",
14
+ "http://staging.",
15
+ "http://dev.",
16
+ "http://qa.",
17
+ "http://test.",
18
+ ".staging.com",
19
+ ".dev.com",
20
+ ".qa.com",
21
+ "staging.internal",
22
+ "dev.internal"
23
+ ],
24
+ "caseSensitive": false
25
+ },
26
+ "examples": ["https://staging.example.com"]
27
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/localhost-ref",
4
+ "name": "Localhost reference",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:localhost|127\\.0\\.0\\.1|0\\.0\\.0\\.0|::1)\\b",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["localhost", "127.0.0.1"]
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-code-context/stack-trace",
4
+ "name": "Stack trace (internal code structure)",
5
+ "category": "code_context",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?:^|\\s+)at\\s+[A-Za-z0-9._$<>]+\\.[A-Za-z0-9_$]+\\s*\\([A-Za-z0-9._\\-/:]+:\\d+:\\d+\\)",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["at com.example.service.UserService.findUser(UserService.java:42:13)"]
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/credit-card",
4
+ "name": "Credit/debit card number",
5
+ "category": "financial",
6
+ "severity": "critical",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})\\b",
10
+ "flags": "g"
11
+ },
12
+ "postValidators": ["luhn"],
13
+ "examples": ["4111111111111111", "5500000000000004"]
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/cusip",
4
+ "name": "CUSIP security identifier",
5
+ "category": "financial",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\bcusip\\b[\\s#:=-]{0,8}(\\d{3}[A-Z0-9]{2}[A-Z0-9*#@]\\d{2}[0-9])\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["CUSIP: 037833100", "CUSIP 931142103"]
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/cvv",
4
+ "name": "Card security code (CVV/CVC)",
5
+ "category": "financial",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:CVV|CVC|CID|security\\s+code|card\\s+code)[:\\s]*\\d{3,4}\\b",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["CVV: 123", "CVC: 456"]
13
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/iban",
4
+ "name": "International Bank Account Number",
5
+ "category": "financial",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b[A-Z]{2}\\d{2}[A-Z0-9 ]{10,30}\\b",
10
+ "flags": "g"
11
+ },
12
+ "requiresNearby": {
13
+ "labels": ["iban", "bank", "account", "bic", "swift"],
14
+ "windowChars": 160
15
+ },
16
+ "examples": ["IBAN: GB82 WEST 1234 5698 7654 32", "IBAN: DE89 3704 0044 0532 0130 00"]
17
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/paypal",
4
+ "name": "PayPal transaction/merchant ID",
5
+ "category": "financial",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "paypal.{0,30}?\\b([A-Z0-9]{17})\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["PayPal transaction ID: 9HW7382910ABCDEF1"]
14
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/routing-number",
4
+ "name": "US bank routing number (ABA)",
5
+ "category": "financial",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:routing|aba|rtn)\\b[\\s#:=-]{0,8}(\\d{9})\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["Routing: 021000021", "ABA 111000025"]
14
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/salary",
4
+ "name": "Salary/compensation (contextual)",
5
+ "category": "financial",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "my salary is",
11
+ "my base salary",
12
+ "annual compensation",
13
+ "total comp",
14
+ "my tc is",
15
+ "my package is",
16
+ "i make $",
17
+ "i earn $",
18
+ "offered $"
19
+ ],
20
+ "caseSensitive": false
21
+ },
22
+ "examples": ["My salary is $150,000"]
23
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-financial/swift",
4
+ "name": "SWIFT/BIC code",
5
+ "category": "financial",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:swift|bic)\\b[\\s#:=-]{0,8}([A-Z]{6}[A-Z0-9]{2}(?:[A-Z0-9]{3})?)\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["SWIFT: BOFAUS3N", "BIC: CHASGB2LXXX"]
14
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/biometric-ref",
4
+ "name": "Biometric data reference",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "fingerprint data",
11
+ "fingerprint scan",
12
+ "my iris scan",
13
+ "my retina scan",
14
+ "my biometric",
15
+ "my facial recognition",
16
+ "my voiceprint",
17
+ "my palm print",
18
+ "my hand geometry"
19
+ ],
20
+ "caseSensitive": false
21
+ },
22
+ "examples": ["My fingerprint data is stored in the biometric database"]
23
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/genetic-data",
4
+ "name": "Genetic/DNA sequence reference",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "my dna sequence",
11
+ "my genome",
12
+ "my genetic",
13
+ "dna test results",
14
+ "genetic test results",
15
+ "my 23andme",
16
+ "my ancestrydna",
17
+ "gene variant",
18
+ "my genotype",
19
+ "my haplogroup"
20
+ ],
21
+ "caseSensitive": false
22
+ },
23
+ "examples": ["My DNA sequence shows a variant in the BRCA1 gene"]
24
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/group-id",
4
+ "name": "Health plan group ID",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\bgroup\\s*(?:id|number|no|#)\\s*[:#]?\\s*[A-Za-z0-9]{6,20}\\b",
10
+ "flags": "gi"
11
+ },
12
+ "requiresNearby": {
13
+ "ruleIds": ["core-phi/member-id"],
14
+ "labels": ["member id", "subscriber", "health plan"],
15
+ "windowChars": 200,
16
+ "confidenceBoost": 0.05
17
+ },
18
+ "examples": ["Member ID: ABC987654321, Group ID: GRP12345678"]
19
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/hipaa-identifier",
4
+ "name": "HIPAA standard identifier (health plan / beneficiary / claim number)",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:health\\s+plan|beneficiary|claim\\s+number|subscriber)[:\\s]*[A-Za-z0-9]{8,20}\\b",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["Health Plan: XYZ123456789", "Beneficiary: ABC987654321"]
13
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/icd10-code",
4
+ "name": "ICD-10 diagnosis code",
5
+ "category": "phi",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?:icd[- ]?10|diagnosis|\\bdx\\b).{0,12}?([A-Z][0-9]{2}(?:\\.[0-9]{1,4})?)\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["ICD-10: I10", "Diagnosis code E11.9", "dx: J45.909"]
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/member-id",
4
+ "name": "Health plan member ID",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\bmember\\s*(?:id|number|no|#)\\s*[:#]?\\s*[A-Za-z0-9]{6,20}\\b",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["Member ID: ABC987654321"]
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/mrn",
4
+ "name": "Medical Record Number",
5
+ "category": "phi",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:MRN|MR#|medical\\s+record)[:\\s]*[A-Za-z0-9]{6,16}\\b",
10
+ "flags": "gi"
11
+ },
12
+ "examples": ["MRN: 1234567890", "Medical Record: ABCD1234"]
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-phi/ndc-code",
4
+ "name": "National Drug Code (NDC)",
5
+ "category": "phi",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b\\d{4,5}-\\d{3,4}-\\d{1,2}\\b",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["0002-1427-01", "68788-6965-1"]
13
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/dob",
4
+ "name": "Date of birth",
5
+ "category": "pii",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:(?:19[4-9]\\d|20[0-1]\\d)[/-]\\d{1,2}[/-]\\d{1,2}|\\d{1,2}[/-]\\d{1,2}[/-](?:19[4-9]\\d|20[0-1]\\d))\\b",
10
+ "flags": "g"
11
+ },
12
+ "requiresNearby": {
13
+ "categories": ["pii"],
14
+ "labels": ["dob", "date of birth", "birth", "d.o.b"],
15
+ "windowChars": 160
16
+ },
17
+ "examples": ["DOB: 1985-03-22", "Date of birth: 03/22/1985"]
18
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/drivers-license-us",
4
+ "name": "US driver's license number",
5
+ "category": "pii",
6
+ "severity": "high",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?:driver'?s?\\s*licen[sc]e|licen[sc]e|\\bDL\\b).{0,10}?([A-Z]\\d{6,8}|\\d{8,9})\\b",
10
+ "flags": "gi",
11
+ "captureGroup": 1
12
+ },
13
+ "examples": ["Driver's License: D1234567", "DL: 123456789"]
14
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/email",
4
+ "name": "Email address",
5
+ "category": "pii",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "(?<![A-Za-z0-9._%+-])[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9.-]{1,255}\\.[A-Za-z]{2,24}\\b",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["user@example.com"]
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/home-address",
4
+ "name": "Home address (contextual)",
5
+ "category": "pii",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "my address is",
11
+ "home address",
12
+ "shipping address",
13
+ "billing address",
14
+ "mailing address",
15
+ "my home is at",
16
+ "i reside at"
17
+ ],
18
+ "caseSensitive": false
19
+ },
20
+ "examples": ["My address is 123 Main St, Springfield, IL 62701"]
21
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/ip-address",
4
+ "name": "IP address",
5
+ "category": "pii",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\b",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["192.168.1.1", "10.0.0.1"]
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/mac-address",
4
+ "name": "MAC address",
5
+ "category": "pii",
6
+ "severity": "low",
7
+ "matcher": {
8
+ "type": "regex",
9
+ "pattern": "\\b(?:[0-9A-Fa-f]{2}[:-]){5}[0-9A-Fa-f]{2}\\b",
10
+ "flags": "g"
11
+ },
12
+ "examples": ["AA:BB:CC:DD:EE:FF"]
13
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "specVersion": 1,
3
+ "id": "core-pii/name",
4
+ "name": "Personal name (contextual)",
5
+ "category": "pii",
6
+ "severity": "medium",
7
+ "matcher": {
8
+ "type": "keyword",
9
+ "keywords": [
10
+ "my name is",
11
+ "my full name",
12
+ "i am called",
13
+ "please call me",
14
+ "name:\n",
15
+ "\"full_name\": \"",
16
+ "\"fullName\": \""
17
+ ],
18
+ "caseSensitive": false
19
+ },
20
+ "examples": ["My name is John Doe"]
21
+ }