@neurosec/sentry 1.0.17 → 1.0.18
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/action-logger.d.ts +40 -0
- package/dist/action-logger.d.ts.map +1 -0
- package/dist/action-logger.js +252 -0
- package/dist/action-logger.js.map +1 -0
- package/dist/agent-registry.d.ts +24 -0
- package/dist/agent-registry.d.ts.map +1 -0
- package/dist/agent-registry.js +176 -0
- package/dist/agent-registry.js.map +1 -0
- package/dist/anomaly-detector.d.ts +26 -0
- package/dist/anomaly-detector.d.ts.map +1 -0
- package/dist/anomaly-detector.js +299 -0
- package/dist/anomaly-detector.js.map +1 -0
- package/dist/api.d.ts +7 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +129 -1
- package/dist/api.js.map +1 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +97 -23
- package/dist/discovery.js.map +1 -1
- package/dist/discovery.test.js +109 -18
- package/dist/discovery.test.js.map +1 -1
- package/dist/index.js +89 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +113 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnomalyDetector = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const logger_1 = require("./logger");
|
|
6
|
+
class AnomalyDetector {
|
|
7
|
+
constructor(auditLogger, hostId) {
|
|
8
|
+
this.baselines = new Map();
|
|
9
|
+
this.actionBuffer = new Map();
|
|
10
|
+
this.alerts = [];
|
|
11
|
+
this.checkTimer = null;
|
|
12
|
+
this.auditLogger = auditLogger;
|
|
13
|
+
this.config = {
|
|
14
|
+
hostId,
|
|
15
|
+
minSamplesForBaseline: 10,
|
|
16
|
+
deviationThreshold: 2.0,
|
|
17
|
+
checkIntervalMs: 60000,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
start() {
|
|
21
|
+
this.checkTimer = setInterval(() => this.runCheck(), this.config.checkIntervalMs);
|
|
22
|
+
logger_1.logger.info('Anomaly detector started', {
|
|
23
|
+
minSamples: this.config.minSamplesForBaseline,
|
|
24
|
+
threshold: this.config.deviationThreshold,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
stop() {
|
|
28
|
+
if (this.checkTimer) {
|
|
29
|
+
clearInterval(this.checkTimer);
|
|
30
|
+
this.checkTimer = null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// ── Feed actions into the detector ───────────────────────────────────────
|
|
34
|
+
ingestAction(action) {
|
|
35
|
+
const key = `${action.frameworkId}:${action.pid}`;
|
|
36
|
+
if (!this.actionBuffer.has(key)) {
|
|
37
|
+
this.actionBuffer.set(key, []);
|
|
38
|
+
}
|
|
39
|
+
this.actionBuffer.get(key).push(action);
|
|
40
|
+
// Keep buffer bounded
|
|
41
|
+
const buf = this.actionBuffer.get(key);
|
|
42
|
+
if (buf.length > 1000) {
|
|
43
|
+
buf.splice(0, buf.length - 500);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ── Behavioral baseline establishment ────────────────────────────────────
|
|
47
|
+
establishBaseline(frameworkId, pid) {
|
|
48
|
+
const key = `${frameworkId}:${pid}`;
|
|
49
|
+
const actions = this.actionBuffer.get(key);
|
|
50
|
+
if (!actions || actions.length < this.config.minSamplesForBaseline)
|
|
51
|
+
return null;
|
|
52
|
+
const now = Date.now();
|
|
53
|
+
const windowMs = 300000; // 5 minute window for baseline
|
|
54
|
+
const recent = actions.filter(a => (now - a.timestamp) < windowMs);
|
|
55
|
+
if (recent.length < this.config.minSamplesForBaseline)
|
|
56
|
+
return null;
|
|
57
|
+
const minutesElapsed = Math.max(1, (now - recent[0].timestamp) / 60000);
|
|
58
|
+
const fileReads = recent.filter(a => a.type === 'file_read').length;
|
|
59
|
+
const fileWrites = recent.filter(a => a.type === 'file_write').length;
|
|
60
|
+
const networkEgress = recent.filter(a => a.type === 'network_egress').length;
|
|
61
|
+
const networkIngress = recent.filter(a => a.type === 'network_ingress').length;
|
|
62
|
+
const toolCalls = recent.filter(a => a.type === 'tool_call').length;
|
|
63
|
+
const childSpawns = recent.filter(a => a.type === 'child_spawn').length;
|
|
64
|
+
return {
|
|
65
|
+
frameworkId,
|
|
66
|
+
pid,
|
|
67
|
+
hostId: this.config.hostId,
|
|
68
|
+
establishedAt: now,
|
|
69
|
+
sampleCount: recent.length,
|
|
70
|
+
avgActionsPerMinute: recent.length / minutesElapsed,
|
|
71
|
+
avgFileReadsPerMinute: fileReads / minutesElapsed,
|
|
72
|
+
avgFileWritesPerMinute: fileWrites / minutesElapsed,
|
|
73
|
+
avgNetworkEgressPerMinute: networkEgress / minutesElapsed,
|
|
74
|
+
avgNetworkIngressPerMinute: networkIngress / minutesElapsed,
|
|
75
|
+
avgToolCallsPerMinute: toolCalls / minutesElapsed,
|
|
76
|
+
avgChildSpawnsPerMinute: childSpawns / minutesElapsed,
|
|
77
|
+
knownDomains: new Set(recent
|
|
78
|
+
.filter(a => a.type === 'network_egress')
|
|
79
|
+
.map(a => a.input)
|
|
80
|
+
.filter(Boolean)),
|
|
81
|
+
knownPorts: new Set(recent
|
|
82
|
+
.filter(a => a.type === 'network_egress')
|
|
83
|
+
.map(a => parseInt(a.input.split(':')[1], 10))
|
|
84
|
+
.filter(n => !isNaN(n))),
|
|
85
|
+
knownEndpoints: new Set(recent
|
|
86
|
+
.filter(a => a.type === 'api_call' || a.type === 'tool_call')
|
|
87
|
+
.map(a => a.input.split('?')[0])
|
|
88
|
+
.filter(Boolean)),
|
|
89
|
+
knownFilePaths: new Set(recent
|
|
90
|
+
.filter(a => a.type === 'file_read' || a.type === 'file_write')
|
|
91
|
+
.map(a => a.input)),
|
|
92
|
+
knownDirectories: new Set(recent
|
|
93
|
+
.filter(a => a.type === 'file_read' || a.type === 'file_write')
|
|
94
|
+
.map(a => a.input.replace(/\/[^/]*$/, ''))
|
|
95
|
+
.filter(Boolean)),
|
|
96
|
+
activeHours: [...new Set(recent.map(a => new Date(a.timestamp).getHours()))],
|
|
97
|
+
typicalSessionDurationMs: windowMs,
|
|
98
|
+
maxDeviationScore: this.config.deviationThreshold,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// ── Deviation detection ──────────────────────────────────────────────────
|
|
102
|
+
detectDeviations(frameworkId, pid) {
|
|
103
|
+
const key = `${frameworkId}:${pid}`;
|
|
104
|
+
const existing = this.baselines.get(key);
|
|
105
|
+
if (!existing) {
|
|
106
|
+
const newBase = this.establishBaseline(frameworkId, pid);
|
|
107
|
+
if (newBase) {
|
|
108
|
+
this.baselines.set(key, newBase);
|
|
109
|
+
logger_1.logger.debug('Baseline established', { framework: frameworkId, pid });
|
|
110
|
+
}
|
|
111
|
+
return [];
|
|
112
|
+
}
|
|
113
|
+
const baseline = existing;
|
|
114
|
+
const actions = this.actionBuffer.get(key);
|
|
115
|
+
if (!actions || actions.length === 0)
|
|
116
|
+
return [];
|
|
117
|
+
const now = Date.now();
|
|
118
|
+
const windowMs = 60000;
|
|
119
|
+
const recent = actions.filter(a => (now - a.timestamp) < windowMs);
|
|
120
|
+
if (recent.length === 0)
|
|
121
|
+
return [];
|
|
122
|
+
const alerts = [];
|
|
123
|
+
const minutesElapsed = Math.max(0.1, windowMs / 60000);
|
|
124
|
+
// Check frequency deviations
|
|
125
|
+
this.checkFrequencyDeviation(recent, baseline, 'file_reads', baseline.avgFileReadsPerMinute, recent.filter(a => a.type === 'file_read').length / minutesElapsed, alerts, frameworkId, pid);
|
|
126
|
+
this.checkFrequencyDeviation(recent, baseline, 'file_writes', baseline.avgFileWritesPerMinute, recent.filter(a => a.type === 'file_write').length / minutesElapsed, alerts, frameworkId, pid);
|
|
127
|
+
this.checkFrequencyDeviation(recent, baseline, 'network_egress', baseline.avgNetworkEgressPerMinute, recent.filter(a => a.type === 'network_egress').length / minutesElapsed, alerts, frameworkId, pid);
|
|
128
|
+
this.checkFrequencyDeviation(recent, baseline, 'tool_calls', baseline.avgToolCallsPerMinute, recent.filter(a => a.type === 'tool_call').length / minutesElapsed, alerts, frameworkId, pid);
|
|
129
|
+
// Check for unknown destinations
|
|
130
|
+
for (const action of recent) {
|
|
131
|
+
if (action.type === 'network_egress') {
|
|
132
|
+
const host = action.input;
|
|
133
|
+
if (host && ![...baseline.knownDomains].some(d => host.includes(d))) {
|
|
134
|
+
alerts.push(this.createAlert(frameworkId, pid, 'network', host, 0, 1, action));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (action.type === 'file_read' || action.type === 'file_write') {
|
|
138
|
+
const filePath = action.input;
|
|
139
|
+
if (filePath && ![...baseline.knownFilePaths].some(p => filePath.startsWith(p))) {
|
|
140
|
+
alerts.push(this.createAlert(frameworkId, pid, 'file_access', filePath, 0, 1, action));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// Check time pattern: active during unusual hours
|
|
145
|
+
const currentHour = new Date().getHours();
|
|
146
|
+
if (baseline.activeHours.length > 0 && !baseline.activeHours.includes(currentHour)) {
|
|
147
|
+
const unusualActions = recent.filter(a => !baseline.activeHours.includes(new Date(a.timestamp).getHours()));
|
|
148
|
+
if (unusualActions.length >= 3) {
|
|
149
|
+
alerts.push(this.createAlert(frameworkId, pid, 'time_pattern', 'active_hours', baseline.activeHours.length, currentHour, unusualActions[0]));
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Check for sensitive data exposure
|
|
153
|
+
const sensitiveActions = recent.filter(a => a.sensitiveDataDetected);
|
|
154
|
+
if (sensitiveActions.length > 0) {
|
|
155
|
+
alerts.push(this.createAlert(frameworkId, pid, 'data_class', 'sensitive_data_exposure', 0, sensitiveActions.length, sensitiveActions[0]));
|
|
156
|
+
}
|
|
157
|
+
return alerts;
|
|
158
|
+
}
|
|
159
|
+
checkFrequencyDeviation(recent, baseline, metric, expectedRate, actualRate, alerts, frameworkId, pid) {
|
|
160
|
+
// Only flag if baseline has samples
|
|
161
|
+
if (expectedRate <= 0 && actualRate <= 0)
|
|
162
|
+
return;
|
|
163
|
+
if (expectedRate <= 0) {
|
|
164
|
+
// No historical activity, any activity is deviation
|
|
165
|
+
alerts.push(this.createAlert(frameworkId, pid, 'frequency', metric, 0, actualRate, recent[0]));
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const deviation = actualRate / expectedRate;
|
|
169
|
+
if (deviation > this.config.deviationThreshold && actualRate > expectedRate + 0.5) {
|
|
170
|
+
alerts.push(this.createAlert(frameworkId, pid, 'frequency', metric, expectedRate, actualRate, recent[0]));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
createAlert(frameworkId, pid, deviationType, metric, expectedValue, actualValue, triggerAction) {
|
|
174
|
+
const deviationScore = deviationType === 'frequency'
|
|
175
|
+
? Math.min(10, expectedValue > 0 ? actualValue / expectedValue : actualValue)
|
|
176
|
+
: Math.min(10, actualValue);
|
|
177
|
+
const severity = deviationScore >= 8 ? 'critical' :
|
|
178
|
+
deviationScore >= 5 ? 'high' :
|
|
179
|
+
deviationScore >= 3 ? 'medium' : 'low';
|
|
180
|
+
return {
|
|
181
|
+
id: (0, crypto_1.randomUUID)(),
|
|
182
|
+
pid,
|
|
183
|
+
frameworkId,
|
|
184
|
+
hostId: this.config.hostId,
|
|
185
|
+
timestamp: Date.now(),
|
|
186
|
+
severity,
|
|
187
|
+
deviationType,
|
|
188
|
+
metric,
|
|
189
|
+
expectedValue,
|
|
190
|
+
actualValue,
|
|
191
|
+
deviationScore,
|
|
192
|
+
agentActionId: triggerAction.id,
|
|
193
|
+
description: `AEGIS anomaly: ${deviationType} deviation in ${metric} for ${frameworkId} (pid ${pid})`,
|
|
194
|
+
recommendation: this.getRecommendation(deviationType, metric),
|
|
195
|
+
status: 'open',
|
|
196
|
+
resolvedAt: null,
|
|
197
|
+
resolvedBy: null,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
getRecommendation(deviationType, metric) {
|
|
201
|
+
switch (deviationType) {
|
|
202
|
+
case 'frequency':
|
|
203
|
+
return `Investigate unusual ${metric} rate. Consider updating agent baseline or reviewing agent intent.`;
|
|
204
|
+
case 'network':
|
|
205
|
+
return `Unknown destination detected. Verify if agent has legitimate reason to access this endpoint. Add to allowlist if approved.`;
|
|
206
|
+
case 'file_access':
|
|
207
|
+
return `Unknown file path accessed. Verify data access rationale. Review if this aligns with agent's approved purpose.`;
|
|
208
|
+
case 'time_pattern':
|
|
209
|
+
return `Agent active outside normal hours. Verify if this is expected behavior or potential compromise.`;
|
|
210
|
+
case 'data_class':
|
|
211
|
+
return `Sensitive data detected in agent actions. Review for potential data leakage. Escalate if PII/credentials exposed.`;
|
|
212
|
+
default:
|
|
213
|
+
return 'Investigate anomalous agent behavior';
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// ── Run periodic check ──────────────────────────────────────────────────
|
|
217
|
+
runCheck() {
|
|
218
|
+
const keys = [...this.actionBuffer.keys()];
|
|
219
|
+
for (const key of keys) {
|
|
220
|
+
const [frameworkId, pidStr] = key.split(':');
|
|
221
|
+
const pid = parseInt(pidStr, 10);
|
|
222
|
+
if (!isNaN(pid)) {
|
|
223
|
+
try {
|
|
224
|
+
const newAlerts = this.detectDeviations(frameworkId, pid);
|
|
225
|
+
for (const alert of newAlerts) {
|
|
226
|
+
this.alerts.push(alert);
|
|
227
|
+
this.auditLogger.log({
|
|
228
|
+
id: alert.id,
|
|
229
|
+
timestamp: alert.timestamp,
|
|
230
|
+
type: 'process',
|
|
231
|
+
action: alert.severity === 'critical' || alert.severity === 'high' ? 'deny' : 'allow',
|
|
232
|
+
frameworkId: alert.frameworkId,
|
|
233
|
+
frameworkName: null,
|
|
234
|
+
pid: alert.pid,
|
|
235
|
+
reason: `AEGIS anomaly: ${alert.description}`,
|
|
236
|
+
detail: {
|
|
237
|
+
deviationType: alert.deviationType,
|
|
238
|
+
metric: alert.metric,
|
|
239
|
+
expectedValue: alert.expectedValue,
|
|
240
|
+
actualValue: alert.actualValue,
|
|
241
|
+
deviationScore: alert.deviationScore,
|
|
242
|
+
severity: alert.severity,
|
|
243
|
+
},
|
|
244
|
+
hostname: this.config.hostId,
|
|
245
|
+
});
|
|
246
|
+
logger_1.logger.warn('AEGIS anomaly detected', {
|
|
247
|
+
framework: alert.frameworkId,
|
|
248
|
+
pid: alert.pid,
|
|
249
|
+
type: alert.deviationType,
|
|
250
|
+
metric: alert.metric,
|
|
251
|
+
score: alert.deviationScore,
|
|
252
|
+
severity: alert.severity,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
logger_1.logger.debug('Anomaly check failed for process', { key, err: err.message });
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
// ── State queries ────────────────────────────────────────────────────────
|
|
263
|
+
getOpenAlerts() {
|
|
264
|
+
return this.alerts.filter(a => a.status === 'open');
|
|
265
|
+
}
|
|
266
|
+
getAllAlerts() {
|
|
267
|
+
return [...this.alerts];
|
|
268
|
+
}
|
|
269
|
+
resolveAlert(alertId, resolvedBy) {
|
|
270
|
+
const alert = this.alerts.find(a => a.id === alertId);
|
|
271
|
+
if (alert) {
|
|
272
|
+
alert.status = 'resolved';
|
|
273
|
+
alert.resolvedAt = Date.now();
|
|
274
|
+
alert.resolvedBy = resolvedBy;
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
return false;
|
|
278
|
+
}
|
|
279
|
+
acknowledgeAlert(alertId) {
|
|
280
|
+
const alert = this.alerts.find(a => a.id === alertId);
|
|
281
|
+
if (alert && alert.status === 'open') {
|
|
282
|
+
alert.status = 'acknowledged';
|
|
283
|
+
return true;
|
|
284
|
+
}
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
ingestProcesses(processes) {
|
|
288
|
+
// Remove baselines for departed processes
|
|
289
|
+
const currentKeys = new Set(processes.map(p => `${p.frameworkId}:${p.pid}`));
|
|
290
|
+
for (const key of this.baselines.keys()) {
|
|
291
|
+
if (!currentKeys.has(key)) {
|
|
292
|
+
this.baselines.delete(key);
|
|
293
|
+
this.actionBuffer.delete(key);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
exports.AnomalyDetector = AnomalyDetector;
|
|
299
|
+
//# sourceMappingURL=anomaly-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomaly-detector.js","sourceRoot":"","sources":["../src/anomaly-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import { SentryConfig } from './config';
|
|
|
2
2
|
import { TaggedProcess, SentryStatus } from './types';
|
|
3
3
|
import { EnforcementEngine } from './enforcement/enforcement-engine';
|
|
4
4
|
import { SkillEvaluator } from './skill-authz/skill-evaluator';
|
|
5
|
+
import { AgentRegistry } from './agent-registry';
|
|
6
|
+
import { ActionLogger } from './action-logger';
|
|
7
|
+
import { AnomalyDetector } from './anomaly-detector';
|
|
5
8
|
export declare class SentryApiServer {
|
|
6
9
|
private config;
|
|
7
10
|
private getTaggedProcesses;
|
|
@@ -9,9 +12,12 @@ export declare class SentryApiServer {
|
|
|
9
12
|
private getSkillEvaluator;
|
|
10
13
|
private getPolicyVersion;
|
|
11
14
|
private getLastSyncAt;
|
|
15
|
+
private getAgentRegistry;
|
|
16
|
+
private getActionLogger;
|
|
17
|
+
private getAnomalyDetector;
|
|
12
18
|
private server;
|
|
13
19
|
private startTime;
|
|
14
|
-
constructor(config: SentryConfig, getTaggedProcesses: () => TaggedProcess[], getEngine: () => EnforcementEngine, getSkillEvaluator: () => SkillEvaluator, getPolicyVersion: () => string, getLastSyncAt: () => string | null);
|
|
20
|
+
constructor(config: SentryConfig, getTaggedProcesses: () => TaggedProcess[], getEngine: () => EnforcementEngine, getSkillEvaluator: () => SkillEvaluator, getPolicyVersion: () => string, getLastSyncAt: () => string | null, getAgentRegistry: () => AgentRegistry, getActionLogger: () => ActionLogger, getAnomalyDetector: () => AnomalyDetector);
|
|
15
21
|
start(): Promise<void>;
|
|
16
22
|
stop(): Promise<void>;
|
|
17
23
|
getStatus(): SentryStatus;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,qBAAa,eAAe;IAKxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,kBAAkB;IAZ5B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,SAAS,CAAc;gBAGrB,MAAM,EAAE,YAAY,EACpB,kBAAkB,EAAE,MAAM,aAAa,EAAE,EACzC,SAAS,EAAE,MAAM,iBAAiB,EAClC,iBAAiB,EAAE,MAAM,cAAc,EACvC,gBAAgB,EAAE,MAAM,MAAM,EAC9B,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,EAClC,gBAAgB,EAAE,MAAM,aAAa,EACrC,eAAe,EAAE,MAAM,YAAY,EACnC,kBAAkB,EAAE,MAAM,eAAe;IAG7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,SAAS,IAAI,YAAY;YAmBX,aAAa;YA2Ob,IAAI;CAInB"}
|
package/dist/api.js
CHANGED
|
@@ -7,13 +7,16 @@ exports.SentryApiServer = void 0;
|
|
|
7
7
|
const http_1 = __importDefault(require("http"));
|
|
8
8
|
const logger_1 = require("./logger");
|
|
9
9
|
class SentryApiServer {
|
|
10
|
-
constructor(config, getTaggedProcesses, getEngine, getSkillEvaluator, getPolicyVersion, getLastSyncAt) {
|
|
10
|
+
constructor(config, getTaggedProcesses, getEngine, getSkillEvaluator, getPolicyVersion, getLastSyncAt, getAgentRegistry, getActionLogger, getAnomalyDetector) {
|
|
11
11
|
this.config = config;
|
|
12
12
|
this.getTaggedProcesses = getTaggedProcesses;
|
|
13
13
|
this.getEngine = getEngine;
|
|
14
14
|
this.getSkillEvaluator = getSkillEvaluator;
|
|
15
15
|
this.getPolicyVersion = getPolicyVersion;
|
|
16
16
|
this.getLastSyncAt = getLastSyncAt;
|
|
17
|
+
this.getAgentRegistry = getAgentRegistry;
|
|
18
|
+
this.getActionLogger = getActionLogger;
|
|
19
|
+
this.getAnomalyDetector = getAnomalyDetector;
|
|
17
20
|
this.server = null;
|
|
18
21
|
this.startTime = Date.now();
|
|
19
22
|
}
|
|
@@ -143,6 +146,131 @@ class SentryApiServer {
|
|
|
143
146
|
}
|
|
144
147
|
break;
|
|
145
148
|
}
|
|
149
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
150
|
+
// AEGIS Framework API Endpoints
|
|
151
|
+
// ═══════════════════════════════════════════════════════════════════
|
|
152
|
+
// AEGIS: Agent identity & lifecycle (IAM Domain)
|
|
153
|
+
case method === 'GET' && pathname === '/api/v1/aegis/agents':
|
|
154
|
+
await this.json(res, 200, this.getAgentRegistry().getAllIdentities());
|
|
155
|
+
break;
|
|
156
|
+
case method === 'GET' && /^\/api\/v1\/aegis\/agents\/([^/]+)$/.test(pathname): {
|
|
157
|
+
const agentId = pathname.match(/^\/api\/v1\/aegis\/agents\/([^/]+)$/)[1];
|
|
158
|
+
const identity = this.getAgentRegistry().getIdentityById(agentId);
|
|
159
|
+
if (identity) {
|
|
160
|
+
await this.json(res, 200, identity);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
await this.json(res, 404, { error: 'Agent identity not found' });
|
|
164
|
+
}
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case method === 'GET' && pathname === '/api/v1/aegis/agents/active':
|
|
168
|
+
await this.json(res, 200, this.getAgentRegistry().getActiveIdentities());
|
|
169
|
+
break;
|
|
170
|
+
case method === 'PUT' && /^\/api\/v1\/aegis\/agents\/([^/]+)\/documentation$/.test(pathname): {
|
|
171
|
+
const docId = pathname.match(/^\/api\/v1\/aegis\/agents\/([^/]+)\/documentation$/)[1];
|
|
172
|
+
let body = '';
|
|
173
|
+
for await (const chunk of req)
|
|
174
|
+
body += chunk;
|
|
175
|
+
const updates = JSON.parse(body);
|
|
176
|
+
const identity = this.getAgentRegistry().getIdentityById(docId);
|
|
177
|
+
if (identity) {
|
|
178
|
+
this.getAgentRegistry().updateDocumentation(identity.frameworkId, identity.pid, updates);
|
|
179
|
+
await this.json(res, 200, { message: 'Documentation updated' });
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
await this.json(res, 404, { error: 'Agent identity not found' });
|
|
183
|
+
}
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
case method === 'PUT' && /^\/api\/v1\/aegis\/agents\/([^/]+)\/identity$/.test(pathname): {
|
|
187
|
+
const updId = pathname.match(/^\/api\/v1\/aegis\/agents\/([^/]+)\/identity$/)[1];
|
|
188
|
+
let body = '';
|
|
189
|
+
for await (const chunk of req)
|
|
190
|
+
body += chunk;
|
|
191
|
+
const updates = JSON.parse(body);
|
|
192
|
+
const identity = this.getAgentRegistry().getIdentityById(updId);
|
|
193
|
+
if (identity) {
|
|
194
|
+
this.getAgentRegistry().updateIdentity(identity.frameworkId, identity.pid, updates);
|
|
195
|
+
await this.json(res, 200, { message: 'Identity updated' });
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
await this.json(res, 404, { error: 'Agent identity not found' });
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
// AEGIS: Agent-on-a-Page governance documentation
|
|
203
|
+
case method === 'GET' && /^\/api\/v1\/aegis\/agents\/([^/]+)\/page$/.test(pathname): {
|
|
204
|
+
const pageId = pathname.match(/^\/api\/v1\/aegis\/agents\/([^/]+)\/page$/)[1];
|
|
205
|
+
const identity = this.getAgentRegistry().getIdentityById(pageId);
|
|
206
|
+
if (identity) {
|
|
207
|
+
await this.json(res, 200, {
|
|
208
|
+
agentId: identity.id,
|
|
209
|
+
frameworkId: identity.frameworkId,
|
|
210
|
+
frameworkName: identity.frameworkName,
|
|
211
|
+
pid: identity.pid,
|
|
212
|
+
status: identity.status,
|
|
213
|
+
purpose: identity.purpose,
|
|
214
|
+
riskLevel: identity.riskLevel,
|
|
215
|
+
owner: identity.owner,
|
|
216
|
+
ownerEmail: identity.ownerEmail,
|
|
217
|
+
documentation: identity.documentation,
|
|
218
|
+
allowedTools: identity.allowedTools,
|
|
219
|
+
maxDecisionScope: identity.maxDecisionScope,
|
|
220
|
+
allowedDataClassifications: identity.allowedDataClassifications,
|
|
221
|
+
firstDiscoveredAt: identity.firstDiscoveredAt,
|
|
222
|
+
lastSeenAt: identity.lastSeenAt,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
await this.json(res, 404, { error: 'Agent identity not found' });
|
|
227
|
+
}
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
// AEGIS: Least-agency constraints (Zero Trust Domain)
|
|
231
|
+
case method === 'GET' && pathname === '/api/v1/aegis/constraints':
|
|
232
|
+
await this.json(res, 200, [...this.getAgentRegistry().getAllIdentities().map(id => ({ frameworkId: id.frameworkId, level: id.maxDecisionScope }))]);
|
|
233
|
+
break;
|
|
234
|
+
// AEGIS: Agent action log (Threat Management Domain)
|
|
235
|
+
case method === 'GET' && pathname === '/api/v1/aegis/actions':
|
|
236
|
+
await this.json(res, 200, this.getActionLogger().getRecentActions(100));
|
|
237
|
+
break;
|
|
238
|
+
case method === 'GET' && pathname === '/api/v1/aegis/actions/stats':
|
|
239
|
+
await this.json(res, 200, { processedCount: this.getActionLogger().getProcessedCount() });
|
|
240
|
+
break;
|
|
241
|
+
// AEGIS: Anomaly alerts (GRC + Threat Management Domains)
|
|
242
|
+
case method === 'GET' && pathname === '/api/v1/aegis/anomalies':
|
|
243
|
+
await this.json(res, 200, this.getAnomalyDetector().getAllAlerts());
|
|
244
|
+
break;
|
|
245
|
+
case method === 'GET' && pathname === '/api/v1/aegis/anomalies/open':
|
|
246
|
+
await this.json(res, 200, this.getAnomalyDetector().getOpenAlerts());
|
|
247
|
+
break;
|
|
248
|
+
case method === 'POST' && /^\/api\/v1\/aegis\/anomalies\/([^/]+)\/resolve$/.test(pathname): {
|
|
249
|
+
const alertId = pathname.match(/^\/api\/v1\/aegis\/anomalies\/([^/]+)\/resolve$/)[1];
|
|
250
|
+
let body = '';
|
|
251
|
+
for await (const chunk of req)
|
|
252
|
+
body += chunk;
|
|
253
|
+
const { resolvedBy } = JSON.parse(body);
|
|
254
|
+
const success = this.getAnomalyDetector().resolveAlert(alertId, resolvedBy);
|
|
255
|
+
if (success) {
|
|
256
|
+
await this.json(res, 200, { message: 'Alert resolved' });
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
await this.json(res, 404, { error: 'Alert not found' });
|
|
260
|
+
}
|
|
261
|
+
break;
|
|
262
|
+
}
|
|
263
|
+
case method === 'POST' && /^\/api\/v1\/aegis\/anomalies\/([^/]+)\/acknowledge$/.test(pathname): {
|
|
264
|
+
const ackId = pathname.match(/^\/api\/v1\/aegis\/anomalies\/([^/]+)\/acknowledge$/)[1];
|
|
265
|
+
const success = this.getAnomalyDetector().acknowledgeAlert(ackId);
|
|
266
|
+
if (success) {
|
|
267
|
+
await this.json(res, 200, { message: 'Alert acknowledged' });
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
await this.json(res, 404, { error: 'Alert not found or already resolved' });
|
|
271
|
+
}
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
146
274
|
default:
|
|
147
275
|
await this.json(res, 404, { error: 'Not found', path: pathname });
|
|
148
276
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/discovery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAA0B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAA0B,MAAM,SAAS,CAAC;AAsShE,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAiEtF;AAED,wBAAgB,sBAAsB,CAAC,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CASxF"}
|