hackmyagent 0.14.0 → 0.14.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.
- package/dist/.integrity-manifest.json +1 -1
- package/dist/arp/engine/event-engine.d.ts.map +1 -1
- package/dist/arp/engine/event-engine.js +8 -6
- package/dist/arp/engine/event-engine.js.map +1 -1
- package/dist/arp/intelligence/coordinator.d.ts.map +1 -1
- package/dist/arp/intelligence/coordinator.js +17 -12
- package/dist/arp/intelligence/coordinator.js.map +1 -1
- package/dist/arp/intelligence/nanomind-l1.js +2 -2
- package/dist/arp/intelligence/nanomind-l1.js.map +1 -1
- package/dist/arp/interceptors/process.d.ts.map +1 -1
- package/dist/arp/interceptors/process.js +40 -5
- package/dist/arp/interceptors/process.js.map +1 -1
- package/dist/arp/proxy/server.d.ts +6 -0
- package/dist/arp/proxy/server.d.ts.map +1 -1
- package/dist/arp/proxy/server.js +40 -14
- package/dist/arp/proxy/server.js.map +1 -1
- package/dist/arp/telemetry/gtin.d.ts +1 -1
- package/dist/arp/telemetry/gtin.d.ts.map +1 -1
- package/dist/arp/telemetry/gtin.js +4 -0
- package/dist/arp/telemetry/gtin.js.map +1 -1
- package/dist/attack/payloads/index.d.ts +2 -1
- package/dist/attack/payloads/index.d.ts.map +1 -1
- package/dist/attack/payloads/index.js +5 -1
- package/dist/attack/payloads/index.js.map +1 -1
- package/dist/attack/payloads/policy-enforcement-integrity.d.ts +13 -0
- package/dist/attack/payloads/policy-enforcement-integrity.d.ts.map +1 -0
- package/dist/attack/payloads/policy-enforcement-integrity.js +217 -0
- package/dist/attack/payloads/policy-enforcement-integrity.js.map +1 -0
- package/dist/attack/scanner.d.ts.map +1 -1
- package/dist/attack/scanner.js +1 -0
- package/dist/attack/scanner.js.map +1 -1
- package/dist/attack/types.d.ts +1 -1
- package/dist/attack/types.d.ts.map +1 -1
- package/dist/attack/types.js +5 -0
- package/dist/attack/types.js.map +1 -1
- package/dist/attack-engine/types.d.ts +1 -1
- package/dist/attack-engine/types.d.ts.map +1 -1
- package/dist/attack-engine/types.js.map +1 -1
- package/dist/cli.js +18 -11
- package/dist/cli.js.map +1 -1
- package/dist/hardening/scanner.d.ts +18 -4
- package/dist/hardening/scanner.d.ts.map +1 -1
- package/dist/hardening/scanner.js +76 -18
- package/dist/hardening/scanner.js.map +1 -1
- package/dist/hardening/taxonomy.d.ts.map +1 -1
- package/dist/hardening/taxonomy.js +44 -0
- package/dist/hardening/taxonomy.js.map +1 -1
- package/dist/nanomind-core/analyzers/capability-analyzer.js +10 -10
- package/dist/nanomind-core/analyzers/capability-analyzer.js.map +1 -1
- package/dist/nanomind-core/analyzers/code-analyzer.js +5 -5
- package/dist/nanomind-core/analyzers/code-analyzer.js.map +1 -1
- package/dist/nanomind-core/analyzers/credential-analyzer.js +4 -4
- package/dist/nanomind-core/analyzers/credential-analyzer.js.map +1 -1
- package/dist/nanomind-core/analyzers/governance-analyzer.js +7 -7
- package/dist/nanomind-core/analyzers/governance-analyzer.js.map +1 -1
- package/dist/nanomind-core/analyzers/prompt-analyzer.js +9 -9
- package/dist/nanomind-core/analyzers/prompt-analyzer.js.map +1 -1
- package/dist/nanomind-core/analyzers/scope-analyzer.js +4 -4
- package/dist/nanomind-core/analyzers/scope-analyzer.js.map +1 -1
- package/dist/nanomind-core/inference/tme-classifier.d.ts.map +1 -1
- package/dist/nanomind-core/inference/tme-classifier.js +0 -1
- package/dist/nanomind-core/inference/tme-classifier.js.map +1 -1
- package/dist/nanomind-core/scanner-bridge.d.ts.map +1 -1
- package/dist/nanomind-core/scanner-bridge.js +8 -0
- package/dist/nanomind-core/scanner-bridge.js.map +1 -1
- package/dist/registry/index.d.ts +1 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +5 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/publish.d.ts.map +1 -1
- package/dist/registry/publish.js +16 -0
- package/dist/registry/publish.js.map +1 -1
- package/dist/registry/remediation.d.ts +12 -0
- package/dist/registry/remediation.d.ts.map +1 -0
- package/dist/registry/remediation.js +70 -0
- package/dist/registry/remediation.js.map +1 -0
- package/package.json +1 -1
- package/dist/abgr/controls.d.ts +0 -35
- package/dist/abgr/controls.d.ts.map +0 -1
- package/dist/abgr/controls.js +0 -1058
- package/dist/abgr/controls.js.map +0 -1
- package/dist/abgr/detector.d.ts +0 -45
- package/dist/abgr/detector.d.ts.map +0 -1
- package/dist/abgr/detector.js +0 -175
- package/dist/abgr/detector.js.map +0 -1
- package/dist/abgr/index.d.ts +0 -24
- package/dist/abgr/index.d.ts.map +0 -1
- package/dist/abgr/index.js +0 -50
- package/dist/abgr/index.js.map +0 -1
- package/dist/abgr/scorer.d.ts +0 -36
- package/dist/abgr/scorer.d.ts.map +0 -1
- package/dist/abgr/scorer.js +0 -205
- package/dist/abgr/scorer.js.map +0 -1
- package/dist/abgr/templates.d.ts +0 -35
- package/dist/abgr/templates.d.ts.map +0 -1
- package/dist/abgr/templates.js +0 -668
- package/dist/abgr/templates.js.map +0 -1
- package/dist/abgr/tier.d.ts +0 -27
- package/dist/abgr/tier.d.ts.map +0 -1
- package/dist/abgr/tier.js +0 -115
- package/dist/abgr/tier.js.map +0 -1
- package/dist/abgr/types.d.ts +0 -59
- package/dist/abgr/types.d.ts.map +0 -1
- package/dist/abgr/types.js +0 -10
- package/dist/abgr/types.js.map +0 -1
- package/dist/agent-scan/checks.d.ts +0 -6
- package/dist/agent-scan/checks.d.ts.map +0 -1
- package/dist/agent-scan/checks.js +0 -93
- package/dist/agent-scan/checks.js.map +0 -1
- package/dist/agent-scan/index.d.ts +0 -10
- package/dist/agent-scan/index.d.ts.map +0 -1
- package/dist/agent-scan/index.js +0 -16
- package/dist/agent-scan/index.js.map +0 -1
- package/dist/agent-scan/scanner.d.ts +0 -31
- package/dist/agent-scan/scanner.d.ts.map +0 -1
- package/dist/agent-scan/scanner.js +0 -484
- package/dist/agent-scan/scanner.js.map +0 -1
- package/dist/agent-scan/types.d.ts +0 -63
- package/dist/agent-scan/types.d.ts.map +0 -1
- package/dist/agent-scan/types.js +0 -10
- package/dist/agent-scan/types.js.map +0 -1
- package/dist/hardening/llm-checks.d.ts +0 -18
- package/dist/hardening/llm-checks.d.ts.map +0 -1
- package/dist/hardening/llm-checks.js +0 -434
- package/dist/hardening/llm-checks.js.map +0 -1
- package/dist/hardening/mcp-tool-enum.d.ts +0 -45
- package/dist/hardening/mcp-tool-enum.d.ts.map +0 -1
- package/dist/hardening/mcp-tool-enum.js +0 -315
- package/dist/hardening/mcp-tool-enum.js.map +0 -1
- package/dist/hardening/shell-checks.d.ts +0 -21
- package/dist/hardening/shell-checks.d.ts.map +0 -1
- package/dist/hardening/shell-checks.js +0 -236
- package/dist/hardening/shell-checks.js.map +0 -1
- package/dist/nanomind-core/telemetry/auto-update.d.ts +0 -27
- package/dist/nanomind-core/telemetry/auto-update.d.ts.map +0 -1
- package/dist/nanomind-core/telemetry/auto-update.js +0 -129
- package/dist/nanomind-core/telemetry/auto-update.js.map +0 -1
- package/dist/nanomind-core/telemetry/client.d.ts +0 -66
- package/dist/nanomind-core/telemetry/client.d.ts.map +0 -1
- package/dist/nanomind-core/telemetry/client.js +0 -123
- package/dist/nanomind-core/telemetry/client.js.map +0 -1
- package/dist/nanomind-core/telemetry/config.d.ts +0 -33
- package/dist/nanomind-core/telemetry/config.d.ts.map +0 -1
- package/dist/nanomind-core/telemetry/config.js +0 -119
- package/dist/nanomind-core/telemetry/config.js.map +0 -1
- package/dist/nanomind-core/telemetry/index.d.ts +0 -15
- package/dist/nanomind-core/telemetry/index.d.ts.map +0 -1
- package/dist/nanomind-core/telemetry/index.js +0 -27
- package/dist/nanomind-core/telemetry/index.js.map +0 -1
- package/dist/registry/contribution.d.ts +0 -178
- package/dist/registry/contribution.d.ts.map +0 -1
- package/dist/registry/contribution.js +0 -272
- package/dist/registry/contribution.js.map +0 -1
|
@@ -1,484 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Agent card security scanner.
|
|
4
|
-
*
|
|
5
|
-
* Evaluates A2A agent cards (/.well-known/agent.json) against
|
|
6
|
-
* 12 security controls covering structure, identity, trust,
|
|
7
|
-
* capabilities, transport, and metadata.
|
|
8
|
-
*/
|
|
9
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
-
}
|
|
15
|
-
Object.defineProperty(o, k2, desc);
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
-
var ownKeys = function(o) {
|
|
27
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
-
var ar = [];
|
|
29
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
-
return ar;
|
|
31
|
-
};
|
|
32
|
-
return ownKeys(o);
|
|
33
|
-
};
|
|
34
|
-
return function (mod) {
|
|
35
|
-
if (mod && mod.__esModule) return mod;
|
|
36
|
-
var result = {};
|
|
37
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
-
__setModuleDefault(result, mod);
|
|
39
|
-
return result;
|
|
40
|
-
};
|
|
41
|
-
})();
|
|
42
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.parseAgentCard = parseAgentCard;
|
|
44
|
-
exports.fetchAgentCard = fetchAgentCard;
|
|
45
|
-
exports.loadAgentCard = loadAgentCard;
|
|
46
|
-
exports.scanAgentCard = scanAgentCard;
|
|
47
|
-
const fs = __importStar(require("fs"));
|
|
48
|
-
const checks_1 = require("./checks");
|
|
49
|
-
/** Severity weights for scoring (matches hardening scanner convention). */
|
|
50
|
-
const SEVERITY_WEIGHTS = {
|
|
51
|
-
critical: 5,
|
|
52
|
-
high: 3,
|
|
53
|
-
medium: 2,
|
|
54
|
-
low: 1,
|
|
55
|
-
};
|
|
56
|
-
/** Dangerous capability keywords that indicate excessive permissions. */
|
|
57
|
-
const DANGEROUS_CAPABILITIES = [
|
|
58
|
-
'shell', 'admin', 'root', 'sudo', 'execute',
|
|
59
|
-
'rm', 'delete', 'drop', 'truncate', 'kill',
|
|
60
|
-
];
|
|
61
|
-
/** Semver pattern (loose -- allows optional pre-release / build). */
|
|
62
|
-
const SEMVER_RE = /^\d+\.\d+\.\d+(-[\w.]+)?(\+[\w.]+)?$/;
|
|
63
|
-
/**
|
|
64
|
-
* Parse raw JSON string into an AgentCard.
|
|
65
|
-
* Throws if JSON is invalid or required fields are missing.
|
|
66
|
-
*/
|
|
67
|
-
function parseAgentCard(content) {
|
|
68
|
-
let raw;
|
|
69
|
-
try {
|
|
70
|
-
raw = JSON.parse(content);
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
throw new Error('Invalid JSON: unable to parse agent card');
|
|
74
|
-
}
|
|
75
|
-
if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
|
|
76
|
-
throw new Error('Invalid agent card: expected a JSON object');
|
|
77
|
-
}
|
|
78
|
-
const obj = raw;
|
|
79
|
-
// Coerce required string fields with sensible defaults for scanning
|
|
80
|
-
const card = {
|
|
81
|
-
agentId: typeof obj.agentId === 'string' ? obj.agentId : '',
|
|
82
|
-
name: typeof obj.name === 'string' ? obj.name : '',
|
|
83
|
-
url: typeof obj.url === 'string' ? obj.url : '',
|
|
84
|
-
version: typeof obj.version === 'string' ? obj.version : '',
|
|
85
|
-
skills: Array.isArray(obj.skills) ? obj.skills : [],
|
|
86
|
-
};
|
|
87
|
-
if (typeof obj.cardUrl === 'string')
|
|
88
|
-
card.cardUrl = obj.cardUrl;
|
|
89
|
-
if (typeof obj.description === 'string')
|
|
90
|
-
card.description = obj.description;
|
|
91
|
-
if (Array.isArray(obj.capabilities))
|
|
92
|
-
card.capabilities = obj.capabilities;
|
|
93
|
-
if (typeof obj.publicKey === 'string')
|
|
94
|
-
card.publicKey = obj.publicKey;
|
|
95
|
-
if (typeof obj.aimAttestation === 'object' && obj.aimAttestation !== null) {
|
|
96
|
-
card.aimAttestation = obj.aimAttestation;
|
|
97
|
-
}
|
|
98
|
-
return card;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Fetch an agent card from a URL.
|
|
102
|
-
* If the URL does not end with `.json`, appends `/.well-known/agent.json`.
|
|
103
|
-
*/
|
|
104
|
-
async function fetchAgentCard(url) {
|
|
105
|
-
let target = url;
|
|
106
|
-
if (!target.endsWith('.json')) {
|
|
107
|
-
target = target.replace(/\/+$/, '') + '/.well-known/agent.json';
|
|
108
|
-
}
|
|
109
|
-
const response = await fetch(target);
|
|
110
|
-
if (!response.ok) {
|
|
111
|
-
throw new Error(`Failed to fetch agent card: HTTP ${response.status} from ${target}`);
|
|
112
|
-
}
|
|
113
|
-
const text = await response.text();
|
|
114
|
-
return parseAgentCard(text);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Load an agent card from a local file.
|
|
118
|
-
*/
|
|
119
|
-
function loadAgentCard(filePath) {
|
|
120
|
-
if (!fs.existsSync(filePath)) {
|
|
121
|
-
throw new Error(`File not found: ${filePath}`);
|
|
122
|
-
}
|
|
123
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
124
|
-
return parseAgentCard(content);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Run all 12 security checks against an agent card.
|
|
128
|
-
*/
|
|
129
|
-
function scanAgentCard(card, options) {
|
|
130
|
-
const minTrust = options?.minTrustScore ?? 0.6;
|
|
131
|
-
const findings = [];
|
|
132
|
-
findings.push(checkWellFormedness(card));
|
|
133
|
-
findings.push(checkCryptoIdentity(card));
|
|
134
|
-
findings.push(checkAttestationPresent(card));
|
|
135
|
-
findings.push(checkAttestationNotExpired(card));
|
|
136
|
-
findings.push(checkTrustScore(card, minTrust));
|
|
137
|
-
findings.push(checkSkillSchemas(card));
|
|
138
|
-
findings.push(checkSkillsVerified(card));
|
|
139
|
-
findings.push(checkExcessiveCapabilities(card));
|
|
140
|
-
findings.push(checkHttpsTransport(card));
|
|
141
|
-
findings.push(checkUrlConsistency(card));
|
|
142
|
-
findings.push(checkVersionFormat(card));
|
|
143
|
-
findings.push(checkAgentIdFormat(card));
|
|
144
|
-
// Scoring
|
|
145
|
-
let earned = 0;
|
|
146
|
-
let total = 0;
|
|
147
|
-
const criticalFailures = [];
|
|
148
|
-
for (const f of findings) {
|
|
149
|
-
const weight = SEVERITY_WEIGHTS[f.severity] ?? 1;
|
|
150
|
-
total += weight;
|
|
151
|
-
if (f.passed) {
|
|
152
|
-
earned += weight;
|
|
153
|
-
}
|
|
154
|
-
if (!f.passed && f.severity === 'critical') {
|
|
155
|
-
criticalFailures.push(f.checkId);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
const rawScore = total > 0 ? Math.round((earned / total) * 100) : 0;
|
|
159
|
-
const grade = computeGrade(rawScore, criticalFailures.length > 0);
|
|
160
|
-
return {
|
|
161
|
-
card,
|
|
162
|
-
findings,
|
|
163
|
-
score: rawScore,
|
|
164
|
-
maxScore: 100,
|
|
165
|
-
grade,
|
|
166
|
-
criticalFailures,
|
|
167
|
-
source: 'file',
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
// --- Grade computation ---
|
|
171
|
-
function computeGrade(score, hasCritical) {
|
|
172
|
-
let grade;
|
|
173
|
-
if (score >= 90)
|
|
174
|
-
grade = 'A';
|
|
175
|
-
else if (score >= 75)
|
|
176
|
-
grade = 'B';
|
|
177
|
-
else if (score >= 60)
|
|
178
|
-
grade = 'C';
|
|
179
|
-
else if (score >= 40)
|
|
180
|
-
grade = 'D';
|
|
181
|
-
else
|
|
182
|
-
grade = 'F';
|
|
183
|
-
// Critical floor: any critical failure caps grade at C
|
|
184
|
-
if (hasCritical && grade < 'C') {
|
|
185
|
-
// grade < 'C' means A or B (alphabetical)
|
|
186
|
-
grade = 'C';
|
|
187
|
-
}
|
|
188
|
-
return grade;
|
|
189
|
-
}
|
|
190
|
-
// --- Individual checks ---
|
|
191
|
-
function checkWellFormedness(card) {
|
|
192
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[0]; // AGENT-001
|
|
193
|
-
const missing = [];
|
|
194
|
-
if (!card.agentId)
|
|
195
|
-
missing.push('agentId');
|
|
196
|
-
if (!card.name)
|
|
197
|
-
missing.push('name');
|
|
198
|
-
if (!card.url)
|
|
199
|
-
missing.push('url');
|
|
200
|
-
if (!card.version)
|
|
201
|
-
missing.push('version');
|
|
202
|
-
if (!card.skills || card.skills.length === 0)
|
|
203
|
-
missing.push('skills');
|
|
204
|
-
const passed = missing.length === 0;
|
|
205
|
-
return {
|
|
206
|
-
checkId: meta.checkId,
|
|
207
|
-
name: meta.name,
|
|
208
|
-
severity: meta.severity,
|
|
209
|
-
passed,
|
|
210
|
-
message: passed
|
|
211
|
-
? 'All required fields present'
|
|
212
|
-
: `Missing required fields: ${missing.join(', ')}`,
|
|
213
|
-
remediation: passed ? undefined : 'Add the missing fields to the agent card JSON.',
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
function checkCryptoIdentity(card) {
|
|
217
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[1]; // AGENT-002
|
|
218
|
-
const passed = typeof card.publicKey === 'string' && card.publicKey.length > 0;
|
|
219
|
-
return {
|
|
220
|
-
checkId: meta.checkId,
|
|
221
|
-
name: meta.name,
|
|
222
|
-
severity: meta.severity,
|
|
223
|
-
passed,
|
|
224
|
-
message: passed
|
|
225
|
-
? 'Public key present'
|
|
226
|
-
: 'No publicKey field -- agent has no cryptographic identity',
|
|
227
|
-
remediation: passed ? undefined : 'Generate an Ed25519 key pair and add the public key to the agent card.',
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
function checkAttestationPresent(card) {
|
|
231
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[2]; // AGENT-003
|
|
232
|
-
const att = card.aimAttestation;
|
|
233
|
-
const missing = [];
|
|
234
|
-
if (!att) {
|
|
235
|
-
return {
|
|
236
|
-
checkId: meta.checkId,
|
|
237
|
-
name: meta.name,
|
|
238
|
-
severity: meta.severity,
|
|
239
|
-
passed: false,
|
|
240
|
-
message: 'No aimAttestation field present',
|
|
241
|
-
remediation: 'Register this agent with an AIM service to obtain an attestation.',
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
if (!att.agentId)
|
|
245
|
-
missing.push('agentId');
|
|
246
|
-
if (!att.attestedAt)
|
|
247
|
-
missing.push('attestedAt');
|
|
248
|
-
if (!att.expiresAt)
|
|
249
|
-
missing.push('expiresAt');
|
|
250
|
-
if (att.trustScore === undefined || att.trustScore === null)
|
|
251
|
-
missing.push('trustScore');
|
|
252
|
-
const passed = missing.length === 0;
|
|
253
|
-
return {
|
|
254
|
-
checkId: meta.checkId,
|
|
255
|
-
name: meta.name,
|
|
256
|
-
severity: meta.severity,
|
|
257
|
-
passed,
|
|
258
|
-
message: passed
|
|
259
|
-
? 'AIM attestation present with required subfields'
|
|
260
|
-
: `AIM attestation missing subfields: ${missing.join(', ')}`,
|
|
261
|
-
remediation: passed ? undefined : 'Ensure the attestation includes agentId, attestedAt, expiresAt, and trustScore.',
|
|
262
|
-
};
|
|
263
|
-
}
|
|
264
|
-
function checkAttestationNotExpired(card) {
|
|
265
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[3]; // AGENT-004
|
|
266
|
-
if (!card.aimAttestation?.expiresAt) {
|
|
267
|
-
return {
|
|
268
|
-
checkId: meta.checkId,
|
|
269
|
-
name: meta.name,
|
|
270
|
-
severity: meta.severity,
|
|
271
|
-
passed: false,
|
|
272
|
-
message: 'No attestation expiry to evaluate',
|
|
273
|
-
remediation: 'Add an aimAttestation with a valid expiresAt timestamp.',
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
const expiresAt = new Date(card.aimAttestation.expiresAt);
|
|
277
|
-
const now = new Date();
|
|
278
|
-
const passed = expiresAt > now;
|
|
279
|
-
return {
|
|
280
|
-
checkId: meta.checkId,
|
|
281
|
-
name: meta.name,
|
|
282
|
-
severity: meta.severity,
|
|
283
|
-
passed,
|
|
284
|
-
message: passed
|
|
285
|
-
? `Attestation valid until ${card.aimAttestation.expiresAt}`
|
|
286
|
-
: `Attestation expired at ${card.aimAttestation.expiresAt}`,
|
|
287
|
-
remediation: passed ? undefined : 'Renew the attestation through the AIM service.',
|
|
288
|
-
details: { expiresAt: card.aimAttestation.expiresAt },
|
|
289
|
-
};
|
|
290
|
-
}
|
|
291
|
-
function checkTrustScore(card, minTrust) {
|
|
292
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[4]; // AGENT-005
|
|
293
|
-
if (!card.aimAttestation || card.aimAttestation.trustScore === undefined) {
|
|
294
|
-
return {
|
|
295
|
-
checkId: meta.checkId,
|
|
296
|
-
name: meta.name,
|
|
297
|
-
severity: meta.severity,
|
|
298
|
-
passed: false,
|
|
299
|
-
message: 'No trust score available',
|
|
300
|
-
remediation: 'Obtain an AIM attestation with a trustScore field.',
|
|
301
|
-
};
|
|
302
|
-
}
|
|
303
|
-
const score = card.aimAttestation.trustScore;
|
|
304
|
-
const passed = score >= minTrust;
|
|
305
|
-
return {
|
|
306
|
-
checkId: meta.checkId,
|
|
307
|
-
name: meta.name,
|
|
308
|
-
severity: meta.severity,
|
|
309
|
-
passed,
|
|
310
|
-
message: passed
|
|
311
|
-
? `Trust score ${score} meets threshold (>= ${minTrust})`
|
|
312
|
-
: `Trust score ${score} below threshold (< ${minTrust})`,
|
|
313
|
-
remediation: passed ? undefined : 'Improve agent security posture to increase trust score.',
|
|
314
|
-
details: { trustScore: score, threshold: minTrust },
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
function checkSkillSchemas(card) {
|
|
318
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[5]; // AGENT-006
|
|
319
|
-
if (!card.skills || card.skills.length === 0) {
|
|
320
|
-
return {
|
|
321
|
-
checkId: meta.checkId,
|
|
322
|
-
name: meta.name,
|
|
323
|
-
severity: meta.severity,
|
|
324
|
-
passed: false,
|
|
325
|
-
message: 'No skills declared',
|
|
326
|
-
remediation: 'Declare skills with inputSchema definitions.',
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
const withoutSchema = card.skills.filter(s => !s.inputSchema);
|
|
330
|
-
const passed = withoutSchema.length === 0;
|
|
331
|
-
return {
|
|
332
|
-
checkId: meta.checkId,
|
|
333
|
-
name: meta.name,
|
|
334
|
-
severity: meta.severity,
|
|
335
|
-
passed,
|
|
336
|
-
message: passed
|
|
337
|
-
? `All ${card.skills.length} skills have inputSchema`
|
|
338
|
-
: `${withoutSchema.length}/${card.skills.length} skills missing inputSchema`,
|
|
339
|
-
remediation: passed ? undefined : 'Add inputSchema to all skills for type-safe invocation.',
|
|
340
|
-
details: passed ? undefined : { missing: withoutSchema.map(s => s.id || s.name) },
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
function checkSkillsVerified(card) {
|
|
344
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[6]; // AGENT-007
|
|
345
|
-
if (!card.skills || card.skills.length === 0) {
|
|
346
|
-
return {
|
|
347
|
-
checkId: meta.checkId,
|
|
348
|
-
name: meta.name,
|
|
349
|
-
severity: meta.severity,
|
|
350
|
-
passed: false,
|
|
351
|
-
message: 'No skills declared',
|
|
352
|
-
remediation: 'Declare skills and have at least one verified through the registry.',
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
const verified = card.skills.filter(s => s.isVerified === true);
|
|
356
|
-
const passed = verified.length > 0;
|
|
357
|
-
return {
|
|
358
|
-
checkId: meta.checkId,
|
|
359
|
-
name: meta.name,
|
|
360
|
-
severity: meta.severity,
|
|
361
|
-
passed,
|
|
362
|
-
message: passed
|
|
363
|
-
? `${verified.length}/${card.skills.length} skills verified`
|
|
364
|
-
: 'No verified skills found',
|
|
365
|
-
remediation: passed ? undefined : 'Submit skills for verification through the OpenA2A registry.',
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
function checkExcessiveCapabilities(card) {
|
|
369
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[7]; // AGENT-008
|
|
370
|
-
if (!card.capabilities || card.capabilities.length === 0) {
|
|
371
|
-
// No capabilities declared -- passes (nothing excessive)
|
|
372
|
-
return {
|
|
373
|
-
checkId: meta.checkId,
|
|
374
|
-
name: meta.name,
|
|
375
|
-
severity: meta.severity,
|
|
376
|
-
passed: true,
|
|
377
|
-
message: 'No capabilities declared',
|
|
378
|
-
};
|
|
379
|
-
}
|
|
380
|
-
const dangerous = card.capabilities.filter(cap => DANGEROUS_CAPABILITIES.some(d => cap.toLowerCase().includes(d)));
|
|
381
|
-
const passed = dangerous.length === 0;
|
|
382
|
-
return {
|
|
383
|
-
checkId: meta.checkId,
|
|
384
|
-
name: meta.name,
|
|
385
|
-
severity: meta.severity,
|
|
386
|
-
passed,
|
|
387
|
-
message: passed
|
|
388
|
-
? `${card.capabilities.length} capabilities declared, none dangerous`
|
|
389
|
-
: `Dangerous capabilities found: ${dangerous.join(', ')}`,
|
|
390
|
-
remediation: passed ? undefined : 'Remove dangerous capabilities or scope them with least-privilege constraints.',
|
|
391
|
-
details: passed ? undefined : { dangerous },
|
|
392
|
-
};
|
|
393
|
-
}
|
|
394
|
-
function checkHttpsTransport(card) {
|
|
395
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[8]; // AGENT-009
|
|
396
|
-
const issues = [];
|
|
397
|
-
if (card.url && card.url.startsWith('http://')) {
|
|
398
|
-
issues.push(`url uses http: ${card.url}`);
|
|
399
|
-
}
|
|
400
|
-
if (card.cardUrl && card.cardUrl.startsWith('http://')) {
|
|
401
|
-
issues.push(`cardUrl uses http: ${card.cardUrl}`);
|
|
402
|
-
}
|
|
403
|
-
const passed = issues.length === 0;
|
|
404
|
-
return {
|
|
405
|
-
checkId: meta.checkId,
|
|
406
|
-
name: meta.name,
|
|
407
|
-
severity: meta.severity,
|
|
408
|
-
passed,
|
|
409
|
-
message: passed
|
|
410
|
-
? 'All URLs use HTTPS'
|
|
411
|
-
: `Insecure HTTP transport: ${issues.join('; ')}`,
|
|
412
|
-
remediation: passed ? undefined : 'Use https:// for all URLs in the agent card.',
|
|
413
|
-
};
|
|
414
|
-
}
|
|
415
|
-
function checkUrlConsistency(card) {
|
|
416
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[9]; // AGENT-010
|
|
417
|
-
if (!card.cardUrl || !card.url) {
|
|
418
|
-
return {
|
|
419
|
-
checkId: meta.checkId,
|
|
420
|
-
name: meta.name,
|
|
421
|
-
severity: meta.severity,
|
|
422
|
-
passed: true,
|
|
423
|
-
message: card.cardUrl ? 'Only cardUrl present, no url to compare' : 'No cardUrl declared (skipped)',
|
|
424
|
-
};
|
|
425
|
-
}
|
|
426
|
-
let urlDomain;
|
|
427
|
-
let cardDomain;
|
|
428
|
-
try {
|
|
429
|
-
urlDomain = new URL(card.url).hostname;
|
|
430
|
-
cardDomain = new URL(card.cardUrl).hostname;
|
|
431
|
-
}
|
|
432
|
-
catch {
|
|
433
|
-
return {
|
|
434
|
-
checkId: meta.checkId,
|
|
435
|
-
name: meta.name,
|
|
436
|
-
severity: meta.severity,
|
|
437
|
-
passed: false,
|
|
438
|
-
message: 'Unable to parse URL or cardUrl',
|
|
439
|
-
remediation: 'Ensure url and cardUrl are valid URLs.',
|
|
440
|
-
};
|
|
441
|
-
}
|
|
442
|
-
const passed = urlDomain === cardDomain;
|
|
443
|
-
return {
|
|
444
|
-
checkId: meta.checkId,
|
|
445
|
-
name: meta.name,
|
|
446
|
-
severity: meta.severity,
|
|
447
|
-
passed,
|
|
448
|
-
message: passed
|
|
449
|
-
? `Both URLs on same domain: ${urlDomain}`
|
|
450
|
-
: `Domain mismatch: url=${urlDomain}, cardUrl=${cardDomain}`,
|
|
451
|
-
remediation: passed ? undefined : 'Ensure url and cardUrl share the same domain to prevent impersonation.',
|
|
452
|
-
details: { urlDomain, cardDomain },
|
|
453
|
-
};
|
|
454
|
-
}
|
|
455
|
-
function checkVersionFormat(card) {
|
|
456
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[10]; // AGENT-011
|
|
457
|
-
const passed = typeof card.version === 'string' && SEMVER_RE.test(card.version);
|
|
458
|
-
return {
|
|
459
|
-
checkId: meta.checkId,
|
|
460
|
-
name: meta.name,
|
|
461
|
-
severity: meta.severity,
|
|
462
|
-
passed,
|
|
463
|
-
message: passed
|
|
464
|
-
? `Version ${card.version} is valid semver`
|
|
465
|
-
: `Version "${card.version || '(empty)'}" is not valid semver`,
|
|
466
|
-
remediation: passed ? undefined : 'Use semantic versioning (e.g., 1.0.0) for the version field.',
|
|
467
|
-
};
|
|
468
|
-
}
|
|
469
|
-
function checkAgentIdFormat(card) {
|
|
470
|
-
const meta = checks_1.AGENT_SCAN_CHECKS[11]; // AGENT-012
|
|
471
|
-
const id = card.agentId || '';
|
|
472
|
-
const passed = id.length > 0 && id.length < 256;
|
|
473
|
-
return {
|
|
474
|
-
checkId: meta.checkId,
|
|
475
|
-
name: meta.name,
|
|
476
|
-
severity: meta.severity,
|
|
477
|
-
passed,
|
|
478
|
-
message: passed
|
|
479
|
-
? `Agent ID is valid (${id.length} chars)`
|
|
480
|
-
: id.length === 0 ? 'Agent ID is empty' : `Agent ID too long (${id.length} chars)`,
|
|
481
|
-
remediation: passed ? undefined : 'Use a concise, unique agent identifier (< 256 characters).',
|
|
482
|
-
};
|
|
483
|
-
}
|
|
484
|
-
//# sourceMappingURL=scanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/agent-scan/scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Agent card types for A2A agent card security scanning.
|
|
3
|
-
*
|
|
4
|
-
* Types are defined locally (not imported from AIM SDK) to keep
|
|
5
|
-
* HMA self-contained. They are structurally compatible with
|
|
6
|
-
* AIM's A2AAgentCard interface.
|
|
7
|
-
*/
|
|
8
|
-
import type { Severity } from '../hardening/security-check';
|
|
9
|
-
export interface AgentSkill {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
description?: string;
|
|
13
|
-
inputSchema?: Record<string, unknown>;
|
|
14
|
-
outputSchema?: Record<string, unknown>;
|
|
15
|
-
isVerified?: boolean;
|
|
16
|
-
attestationCount?: number;
|
|
17
|
-
}
|
|
18
|
-
export interface AgentAttestation {
|
|
19
|
-
agentId: string;
|
|
20
|
-
attestedAt: string;
|
|
21
|
-
expiresAt: string;
|
|
22
|
-
trustScore: number;
|
|
23
|
-
signature?: string;
|
|
24
|
-
attestationType?: string;
|
|
25
|
-
}
|
|
26
|
-
export interface AgentCard {
|
|
27
|
-
agentId: string;
|
|
28
|
-
name: string;
|
|
29
|
-
url: string;
|
|
30
|
-
cardUrl?: string;
|
|
31
|
-
version: string;
|
|
32
|
-
description?: string;
|
|
33
|
-
capabilities?: string[];
|
|
34
|
-
skills: AgentSkill[];
|
|
35
|
-
publicKey?: string;
|
|
36
|
-
aimAttestation?: AgentAttestation;
|
|
37
|
-
}
|
|
38
|
-
export interface AgentScanCheck {
|
|
39
|
-
checkId: string;
|
|
40
|
-
name: string;
|
|
41
|
-
description: string;
|
|
42
|
-
severity: Severity;
|
|
43
|
-
category: string;
|
|
44
|
-
}
|
|
45
|
-
export interface AgentScanFinding {
|
|
46
|
-
checkId: string;
|
|
47
|
-
name: string;
|
|
48
|
-
severity: Severity;
|
|
49
|
-
passed: boolean;
|
|
50
|
-
message: string;
|
|
51
|
-
details?: Record<string, unknown>;
|
|
52
|
-
remediation?: string;
|
|
53
|
-
}
|
|
54
|
-
export interface AgentScanResult {
|
|
55
|
-
card: AgentCard;
|
|
56
|
-
findings: AgentScanFinding[];
|
|
57
|
-
score: number;
|
|
58
|
-
maxScore: number;
|
|
59
|
-
grade: string;
|
|
60
|
-
criticalFailures: string[];
|
|
61
|
-
source: 'url' | 'file';
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agent-scan/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAI5D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,gBAAgB,CAAC;CACnC;AAID,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;CACxB"}
|
package/dist/agent-scan/types.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Agent card types for A2A agent card security scanning.
|
|
4
|
-
*
|
|
5
|
-
* Types are defined locally (not imported from AIM SDK) to keep
|
|
6
|
-
* HMA self-contained. They are structurally compatible with
|
|
7
|
-
* AIM's A2AAgentCard interface.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agent-scan/types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Local LLM server detection and security checks.
|
|
3
|
-
* Detects running LLM inference servers (Ollama, LM Studio, vLLM, LocalAI,
|
|
4
|
-
* text-generation-webui) and checks for insecure defaults: no auth, bound to
|
|
5
|
-
* 0.0.0.0, no TLS, permissive CORS, unsafe model formats, secrets in configs.
|
|
6
|
-
*/
|
|
7
|
-
import type { SecurityFinding } from './security-check';
|
|
8
|
-
/**
|
|
9
|
-
* Detect running local LLM servers and check for security issues.
|
|
10
|
-
* Returns findings for LLM-001 through LLM-006.
|
|
11
|
-
*/
|
|
12
|
-
export declare function checkLocalLLMServers(): Promise<SecurityFinding[]>;
|
|
13
|
-
/**
|
|
14
|
-
* Scan local LLM config directories for secrets and unsafe model files.
|
|
15
|
-
* Returns findings for LLM-007 and LLM-008.
|
|
16
|
-
*/
|
|
17
|
-
export declare function checkLLMConfigs(): Promise<SecurityFinding[]>;
|
|
18
|
-
//# sourceMappingURL=llm-checks.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-checks.d.ts","sourceRoot":"","sources":["../../src/hardening/llm-checks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,kBAAkB,CAAC;AA2HlE;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CA8JvE;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CA2BlE"}
|