codeslick-cli 1.3.0 → 1.4.1

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 (157) hide show
  1. package/README.md +50 -11
  2. package/dist/packages/cli/src/commands/scan.d.ts.map +1 -1
  3. package/dist/packages/cli/src/commands/scan.js +7 -3
  4. package/dist/packages/cli/src/commands/scan.js.map +1 -1
  5. package/dist/packages/cli/src/reporters/cli-reporter.d.ts +11 -0
  6. package/dist/packages/cli/src/reporters/cli-reporter.d.ts.map +1 -1
  7. package/dist/packages/cli/src/reporters/cli-reporter.js +150 -45
  8. package/dist/packages/cli/src/reporters/cli-reporter.js.map +1 -1
  9. package/dist/packages/cli/src/scanner/local-scanner.d.ts +2 -2
  10. package/dist/packages/cli/src/scanner/local-scanner.d.ts.map +1 -1
  11. package/dist/packages/cli/src/scanner/local-scanner.js +49 -9
  12. package/dist/packages/cli/src/scanner/local-scanner.js.map +1 -1
  13. package/dist/src/lib/analyzers/go-analyzer.d.ts +12 -0
  14. package/dist/src/lib/analyzers/go-analyzer.d.ts.map +1 -1
  15. package/dist/src/lib/analyzers/go-analyzer.js +113 -0
  16. package/dist/src/lib/analyzers/go-analyzer.js.map +1 -1
  17. package/dist/src/lib/analyzers/iac/pii-detector.d.ts +27 -0
  18. package/dist/src/lib/analyzers/iac/pii-detector.d.ts.map +1 -0
  19. package/dist/src/lib/analyzers/iac/pii-detector.js +199 -0
  20. package/dist/src/lib/analyzers/iac/pii-detector.js.map +1 -0
  21. package/dist/src/lib/analyzers/iac/pii-patterns.d.ts +43 -0
  22. package/dist/src/lib/analyzers/iac/pii-patterns.d.ts.map +1 -0
  23. package/dist/src/lib/analyzers/iac/pii-patterns.js +228 -0
  24. package/dist/src/lib/analyzers/iac/pii-patterns.js.map +1 -0
  25. package/dist/src/lib/analyzers/java-analyzer.d.ts +5 -0
  26. package/dist/src/lib/analyzers/java-analyzer.d.ts.map +1 -1
  27. package/dist/src/lib/analyzers/java-analyzer.js +51 -0
  28. package/dist/src/lib/analyzers/java-analyzer.js.map +1 -1
  29. package/dist/src/lib/analyzers/javascript/quality-checks/ai-hallucinations.d.ts +8 -4
  30. package/dist/src/lib/analyzers/javascript/quality-checks/ai-hallucinations.d.ts.map +1 -1
  31. package/dist/src/lib/analyzers/javascript/quality-checks/ai-hallucinations.js +109 -13
  32. package/dist/src/lib/analyzers/javascript/quality-checks/ai-hallucinations.js.map +1 -1
  33. package/dist/src/lib/analyzers/javascript/quality-checks/reference-errors.d.ts.map +1 -1
  34. package/dist/src/lib/analyzers/javascript/quality-checks/reference-errors.js +7 -8
  35. package/dist/src/lib/analyzers/javascript/quality-checks/reference-errors.js.map +1 -1
  36. package/dist/src/lib/analyzers/javascript-analyzer.d.ts.map +1 -1
  37. package/dist/src/lib/analyzers/javascript-analyzer.js +16 -12
  38. package/dist/src/lib/analyzers/javascript-analyzer.js.map +1 -1
  39. package/dist/src/lib/analyzers/kubernetes/checks/network-security.d.ts +33 -0
  40. package/dist/src/lib/analyzers/kubernetes/checks/network-security.d.ts.map +1 -0
  41. package/dist/src/lib/analyzers/kubernetes/checks/network-security.js +184 -0
  42. package/dist/src/lib/analyzers/kubernetes/checks/network-security.js.map +1 -0
  43. package/dist/src/lib/analyzers/kubernetes/checks/pod-security.d.ts +60 -0
  44. package/dist/src/lib/analyzers/kubernetes/checks/pod-security.d.ts.map +1 -0
  45. package/dist/src/lib/analyzers/kubernetes/checks/pod-security.js +418 -0
  46. package/dist/src/lib/analyzers/kubernetes/checks/pod-security.js.map +1 -0
  47. package/dist/src/lib/analyzers/kubernetes/checks/rbac-security.d.ts +44 -0
  48. package/dist/src/lib/analyzers/kubernetes/checks/rbac-security.d.ts.map +1 -0
  49. package/dist/src/lib/analyzers/kubernetes/checks/rbac-security.js +275 -0
  50. package/dist/src/lib/analyzers/kubernetes/checks/rbac-security.js.map +1 -0
  51. package/dist/src/lib/analyzers/kubernetes/checks/resource-management.d.ts +32 -0
  52. package/dist/src/lib/analyzers/kubernetes/checks/resource-management.d.ts.map +1 -0
  53. package/dist/src/lib/analyzers/kubernetes/checks/resource-management.js +176 -0
  54. package/dist/src/lib/analyzers/kubernetes/checks/resource-management.js.map +1 -0
  55. package/dist/src/lib/analyzers/kubernetes/checks/secrets-management.d.ts +38 -0
  56. package/dist/src/lib/analyzers/kubernetes/checks/secrets-management.d.ts.map +1 -0
  57. package/dist/src/lib/analyzers/kubernetes/checks/secrets-management.js +266 -0
  58. package/dist/src/lib/analyzers/kubernetes/checks/secrets-management.js.map +1 -0
  59. package/dist/src/lib/analyzers/kubernetes/checks/service-security.d.ts +26 -0
  60. package/dist/src/lib/analyzers/kubernetes/checks/service-security.d.ts.map +1 -0
  61. package/dist/src/lib/analyzers/kubernetes/checks/service-security.js +120 -0
  62. package/dist/src/lib/analyzers/kubernetes/checks/service-security.js.map +1 -0
  63. package/dist/src/lib/analyzers/kubernetes/parser.d.ts +74 -0
  64. package/dist/src/lib/analyzers/kubernetes/parser.d.ts.map +1 -0
  65. package/dist/src/lib/analyzers/kubernetes/parser.js +233 -0
  66. package/dist/src/lib/analyzers/kubernetes/parser.js.map +1 -0
  67. package/dist/src/lib/analyzers/kubernetes/pii-detector.d.ts +34 -0
  68. package/dist/src/lib/analyzers/kubernetes/pii-detector.d.ts.map +1 -0
  69. package/dist/src/lib/analyzers/kubernetes/pii-detector.js +182 -0
  70. package/dist/src/lib/analyzers/kubernetes/pii-detector.js.map +1 -0
  71. package/dist/src/lib/analyzers/kubernetes/types.d.ts +266 -0
  72. package/dist/src/lib/analyzers/kubernetes/types.d.ts.map +1 -0
  73. package/dist/src/lib/analyzers/kubernetes/types.js +77 -0
  74. package/dist/src/lib/analyzers/kubernetes/types.js.map +1 -0
  75. package/dist/src/lib/analyzers/kubernetes-analyzer.d.ts +93 -0
  76. package/dist/src/lib/analyzers/kubernetes-analyzer.d.ts.map +1 -0
  77. package/dist/src/lib/analyzers/kubernetes-analyzer.js +215 -0
  78. package/dist/src/lib/analyzers/kubernetes-analyzer.js.map +1 -0
  79. package/dist/src/lib/analyzers/python-analyzer.d.ts.map +1 -1
  80. package/dist/src/lib/analyzers/python-analyzer.js +32 -48
  81. package/dist/src/lib/analyzers/python-analyzer.js.map +1 -1
  82. package/dist/src/lib/analyzers/secrets/patterns/api-keys/ai-providers.d.ts +1 -1
  83. package/dist/src/lib/analyzers/secrets/patterns/api-keys/ai-providers.d.ts.map +1 -1
  84. package/dist/src/lib/analyzers/secrets/patterns/api-keys/aws.d.ts +1 -1
  85. package/dist/src/lib/analyzers/secrets/patterns/api-keys/aws.d.ts.map +1 -1
  86. package/dist/src/lib/analyzers/secrets/patterns/api-keys/cloud-providers.d.ts +1 -1
  87. package/dist/src/lib/analyzers/secrets/patterns/api-keys/cloud-providers.d.ts.map +1 -1
  88. package/dist/src/lib/analyzers/secrets/patterns/api-keys/communication.d.ts +1 -1
  89. package/dist/src/lib/analyzers/secrets/patterns/api-keys/communication.d.ts.map +1 -1
  90. package/dist/src/lib/analyzers/secrets/patterns/api-keys/generic.d.ts +1 -1
  91. package/dist/src/lib/analyzers/secrets/patterns/api-keys/generic.d.ts.map +1 -1
  92. package/dist/src/lib/analyzers/secrets/patterns/api-keys/github.d.ts +1 -1
  93. package/dist/src/lib/analyzers/secrets/patterns/api-keys/github.d.ts.map +1 -1
  94. package/dist/src/lib/analyzers/secrets/patterns/api-keys/stripe.d.ts +1 -1
  95. package/dist/src/lib/analyzers/secrets/patterns/api-keys/stripe.d.ts.map +1 -1
  96. package/dist/src/lib/analyzers/secrets/patterns/api-keys.d.ts +1 -1
  97. package/dist/src/lib/analyzers/secrets/patterns/api-keys.d.ts.map +1 -1
  98. package/dist/src/lib/analyzers/secrets/patterns/credentials.d.ts +1 -1
  99. package/dist/src/lib/analyzers/secrets/patterns/credentials.d.ts.map +1 -1
  100. package/dist/src/lib/analyzers/secrets/patterns/credentials.js +1 -1
  101. package/dist/src/lib/analyzers/secrets/patterns/credentials.js.map +1 -1
  102. package/dist/src/lib/analyzers/secrets/patterns/private-keys.d.ts +1 -1
  103. package/dist/src/lib/analyzers/secrets/patterns/private-keys.d.ts.map +1 -1
  104. package/dist/src/lib/analyzers/secrets/patterns/tokens.d.ts +1 -1
  105. package/dist/src/lib/analyzers/secrets/patterns/tokens.d.ts.map +1 -1
  106. package/dist/src/lib/analyzers/secrets/secrets-analyzer.d.ts +6 -32
  107. package/dist/src/lib/analyzers/secrets/secrets-analyzer.d.ts.map +1 -1
  108. package/dist/src/lib/analyzers/secrets/secrets-analyzer.js +48 -4
  109. package/dist/src/lib/analyzers/secrets/secrets-analyzer.js.map +1 -1
  110. package/dist/src/lib/analyzers/secrets/types.d.ts +40 -0
  111. package/dist/src/lib/analyzers/secrets/types.d.ts.map +1 -0
  112. package/dist/src/lib/analyzers/secrets/types.js +10 -0
  113. package/dist/src/lib/analyzers/secrets/types.js.map +1 -0
  114. package/dist/src/lib/analyzers/terraform/aws-checks.d.ts +71 -0
  115. package/dist/src/lib/analyzers/terraform/aws-checks.d.ts.map +1 -0
  116. package/dist/src/lib/analyzers/terraform/aws-checks.js +538 -0
  117. package/dist/src/lib/analyzers/terraform/aws-checks.js.map +1 -0
  118. package/dist/src/lib/analyzers/terraform/parser.d.ts +14 -0
  119. package/dist/src/lib/analyzers/terraform/parser.d.ts.map +1 -0
  120. package/dist/src/lib/analyzers/terraform/parser.js +237 -0
  121. package/dist/src/lib/analyzers/terraform/parser.js.map +1 -0
  122. package/dist/src/lib/analyzers/terraform/types.d.ts +70 -0
  123. package/dist/src/lib/analyzers/terraform/types.d.ts.map +1 -0
  124. package/dist/src/lib/analyzers/terraform/types.js +9 -0
  125. package/dist/src/lib/analyzers/terraform/types.js.map +1 -0
  126. package/dist/src/lib/analyzers/terraform-analyzer.d.ts +50 -0
  127. package/dist/src/lib/analyzers/terraform-analyzer.d.ts.map +1 -0
  128. package/dist/src/lib/analyzers/terraform-analyzer.js +168 -0
  129. package/dist/src/lib/analyzers/terraform-analyzer.js.map +1 -0
  130. package/dist/src/lib/analyzers/typescript/security-checks/type-security.d.ts.map +1 -1
  131. package/dist/src/lib/analyzers/typescript/security-checks/type-security.js +23 -8
  132. package/dist/src/lib/analyzers/typescript/security-checks/type-security.js.map +1 -1
  133. package/dist/src/lib/analyzers/typescript-analyzer.d.ts +5 -0
  134. package/dist/src/lib/analyzers/typescript-analyzer.d.ts.map +1 -1
  135. package/dist/src/lib/analyzers/typescript-analyzer.js +76 -0
  136. package/dist/src/lib/analyzers/typescript-analyzer.js.map +1 -1
  137. package/dist/src/lib/analyzers/utils/false-positive-filter.d.ts +27 -0
  138. package/dist/src/lib/analyzers/utils/false-positive-filter.d.ts.map +1 -0
  139. package/dist/src/lib/analyzers/utils/false-positive-filter.js +176 -0
  140. package/dist/src/lib/analyzers/utils/false-positive-filter.js.map +1 -0
  141. package/dist/src/lib/security/epss-service.d.ts.map +1 -1
  142. package/dist/src/lib/security/epss-service.js +83 -50
  143. package/dist/src/lib/security/epss-service.js.map +1 -1
  144. package/dist/src/lib/security/severity-scoring.d.ts.map +1 -1
  145. package/dist/src/lib/security/severity-scoring.js +140 -0
  146. package/dist/src/lib/security/severity-scoring.js.map +1 -1
  147. package/dist/src/lib/types/index.d.ts +3 -3
  148. package/dist/src/lib/types/index.d.ts.map +1 -1
  149. package/dist/src/lib/utils/ignore-patterns.d.ts +60 -0
  150. package/dist/src/lib/utils/ignore-patterns.d.ts.map +1 -0
  151. package/dist/src/lib/utils/ignore-patterns.js +212 -0
  152. package/dist/src/lib/utils/ignore-patterns.js.map +1 -0
  153. package/package.json +10 -7
  154. package/src/commands/scan.ts +7 -3
  155. package/src/reporters/cli-reporter.ts +174 -48
  156. package/src/scanner/local-scanner.ts +65 -10
  157. package/tsconfig.tsbuildinfo +0 -1
@@ -13,38 +13,8 @@
13
13
  * Date: January 7, 2026
14
14
  */
15
15
  import { SecurityVulnerability } from '../types';
16
- /**
17
- * Secret pattern definition
18
- */
19
- export interface SecretPattern {
20
- /** Pattern identifier (e.g., 'aws-access-key', 'github-token') */
21
- id: string;
22
- /** Human-readable name */
23
- name: string;
24
- /** Regex pattern to match the secret */
25
- pattern: RegExp;
26
- /** Minimum entropy threshold (0-8, where 8 is maximum randomness) */
27
- minEntropy?: number;
28
- /** Description of the secret type */
29
- description: string;
30
- /** Severity: 'critical', 'high', 'medium' */
31
- severity: 'critical' | 'high' | 'medium';
32
- /** OWASP 2025 category */
33
- owaspCategory: string;
34
- /** CWE identifier */
35
- cwe: string;
36
- }
37
- /**
38
- * Secret detection result
39
- */
40
- export interface SecretMatch {
41
- pattern: SecretPattern;
42
- value: string;
43
- line: number;
44
- column: number;
45
- entropy: number;
46
- context: string;
47
- }
16
+ import type { SecretPattern, SecretMatch } from './types';
17
+ export type { SecretPattern, SecretMatch };
48
18
  /**
49
19
  * Main secrets analyzer class
50
20
  */
@@ -76,6 +46,10 @@ export declare class SecretsAnalyzer {
76
46
  * Get fix recommendation based on secret type and language
77
47
  */
78
48
  private getRecommendation;
49
+ /**
50
+ * Get code fix example based on language
51
+ */
52
+ private getFixExample;
79
53
  /**
80
54
  * Calculate confidence score (0-100) based on entropy and context
81
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-analyzer.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/secrets-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAQjD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAkB;;IAYlC;;;;;;;OAOG;IACI,WAAW,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,GAC/D,qBAAqB,EAAE;IAiC1B;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAiB5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
1
+ {"version":3,"file":"secrets-analyzer.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/secrets-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAWjD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAE3C;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAkB;;IAYlC;;;;;;;OAOG;IACI,WAAW,CAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,GAC/D,qBAAqB,EAAE;IAiC1B;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwC3B;;OAEG;IACH,OAAO,CAAC,UAAU;IASlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAiB5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -22,6 +22,8 @@ const credentials_1 = require("./patterns/credentials");
22
22
  const tokens_1 = require("./patterns/tokens");
23
23
  const entropy_checker_1 = require("./validators/entropy-checker");
24
24
  const context_checker_1 = require("./validators/context-checker");
25
+ const severity_scoring_1 = require("../../security/severity-scoring");
26
+ const compliance_mapping_1 = require("../../security/compliance-mapping");
25
27
  /**
26
28
  * Main secrets analyzer class
27
29
  */
@@ -95,14 +97,37 @@ class SecretsAnalyzer {
95
97
  * Create a security vulnerability from a secret match
96
98
  */
97
99
  createVulnerability(match, filePath, language) {
100
+ // Use centralized scoring system for consistent CVSS scores
101
+ const category = `hardcoded-secret-${match.pattern.id}`;
102
+ const scoring = (0, severity_scoring_1.calculateSeverityScore)(category);
103
+ const compliance = (0, compliance_mapping_1.getComplianceMapping)(category);
98
104
  return {
99
- severity: match.pattern.severity,
105
+ severity: scoring.severity,
100
106
  message: `Hardcoded secret detected: ${match.pattern.name} - ${this.maskSecret(match.value)}`,
101
107
  line: match.line,
102
108
  suggestion: this.getRecommendation(match.pattern, language),
103
- category: `hardcoded-secret-${match.pattern.id}`,
104
- owasp: match.pattern.owaspCategory,
105
- cwe: match.pattern.cwe,
109
+ category,
110
+ cvssScore: scoring.cvssScore,
111
+ exploitLikelihood: scoring.exploitLikelihood,
112
+ impact: scoring.impact,
113
+ owasp: compliance.owasp || match.pattern.owaspCategory,
114
+ cwe: compliance.cwe || match.pattern.cwe,
115
+ pciDss: compliance.pciDss,
116
+ attackVector: {
117
+ description: `Hardcoded ${match.pattern.name.toLowerCase()} exposed in source code. Visible to anyone with repository access.`,
118
+ exploitExample: `Attacker with code access can extract: ${this.maskSecret(match.value)}`,
119
+ realWorldImpact: [
120
+ 'Unauthorized access to systems',
121
+ 'Cannot rotate without code deployment',
122
+ 'Persists in Git history forever',
123
+ 'PCI-DSS, SOC 2, ISO 27001 violations',
124
+ ],
125
+ },
126
+ remediation: {
127
+ before: match.context,
128
+ after: this.getFixExample(match.pattern, language),
129
+ explanation: this.getRecommendation(match.pattern, language),
130
+ },
106
131
  };
107
132
  }
108
133
  /**
@@ -133,6 +158,25 @@ class SecretsAnalyzer {
133
158
  `4. Add to .gitignore if stored in config file\n` +
134
159
  `5. Rotate the exposed secret immediately`;
135
160
  }
161
+ /**
162
+ * Get code fix example based on language
163
+ */
164
+ getFixExample(pattern, language) {
165
+ const varName = pattern.id.toUpperCase().replace(/-/g, '_');
166
+ if (language === 'python') {
167
+ return `import os\n${varName} = os.environ.get("${varName}") # Store in .env file`;
168
+ }
169
+ else if (language === 'java') {
170
+ return `String ${varName.toLowerCase()} = System.getenv("${varName}");`;
171
+ }
172
+ else if (language === 'go') {
173
+ return `import "os"\n${varName.toLowerCase()} := os.Getenv("${varName}")`;
174
+ }
175
+ else {
176
+ // JavaScript/TypeScript
177
+ return `const ${varName.toLowerCase()} = process.env.${varName}; // Store in .env file`;
178
+ }
179
+ }
136
180
  /**
137
181
  * Calculate confidence score (0-100) based on entropy and context
138
182
  */
@@ -1 +1 @@
1
- {"version":3,"file":"secrets-analyzer.js","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/secrets-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secrets-analyzer.js","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/secrets-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Shared types for the Secrets Detection module.
3
+ *
4
+ * Extracted here to break the circular dependency between secrets-analyzer.ts
5
+ * and the pattern files (patterns/* imported SecretPattern from secrets-analyzer,
6
+ * which already imported from patterns/*).
7
+ */
8
+ /**
9
+ * Secret pattern definition
10
+ */
11
+ export interface SecretPattern {
12
+ /** Pattern identifier (e.g., 'aws-access-key', 'github-token') */
13
+ id: string;
14
+ /** Human-readable name */
15
+ name: string;
16
+ /** Regex pattern to match the secret */
17
+ pattern: RegExp;
18
+ /** Minimum entropy threshold (0-8, where 8 is maximum randomness) */
19
+ minEntropy?: number;
20
+ /** Description of the secret type */
21
+ description: string;
22
+ /** Severity: 'critical', 'high', 'medium' */
23
+ severity: 'critical' | 'high' | 'medium';
24
+ /** OWASP 2025 category */
25
+ owaspCategory: string;
26
+ /** CWE identifier */
27
+ cwe: string;
28
+ }
29
+ /**
30
+ * Secret detection result
31
+ */
32
+ export interface SecretMatch {
33
+ pattern: SecretPattern;
34
+ value: string;
35
+ line: number;
36
+ column: number;
37
+ entropy: number;
38
+ context: string;
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;IACzC,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * Shared types for the Secrets Detection module.
4
+ *
5
+ * Extracted here to break the circular dependency between secrets-analyzer.ts
6
+ * and the pattern files (patterns/* imported SecretPattern from secrets-analyzer,
7
+ * which already imported from patterns/*).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/secrets/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Terraform AWS Security Checks
3
+ *
4
+ * WR3 Day 1-2: AWS S3 and IAM security misconfigurations
5
+ *
6
+ * Current: 10 checks (S3: 5, IAM: 5)
7
+ * Future: Will expand to EC2, RDS, Lambda (25 total AWS checks)
8
+ */
9
+ import { SecurityVulnerability } from '../types';
10
+ import { TerraformResource } from './types';
11
+ /**
12
+ * Check 1: S3 Bucket with Public ACL (CRITICAL)
13
+ * OWASP: A01:2021 - Broken Access Control
14
+ * CWE: CWE-732 (Incorrect Permission Assignment)
15
+ */
16
+ export declare function checkS3PublicACL(resource: TerraformResource): SecurityVulnerability | null;
17
+ /**
18
+ * Check 2: S3 Bucket Without Encryption (HIGH)
19
+ * OWASP: A02:2021 - Cryptographic Failures
20
+ * CWE: CWE-311 (Missing Encryption of Sensitive Data)
21
+ */
22
+ export declare function checkS3Encryption(resource: TerraformResource): SecurityVulnerability | null;
23
+ /**
24
+ * Check 3: S3 Bucket Versioning Disabled (MEDIUM)
25
+ * OWASP: A09:2021 - Security Logging and Monitoring Failures
26
+ * CWE: CWE-778 (Insufficient Logging)
27
+ */
28
+ export declare function checkS3Versioning(resource: TerraformResource): SecurityVulnerability | null;
29
+ /**
30
+ * Check 4: S3 Bucket Logging Disabled (MEDIUM)
31
+ * OWASP: A09:2021 - Security Logging and Monitoring Failures
32
+ * CWE: CWE-778 (Insufficient Logging)
33
+ */
34
+ export declare function checkS3Logging(resource: TerraformResource): SecurityVulnerability | null;
35
+ /**
36
+ * Check 5: S3 Bucket Public Access Block Missing (CRITICAL)
37
+ * OWASP: A01:2021 - Broken Access Control
38
+ * CWE: CWE-732 (Incorrect Permission Assignment)
39
+ */
40
+ export declare function checkS3PublicAccessBlock(resource: TerraformResource): SecurityVulnerability | null;
41
+ /**
42
+ * Check 6: IAM Policy with Wildcard Actions (CRITICAL)
43
+ * OWASP: A01:2021 - Broken Access Control
44
+ * CWE: CWE-269 (Improper Privilege Management)
45
+ */
46
+ export declare function checkIAMWildcardActions(resource: TerraformResource): SecurityVulnerability | null;
47
+ /**
48
+ * Check 7: IAM Policy with Wildcard Resources (HIGH)
49
+ * OWASP: A01:2021 - Broken Access Control
50
+ * CWE: CWE-269 (Improper Privilege Management)
51
+ */
52
+ export declare function checkIAMWildcardResources(resource: TerraformResource): SecurityVulnerability | null;
53
+ /**
54
+ * Check 8: IAM Policy with Admin Permissions (HIGH)
55
+ * OWASP: A01:2021 - Broken Access Control
56
+ * CWE: CWE-269 (Improper Privilege Management)
57
+ */
58
+ export declare function checkIAMAdminPolicy(resource: TerraformResource): SecurityVulnerability | null;
59
+ /**
60
+ * Check 9: IAM Policy Allows Privilege Escalation (CRITICAL)
61
+ * OWASP: A01:2021 - Broken Access Control
62
+ * CWE: CWE-269 (Improper Privilege Management)
63
+ */
64
+ export declare function checkIAMPrivilegeEscalation(resource: TerraformResource): SecurityVulnerability | null;
65
+ /**
66
+ * Check 10: IAM Role with Overly Permissive Assume Role Policy (MEDIUM)
67
+ * OWASP: A01:2021 - Broken Access Control
68
+ * CWE: CWE-732 (Incorrect Permission Assignment)
69
+ */
70
+ export declare function checkIAMAssumeRolePolicy(resource: TerraformResource): SecurityVulnerability | null;
71
+ //# sourceMappingURL=aws-checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-checks.d.ts","sourceRoot":"","sources":["../../../../../../../src/lib/analyzers/terraform/aws-checks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAO5C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAqC1F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAoC3F;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAmC3F;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAoCxF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CA6ClG;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CA0DjG;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAwDnG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAqC7F;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CA4ErG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,qBAAqB,GAAG,IAAI,CAwDlG"}