guardlink 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +14 -0
- package/dist/agents/config.d.ts +8 -0
- package/dist/agents/config.d.ts.map +1 -1
- package/dist/agents/config.js +28 -5
- package/dist/agents/config.js.map +1 -1
- package/dist/agents/index.d.ts +2 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -1
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/launcher.d.ts +14 -0
- package/dist/agents/launcher.d.ts.map +1 -1
- package/dist/agents/launcher.js +126 -1
- package/dist/agents/launcher.js.map +1 -1
- package/dist/agents/prompts.d.ts +2 -2
- package/dist/agents/prompts.d.ts.map +1 -1
- package/dist/agents/prompts.js +251 -31
- package/dist/agents/prompts.js.map +1 -1
- package/dist/analyze/index.d.ts +34 -1
- package/dist/analyze/index.d.ts.map +1 -1
- package/dist/analyze/index.js +281 -8
- package/dist/analyze/index.js.map +1 -1
- package/dist/analyze/llm.d.ts +54 -3
- package/dist/analyze/llm.d.ts.map +1 -1
- package/dist/analyze/llm.js +418 -97
- package/dist/analyze/llm.js.map +1 -1
- package/dist/analyze/prompts.d.ts +3 -2
- package/dist/analyze/prompts.d.ts.map +1 -1
- package/dist/analyze/prompts.js +227 -111
- package/dist/analyze/prompts.js.map +1 -1
- package/dist/analyze/tools.d.ts +22 -0
- package/dist/analyze/tools.d.ts.map +1 -0
- package/dist/analyze/tools.js +230 -0
- package/dist/analyze/tools.js.map +1 -0
- package/dist/analyzer/sarif.js +1 -1
- package/dist/cli/index.d.ts +15 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +290 -150
- package/dist/cli/index.js.map +1 -1
- package/dist/dashboard/data.d.ts +5 -0
- package/dist/dashboard/data.d.ts.map +1 -1
- package/dist/dashboard/data.js +24 -12
- package/dist/dashboard/data.js.map +1 -1
- package/dist/dashboard/diagrams.d.ts.map +1 -1
- package/dist/dashboard/diagrams.js +310 -37
- package/dist/dashboard/diagrams.js.map +1 -1
- package/dist/dashboard/generate.d.ts.map +1 -1
- package/dist/dashboard/generate.js +197 -64
- package/dist/dashboard/generate.js.map +1 -1
- package/dist/init/picker.d.ts.map +1 -1
- package/dist/init/picker.js +2 -2
- package/dist/init/picker.js.map +1 -1
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +52 -32
- package/dist/init/templates.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +14 -28
- package/dist/mcp/server.js.map +1 -1
- package/dist/parser/index.d.ts +1 -0
- package/dist/parser/index.d.ts.map +1 -1
- package/dist/parser/index.js +1 -0
- package/dist/parser/index.js.map +1 -1
- package/dist/parser/parse-line.js +3 -3
- package/dist/parser/parse-line.js.map +1 -1
- package/dist/parser/parse-project.js +1 -1
- package/dist/parser/validate.d.ts +31 -0
- package/dist/parser/validate.d.ts.map +1 -0
- package/dist/parser/validate.js +149 -0
- package/dist/parser/validate.js.map +1 -0
- package/dist/report/report.d.ts.map +1 -1
- package/dist/report/report.js +64 -0
- package/dist/report/report.js.map +1 -1
- package/dist/tui/commands.d.ts +3 -3
- package/dist/tui/commands.d.ts.map +1 -1
- package/dist/tui/commands.js +390 -206
- package/dist/tui/commands.js.map +1 -1
- package/dist/tui/config.d.ts +2 -0
- package/dist/tui/config.d.ts.map +1 -1
- package/dist/tui/config.js.map +1 -1
- package/dist/tui/format.d.ts +7 -0
- package/dist/tui/format.d.ts.map +1 -1
- package/dist/tui/format.js +59 -0
- package/dist/tui/format.js.map +1 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +32 -19
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/input.d.ts +2 -2
- package/dist/tui/input.js +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/analyze/llm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/analyze/llm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/analyze/llm.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@ export type AnalysisFramework = 'stride' | 'dread' | 'pasta' | 'attacker' | 'rap
|
|
|
8
8
|
export declare const FRAMEWORK_LABELS: Record<AnalysisFramework, string>;
|
|
9
9
|
export declare const FRAMEWORK_PROMPTS: Record<AnalysisFramework, string>;
|
|
10
10
|
/**
|
|
11
|
-
* Build the user message containing the serialized threat model
|
|
11
|
+
* Build the user message containing the serialized threat model,
|
|
12
|
+
* optional project context, and optional code snippets.
|
|
12
13
|
*/
|
|
13
|
-
export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string): string;
|
|
14
|
+
export declare function buildUserMessage(modelJson: string, framework: AnalysisFramework, customPrompt?: string, projectContext?: string, codeSnippets?: string): string;
|
|
14
15
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhG,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAO9D,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhG,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAO9D,CAAC;AAoDF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CA2O/D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,iBAAiB,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CA0BR"}
|
package/dist/analyze/prompts.js
CHANGED
|
@@ -12,194 +12,310 @@ export const FRAMEWORK_LABELS = {
|
|
|
12
12
|
rapid: 'Rapid Risk Assessment',
|
|
13
13
|
general: 'General Threat Analysis',
|
|
14
14
|
};
|
|
15
|
-
const SYSTEM_BASE = `You are an expert Security Architect and Threat Modeler with 15+ years of experience.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
const SYSTEM_BASE = `You are an expert Security Architect and Threat Modeler with 15+ years of experience in application security, secure design review, and red team operations.
|
|
16
|
+
|
|
17
|
+
Your job is to **produce a complete, standalone threat model** for a real codebase. You are NOT simply summarizing annotations — you are using them as developer-provided hints to bootstrap a thorough security analysis.
|
|
18
|
+
|
|
19
|
+
## Your inputs
|
|
20
|
+
|
|
21
|
+
You will receive:
|
|
22
|
+
1. **Project context** — language/framework, dependencies, deployment signals (Dockerfile, CI config, etc.)
|
|
23
|
+
2. **Annotation graph** — structured security metadata extracted from source code comments (GuardLink annotations)
|
|
24
|
+
3. **Code snippets** — the actual source lines surrounding each annotation, so you can validate what developers claimed
|
|
25
|
+
|
|
26
|
+
## How to use these inputs
|
|
27
|
+
|
|
28
|
+
- Treat annotations as **developer hypotheses**, not ground truth. Validate them against the code snippets.
|
|
29
|
+
- Use the project context to reason about the **real attack surface** — what frameworks introduce, what dependencies are known-vulnerable, what the deployment model exposes.
|
|
30
|
+
- **Identify gaps**: what is NOT annotated but should be? Look at unannotated symbols, data flows with no security coverage, and dependency-level risks.
|
|
31
|
+
- Produce a threat model a **security team could hand to an auditor** — specific, evidence-based, and actionable.
|
|
32
|
+
|
|
33
|
+
## Annotation semantics
|
|
34
|
+
|
|
35
|
+
- **@asset** — a component the developer considers security-relevant
|
|
36
|
+
- **@threat** — a threat vector (with optional CWE reference and severity)
|
|
37
|
+
- **@control** — a security mechanism in place
|
|
38
|
+
- **@mitigates** — a real control exists in code defending an asset against a threat. This is a genuine defense.
|
|
39
|
+
- **@exposes** — a known vulnerability: this asset is exposed to this threat
|
|
40
|
+
- **@accepts** — risk acknowledged but **NO control in code**. This is a governance decision, not a technical fix.
|
|
41
|
+
- **@flows** — data movement between components
|
|
42
|
+
- **@boundary** — a trust boundary between security zones
|
|
43
|
+
- **@handles** — sensitive data classification (pii, phi, financial, secrets)
|
|
44
|
+
- **@assumes** — a security assumption the developer is relying on (potential blind spot)
|
|
45
|
+
- **@audit** — marks an asset as requiring human review
|
|
46
|
+
|
|
47
|
+
## Critical rules
|
|
48
|
+
|
|
49
|
+
- If you see **@accepts without @audit** on the same asset, flag it as a governance concern — risk may have been rubber-stamped without proper review.
|
|
50
|
+
- Treat accepted-but-unmitigated exposures as **OPEN RISKS**, not resolved findings.
|
|
51
|
+
- If a code snippet contradicts its annotation (e.g., a @mitigates annotation but the code shows no actual check), flag the annotation as **potentially inaccurate**.
|
|
52
|
+
- Challenge accepted risks: "You accepted this — is that reasonable given the severity and blast radius?"
|
|
53
|
+
- Always reference **specific files, assets, and threat IDs** from the model. Never give generic advice.
|
|
54
|
+
|
|
55
|
+
## Output structure
|
|
56
|
+
|
|
57
|
+
Your report must have two clearly separated sections:
|
|
58
|
+
|
|
59
|
+
### Part 1 — Annotation Validation
|
|
60
|
+
For each significant annotation, assess: is the annotation accurate given the code? Did the developer miss anything in the surrounding code? Flag inaccurate, overstated, or missing annotations with specific evidence from the code snippets.
|
|
61
|
+
|
|
62
|
+
### Part 2 — Threat Model
|
|
63
|
+
A complete, standalone threat model document produced from all available evidence (annotations + code + project context). Structure it with the sections appropriate to the framework you are applying. This is what a security team would hand to an auditor.`;
|
|
30
64
|
export const FRAMEWORK_PROMPTS = {
|
|
31
65
|
stride: `${SYSTEM_BASE}
|
|
32
66
|
|
|
33
|
-
|
|
67
|
+
Apply the **STRIDE** framework to produce a complete threat model.
|
|
34
68
|
|
|
35
|
-
|
|
69
|
+
## Part 1 — Annotation Validation
|
|
70
|
+
For each @exposes and @mitigates annotation, cross-reference the provided code snippet:
|
|
71
|
+
- Does the code actually implement what the annotation claims?
|
|
72
|
+
- Is the severity rating appropriate given the code context?
|
|
73
|
+
- Flag any annotation that appears inaccurate or incomplete.
|
|
36
74
|
|
|
37
|
-
##
|
|
38
|
-
Identify where authentication can be bypassed. Check: are all assets with @exposes to auth-related threats properly mitigated?
|
|
75
|
+
## Part 2 — STRIDE Threat Model
|
|
39
76
|
|
|
40
|
-
|
|
41
|
-
Identify where data integrity is at risk. Check: @flows without integrity controls, @handles with sensitive data lacking validation.
|
|
77
|
+
For each STRIDE category, reason from ALL available evidence (annotations + code snippets + project context):
|
|
42
78
|
|
|
43
|
-
|
|
44
|
-
|
|
79
|
+
### S — Spoofing
|
|
80
|
+
Authentication bypass risks. Consider: framework-level auth mechanisms from project context, @exposes to auth threats, unannotated auth code paths visible in snippets.
|
|
45
81
|
|
|
46
|
-
|
|
47
|
-
|
|
82
|
+
### T — Tampering
|
|
83
|
+
Data integrity risks. Consider: @flows without integrity controls, @handles with sensitive data lacking validation, what the framework/dependencies do (or don't) provide.
|
|
48
84
|
|
|
49
|
-
|
|
50
|
-
|
|
85
|
+
### R — Repudiation
|
|
86
|
+
Audit trail gaps. Consider: @audit annotations present vs. missing, critical operations in code snippets with no logging, framework logging capabilities.
|
|
51
87
|
|
|
52
|
-
|
|
53
|
-
|
|
88
|
+
### I — Information Disclosure
|
|
89
|
+
Sensitive data leakage. Consider: @handles pii/phi/secrets, error handling visible in code snippets, dependency-level disclosure risks from project context.
|
|
90
|
+
|
|
91
|
+
### D — Denial of Service
|
|
92
|
+
Resource exhaustion. Consider: @exposes to dos threats, rate limiting in code snippets, framework/infrastructure protections from project context.
|
|
93
|
+
|
|
94
|
+
### E — Elevation of Privilege
|
|
95
|
+
Privilege escalation paths. Consider: @exposes to bac/idor threats, @boundary gaps, authorization checks visible in code snippets.
|
|
54
96
|
|
|
55
97
|
For each category:
|
|
56
|
-
1.
|
|
57
|
-
2.
|
|
58
|
-
3.
|
|
59
|
-
4.
|
|
98
|
+
1. Specific findings referencing actual assets, threats, and file locations
|
|
99
|
+
2. Severity (Critical/High/Medium/Low) with justification from code evidence
|
|
100
|
+
3. Concrete mitigations tied to existing controls or new ones needed
|
|
101
|
+
4. Annotation gaps — what @exposes or @mitigates are missing from the code?
|
|
60
102
|
|
|
61
103
|
End with an Executive Summary and Priority Action Items.`,
|
|
62
104
|
dread: `${SYSTEM_BASE}
|
|
63
105
|
|
|
64
|
-
|
|
106
|
+
Apply **DREAD** risk scoring to produce a prioritized threat model.
|
|
107
|
+
|
|
108
|
+
## Part 1 — Annotation Validation
|
|
109
|
+
Review each @exposes annotation against its code snippet. For each:
|
|
110
|
+
- Is the exposure real? Does the code confirm the vulnerability?
|
|
111
|
+
- Is the severity annotation accurate vs. DREAD scoring?
|
|
112
|
+
- Note any discrepancies between annotation claims and actual code.
|
|
113
|
+
|
|
114
|
+
## Part 2 — DREAD Risk Model
|
|
65
115
|
|
|
66
|
-
For each unmitigated exposure and significant threat, calculate a DREAD score:
|
|
116
|
+
For each unmitigated exposure and significant threat, calculate a DREAD score using ALL available evidence:
|
|
67
117
|
|
|
68
|
-
- **D — Damage Potential** (0-10): How bad if exploited?
|
|
69
|
-
- **R — Reproducibility** (0-10): How easy to reproduce?
|
|
70
|
-
- **E — Exploitability** (0-10): How easy to launch
|
|
71
|
-
- **A — Affected Users** (0-10): How many users impacted?
|
|
72
|
-
- **D — Discoverability** (0-10): How easy to find
|
|
118
|
+
- **D — Damage Potential** (0-10): How bad if exploited? Factor in @handles classifications and business context.
|
|
119
|
+
- **R — Reproducibility** (0-10): How easy to reproduce? Factor in code complexity from snippets.
|
|
120
|
+
- **E — Exploitability** (0-10): How easy to launch? Factor in known CVEs from dependencies (project context).
|
|
121
|
+
- **A — Affected Users** (0-10): How many users impacted? Factor in data flows and boundaries.
|
|
122
|
+
- **D — Discoverability** (0-10): How easy to find? Factor in public-facing surfaces from project context.
|
|
73
123
|
|
|
74
124
|
Present results as a ranked table:
|
|
75
125
|
|
|
76
|
-
| Threat | Asset | D | R | E | A | D | Total | Risk Level |
|
|
77
|
-
|
|
126
|
+
| Threat | Asset | File | D | R | E | A | D | Total | Risk Level |
|
|
127
|
+
|--------|-------|------|---|---|---|---|---|-------|------------|
|
|
78
128
|
|
|
79
129
|
Then provide:
|
|
80
|
-
1. Top 5 risks by DREAD score with detailed justification
|
|
81
|
-
2.
|
|
82
|
-
3.
|
|
83
|
-
4.
|
|
130
|
+
1. Top 5 risks by DREAD score with detailed justification citing code evidence
|
|
131
|
+
2. Dependency-level risks from project context not captured in annotations
|
|
132
|
+
3. Quick wins — high-score items with straightforward mitigations
|
|
133
|
+
4. Systemic risks — patterns across multiple exposures
|
|
134
|
+
5. Recommended priority order for remediation`,
|
|
84
135
|
pasta: `${SYSTEM_BASE}
|
|
85
136
|
|
|
86
|
-
|
|
137
|
+
Apply the **PASTA** (Process for Attack Simulation and Threat Analysis) methodology.
|
|
87
138
|
|
|
88
|
-
|
|
139
|
+
## Part 1 — Annotation Validation
|
|
140
|
+
Before the PASTA stages, validate the annotation graph against code snippets:
|
|
141
|
+
- Which @mitigates annotations are confirmed by actual code?
|
|
142
|
+
- Which @exposes annotations are confirmed by actual vulnerable code?
|
|
143
|
+
- Which @accepts decisions look unreasonable given the code evidence?
|
|
144
|
+
|
|
145
|
+
## Part 2 — PASTA Assessment
|
|
89
146
|
|
|
90
147
|
### Stage 1: Define Objectives
|
|
91
|
-
|
|
148
|
+
Business-critical assets from @asset declarations. What are the crown jewels? Use @handles classifications to identify data sensitivity.
|
|
92
149
|
|
|
93
150
|
### Stage 2: Define Technical Scope
|
|
94
|
-
|
|
151
|
+
Attack surface from @flows, @boundary, @handles, and project context (framework, deployment model, exposed ports/endpoints). What does the project context reveal that annotations miss?
|
|
95
152
|
|
|
96
153
|
### Stage 3: Application Decomposition
|
|
97
|
-
|
|
154
|
+
Component relationships from flows and boundaries. Trust zones, data paths, and dependency graph from project context. Identify components with no security annotations.
|
|
98
155
|
|
|
99
156
|
### Stage 4: Threat Analysis
|
|
100
|
-
Map
|
|
157
|
+
Map @threat annotations to real-world attack techniques (CWE/CAPEC). Supplement with threats implied by the tech stack and dependencies from project context.
|
|
101
158
|
|
|
102
159
|
### Stage 5: Vulnerability Analysis
|
|
103
|
-
Evaluate each @exposes annotation. Which are most exploitable given the technical context?
|
|
160
|
+
Evaluate each @exposes annotation against code snippets. Which are confirmed? Which are most exploitable given the technical context and dependency versions?
|
|
104
161
|
|
|
105
162
|
### Stage 6: Attack Simulation
|
|
106
|
-
For the top 3 most critical exposures, describe a realistic attack scenario step-by-step.
|
|
163
|
+
For the top 3 most critical exposures, describe a realistic attack scenario step-by-step, referencing actual code paths from snippets and entry points from project context.
|
|
107
164
|
|
|
108
165
|
### Stage 7: Risk & Impact Analysis
|
|
109
|
-
Prioritized risk matrix with business impact
|
|
166
|
+
Prioritized risk matrix with business impact. Include dependency-level risks not captured in annotations.
|
|
110
167
|
|
|
111
|
-
End with concrete remediation recommendations tied to specific annotations.`,
|
|
168
|
+
End with concrete remediation recommendations tied to specific annotations and code locations.`,
|
|
112
169
|
attacker: `${SYSTEM_BASE}
|
|
113
170
|
|
|
114
|
-
|
|
171
|
+
Apply an **Attacker Persona** analysis to produce a complete threat model.
|
|
172
|
+
|
|
173
|
+
## Part 1 — Annotation Validation
|
|
174
|
+
For each @exposes annotation, assess exploitability from an attacker's perspective:
|
|
175
|
+
- Does the code snippet confirm the vulnerability is real and reachable?
|
|
176
|
+
- Is the @accepts decision defensible against a motivated attacker?
|
|
177
|
+
- Flag any annotation that understates attacker capability.
|
|
178
|
+
|
|
179
|
+
## Part 2 — Attacker Persona Threat Model
|
|
115
180
|
|
|
116
|
-
Adopt the mindset of
|
|
181
|
+
Adopt the mindset of each attacker type using ALL available evidence:
|
|
117
182
|
|
|
118
|
-
### 1. Script Kiddie (Low Skill)
|
|
119
|
-
What can be exploited with
|
|
183
|
+
### 1. Script Kiddie (Low Skill, Opportunistic)
|
|
184
|
+
What can be exploited with public tools? Check: CWE refs in @exposes, known-vulnerable dependency versions from project context, obvious misconfigurations visible in code snippets.
|
|
120
185
|
|
|
121
186
|
### 2. Opportunistic Attacker (Medium Skill)
|
|
122
|
-
What attack chains are possible?
|
|
187
|
+
What attack chains are possible? Check: @flows for lateral movement, multiple @exposes that can be chained, framework-level weaknesses from project context.
|
|
123
188
|
|
|
124
|
-
### 3. Targeted Attacker (High Skill)
|
|
125
|
-
|
|
189
|
+
### 3. Targeted Attacker (High Skill, Persistent)
|
|
190
|
+
Path from entry points to crown jewels. Check: @handles pii/phi/financial/secrets for targets, @boundary gaps for pivot points, @assumes for blind spots to exploit.
|
|
126
191
|
|
|
127
|
-
### 4. Insider Threat
|
|
128
|
-
|
|
192
|
+
### 4. Insider Threat (Trusted Access)
|
|
193
|
+
What can a legitimate user or developer abuse? Check: @assumes that trust internal components, missing @audit annotations on sensitive operations, overprivileged data flows.
|
|
129
194
|
|
|
130
195
|
For each persona:
|
|
131
|
-
1. Most likely attack vector (reference specific
|
|
132
|
-
2.
|
|
133
|
-
3. Impact if successful
|
|
134
|
-
4. Current defenses (
|
|
135
|
-
5. Gaps
|
|
196
|
+
1. Most likely attack vector (reference specific files and annotation IDs)
|
|
197
|
+
2. Step-by-step attack path through the system
|
|
198
|
+
3. Impact if successful (reference @handles data classifications)
|
|
199
|
+
4. Current defenses (@mitigates) and their effectiveness per code evidence
|
|
200
|
+
5. Gaps — what's missing that would stop this attacker?
|
|
136
201
|
|
|
137
202
|
End with a prioritized defense improvement plan.`,
|
|
138
203
|
rapid: `${SYSTEM_BASE}
|
|
139
204
|
|
|
140
|
-
|
|
205
|
+
Produce a **Rapid Risk Assessment** — concise, actionable, highest-impact items only.
|
|
206
|
+
|
|
207
|
+
## Part 1 — Annotation Validation (Brief)
|
|
208
|
+
Flag only significant discrepancies: annotations contradicted by code snippets, or @accepts decisions that look unreasonable. Keep this section under 20 lines.
|
|
209
|
+
|
|
210
|
+
## Part 2 — Rapid Risk Assessment
|
|
141
211
|
|
|
142
|
-
### Critical Findings (
|
|
143
|
-
|
|
212
|
+
### Critical Findings (Act Now)
|
|
213
|
+
Unmitigated @exposes at critical/high severity. Confirmed by code snippets where available. Include dependency CVEs from project context.
|
|
144
214
|
|
|
145
215
|
### High-Priority Gaps
|
|
146
|
-
- Unmitigated exposures by severity
|
|
147
|
-
- @assumes that could be violated
|
|
148
|
-
- @boundary
|
|
216
|
+
- Unmitigated exposures by severity with file locations
|
|
217
|
+
- @assumes that could be violated given the tech stack
|
|
218
|
+
- @boundary crossings with no security controls in code
|
|
219
|
+
- Unannotated symbols handling sensitive data (from coverage stats)
|
|
149
220
|
|
|
150
221
|
### Coverage Assessment
|
|
151
|
-
-
|
|
152
|
-
-
|
|
153
|
-
-
|
|
222
|
+
- Annotation coverage % and what the unannotated symbols are
|
|
223
|
+
- Components with @flows but no security annotations
|
|
224
|
+
- @handles (sensitive data) without corresponding @mitigates
|
|
154
225
|
|
|
155
226
|
### Top 5 Recommendations
|
|
156
|
-
Numbered, actionable,
|
|
227
|
+
Numbered, specific, actionable. For each: what to fix, where (file:line), and the exact GuardLink annotation to add.
|
|
157
228
|
|
|
158
229
|
### Risk Score
|
|
159
|
-
|
|
230
|
+
A (excellent) through F (critical risk). Justify with specific data points from the model and code.
|
|
160
231
|
|
|
161
|
-
Keep the entire
|
|
232
|
+
Keep the entire report under 500 lines. Be direct — no filler.`,
|
|
162
233
|
general: `${SYSTEM_BASE}
|
|
163
234
|
|
|
164
|
-
|
|
235
|
+
Produce a **complete threat model document** for this codebase. The document should be usable by a security team for audit, review, or a public trust center — not just a list of findings.
|
|
236
|
+
|
|
237
|
+
## Part 1 — Annotation Validation
|
|
238
|
+
|
|
239
|
+
For each significant annotation, assess accuracy against the code snippet:
|
|
240
|
+
- **@mitigates**: does the code actually implement the claimed control?
|
|
241
|
+
- **@exposes**: is the vulnerability real and reachable from the code?
|
|
242
|
+
- **@accepts**: is the risk acceptance reasonable given severity and blast radius? Challenge it.
|
|
243
|
+
- Flag inaccurate, missing, or overstated annotations with specific file:line evidence.
|
|
244
|
+
|
|
245
|
+
## Part 2 — Threat Model Document
|
|
246
|
+
|
|
247
|
+
Produce the following sections. Omit a section only if there is genuinely no relevant information for it — do not pad with boilerplate.
|
|
165
248
|
|
|
166
|
-
###
|
|
167
|
-
|
|
249
|
+
### 1. Overview & Scope
|
|
250
|
+
What this system does, what it protects, and what is explicitly out of scope for this threat model. Derive from @asset declarations, @flows, and project context.
|
|
168
251
|
|
|
169
|
-
###
|
|
170
|
-
|
|
252
|
+
### 2. Architecture
|
|
253
|
+
How the system is structured: components, trust zones, and their relationships. Derive from @boundary, @flows, and project context (framework, deployment model). Include a prose description of the component topology — which components are internet-facing, which are internal, which handle sensitive data.
|
|
171
254
|
|
|
172
|
-
###
|
|
173
|
-
-
|
|
174
|
-
- Weaknesses: unmitigated exposures, missing controls
|
|
175
|
-
- Blind spots: areas with no annotations at all
|
|
255
|
+
### 3. Key Flows & Data Paths
|
|
256
|
+
The most security-relevant data flows through the system. For each: source → destination, what data is carried (@handles classifications), what trust boundaries are crossed (@boundary), and what controls exist at each crossing. Reference specific file locations.
|
|
176
257
|
|
|
177
|
-
### Data
|
|
178
|
-
|
|
258
|
+
### 4. Data Handling & AI/ML Data Use
|
|
259
|
+
All sensitive data in the system from @handles annotations: classification (pii, phi, financial, secrets), which assets hold it, how it moves, and where it is stored or logged. If the project uses ML/AI models: what data is fed to them, what is returned, and what the privacy/integrity implications are.
|
|
179
260
|
|
|
180
|
-
###
|
|
181
|
-
|
|
261
|
+
### 5. Roles & Access
|
|
262
|
+
Who or what can access the system and at what privilege level. Derive from @flows, @boundary, and @assumes. Identify overprivileged paths and missing access controls.
|
|
182
263
|
|
|
183
|
-
###
|
|
184
|
-
|
|
185
|
-
1. What to fix (specific exposure)
|
|
186
|
-
2. How to fix it (specific control/mitigation)
|
|
187
|
-
3. What annotation to add (exact syntax)
|
|
264
|
+
### 6. Dependencies & Supply Chain
|
|
265
|
+
From project context: all third-party dependencies, their versions, and any known risk signals (outdated packages, packages with known CVEs, packages with excessive permissions). Flag dependencies not covered by any @mitigates annotation.
|
|
188
266
|
|
|
189
|
-
###
|
|
190
|
-
|
|
267
|
+
### 7. Secrets, Keys & Credential Management
|
|
268
|
+
All credentials, API keys, tokens, and secrets in the system. Derive from @handles secrets annotations, .env.example signals, and code snippets. How are they stored, rotated, and scoped? What happens if one is leaked?
|
|
269
|
+
|
|
270
|
+
### 8. Logging, Monitoring & Audit
|
|
271
|
+
What is logged, what is not, and what should be. Derive from @audit annotations (present and missing), @handles pii/phi (logged data must be scrubbed), and code snippets showing logging calls. Flag critical operations with no audit trail.
|
|
272
|
+
|
|
273
|
+
### 9. Assumptions & Threat Actors
|
|
274
|
+
From @assumes annotations: what the system trusts without verification. List the threat actors relevant to this system (external attacker, insider, supply chain, automated scanner) and their assumed capabilities. Flag assumptions that a motivated attacker could violate.
|
|
275
|
+
|
|
276
|
+
### 10. Abuse Scenarios & Findings
|
|
277
|
+
For each unmitigated @exposes and each significant gap found during annotation validation: a concrete abuse scenario. Format each as:
|
|
278
|
+
- **Finding**: what the vulnerability is (file:line)
|
|
279
|
+
- **Scenario**: how an attacker exploits it step by step
|
|
280
|
+
- **Impact**: what they gain (reference @handles data classifications)
|
|
281
|
+
- **Severity**: Critical / High / Medium / Low with justification
|
|
282
|
+
- **Remediation**: specific code change or control to add, plus the GuardLink annotation to reflect it
|
|
283
|
+
|
|
284
|
+
Order by severity descending.
|
|
285
|
+
|
|
286
|
+
### 11. Testing & Review Scope
|
|
287
|
+
What security testing is appropriate for this system given its architecture and findings above: unit tests for security controls, integration tests for auth/authz flows, fuzz targets, pen test scope (which endpoints/components), and any automated scanning recommendations.
|
|
288
|
+
|
|
289
|
+
### 12. Open Risks & Accepted Risks
|
|
290
|
+
All @accepts annotations: for each, state the risk, why it was accepted, whether that acceptance is still reasonable given the code evidence, and what the residual blast radius is. Flag any @accepts without a corresponding @audit as an unreviewed acceptance.
|
|
291
|
+
|
|
292
|
+
### 13. Priority Action Items
|
|
293
|
+
Top 5–10 items the team should act on, ordered by risk. For each: one-line description, severity, effort estimate (low/medium/high), and the specific GuardLink annotation change that would reflect the fix.`,
|
|
191
294
|
};
|
|
192
295
|
/**
|
|
193
|
-
* Build the user message containing the serialized threat model
|
|
296
|
+
* Build the user message containing the serialized threat model,
|
|
297
|
+
* optional project context, and optional code snippets.
|
|
194
298
|
*/
|
|
195
|
-
export function buildUserMessage(modelJson, framework, customPrompt) {
|
|
299
|
+
export function buildUserMessage(modelJson, framework, customPrompt, projectContext, codeSnippets) {
|
|
196
300
|
const header = customPrompt
|
|
197
|
-
? `
|
|
198
|
-
: `Produce a ${FRAMEWORK_LABELS[framework]} for this
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
<
|
|
202
|
-
|
|
203
|
-
</
|
|
301
|
+
? `Use these annotations as input to produce a threat model. Additional focus: ${customPrompt}`
|
|
302
|
+
: `Produce a ${FRAMEWORK_LABELS[framework]} for this codebase using all available evidence below.`;
|
|
303
|
+
const parts = [header, ''];
|
|
304
|
+
if (projectContext) {
|
|
305
|
+
parts.push('<project_context>');
|
|
306
|
+
parts.push(projectContext);
|
|
307
|
+
parts.push('</project_context>');
|
|
308
|
+
parts.push('');
|
|
309
|
+
}
|
|
310
|
+
parts.push('<annotation_graph>');
|
|
311
|
+
parts.push(modelJson);
|
|
312
|
+
parts.push('</annotation_graph>');
|
|
313
|
+
if (codeSnippets) {
|
|
314
|
+
parts.push('');
|
|
315
|
+
parts.push('<code_snippets>');
|
|
316
|
+
parts.push(codeSnippets);
|
|
317
|
+
parts.push('</code_snippets>');
|
|
318
|
+
}
|
|
319
|
+
return parts.join('\n');
|
|
204
320
|
}
|
|
205
321
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,yBAAyB;CACnC,CAAC;AAEF,MAAM,WAAW,GAAG
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/analyze/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAsC;IACjE,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,uBAAuB;IAC9B,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,2BAA2B;IACrC,KAAK,EAAE,uBAAuB;IAC9B,OAAO,EAAE,yBAAyB;CACnC,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+PAgD2O,CAAC;AAEhQ,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,MAAM,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDAsCiC;IAEvD,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA8BuB;IAE5C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+FAiCwE;IAE7F,QAAQ,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iDAiCuB;IAE/C,KAAK,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DA6BwC;IAE7D,OAAO,EAAE,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8MA4DqL;CAC7M,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,SAA4B,EAC5B,YAAqB,EACrB,cAAuB,EACvB,YAAqB;IAErB,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,+EAA+E,YAAY,EAAE;QAC/F,CAAC,CAAC,aAAa,gBAAgB,CAAC,SAAS,CAAC,wDAAwD,CAAC;IAErG,MAAM,KAAK,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAErC,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAElC,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GuardLink — Tool definitions for LLM function calling.
|
|
3
|
+
*
|
|
4
|
+
* Defines tools that the LLM can invoke during threat analysis:
|
|
5
|
+
* - lookup_cve: Search for CVE details (via web fetch)
|
|
6
|
+
* - validate_finding: Cross-reference a finding against the parsed model
|
|
7
|
+
* - search_codebase: Search project files for patterns
|
|
8
|
+
*
|
|
9
|
+
* @flows External_LLM_APIs -> #llm-tools via tool_call -- "LLM requests tool execution"
|
|
10
|
+
* @flows #llm-tools -> External_LLM_APIs via tool_result -- "Tool results returned to LLM"
|
|
11
|
+
* @exposes #llm-tools to #ssrf [medium] cwe:CWE-918 -- "lookup_cve fetches external URLs"
|
|
12
|
+
* @mitigates #llm-tools against #ssrf using #url-allowlist -- "Only fetches from known CVE databases"
|
|
13
|
+
*/
|
|
14
|
+
import type { ToolDefinition, ToolExecutor } from './llm.js';
|
|
15
|
+
import type { ThreatModel } from '../types/index.js';
|
|
16
|
+
export declare const GUARDLINK_TOOLS: ToolDefinition[];
|
|
17
|
+
/**
|
|
18
|
+
* Create a tool executor bound to a project root and threat model.
|
|
19
|
+
* The executor handles all GuardLink tool calls.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createToolExecutor(root: string, model: ThreatModel | null): ToolExecutor;
|
|
22
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/analyze/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,eAAO,MAAM,eAAe,EAAE,cAAc,EAuC3C,CAAC;AAIF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,YAAY,CAaxF"}
|