@bryan-thompson/inspector-assessment-client 1.25.1 → 1.25.5
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/dist/assets/{OAuthCallback-CkzX_H4T.js → OAuthCallback-Dl4GYls3.js} +1 -1
- package/dist/assets/{OAuthDebugCallback-jZEkm74B.js → OAuthDebugCallback-BdJ38Z-r.js} +1 -1
- package/dist/assets/{index-Df9Sx1jt.css → index-cHhcEXbr.css} +4 -0
- package/dist/assets/{index-BVx1dGJT.js → index-pfUiTdQb.js} +4 -4
- package/dist/index.html +2 -2
- package/lib/lib/assessment/configTypes.d.ts +3 -0
- package/lib/lib/assessment/configTypes.d.ts.map +1 -1
- package/lib/lib/assessment/configTypes.js +11 -6
- package/lib/lib/assessment/coreTypes.d.ts +65 -0
- package/lib/lib/assessment/coreTypes.d.ts.map +1 -1
- package/lib/lib/assessment/extendedTypes.d.ts +127 -0
- package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
- package/lib/lib/assessment/resultTypes.d.ts +45 -0
- package/lib/lib/assessment/resultTypes.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.d.ts +4 -12
- package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.js +49 -238
- package/lib/services/assessment/TestDataGenerator.d.ts +9 -1
- package/lib/services/assessment/TestDataGenerator.d.ts.map +1 -1
- package/lib/services/assessment/TestDataGenerator.js +32 -6
- package/lib/services/assessment/TestScenarioEngine.d.ts +9 -1
- package/lib/services/assessment/TestScenarioEngine.d.ts.map +1 -1
- package/lib/services/assessment/TestScenarioEngine.js +17 -14
- package/lib/services/assessment/ToolClassifier.d.ts +154 -27
- package/lib/services/assessment/ToolClassifier.d.ts.map +1 -1
- package/lib/services/assessment/ToolClassifier.js +171 -318
- package/lib/services/assessment/config/annotationPatterns.d.ts +3 -1
- package/lib/services/assessment/config/annotationPatterns.d.ts.map +1 -1
- package/lib/services/assessment/config/annotationPatterns.js +5 -2
- package/lib/services/assessment/config/architecturePatterns.d.ts +101 -0
- package/lib/services/assessment/config/architecturePatterns.d.ts.map +1 -0
- package/lib/services/assessment/config/architecturePatterns.js +248 -0
- package/lib/services/assessment/config/performanceConfig.d.ts +122 -0
- package/lib/services/assessment/config/performanceConfig.d.ts.map +1 -0
- package/lib/services/assessment/config/performanceConfig.js +154 -0
- package/lib/services/assessment/config/sanitizationPatterns.d.ts +63 -0
- package/lib/services/assessment/config/sanitizationPatterns.d.ts.map +1 -0
- package/lib/services/assessment/config/sanitizationPatterns.js +223 -0
- package/lib/services/assessment/lib/claudeCodeBridge.d.ts +3 -1
- package/lib/services/assessment/lib/claudeCodeBridge.d.ts.map +1 -1
- package/lib/services/assessment/lib/claudeCodeBridge.js +5 -3
- package/lib/services/assessment/lib/concurrencyLimit.d.ts +6 -2
- package/lib/services/assessment/lib/concurrencyLimit.d.ts.map +1 -1
- package/lib/services/assessment/lib/concurrencyLimit.js +13 -6
- package/lib/services/assessment/lib/errors.d.ts +90 -0
- package/lib/services/assessment/lib/errors.d.ts.map +1 -0
- package/lib/services/assessment/lib/errors.js +136 -0
- package/lib/services/assessment/lib/timeoutUtils.d.ts +69 -0
- package/lib/services/assessment/lib/timeoutUtils.d.ts.map +1 -0
- package/lib/services/assessment/lib/timeoutUtils.js +103 -0
- package/lib/services/assessment/modules/BaseAssessor.d.ts +43 -8
- package/lib/services/assessment/modules/BaseAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/BaseAssessor.js +103 -34
- package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts +38 -1
- package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/DeveloperExperienceAssessor.js +185 -19
- package/lib/services/assessment/modules/DocumentationAssessor.d.ts +5 -0
- package/lib/services/assessment/modules/DocumentationAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/DocumentationAssessor.js +11 -0
- package/lib/services/assessment/modules/ErrorHandlingAssessor.js +1 -1
- package/lib/services/assessment/modules/FunctionalityAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/FunctionalityAssessor.js +6 -3
- package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts +3 -0
- package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/MCPSpecComplianceAssessor.js +14 -2
- package/lib/services/assessment/modules/ManifestValidationAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ManifestValidationAssessor.js +7 -2
- package/lib/services/assessment/modules/PromptAssessor.d.ts +1 -0
- package/lib/services/assessment/modules/PromptAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/PromptAssessor.js +26 -16
- package/lib/services/assessment/modules/ProtocolComplianceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ProtocolComplianceAssessor.js +6 -2
- package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts +5 -0
- package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ProtocolConformanceAssessor.js +15 -0
- package/lib/services/assessment/modules/ResourceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ResourceAssessor.js +8 -2
- package/lib/services/assessment/modules/SecurityAssessor.d.ts +3 -171
- package/lib/services/assessment/modules/SecurityAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/SecurityAssessor.js +25 -1480
- package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts +27 -28
- package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ToolAnnotationAssessor.js +340 -863
- package/lib/services/assessment/modules/UsabilityAssessor.d.ts +5 -0
- package/lib/services/assessment/modules/UsabilityAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/UsabilityAssessor.js +11 -0
- package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts +57 -0
- package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.js +176 -0
- package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts +67 -0
- package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/ArchitectureDetector.js +239 -0
- package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts +46 -0
- package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/BehaviorInference.js +394 -0
- package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts +64 -0
- package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.js +304 -0
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts +43 -0
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +276 -0
- package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts +122 -0
- package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/SchemaAnalyzer.js +388 -0
- package/lib/services/assessment/modules/annotations/index.d.ts +13 -0
- package/lib/services/assessment/modules/annotations/index.d.ts.map +1 -0
- package/lib/services/assessment/modules/annotations/index.js +15 -0
- package/lib/services/assessment/modules/index.d.ts +10 -0
- package/lib/services/assessment/modules/index.d.ts.map +1 -1
- package/lib/services/assessment/modules/index.js +13 -0
- package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts +125 -0
- package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts.map +1 -0
- package/lib/services/assessment/modules/securityTests/SanitizationDetector.js +345 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts +33 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts.map +1 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.js +128 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts +67 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts.map +1 -0
- package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.js +372 -0
- package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts +178 -0
- package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -0
- package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +1207 -0
- package/lib/services/assessment/modules/securityTests/index.d.ts +8 -0
- package/lib/services/assessment/modules/securityTests/index.d.ts.map +1 -0
- package/lib/services/assessment/modules/securityTests/index.js +7 -0
- package/lib/services/assessment/orchestratorHelpers.d.ts +83 -0
- package/lib/services/assessment/orchestratorHelpers.d.ts.map +1 -0
- package/lib/services/assessment/orchestratorHelpers.js +212 -0
- package/lib/services/assessment/tool-classifier-patterns.d.ts +85 -0
- package/lib/services/assessment/tool-classifier-patterns.d.ts.map +1 -0
- package/lib/services/assessment/tool-classifier-patterns.js +365 -0
- package/package.json +1 -1
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Classifier Pattern Configuration
|
|
3
|
+
*
|
|
4
|
+
* Pre-compiled regex patterns for MCP tool classification.
|
|
5
|
+
* Extracting patterns to this file provides:
|
|
6
|
+
* - Single source of truth for patterns, confidence values, and risk levels
|
|
7
|
+
* - Pre-compiled patterns (created once at module load, not per classify() call)
|
|
8
|
+
* - Easier maintenance without modifying core classification logic
|
|
9
|
+
*
|
|
10
|
+
* @see ToolClassifier.ts for classification logic
|
|
11
|
+
* @see ToolClassifier.test.ts for pattern behavior validation
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Security risk categories for MCP tools.
|
|
15
|
+
*
|
|
16
|
+
* Categories are organized by risk level:
|
|
17
|
+
* - **HIGH**: Tools that may execute code or access sensitive data
|
|
18
|
+
* - **MEDIUM**: Tools with potential bypass or supply chain risks
|
|
19
|
+
* - **LOW**: Safe tools for data retrieval and manipulation
|
|
20
|
+
*/
|
|
21
|
+
export var ToolCategory;
|
|
22
|
+
(function (ToolCategory) {
|
|
23
|
+
// HIGH RISK
|
|
24
|
+
ToolCategory["CALCULATOR"] = "calculator";
|
|
25
|
+
ToolCategory["SYSTEM_EXEC"] = "system_exec";
|
|
26
|
+
ToolCategory["CODE_EXECUTOR"] = "code_executor";
|
|
27
|
+
ToolCategory["DATA_ACCESS"] = "data_access";
|
|
28
|
+
ToolCategory["TOOL_OVERRIDE"] = "tool_override";
|
|
29
|
+
ToolCategory["CONFIG_MODIFIER"] = "config_modifier";
|
|
30
|
+
ToolCategory["URL_FETCHER"] = "fetcher";
|
|
31
|
+
// MEDIUM RISK
|
|
32
|
+
ToolCategory["UNICODE_PROCESSOR"] = "unicode";
|
|
33
|
+
ToolCategory["JSON_PARSER"] = "parser";
|
|
34
|
+
ToolCategory["PACKAGE_INSTALLER"] = "installer";
|
|
35
|
+
ToolCategory["RUG_PULL"] = "rug_pull";
|
|
36
|
+
// LOW RISK (SAFE)
|
|
37
|
+
ToolCategory["SAFE_STORAGE"] = "safe_storage";
|
|
38
|
+
ToolCategory["API_WRAPPER"] = "api_wrapper";
|
|
39
|
+
ToolCategory["SEARCH_RETRIEVAL"] = "search_retrieval";
|
|
40
|
+
ToolCategory["CRUD_CREATION"] = "crud_creation";
|
|
41
|
+
ToolCategory["READ_ONLY_INFO"] = "read_only_info";
|
|
42
|
+
ToolCategory["DATA_FETCHER"] = "data_fetcher";
|
|
43
|
+
// DEFAULT
|
|
44
|
+
ToolCategory["GENERIC"] = "generic";
|
|
45
|
+
})(ToolCategory || (ToolCategory = {}));
|
|
46
|
+
/**
|
|
47
|
+
* Complete pattern configuration for all tool categories.
|
|
48
|
+
* Patterns are pre-compiled as static constants for performance.
|
|
49
|
+
*
|
|
50
|
+
* ## Pattern Types
|
|
51
|
+
*
|
|
52
|
+
* 1. **Substring patterns** (`/keyword/i`): Match anywhere in text
|
|
53
|
+
* - Used for HIGH-risk keywords that warrant scrutiny even when embedded
|
|
54
|
+
*
|
|
55
|
+
* 2. **Word boundary patterns** (`/\bword\b/i`): Match isolated words only
|
|
56
|
+
* - Used for common words to prevent false positives
|
|
57
|
+
* - Note: `\b` treats hyphens as boundaries but underscores as word chars
|
|
58
|
+
*/
|
|
59
|
+
export const CATEGORY_PATTERNS = {
|
|
60
|
+
// ============================================================================
|
|
61
|
+
// HIGH RISK CATEGORIES
|
|
62
|
+
// ============================================================================
|
|
63
|
+
[ToolCategory.CALCULATOR]: {
|
|
64
|
+
patterns: [
|
|
65
|
+
/calculator/i,
|
|
66
|
+
/compute/i,
|
|
67
|
+
/math/i,
|
|
68
|
+
/calc/i,
|
|
69
|
+
/eval/i,
|
|
70
|
+
/arithmetic/i,
|
|
71
|
+
/expression/i,
|
|
72
|
+
],
|
|
73
|
+
confidence: 90,
|
|
74
|
+
reasoning: "Calculator pattern detected (arithmetic execution risk)",
|
|
75
|
+
risk: "HIGH",
|
|
76
|
+
},
|
|
77
|
+
[ToolCategory.SYSTEM_EXEC]: {
|
|
78
|
+
patterns: [
|
|
79
|
+
/system.*exec/i,
|
|
80
|
+
/exec.*tool/i,
|
|
81
|
+
/command/i,
|
|
82
|
+
/shell/i,
|
|
83
|
+
/\brun\b/i,
|
|
84
|
+
/execute/i,
|
|
85
|
+
/process/i,
|
|
86
|
+
],
|
|
87
|
+
confidence: 95,
|
|
88
|
+
reasoning: "System execution pattern detected (command injection risk)",
|
|
89
|
+
risk: "HIGH",
|
|
90
|
+
},
|
|
91
|
+
[ToolCategory.CODE_EXECUTOR]: {
|
|
92
|
+
patterns: [
|
|
93
|
+
/execute.*code/i,
|
|
94
|
+
/run.*code/i,
|
|
95
|
+
/code.*execut/i,
|
|
96
|
+
/run.*script/i,
|
|
97
|
+
/exec.*script/i,
|
|
98
|
+
/\bpython.*code\b/i,
|
|
99
|
+
/\bjavascript.*code\b/i,
|
|
100
|
+
/\bjs.*code\b/i,
|
|
101
|
+
/\beval.*code\b/i,
|
|
102
|
+
/code.*runner/i,
|
|
103
|
+
/script.*runner/i,
|
|
104
|
+
/\bexec\b.*\b(python|js|javascript)\b/i,
|
|
105
|
+
/\b(python|js|javascript)\b.*\bexec\b/i,
|
|
106
|
+
/interpret/i,
|
|
107
|
+
/\brepl\b/i,
|
|
108
|
+
],
|
|
109
|
+
confidence: 95,
|
|
110
|
+
reasoning: "Code executor pattern detected (arbitrary code execution risk)",
|
|
111
|
+
risk: "HIGH",
|
|
112
|
+
},
|
|
113
|
+
[ToolCategory.DATA_ACCESS]: {
|
|
114
|
+
patterns: [
|
|
115
|
+
/leak/i,
|
|
116
|
+
/\bdata\b/i,
|
|
117
|
+
/show/i,
|
|
118
|
+
/\bget\b/i,
|
|
119
|
+
/\blist\b/i,
|
|
120
|
+
/display/i,
|
|
121
|
+
/\benv/i,
|
|
122
|
+
/secret/i,
|
|
123
|
+
/\bkey\b/i,
|
|
124
|
+
/credential/i,
|
|
125
|
+
/exfiltrat/i,
|
|
126
|
+
],
|
|
127
|
+
confidence: 85,
|
|
128
|
+
reasoning: "Data access pattern detected (data exfiltration risk)",
|
|
129
|
+
risk: "HIGH",
|
|
130
|
+
},
|
|
131
|
+
[ToolCategory.TOOL_OVERRIDE]: {
|
|
132
|
+
patterns: [
|
|
133
|
+
/override/i,
|
|
134
|
+
/shadow/i,
|
|
135
|
+
/poison/i,
|
|
136
|
+
/create.*tool/i,
|
|
137
|
+
/register.*tool/i,
|
|
138
|
+
/define.*tool/i,
|
|
139
|
+
/tool.*creator/i,
|
|
140
|
+
/add.*tool/i,
|
|
141
|
+
],
|
|
142
|
+
confidence: 92,
|
|
143
|
+
reasoning: "Tool override pattern detected (shadowing/poisoning risk)",
|
|
144
|
+
risk: "HIGH",
|
|
145
|
+
},
|
|
146
|
+
[ToolCategory.CONFIG_MODIFIER]: {
|
|
147
|
+
patterns: [
|
|
148
|
+
/config/i,
|
|
149
|
+
/setting/i,
|
|
150
|
+
/modifier/i,
|
|
151
|
+
/\badmin\b/i,
|
|
152
|
+
/privilege/i,
|
|
153
|
+
/permission/i,
|
|
154
|
+
/configure/i,
|
|
155
|
+
/drift/i,
|
|
156
|
+
],
|
|
157
|
+
confidence: 88,
|
|
158
|
+
reasoning: "Config modification pattern detected (configuration drift risk)",
|
|
159
|
+
risk: "HIGH",
|
|
160
|
+
},
|
|
161
|
+
[ToolCategory.URL_FETCHER]: {
|
|
162
|
+
patterns: [
|
|
163
|
+
/fetch/i,
|
|
164
|
+
/\burl\b/i,
|
|
165
|
+
/http/i,
|
|
166
|
+
/download/i,
|
|
167
|
+
/load/i,
|
|
168
|
+
/retrieve/i,
|
|
169
|
+
/\bget\b.*url/i,
|
|
170
|
+
/external/i,
|
|
171
|
+
],
|
|
172
|
+
confidence: 87,
|
|
173
|
+
reasoning: "URL fetcher pattern detected (indirect prompt injection risk)",
|
|
174
|
+
risk: "HIGH",
|
|
175
|
+
},
|
|
176
|
+
// ============================================================================
|
|
177
|
+
// MEDIUM RISK CATEGORIES
|
|
178
|
+
// ============================================================================
|
|
179
|
+
[ToolCategory.UNICODE_PROCESSOR]: {
|
|
180
|
+
patterns: [
|
|
181
|
+
/unicode/i,
|
|
182
|
+
/encode/i,
|
|
183
|
+
/decode/i,
|
|
184
|
+
/charset/i,
|
|
185
|
+
/utf/i,
|
|
186
|
+
/hex/i,
|
|
187
|
+
/escape/i,
|
|
188
|
+
],
|
|
189
|
+
confidence: 75,
|
|
190
|
+
reasoning: "Unicode processor pattern detected (bypass encoding risk)",
|
|
191
|
+
risk: "MEDIUM",
|
|
192
|
+
},
|
|
193
|
+
[ToolCategory.JSON_PARSER]: {
|
|
194
|
+
patterns: [
|
|
195
|
+
/parser/i,
|
|
196
|
+
/parse/i,
|
|
197
|
+
/json/i,
|
|
198
|
+
/xml/i,
|
|
199
|
+
/yaml/i,
|
|
200
|
+
/nested/i,
|
|
201
|
+
/deserialize/i,
|
|
202
|
+
/unmarshal/i,
|
|
203
|
+
],
|
|
204
|
+
confidence: 78,
|
|
205
|
+
reasoning: "JSON/nested parser pattern detected (nested injection risk)",
|
|
206
|
+
risk: "MEDIUM",
|
|
207
|
+
},
|
|
208
|
+
[ToolCategory.PACKAGE_INSTALLER]: {
|
|
209
|
+
patterns: [
|
|
210
|
+
/install/i,
|
|
211
|
+
/package/i,
|
|
212
|
+
/\bnpm\b/i,
|
|
213
|
+
/\bpip\b/i,
|
|
214
|
+
/dependency/i,
|
|
215
|
+
/module/i,
|
|
216
|
+
/library/i,
|
|
217
|
+
/\bgem\b/i,
|
|
218
|
+
],
|
|
219
|
+
confidence: 70,
|
|
220
|
+
reasoning: "Package installer pattern detected (typosquatting risk)",
|
|
221
|
+
risk: "MEDIUM",
|
|
222
|
+
},
|
|
223
|
+
[ToolCategory.RUG_PULL]: {
|
|
224
|
+
patterns: [
|
|
225
|
+
/rug.*pull/i,
|
|
226
|
+
/trust/i,
|
|
227
|
+
/behavior.*change/i,
|
|
228
|
+
/malicious.*after/i,
|
|
229
|
+
/invocation.*count/i,
|
|
230
|
+
],
|
|
231
|
+
confidence: 80,
|
|
232
|
+
reasoning: "Rug pull pattern detected (behavioral change risk)",
|
|
233
|
+
risk: "MEDIUM",
|
|
234
|
+
},
|
|
235
|
+
// ============================================================================
|
|
236
|
+
// LOW RISK (SAFE) CATEGORIES
|
|
237
|
+
// ============================================================================
|
|
238
|
+
[ToolCategory.API_WRAPPER]: {
|
|
239
|
+
patterns: [
|
|
240
|
+
/firecrawl/i,
|
|
241
|
+
/\bscrape\b/i,
|
|
242
|
+
/\bcrawl\b/i,
|
|
243
|
+
/web.*scraping/i,
|
|
244
|
+
/api.*wrapper/i,
|
|
245
|
+
/http.*client/i,
|
|
246
|
+
/web.*client/i,
|
|
247
|
+
/rest.*client/i,
|
|
248
|
+
/graphql.*client/i,
|
|
249
|
+
/fetch.*web.*content/i,
|
|
250
|
+
],
|
|
251
|
+
confidence: 95,
|
|
252
|
+
reasoning: "API wrapper pattern detected (safe data passing, not code execution)",
|
|
253
|
+
risk: "LOW",
|
|
254
|
+
},
|
|
255
|
+
[ToolCategory.SEARCH_RETRIEVAL]: {
|
|
256
|
+
patterns: [
|
|
257
|
+
/\bsearch\b/i,
|
|
258
|
+
/\bfind\b/i,
|
|
259
|
+
/\blookup\b/i,
|
|
260
|
+
/\bquery\b/i,
|
|
261
|
+
/retrieve/i,
|
|
262
|
+
/\blist\b/i,
|
|
263
|
+
/get.*users/i,
|
|
264
|
+
/get.*pages/i,
|
|
265
|
+
/get.*database/i,
|
|
266
|
+
],
|
|
267
|
+
confidence: 93,
|
|
268
|
+
reasoning: "Search/retrieval pattern detected (returns data, not code execution)",
|
|
269
|
+
risk: "LOW",
|
|
270
|
+
},
|
|
271
|
+
[ToolCategory.CRUD_CREATION]: {
|
|
272
|
+
patterns: [
|
|
273
|
+
/\bcreate\b/i,
|
|
274
|
+
/\badd\b/i,
|
|
275
|
+
/\binsert\b/i,
|
|
276
|
+
/\bupdate\b/i,
|
|
277
|
+
/\bmodify\b/i,
|
|
278
|
+
/\bdelete\b/i,
|
|
279
|
+
/\bduplicate\b/i,
|
|
280
|
+
/\bmove\b/i,
|
|
281
|
+
/\bappend\b/i,
|
|
282
|
+
],
|
|
283
|
+
confidence: 92,
|
|
284
|
+
reasoning: "CRUD operation pattern detected (data manipulation, not code execution)",
|
|
285
|
+
risk: "LOW",
|
|
286
|
+
},
|
|
287
|
+
[ToolCategory.READ_ONLY_INFO]: {
|
|
288
|
+
patterns: [
|
|
289
|
+
/get.*self/i,
|
|
290
|
+
/get.*teams/i,
|
|
291
|
+
/get.*info/i,
|
|
292
|
+
/get.*status/i,
|
|
293
|
+
/\bwhoami\b/i,
|
|
294
|
+
/get.*workspace/i,
|
|
295
|
+
/get.*user/i,
|
|
296
|
+
/current.*user/i,
|
|
297
|
+
],
|
|
298
|
+
confidence: 94,
|
|
299
|
+
reasoning: "Read-only info pattern detected (intended data exposure, not vulnerability)",
|
|
300
|
+
risk: "LOW",
|
|
301
|
+
},
|
|
302
|
+
[ToolCategory.DATA_FETCHER]: {
|
|
303
|
+
patterns: [
|
|
304
|
+
/get_.*_data/i, // get_company_data, get_user_data
|
|
305
|
+
/fetch_.*_info/i, // fetch_user_info
|
|
306
|
+
/list_.*records/i, // list_all_records
|
|
307
|
+
/retrieve_.*details/i, // retrieve_order_details
|
|
308
|
+
/read_.*entries/i, // read_log_entries
|
|
309
|
+
/\bget_\w+$/i, // get_users, get_orders (simple get_ prefix)
|
|
310
|
+
/\blist_\w+$/i, // list_items, list_records
|
|
311
|
+
/\bfetch_\w+$/i, // fetch_data, fetch_info
|
|
312
|
+
],
|
|
313
|
+
confidence: 88,
|
|
314
|
+
reasoning: "Read-only data fetcher pattern detected (returns external data, unlikely to compute)",
|
|
315
|
+
risk: "LOW",
|
|
316
|
+
},
|
|
317
|
+
[ToolCategory.SAFE_STORAGE]: {
|
|
318
|
+
patterns: [
|
|
319
|
+
/safe.*storage/i,
|
|
320
|
+
/safe.*search/i,
|
|
321
|
+
/safe.*list/i,
|
|
322
|
+
/safe.*info/i,
|
|
323
|
+
/safe.*echo/i,
|
|
324
|
+
/safe.*validate/i,
|
|
325
|
+
/safe.*tool/i,
|
|
326
|
+
],
|
|
327
|
+
confidence: 99,
|
|
328
|
+
reasoning: "Safe tool pattern detected (control group - should be safe)",
|
|
329
|
+
risk: "LOW",
|
|
330
|
+
},
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* Default configuration for GENERIC category (no pattern match)
|
|
334
|
+
*/
|
|
335
|
+
export const GENERIC_CONFIG = {
|
|
336
|
+
confidence: 50,
|
|
337
|
+
reasoning: "No specific pattern match, using generic tests",
|
|
338
|
+
risk: "LOW",
|
|
339
|
+
};
|
|
340
|
+
/**
|
|
341
|
+
* Order in which categories are checked during classification.
|
|
342
|
+
* This order determines priority when a tool matches multiple categories.
|
|
343
|
+
*/
|
|
344
|
+
export const CATEGORY_CHECK_ORDER = [
|
|
345
|
+
// HIGH risk first
|
|
346
|
+
ToolCategory.CALCULATOR,
|
|
347
|
+
ToolCategory.SYSTEM_EXEC,
|
|
348
|
+
ToolCategory.CODE_EXECUTOR,
|
|
349
|
+
ToolCategory.DATA_ACCESS,
|
|
350
|
+
ToolCategory.TOOL_OVERRIDE,
|
|
351
|
+
ToolCategory.CONFIG_MODIFIER,
|
|
352
|
+
ToolCategory.URL_FETCHER,
|
|
353
|
+
// MEDIUM risk
|
|
354
|
+
ToolCategory.UNICODE_PROCESSOR,
|
|
355
|
+
ToolCategory.JSON_PARSER,
|
|
356
|
+
ToolCategory.PACKAGE_INSTALLER,
|
|
357
|
+
ToolCategory.RUG_PULL,
|
|
358
|
+
// LOW risk (SAFE)
|
|
359
|
+
ToolCategory.API_WRAPPER,
|
|
360
|
+
ToolCategory.SEARCH_RETRIEVAL,
|
|
361
|
+
ToolCategory.CRUD_CREATION,
|
|
362
|
+
ToolCategory.READ_ONLY_INFO,
|
|
363
|
+
ToolCategory.DATA_FETCHER,
|
|
364
|
+
ToolCategory.SAFE_STORAGE,
|
|
365
|
+
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bryan-thompson/inspector-assessment-client",
|
|
3
|
-
"version": "1.25.
|
|
3
|
+
"version": "1.25.5",
|
|
4
4
|
"description": "Client-side application for the Enhanced MCP Inspector with assessment capabilities",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bryan Thompson <bryan@triepod.ai>",
|