hackmyagent 0.16.5 → 0.16.7
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/crypto/hybrid-signing.d.ts +107 -0
- package/dist/arp/crypto/hybrid-signing.d.ts.map +1 -0
- package/dist/arp/crypto/hybrid-signing.js +321 -0
- package/dist/arp/crypto/hybrid-signing.js.map +1 -0
- package/dist/arp/crypto/index.d.ts +13 -0
- package/dist/arp/crypto/index.d.ts.map +1 -0
- package/dist/arp/crypto/index.js +33 -0
- package/dist/arp/crypto/index.js.map +1 -0
- package/dist/arp/crypto/manifest-loader.d.ts +117 -0
- package/dist/arp/crypto/manifest-loader.d.ts.map +1 -0
- package/dist/arp/crypto/manifest-loader.js +361 -0
- package/dist/arp/crypto/manifest-loader.js.map +1 -0
- package/dist/arp/crypto/types.d.ts +69 -0
- package/dist/arp/crypto/types.d.ts.map +1 -0
- package/dist/arp/crypto/types.js +11 -0
- package/dist/arp/crypto/types.js.map +1 -0
- package/dist/arp/index.d.ts +27 -0
- package/dist/arp/index.d.ts.map +1 -1
- package/dist/arp/index.js +94 -1
- package/dist/arp/index.js.map +1 -1
- package/dist/arp/intelligence/behavioral-risk-server.d.ts +82 -0
- package/dist/arp/intelligence/behavioral-risk-server.d.ts.map +1 -0
- package/dist/arp/intelligence/behavioral-risk-server.js +258 -0
- package/dist/arp/intelligence/behavioral-risk-server.js.map +1 -0
- package/dist/arp/intelligence/behavioral-risk.d.ts +217 -0
- package/dist/arp/intelligence/behavioral-risk.d.ts.map +1 -0
- package/dist/arp/intelligence/behavioral-risk.js +429 -0
- package/dist/arp/intelligence/behavioral-risk.js.map +1 -0
- package/dist/arp/intelligence/coordinator.d.ts +93 -2
- package/dist/arp/intelligence/coordinator.d.ts.map +1 -1
- package/dist/arp/intelligence/coordinator.js +281 -1
- package/dist/arp/intelligence/coordinator.js.map +1 -1
- package/dist/arp/intelligence/guard-anomaly.d.ts +349 -0
- package/dist/arp/intelligence/guard-anomaly.d.ts.map +1 -0
- package/dist/arp/intelligence/guard-anomaly.js +399 -0
- package/dist/arp/intelligence/guard-anomaly.js.map +1 -0
- package/dist/arp/intelligence/nanomind-l1.d.ts +37 -0
- package/dist/arp/intelligence/nanomind-l1.d.ts.map +1 -1
- package/dist/arp/intelligence/nanomind-l1.js +78 -0
- package/dist/arp/intelligence/nanomind-l1.js.map +1 -1
- package/dist/arp/intelligence/verify-classification.d.ts +124 -0
- package/dist/arp/intelligence/verify-classification.d.ts.map +1 -0
- package/dist/arp/intelligence/verify-classification.js +329 -0
- package/dist/arp/intelligence/verify-classification.js.map +1 -0
- package/dist/arp/proxy/server.d.ts +38 -8
- package/dist/arp/proxy/server.d.ts.map +1 -1
- package/dist/arp/proxy/server.js +89 -0
- package/dist/arp/proxy/server.js.map +1 -1
- package/dist/arp/types.d.ts +228 -1
- package/dist/arp/types.d.ts.map +1 -1
- package/dist/cli.js +85 -18
- package/dist/cli.js.map +1 -1
- package/dist/nanomind-core/compiler/semantic-compiler.d.ts.map +1 -1
- package/dist/nanomind-core/compiler/semantic-compiler.js +170 -10
- package/dist/nanomind-core/compiler/semantic-compiler.js.map +1 -1
- package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts +64 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts.map +1 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.js +656 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.js.map +1 -0
- package/dist/nanomind-core/ingestion/artifact-parser.d.ts.map +1 -1
- package/dist/nanomind-core/ingestion/artifact-parser.js +15 -6
- package/dist/nanomind-core/ingestion/artifact-parser.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Guard anomaly detector (AIComply P1, distribution drift layer).
|
|
4
|
+
*
|
|
5
|
+
* This module complements the per-event behavioral risk channel
|
|
6
|
+
* (`behavioral-risk.ts`) with a statistical layer that watches the
|
|
7
|
+
* CLASSIFICATION DISTRIBUTION over a sliding window and flags drift
|
|
8
|
+
* from a reference baseline. The two layers are additive and catch
|
|
9
|
+
* different attacks:
|
|
10
|
+
*
|
|
11
|
+
* - Behavioral risk scores a single event against the agent's
|
|
12
|
+
* behavioral baseline: "does THIS action look anomalous?" It
|
|
13
|
+
* catches individual outliers.
|
|
14
|
+
* - Guard anomaly scores the recent class mix against a reference
|
|
15
|
+
* distribution: "has the TYPE of events drifted from what the
|
|
16
|
+
* Guard was trained on?" It catches regime shifts.
|
|
17
|
+
*
|
|
18
|
+
* A slow attacker whose individual events stay below the per-event
|
|
19
|
+
* risk threshold but whose actions collectively shift the class
|
|
20
|
+
* distribution (for example a sustained 5x over-rate of a
|
|
21
|
+
* sensitive-class label relative to the training baseline) is
|
|
22
|
+
* invisible to the per-event layer and obvious to the drift
|
|
23
|
+
* detector.
|
|
24
|
+
*
|
|
25
|
+
* ## Design decisions
|
|
26
|
+
*
|
|
27
|
+
* ### 1. Sliding ring buffer over reservoir sample
|
|
28
|
+
*
|
|
29
|
+
* A ring buffer of the most recent `windowSize` classification labels
|
|
30
|
+
* gives exact recency with bounded memory. A reservoir sample would
|
|
31
|
+
* preserve uniformly-drawn history and let stale events dilute the
|
|
32
|
+
* current drift signal, which is the opposite of what drift detection
|
|
33
|
+
* wants: the question is whether the CURRENT distribution matches
|
|
34
|
+
* the baseline, not whether history mixed with the present does.
|
|
35
|
+
*
|
|
36
|
+
* ### 2. Chi-square goodness-of-fit over z-score or KL divergence
|
|
37
|
+
*
|
|
38
|
+
* Chi-square is the principled test for a multi-class observed
|
|
39
|
+
* distribution against a reference. It operates on raw count vectors,
|
|
40
|
+
* produces a single scalar statistic, and has a well-understood null
|
|
41
|
+
* distribution (chi-squared with K-1 degrees of freedom) that gives
|
|
42
|
+
* caller-interpretable thresholds.
|
|
43
|
+
*
|
|
44
|
+
* Z-score is wrong for a multi-class comparison because it measures
|
|
45
|
+
* deviation of a single scalar from its own baseline; it cannot
|
|
46
|
+
* capture joint drift across the class vector. KL divergence is a
|
|
47
|
+
* reasonable alternative but lacks a principled threshold tied to a
|
|
48
|
+
* null distribution, which matters when the caller needs to reason
|
|
49
|
+
* about false-positive rates in a security context.
|
|
50
|
+
*
|
|
51
|
+
* ### 3. Injected baseline with Laplace smoothing
|
|
52
|
+
*
|
|
53
|
+
* The baseline class distribution is a dependency of this detector,
|
|
54
|
+
* not a concern of this module. The caller is responsible for
|
|
55
|
+
* providing it from the authoritative source. Two shipping paths are
|
|
56
|
+
* supported by callers of this module:
|
|
57
|
+
*
|
|
58
|
+
* - Registry-exported training distribution. The NanoMind-Guard
|
|
59
|
+
* training pipeline computes the class distribution over the
|
|
60
|
+
* training corpus and ships it out-of-band through the Registry.
|
|
61
|
+
* The runtime fetches it at startup and passes it here. This is
|
|
62
|
+
* the target deployment state.
|
|
63
|
+
*
|
|
64
|
+
* - Observation-based bootstrap. In pre-Registry deployments a
|
|
65
|
+
* caller can collect observations over a "learning" period and
|
|
66
|
+
* build a baseline from them via `buildBaselineFromObservations`.
|
|
67
|
+
* This is intentionally a weaker source: the baseline is only as
|
|
68
|
+
* trustworthy as the period it was collected over.
|
|
69
|
+
*
|
|
70
|
+
* Laplace smoothing handles zero-count classes on both sides without
|
|
71
|
+
* special casing. The smoothed baseline probability for class c with
|
|
72
|
+
* K total classes is `(p(c) + alpha) / (1 + alpha * K)`, which
|
|
73
|
+
* preserves sum-to-one and guarantees strictly positive expected
|
|
74
|
+
* counts so the chi-square denominator never underflows. The default
|
|
75
|
+
* alpha of 0.01 is intentionally small so that a window which mirrors
|
|
76
|
+
* the baseline scores a chi-square near zero; larger alpha values
|
|
77
|
+
* pull the smoothed baseline toward uniform and bias the null-case
|
|
78
|
+
* statistic upward.
|
|
79
|
+
*
|
|
80
|
+
* ### 4. Bounded memory contract
|
|
81
|
+
*
|
|
82
|
+
* A ring buffer of at most `windowSize` label strings plus a count
|
|
83
|
+
* map whose size is bounded by the number of distinct classes seen in
|
|
84
|
+
* the window (in practice <20 for current AIComply label sets, hard
|
|
85
|
+
* bounded by `windowSize`). A per-label length cap of
|
|
86
|
+
* `MAX_CLASSIFICATION_LENGTH` characters guards against an adversary
|
|
87
|
+
* passing pathologically long labels to exhaust memory; longer labels
|
|
88
|
+
* are rejected as a record-time no-op so the window remains
|
|
89
|
+
* O(windowSize * MAX_CLASSIFICATION_LENGTH) bytes in the worst case.
|
|
90
|
+
* `windowSize` itself is clamped to `MAX_GUARD_ANOMALY_WINDOW` so a
|
|
91
|
+
* misconfigured caller cannot blow up memory either.
|
|
92
|
+
*
|
|
93
|
+
* ### 5. Alarm surfacing
|
|
94
|
+
*
|
|
95
|
+
* Parallel to the session 28 behavioral risk channel, the coordinator
|
|
96
|
+
* records the `GuardAnomalyStatus` on `event.data.guardAnomaly` for
|
|
97
|
+
* every classified event. On the `drift` branch the coordinator
|
|
98
|
+
* raises category to `anomaly` and severity to `medium`; on
|
|
99
|
+
* `baseline-pending` and `normal` the record is written without
|
|
100
|
+
* mutation. This is the record-and-lift policy: observation is
|
|
101
|
+
* always recorded so downstream audit can see the drift state at the
|
|
102
|
+
* time of each event, and enforcement kicks in only when the
|
|
103
|
+
* chi-square statistic crosses the configured threshold.
|
|
104
|
+
*
|
|
105
|
+
* ## Parse-to-deny (CR-001)
|
|
106
|
+
*
|
|
107
|
+
* The detector never throws. `record()` rejects non-string or empty
|
|
108
|
+
* classifications as a no-op that returns the current status without
|
|
109
|
+
* mutating internal state. `installBaseline` silently drops invalid
|
|
110
|
+
* entries; if the baseline is empty after installation, the detector
|
|
111
|
+
* reports `baseline-pending` forever rather than inventing a default.
|
|
112
|
+
* Callers must treat `drift` as authoritative and must not use the
|
|
113
|
+
* statistic itself to make per-event decisions beyond the threshold
|
|
114
|
+
* comparison already encoded here.
|
|
115
|
+
*/
|
|
116
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
117
|
+
exports.GuardAnomalyDetector = exports.MAX_CLASSIFICATION_LENGTH = exports.DEFAULT_GUARD_ANOMALY_MIN_OBS = exports.DEFAULT_GUARD_ANOMALY_TOP_K = exports.DEFAULT_GUARD_ANOMALY_SMOOTHING = exports.DEFAULT_GUARD_ANOMALY_THRESHOLD = exports.MAX_GUARD_ANOMALY_WINDOW = exports.DEFAULT_GUARD_ANOMALY_WINDOW = void 0;
|
|
118
|
+
exports.buildBaselineFromObservations = buildBaselineFromObservations;
|
|
119
|
+
/** Default sliding-window size if the caller does not override. */
|
|
120
|
+
exports.DEFAULT_GUARD_ANOMALY_WINDOW = 200;
|
|
121
|
+
/**
|
|
122
|
+
* Hard cap on the sliding-window size. Bounds worst-case memory to
|
|
123
|
+
* `MAX_GUARD_ANOMALY_WINDOW * MAX_CLASSIFICATION_LENGTH` bytes of
|
|
124
|
+
* label storage.
|
|
125
|
+
*/
|
|
126
|
+
exports.MAX_GUARD_ANOMALY_WINDOW = 10000;
|
|
127
|
+
/**
|
|
128
|
+
* Default chi-square alarm threshold. Approximately the critical
|
|
129
|
+
* value for chi-squared with 9 degrees of freedom at p=0.01, which
|
|
130
|
+
* is a reasonable default for distributions with about 10 classes
|
|
131
|
+
* and a 1% tolerable false-positive rate.
|
|
132
|
+
*/
|
|
133
|
+
exports.DEFAULT_GUARD_ANOMALY_THRESHOLD = 21.666;
|
|
134
|
+
/**
|
|
135
|
+
* Default Laplace smoothing constant. Tuned small so a null-case
|
|
136
|
+
* window (observed matches baseline) scores near zero. See the
|
|
137
|
+
* module header for the rationale on why 0.01 was chosen over the
|
|
138
|
+
* textbook 0.5.
|
|
139
|
+
*/
|
|
140
|
+
exports.DEFAULT_GUARD_ANOMALY_SMOOTHING = 0.01;
|
|
141
|
+
/** Default top-K deviation count surfaced on a drift status. */
|
|
142
|
+
exports.DEFAULT_GUARD_ANOMALY_TOP_K = 3;
|
|
143
|
+
/** Absolute floor on minObservations regardless of windowSize. */
|
|
144
|
+
exports.DEFAULT_GUARD_ANOMALY_MIN_OBS = 30;
|
|
145
|
+
/**
|
|
146
|
+
* Maximum accepted classification label length. Labels longer than
|
|
147
|
+
* this are rejected at `record()` as a no-op so a malicious producer
|
|
148
|
+
* cannot inflate memory by writing pathologically long labels into
|
|
149
|
+
* the window.
|
|
150
|
+
*/
|
|
151
|
+
exports.MAX_CLASSIFICATION_LENGTH = 256;
|
|
152
|
+
/**
|
|
153
|
+
* Statistical drift detector over a sliding window of classification
|
|
154
|
+
* labels. Thread-unsafe by construction; callers are expected to
|
|
155
|
+
* serialize calls through the coordinator's analyze() loop.
|
|
156
|
+
*/
|
|
157
|
+
class GuardAnomalyDetector {
|
|
158
|
+
constructor(config) {
|
|
159
|
+
this.windowSize = clampWindowSize(config.windowSize ?? exports.DEFAULT_GUARD_ANOMALY_WINDOW);
|
|
160
|
+
this.alarmThreshold = Number.isFinite(config.alarmThreshold)
|
|
161
|
+
? Math.max(0, config.alarmThreshold)
|
|
162
|
+
: exports.DEFAULT_GUARD_ANOMALY_THRESHOLD;
|
|
163
|
+
this.smoothing = Number.isFinite(config.smoothing)
|
|
164
|
+
? Math.max(0, config.smoothing)
|
|
165
|
+
: exports.DEFAULT_GUARD_ANOMALY_SMOOTHING;
|
|
166
|
+
this.minObservations = Math.max(1, config.minObservations ??
|
|
167
|
+
Math.max(exports.DEFAULT_GUARD_ANOMALY_MIN_OBS, Math.floor(this.windowSize / 4)));
|
|
168
|
+
this.sourceName = config.sourceName ?? 'guard-anomaly';
|
|
169
|
+
this.topKDeviations = Math.max(1, config.topKDeviations ?? exports.DEFAULT_GUARD_ANOMALY_TOP_K);
|
|
170
|
+
this.baselineNorm = new Map();
|
|
171
|
+
this.installBaseline(config.baseline);
|
|
172
|
+
this.window = new Array(this.windowSize).fill(undefined);
|
|
173
|
+
this.head = 0;
|
|
174
|
+
this.filled = false;
|
|
175
|
+
this.counts = new Map();
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Record a classification observation and return the current drift
|
|
179
|
+
* status. Never throws. Returns the current status (without
|
|
180
|
+
* recording) when the classification is empty, not a string, or
|
|
181
|
+
* exceeds `MAX_CLASSIFICATION_LENGTH`.
|
|
182
|
+
*/
|
|
183
|
+
record(classification) {
|
|
184
|
+
if (typeof classification !== 'string' ||
|
|
185
|
+
classification.length === 0 ||
|
|
186
|
+
classification.length > exports.MAX_CLASSIFICATION_LENGTH) {
|
|
187
|
+
return this.computeStatus();
|
|
188
|
+
}
|
|
189
|
+
// Evict the oldest entry when the ring has wrapped. `head` points
|
|
190
|
+
// to the next write slot, which is also the oldest entry once
|
|
191
|
+
// the buffer is filled.
|
|
192
|
+
if (this.filled) {
|
|
193
|
+
const evicted = this.window[this.head];
|
|
194
|
+
if (evicted !== undefined) {
|
|
195
|
+
const prev = this.counts.get(evicted) ?? 0;
|
|
196
|
+
if (prev <= 1) {
|
|
197
|
+
this.counts.delete(evicted);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this.counts.set(evicted, prev - 1);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
this.window[this.head] = classification;
|
|
205
|
+
this.counts.set(classification, (this.counts.get(classification) ?? 0) + 1);
|
|
206
|
+
this.head++;
|
|
207
|
+
if (this.head >= this.windowSize) {
|
|
208
|
+
this.head = 0;
|
|
209
|
+
this.filled = true;
|
|
210
|
+
}
|
|
211
|
+
return this.computeStatus();
|
|
212
|
+
}
|
|
213
|
+
/** Current number of observations in the sliding window. */
|
|
214
|
+
getWindowObservations() {
|
|
215
|
+
return this.filled ? this.windowSize : this.head;
|
|
216
|
+
}
|
|
217
|
+
/** Configured window capacity. */
|
|
218
|
+
getWindowCapacity() {
|
|
219
|
+
return this.windowSize;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Snapshot of the current observed class counts. Returns a new
|
|
223
|
+
* object; safe to mutate without affecting the detector.
|
|
224
|
+
*/
|
|
225
|
+
getObserved() {
|
|
226
|
+
const out = {};
|
|
227
|
+
for (const [k, v] of this.counts) {
|
|
228
|
+
out[k] = v;
|
|
229
|
+
}
|
|
230
|
+
return out;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Snapshot of the installed (normalized) baseline. Returns a new
|
|
234
|
+
* object.
|
|
235
|
+
*/
|
|
236
|
+
getBaseline() {
|
|
237
|
+
const out = {};
|
|
238
|
+
for (const [k, v] of this.baselineNorm) {
|
|
239
|
+
out[k] = v;
|
|
240
|
+
}
|
|
241
|
+
return out;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Replace the baseline without tearing down the detector. Used by
|
|
245
|
+
* a caller that rotates the Guard's training distribution in
|
|
246
|
+
* place. The observation window is preserved so drift detection
|
|
247
|
+
* continues without a re-learning period.
|
|
248
|
+
*/
|
|
249
|
+
setBaseline(baseline) {
|
|
250
|
+
this.installBaseline(baseline);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Clear the observation window. Baseline is untouched. Intended
|
|
254
|
+
* for callers that want to reset state after a confirmed drift
|
|
255
|
+
* resolution or a configuration change.
|
|
256
|
+
*/
|
|
257
|
+
reset() {
|
|
258
|
+
for (let i = 0; i < this.window.length; i++) {
|
|
259
|
+
this.window[i] = undefined;
|
|
260
|
+
}
|
|
261
|
+
this.head = 0;
|
|
262
|
+
this.filled = false;
|
|
263
|
+
this.counts.clear();
|
|
264
|
+
}
|
|
265
|
+
installBaseline(baseline) {
|
|
266
|
+
const next = new Map();
|
|
267
|
+
let total = 0;
|
|
268
|
+
if (baseline !== null && typeof baseline === 'object') {
|
|
269
|
+
for (const [k, v] of Object.entries(baseline)) {
|
|
270
|
+
if (typeof k !== 'string' || k.length === 0 || k.length > exports.MAX_CLASSIFICATION_LENGTH) {
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
273
|
+
if (typeof v !== 'number' || !Number.isFinite(v) || v < 0) {
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
next.set(k, v);
|
|
277
|
+
total += v;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
this.baselineNorm = new Map();
|
|
281
|
+
if (total > 0) {
|
|
282
|
+
for (const [k, v] of next) {
|
|
283
|
+
this.baselineNorm.set(k, v / total);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
computeStatus() {
|
|
288
|
+
const n = this.getWindowObservations();
|
|
289
|
+
if (this.baselineNorm.size === 0) {
|
|
290
|
+
return {
|
|
291
|
+
status: 'baseline-pending',
|
|
292
|
+
observed: n,
|
|
293
|
+
required: this.minObservations,
|
|
294
|
+
reason: 'empty-baseline',
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
if (n < this.minObservations) {
|
|
298
|
+
return {
|
|
299
|
+
status: 'baseline-pending',
|
|
300
|
+
observed: n,
|
|
301
|
+
required: this.minObservations,
|
|
302
|
+
reason: 'insufficient-observations',
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
const { statistic, topDeviations } = this.computeChiSquare(n);
|
|
306
|
+
if (statistic >= this.alarmThreshold) {
|
|
307
|
+
return {
|
|
308
|
+
status: 'drift',
|
|
309
|
+
statistic,
|
|
310
|
+
threshold: this.alarmThreshold,
|
|
311
|
+
topDeviations: topDeviations.slice(0, this.topKDeviations),
|
|
312
|
+
windowSize: n,
|
|
313
|
+
source: this.sourceName,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
return {
|
|
317
|
+
status: 'normal',
|
|
318
|
+
statistic,
|
|
319
|
+
threshold: this.alarmThreshold,
|
|
320
|
+
windowSize: n,
|
|
321
|
+
source: this.sourceName,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Compute the Laplace-smoothed chi-square goodness-of-fit statistic
|
|
326
|
+
* of the current window against the installed baseline, and the
|
|
327
|
+
* full per-class deviation list sorted by absolute deviation.
|
|
328
|
+
*
|
|
329
|
+
* Smoothed baseline:
|
|
330
|
+
* smoothed_p(c) = (p(c) + alpha) / (1 + alpha * K)
|
|
331
|
+
* where K = |universe|, the union of baseline classes and observed
|
|
332
|
+
* classes. This preserves sum-to-one and yields strictly positive
|
|
333
|
+
* expected counts for every c in the universe, so the chi-square
|
|
334
|
+
* denominator never underflows.
|
|
335
|
+
*/
|
|
336
|
+
computeChiSquare(n) {
|
|
337
|
+
const universe = new Set();
|
|
338
|
+
for (const k of this.baselineNorm.keys())
|
|
339
|
+
universe.add(k);
|
|
340
|
+
for (const k of this.counts.keys())
|
|
341
|
+
universe.add(k);
|
|
342
|
+
const K = universe.size;
|
|
343
|
+
if (K === 0 || n === 0) {
|
|
344
|
+
return { statistic: 0, topDeviations: [] };
|
|
345
|
+
}
|
|
346
|
+
const alpha = this.smoothing;
|
|
347
|
+
const denom = 1 + alpha * K;
|
|
348
|
+
let statistic = 0;
|
|
349
|
+
const deviations = [];
|
|
350
|
+
for (const className of universe) {
|
|
351
|
+
const p = this.baselineNorm.get(className) ?? 0;
|
|
352
|
+
const smoothedP = (p + alpha) / denom;
|
|
353
|
+
const expected = smoothedP * n;
|
|
354
|
+
const observed = this.counts.get(className) ?? 0;
|
|
355
|
+
if (expected <= 0)
|
|
356
|
+
continue; // defensive; impossible with alpha > 0 or p > 0
|
|
357
|
+
const diff = observed - expected;
|
|
358
|
+
statistic += (diff * diff) / expected;
|
|
359
|
+
deviations.push({
|
|
360
|
+
className,
|
|
361
|
+
observed,
|
|
362
|
+
expected,
|
|
363
|
+
deviation: diff,
|
|
364
|
+
});
|
|
365
|
+
}
|
|
366
|
+
deviations.sort((a, b) => Math.abs(b.deviation) - Math.abs(a.deviation));
|
|
367
|
+
return { statistic, topDeviations: deviations };
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
exports.GuardAnomalyDetector = GuardAnomalyDetector;
|
|
371
|
+
function clampWindowSize(n) {
|
|
372
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
373
|
+
return exports.DEFAULT_GUARD_ANOMALY_WINDOW;
|
|
374
|
+
return Math.min(Math.floor(n), exports.MAX_GUARD_ANOMALY_WINDOW);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Build a baseline `ClassDistribution` from an array of observation
|
|
378
|
+
* labels. Intended for the observation-based bootstrap path where no
|
|
379
|
+
* Registry-exported baseline is yet available. The returned object
|
|
380
|
+
* is a count map; the detector normalizes it internally.
|
|
381
|
+
*
|
|
382
|
+
* Callers should collect at least several hundred observations over
|
|
383
|
+
* a trusted "learning" period before calling this. A baseline built
|
|
384
|
+
* from fewer observations is noise, and a baseline built from a
|
|
385
|
+
* compromised period bakes the attack into the reference.
|
|
386
|
+
*
|
|
387
|
+
* Entries that are not non-empty strings are silently skipped.
|
|
388
|
+
*/
|
|
389
|
+
function buildBaselineFromObservations(samples) {
|
|
390
|
+
const counts = {};
|
|
391
|
+
for (const s of samples) {
|
|
392
|
+
if (typeof s !== 'string' || s.length === 0 || s.length > exports.MAX_CLASSIFICATION_LENGTH) {
|
|
393
|
+
continue;
|
|
394
|
+
}
|
|
395
|
+
counts[s] = (counts[s] ?? 0) + 1;
|
|
396
|
+
}
|
|
397
|
+
return counts;
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=guard-anomaly.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-anomaly.js","sourceRoot":"","sources":["../../../src/arp/intelligence/guard-anomaly.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* L1 runs in parallel with L0 — never blocks the L0 decision.
|
|
13
13
|
*/
|
|
14
|
+
import type { ARPEvent } from '../types';
|
|
14
15
|
import type { EventEngine } from '../engine/event-engine';
|
|
15
16
|
type EventType = 'TOOL_CALL' | 'CAPABILITY_CHECK' | 'MCP_CALL' | 'MEMORY_READ' | 'MEMORY_WRITE' | 'EXTERNAL_CALL';
|
|
16
17
|
type ARPAction = 'allow' | 'alert' | 'throttle' | 'suspend' | 'kill';
|
|
@@ -28,6 +29,15 @@ interface BehavioralEvent {
|
|
|
28
29
|
responseCode: number;
|
|
29
30
|
l0Decision: 'allow' | 'block' | 'alert';
|
|
30
31
|
}
|
|
32
|
+
interface BaselineStats {
|
|
33
|
+
eventTypeCounts: Record<string, number>;
|
|
34
|
+
avgTimingDelta: number;
|
|
35
|
+
stdTimingDelta: number;
|
|
36
|
+
capabilitySet: Set<string>;
|
|
37
|
+
avgResponseSize: number;
|
|
38
|
+
totalEvents: number;
|
|
39
|
+
errorRate: number;
|
|
40
|
+
}
|
|
31
41
|
interface AnomalyResult {
|
|
32
42
|
score: number;
|
|
33
43
|
action: ARPAction;
|
|
@@ -57,6 +67,33 @@ export declare class NanoMindL1 {
|
|
|
57
67
|
* Non-blocking: L1 runs in parallel, L0 decision is returned immediately.
|
|
58
68
|
*/
|
|
59
69
|
attach(engine: EventEngine): void;
|
|
70
|
+
/**
|
|
71
|
+
* Score an ARP event for behavioral risk WITHOUT mutating any twin state.
|
|
72
|
+
*
|
|
73
|
+
* Used by the behavioral risk IPC server (behavioral-risk-server.ts) to
|
|
74
|
+
* answer on-demand scoring requests from a coordinator running in another
|
|
75
|
+
* process, or by InProcessBehavioralRiskSource for single-process wiring.
|
|
76
|
+
* Unlike `processEvent`, this does not advance the sequence number, append
|
|
77
|
+
* to the event log, add to the event buffer, or accumulate the gradient.
|
|
78
|
+
* It is a pure read against the current baseline.
|
|
79
|
+
*
|
|
80
|
+
* Returns null when the twin is disabled or the baseline is not yet
|
|
81
|
+
* trained (totalEvents < 100). The caller must surface this to the IPC
|
|
82
|
+
* client as a NOT_READY signal; silently returning a zero score would
|
|
83
|
+
* misrepresent the twin's confidence.
|
|
84
|
+
*/
|
|
85
|
+
scoreARPEvent(event: ARPEvent): AnomalyResult | null;
|
|
86
|
+
/**
|
|
87
|
+
* Readonly variant of convertEvent that does not mutate lastEventTime or
|
|
88
|
+
* sequenceNum. Used by scoreARPEvent for on-demand IPC scoring.
|
|
89
|
+
*/
|
|
90
|
+
private convertEventReadonly;
|
|
91
|
+
/**
|
|
92
|
+
* Test-only seam: force-install a baseline so unit tests can exercise
|
|
93
|
+
* scoreARPEvent without first calling processEvent a hundred times. Marked
|
|
94
|
+
* with a leading underscore so it is easy to grep for in production code.
|
|
95
|
+
*/
|
|
96
|
+
_setBaselineForTest(baseline: BaselineStats): void;
|
|
60
97
|
/**
|
|
61
98
|
* Process a behavioral event and return anomaly score.
|
|
62
99
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nanomind-l1.d.ts","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"nanomind-l1.d.ts","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,84 @@ class NanoMindL1 {
|
|
|
108
108
|
});
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Score an ARP event for behavioral risk WITHOUT mutating any twin state.
|
|
113
|
+
*
|
|
114
|
+
* Used by the behavioral risk IPC server (behavioral-risk-server.ts) to
|
|
115
|
+
* answer on-demand scoring requests from a coordinator running in another
|
|
116
|
+
* process, or by InProcessBehavioralRiskSource for single-process wiring.
|
|
117
|
+
* Unlike `processEvent`, this does not advance the sequence number, append
|
|
118
|
+
* to the event log, add to the event buffer, or accumulate the gradient.
|
|
119
|
+
* It is a pure read against the current baseline.
|
|
120
|
+
*
|
|
121
|
+
* Returns null when the twin is disabled or the baseline is not yet
|
|
122
|
+
* trained (totalEvents < 100). The caller must surface this to the IPC
|
|
123
|
+
* client as a NOT_READY signal; silently returning a zero score would
|
|
124
|
+
* misrepresent the twin's confidence.
|
|
125
|
+
*/
|
|
126
|
+
scoreARPEvent(event) {
|
|
127
|
+
if (!this.enabled)
|
|
128
|
+
return null;
|
|
129
|
+
if (!this.baseline || this.baseline.totalEvents < 100)
|
|
130
|
+
return null;
|
|
131
|
+
const behavioral = this.convertEventReadonly(event);
|
|
132
|
+
if (!behavioral)
|
|
133
|
+
return null;
|
|
134
|
+
const score = this.computeAnomalyScore(behavioral);
|
|
135
|
+
const response = this.getResponse(score);
|
|
136
|
+
return { score, action: response.action, reason: response.label };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Readonly variant of convertEvent that does not mutate lastEventTime or
|
|
140
|
+
* sequenceNum. Used by scoreARPEvent for on-demand IPC scoring.
|
|
141
|
+
*/
|
|
142
|
+
convertEventReadonly(event) {
|
|
143
|
+
const now = Date.now();
|
|
144
|
+
const delta = this.lastEventTime > 0 ? now - this.lastEventTime : 0;
|
|
145
|
+
const sequenceNum = this.sequenceNum + 1;
|
|
146
|
+
let eventType = 'TOOL_CALL';
|
|
147
|
+
const source = String(event.data?.source || event.data?.monitor || '');
|
|
148
|
+
if (source.includes('network'))
|
|
149
|
+
eventType = 'EXTERNAL_CALL';
|
|
150
|
+
else if (source.includes('filesystem'))
|
|
151
|
+
eventType = 'MEMORY_READ';
|
|
152
|
+
else if (source.includes('mcp'))
|
|
153
|
+
eventType = 'MCP_CALL';
|
|
154
|
+
else if (source.includes('capability'))
|
|
155
|
+
eventType = 'CAPABILITY_CHECK';
|
|
156
|
+
let l0Decision = 'allow';
|
|
157
|
+
if (event.data?._initialAction === 'kill' || event.data?._initialAction === 'pause')
|
|
158
|
+
l0Decision = 'block';
|
|
159
|
+
else if (event.category === 'threat' || event.category === 'violation')
|
|
160
|
+
l0Decision = 'alert';
|
|
161
|
+
else if (event.severity === 'high' || event.severity === 'critical')
|
|
162
|
+
l0Decision = 'alert';
|
|
163
|
+
const capability = String(event.data?.capability || event.data?.type || 'unknown');
|
|
164
|
+
const toolName = event.data?.toolName ? String(event.data.toolName) : null;
|
|
165
|
+
const responseSize = typeof event.data?.responseSize === 'number' ? event.data.responseSize : 0;
|
|
166
|
+
return {
|
|
167
|
+
agentId: this.agentId,
|
|
168
|
+
sessionId: this.sessionId,
|
|
169
|
+
sequenceNum,
|
|
170
|
+
eventType,
|
|
171
|
+
capability,
|
|
172
|
+
toolName,
|
|
173
|
+
argHash: crypto.createHash('sha256').update(JSON.stringify(event.data || {})).digest('hex').substring(0, 16),
|
|
174
|
+
timestampDelta: delta,
|
|
175
|
+
wallClock: now,
|
|
176
|
+
responseSize,
|
|
177
|
+
responseCode: event.data?.error ? 1 : 0,
|
|
178
|
+
l0Decision,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Test-only seam: force-install a baseline so unit tests can exercise
|
|
183
|
+
* scoreARPEvent without first calling processEvent a hundred times. Marked
|
|
184
|
+
* with a leading underscore so it is easy to grep for in production code.
|
|
185
|
+
*/
|
|
186
|
+
_setBaselineForTest(baseline) {
|
|
187
|
+
this.baseline = baseline;
|
|
188
|
+
}
|
|
111
189
|
/**
|
|
112
190
|
* Process a behavioral event and return anomaly score.
|
|
113
191
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nanomind-l1.js","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nanomind-l1.js","sourceRoot":"","sources":["../../../src/arp/intelligence/nanomind-l1.ts"],"names":[],"mappings":"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"}
|