@namzu/sandbox 1.1.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +277 -0
- package/README.md +205 -105
- package/dist/backends/aci-standby-pool/__tests__/unenforceable-controls.test.d.ts +2 -0
- package/dist/backends/aci-standby-pool/__tests__/unenforceable-controls.test.d.ts.map +1 -0
- package/dist/backends/aci-standby-pool/__tests__/unenforceable-controls.test.js +61 -0
- package/dist/backends/aci-standby-pool/__tests__/unenforceable-controls.test.js.map +1 -0
- package/dist/backends/aci-standby-pool/index.d.ts +2 -1
- package/dist/backends/aci-standby-pool/index.d.ts.map +1 -1
- package/dist/backends/aci-standby-pool/index.js +36 -1
- package/dist/backends/aci-standby-pool/index.js.map +1 -1
- package/dist/backends/docker/__tests__/hardening.test.d.ts +2 -0
- package/dist/backends/docker/__tests__/hardening.test.d.ts.map +1 -0
- package/dist/backends/docker/__tests__/hardening.test.js +32 -0
- package/dist/backends/docker/__tests__/hardening.test.js.map +1 -0
- package/dist/backends/docker/__tests__/leaf-permissions.smoke.test.d.ts +1 -1
- package/dist/backends/docker/__tests__/leaf-permissions.smoke.test.js +1 -1
- package/dist/backends/docker/index.d.ts +47 -3
- package/dist/backends/docker/index.d.ts.map +1 -1
- package/dist/backends/docker/index.js +144 -5
- package/dist/backends/docker/index.js.map +1 -1
- package/dist/backends/firecracker/__tests__/agent-timeout-clamp.test.d.ts +16 -0
- package/dist/backends/firecracker/__tests__/agent-timeout-clamp.test.d.ts.map +1 -0
- package/dist/backends/firecracker/__tests__/agent-timeout-clamp.test.js +37 -0
- package/dist/backends/firecracker/__tests__/agent-timeout-clamp.test.js.map +1 -0
- package/dist/backends/firecracker/__tests__/backend.test.js +11 -3
- package/dist/backends/firecracker/__tests__/backend.test.js.map +1 -1
- package/dist/backends/firecracker/__tests__/control-plane-mtls.test.js +10 -2
- package/dist/backends/firecracker/__tests__/control-plane-mtls.test.js.map +1 -1
- package/dist/backends/firecracker/__tests__/egress-policy.test.d.ts +2 -0
- package/dist/backends/firecracker/__tests__/egress-policy.test.d.ts.map +1 -0
- package/dist/backends/firecracker/__tests__/egress-policy.test.js +67 -0
- package/dist/backends/firecracker/__tests__/egress-policy.test.js.map +1 -0
- package/dist/backends/firecracker/__tests__/fixtures/ipc-path.d.ts +21 -0
- package/dist/backends/firecracker/__tests__/fixtures/ipc-path.d.ts.map +1 -0
- package/dist/backends/firecracker/__tests__/fixtures/ipc-path.js +30 -0
- package/dist/backends/firecracker/__tests__/fixtures/ipc-path.js.map +1 -0
- package/dist/backends/firecracker/__tests__/protocol.test.js +7 -17
- package/dist/backends/firecracker/__tests__/protocol.test.js.map +1 -1
- package/dist/backends/firecracker/__tests__/transport.test.js +11 -3
- package/dist/backends/firecracker/__tests__/transport.test.js.map +1 -1
- package/dist/backends/firecracker/index.d.ts +20 -1
- package/dist/backends/firecracker/index.d.ts.map +1 -1
- package/dist/backends/firecracker/index.js +70 -15
- package/dist/backends/firecracker/index.js.map +1 -1
- package/dist/egress/__tests__/allowlist.test.d.ts +2 -0
- package/dist/egress/__tests__/allowlist.test.d.ts.map +1 -0
- package/dist/egress/__tests__/allowlist.test.js +85 -0
- package/dist/egress/__tests__/allowlist.test.js.map +1 -0
- package/dist/egress/__tests__/proxy.test.d.ts +2 -0
- package/dist/egress/__tests__/proxy.test.d.ts.map +1 -0
- package/dist/egress/__tests__/proxy.test.js +177 -0
- package/dist/egress/__tests__/proxy.test.js.map +1 -0
- package/dist/egress/allowlist.d.ts +40 -0
- package/dist/egress/allowlist.d.ts.map +1 -0
- package/dist/egress/allowlist.js +81 -0
- package/dist/egress/allowlist.js.map +1 -0
- package/dist/egress/index.d.ts +4 -0
- package/dist/egress/index.d.ts.map +1 -0
- package/dist/egress/index.js +3 -0
- package/dist/egress/index.js.map +1 -0
- package/dist/egress/proxy.d.ts +90 -0
- package/dist/egress/proxy.d.ts.map +1 -0
- package/dist/egress/proxy.js +194 -0
- package/dist/egress/proxy.js.map +1 -0
- package/dist/index.d.ts +101 -190
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -80
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +18 -39
- package/dist/index.test.js.map +1 -1
- package/package.json +5 -4
- package/src/backends/aci-standby-pool/__tests__/unenforceable-controls.test.ts +69 -0
- package/src/backends/aci-standby-pool/index.ts +42 -1
- package/src/backends/docker/__tests__/hardening.test.ts +43 -0
- package/src/backends/docker/__tests__/leaf-permissions.smoke.test.ts +1 -1
- package/src/backends/docker/index.ts +210 -12
- package/src/backends/firecracker/__tests__/agent-timeout-clamp.test.ts +48 -0
- package/src/backends/firecracker/__tests__/backend.test.ts +76 -65
- package/src/backends/firecracker/__tests__/control-plane-mtls.test.ts +10 -2
- package/src/backends/firecracker/__tests__/egress-policy.test.ts +91 -0
- package/src/backends/firecracker/__tests__/fixtures/ipc-path.ts +31 -0
- package/src/backends/firecracker/__tests__/protocol.test.ts +8 -23
- package/src/backends/firecracker/__tests__/transport.test.ts +11 -3
- package/src/backends/firecracker/index.ts +76 -13
- package/src/egress/__tests__/allowlist.test.ts +103 -0
- package/src/egress/__tests__/proxy.test.ts +212 -0
- package/src/egress/allowlist.ts +82 -0
- package/src/egress/index.ts +7 -0
- package/src/egress/proxy.ts +294 -0
- package/src/index.test.ts +19 -41
- package/src/index.ts +170 -259
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.test.js","sourceRoot":"","sources":["../../../../src/backends/firecracker/__tests__/transport.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transport.test.js","sourceRoot":"","sources":["../../../../src/backends/firecracker/__tests__/transport.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
* only calls the closure on every orchestrator HTTP call so a
|
|
44
44
|
* long-running sandbox survives token rotation.
|
|
45
45
|
*/
|
|
46
|
-
import type { AgentSnapshotRef, SandboxBackend } from '../../index.js';
|
|
46
|
+
import type { AgentSnapshotRef, SandboxBackend, SandboxBackendOptions } from '../../index.js';
|
|
47
47
|
import type { MtlsClientMaterial, SandboxAgentHandle, VsockTransportOptions, WireSandboxAgentHandle } from './transport.js';
|
|
48
48
|
/**
|
|
49
49
|
* Async callback returning a fresh bearer token for
|
|
@@ -107,6 +107,25 @@ export interface FirecrackerBackendInternalConfig {
|
|
|
107
107
|
* on the first `create()`.
|
|
108
108
|
*/
|
|
109
109
|
export declare function buildFirecrackerBackend(config: FirecrackerBackendInternalConfig): SandboxBackend;
|
|
110
|
+
/**
|
|
111
|
+
* Materialise an egress policy into the allowlist the orchestrator turns
|
|
112
|
+
* into firewall rules.
|
|
113
|
+
*
|
|
114
|
+
* Omitting the field means "no allowlist to apply", which the orchestrator
|
|
115
|
+
* reads as unrestricted. That makes omission the encoding for `allow-all`
|
|
116
|
+
* and ONLY for `allow-all`.
|
|
117
|
+
*
|
|
118
|
+
* `resolver` used to be omitted too, so two opposite intentions shared one
|
|
119
|
+
* encoding and the tenant-scoped allowlist the variant exists for was
|
|
120
|
+
* silently absent — with the callback that would have produced it never
|
|
121
|
+
* called anywhere in the repo. Whichever way the orchestrator reads an
|
|
122
|
+
* omitted field, one of the two variants was always mis-enforced, and the
|
|
123
|
+
* one that failed open was the one whose entire purpose is restriction.
|
|
124
|
+
*
|
|
125
|
+
* The switch is exhaustive on purpose: a new variant should fail to
|
|
126
|
+
* compile here rather than fall through to "unrestricted".
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveEgressAllowlist(options: SandboxBackendOptions): Promise<readonly string[] | undefined>;
|
|
110
129
|
/**
|
|
111
130
|
* Turn the orchestrator's WIRE handle into the transport handle the dialer
|
|
112
131
|
* uses. Two transforms:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC7F,OAAO,KAAK,EACX,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,gBAAgB,CAAA;AAkBvB;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;AAE7D,MAAM,WAAW,gCAAgC;IAChD,gEAAgE;IAChE,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAA;IAC5C,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;IACzC,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAA;IAClC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;CAC9C;AAMD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gCAAgC,GAAG,cAAc,CAQhG;AA+UD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,sBAAsB,CAC3C,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC,CA2BxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,sBAAsB,EAC9B,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAClC,kBAAkB,CAyBpB"}
|
|
@@ -45,6 +45,20 @@
|
|
|
45
45
|
*/
|
|
46
46
|
import https from 'node:https';
|
|
47
47
|
import { VsockAgentTransport } from './transport.js';
|
|
48
|
+
/**
|
|
49
|
+
* Trim trailing slashes without a regex.
|
|
50
|
+
*
|
|
51
|
+
* `/\/+$/` backtracks quadratically on a long run of slashes, and this
|
|
52
|
+
* value crosses a trust boundary — a host-supplied endpoint on a shared
|
|
53
|
+
* event loop. The scan is linear and says the same thing.
|
|
54
|
+
*/
|
|
55
|
+
function stripTrailingSlashes(value) {
|
|
56
|
+
let end = value.length;
|
|
57
|
+
while (end > 0 && value[end - 1] === '/') {
|
|
58
|
+
end--;
|
|
59
|
+
}
|
|
60
|
+
return value.slice(0, end);
|
|
61
|
+
}
|
|
48
62
|
const DEFAULT_AGENT_VSOCK_PORT = 1024;
|
|
49
63
|
const DEFAULT_READY_TIMEOUT_MS = 60_000;
|
|
50
64
|
const DEFAULT_READY_POLL_MS = 250;
|
|
@@ -64,7 +78,7 @@ export function buildFirecrackerBackend(config) {
|
|
|
64
78
|
}
|
|
65
79
|
async function orchestratorCall(endpoint, pathSuffix, method, getToken, body, mtls) {
|
|
66
80
|
const token = await getToken();
|
|
67
|
-
const url = `${endpoint
|
|
81
|
+
const url = `${stripTrailingSlashes(endpoint)}${pathSuffix}`;
|
|
68
82
|
const payload = body !== undefined ? JSON.stringify(body) : undefined;
|
|
69
83
|
const headers = {
|
|
70
84
|
Authorization: `Bearer ${token}`,
|
|
@@ -153,15 +167,17 @@ function httpsOrchestratorRequest(url, method, headers, payload, mtls) {
|
|
|
153
167
|
// ---------------------------------------------------------------------------
|
|
154
168
|
async function spawnFirecrackerSandbox(config, options) {
|
|
155
169
|
const endpoint = config.orchestratorEndpoint;
|
|
170
|
+
const egressAllowlist = await resolveEgressAllowlist(options);
|
|
156
171
|
const createBody = {
|
|
157
172
|
...(config.template !== undefined ? { template: config.template } : {}),
|
|
158
173
|
...(config.agentSnapshot !== undefined ? { agentSnapshot: config.agentSnapshot } : {}),
|
|
159
174
|
...(options.memoryLimitMb !== undefined ? { memoryLimitMb: options.memoryLimitMb } : {}),
|
|
160
175
|
...(options.maxProcesses !== undefined ? { maxProcesses: options.maxProcesses } : {}),
|
|
161
176
|
...(options.timeoutMs !== undefined ? { timeoutMs: options.timeoutMs } : {}),
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
177
|
+
// Resolved once. It used to be called twice — harmless for the pure
|
|
178
|
+
// kinds, and once the resolver variant actually runs its callback,
|
|
179
|
+
// twice means two round-trips and two chances to disagree.
|
|
180
|
+
...(egressAllowlist !== undefined ? { egressAllowlist } : {}),
|
|
165
181
|
};
|
|
166
182
|
let created;
|
|
167
183
|
try {
|
|
@@ -215,6 +231,16 @@ async function spawnFirecrackerSandbox(config, options) {
|
|
|
215
231
|
rootDir,
|
|
216
232
|
environment: detectEnvironment(),
|
|
217
233
|
async exec(command, argv, opts) {
|
|
234
|
+
// `opts.signal` is deliberately not forwarded, and the reason is
|
|
235
|
+
// worth writing down because the obvious "fix" is worse than the
|
|
236
|
+
// gap. There is no cancel op on this wire — the guest agent takes
|
|
237
|
+
// an execute frame and answers when the command is done. Aborting
|
|
238
|
+
// the socket here would abandon the WAIT while the process keeps
|
|
239
|
+
// running inside the microVM, which is verbatim the failure
|
|
240
|
+
// `SandboxExecOptions.signal` exists to prevent, except it would
|
|
241
|
+
// then look honoured. Honouring it means a cancel op in the guest
|
|
242
|
+
// protocol; until then, ignoring it is the truthful behaviour the
|
|
243
|
+
// option's own contract allows.
|
|
218
244
|
status = 'busy';
|
|
219
245
|
try {
|
|
220
246
|
return await transport.execute({
|
|
@@ -273,20 +299,49 @@ async function spawnFirecrackerSandbox(config, options) {
|
|
|
273
299
|
// ---------------------------------------------------------------------------
|
|
274
300
|
// Helpers
|
|
275
301
|
// ---------------------------------------------------------------------------
|
|
276
|
-
|
|
302
|
+
/**
|
|
303
|
+
* Materialise an egress policy into the allowlist the orchestrator turns
|
|
304
|
+
* into firewall rules.
|
|
305
|
+
*
|
|
306
|
+
* Omitting the field means "no allowlist to apply", which the orchestrator
|
|
307
|
+
* reads as unrestricted. That makes omission the encoding for `allow-all`
|
|
308
|
+
* and ONLY for `allow-all`.
|
|
309
|
+
*
|
|
310
|
+
* `resolver` used to be omitted too, so two opposite intentions shared one
|
|
311
|
+
* encoding and the tenant-scoped allowlist the variant exists for was
|
|
312
|
+
* silently absent — with the callback that would have produced it never
|
|
313
|
+
* called anywhere in the repo. Whichever way the orchestrator reads an
|
|
314
|
+
* omitted field, one of the two variants was always mis-enforced, and the
|
|
315
|
+
* one that failed open was the one whose entire purpose is restriction.
|
|
316
|
+
*
|
|
317
|
+
* The switch is exhaustive on purpose: a new variant should fail to
|
|
318
|
+
* compile here rather than fall through to "unrestricted".
|
|
319
|
+
*/
|
|
320
|
+
export async function resolveEgressAllowlist(options) {
|
|
277
321
|
const egress = options.egress;
|
|
278
322
|
if (!egress)
|
|
279
323
|
return undefined;
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
324
|
+
switch (egress.kind) {
|
|
325
|
+
case 'allow-all':
|
|
326
|
+
// The one intent omission is allowed to mean.
|
|
327
|
+
return undefined;
|
|
328
|
+
case 'deny-all':
|
|
329
|
+
// Explicitly empty, not absent.
|
|
330
|
+
return [];
|
|
331
|
+
case 'static':
|
|
332
|
+
return egress.allowedHosts;
|
|
333
|
+
case 'resolver': {
|
|
334
|
+
// The callback exists to produce this list. Calling it is the
|
|
335
|
+
// whole feature; an empty result is a real deny-all and travels
|
|
336
|
+
// as one rather than collapsing back to omission.
|
|
337
|
+
const resolved = await egress.resolve();
|
|
338
|
+
return resolved;
|
|
339
|
+
}
|
|
340
|
+
default: {
|
|
341
|
+
const exhaustive = egress;
|
|
342
|
+
throw new Error(`Unhandled egress policy kind: ${JSON.stringify(exhaustive)}. Refusing rather than defaulting to unrestricted network access.`);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
290
345
|
}
|
|
291
346
|
/**
|
|
292
347
|
* Turn the orchestrator's WIRE handle into the transport handle the dialer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/firecracker/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowlist.test.d.ts","sourceRoot":"","sources":["../../../src/egress/__tests__/allowlist.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { isHostAllowed, splitAuthority } from '../allowlist.js';
|
|
3
|
+
/**
|
|
4
|
+
* The part that decides whether untrusted code reaches the network.
|
|
5
|
+
*
|
|
6
|
+
* Substring matching is the obvious implementation and it is a hole: an
|
|
7
|
+
* entry of `example.com` would admit `example.com.attacker.net`, a domain
|
|
8
|
+
* the attacker owns. Plain suffix matching has the same hole without a
|
|
9
|
+
* leading dot — `notexample.com` ends with `example.com`.
|
|
10
|
+
*/
|
|
11
|
+
describe('an exact host entry', () => {
|
|
12
|
+
it('matches only that host', () => {
|
|
13
|
+
expect(isHostAllowed('api.example.com', ['api.example.com'])).toBe(true);
|
|
14
|
+
expect(isHostAllowed('other.example.com', ['api.example.com'])).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
it('does not match a host that merely contains it', () => {
|
|
17
|
+
// The whole reason this is not `includes`.
|
|
18
|
+
expect(isHostAllowed('api.example.com.attacker.net', ['api.example.com'])).toBe(false);
|
|
19
|
+
});
|
|
20
|
+
it('does not match a prefix of itself', () => {
|
|
21
|
+
expect(isHostAllowed('example.com', ['api.example.com'])).toBe(false);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('a wildcard entry', () => {
|
|
25
|
+
it('matches subdomains', () => {
|
|
26
|
+
expect(isHostAllowed('api.example.com', ['.example.com'])).toBe(true);
|
|
27
|
+
expect(isHostAllowed('deep.api.example.com', ['.example.com'])).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it('matches the apex too', () => {
|
|
30
|
+
// An author writing the wildcard form means the site; admitting
|
|
31
|
+
// `www.example.com` but not `example.com` reads as a bug.
|
|
32
|
+
expect(isHostAllowed('example.com', ['.example.com'])).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
it('does not match a domain that merely ends with the same letters', () => {
|
|
35
|
+
// This is why the leading dot is required rather than optional.
|
|
36
|
+
expect(isHostAllowed('notexample.com', ['.example.com'])).toBe(false);
|
|
37
|
+
expect(isHostAllowed('evilexample.com', ['.example.com'])).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
it('does not match a domain that only contains it', () => {
|
|
40
|
+
expect(isHostAllowed('example.com.attacker.net', ['.example.com'])).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('normalisation', () => {
|
|
44
|
+
it('ignores case, because DNS does', () => {
|
|
45
|
+
expect(isHostAllowed('API.Example.COM', ['api.example.com'])).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
it('ignores a trailing dot, which is the same name', () => {
|
|
48
|
+
// An allowlist that treats `example.com.` as different is bypassable
|
|
49
|
+
// by typing the host differently.
|
|
50
|
+
expect(isHostAllowed('example.com.', ['example.com'])).toBe(true);
|
|
51
|
+
});
|
|
52
|
+
it('ignores surrounding whitespace in an entry', () => {
|
|
53
|
+
expect(isHostAllowed('example.com', [' example.com '])).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe('an empty allowlist', () => {
|
|
57
|
+
it('denies everything', () => {
|
|
58
|
+
expect(isHostAllowed('example.com', [])).toBe(false);
|
|
59
|
+
});
|
|
60
|
+
it('is not satisfied by an empty entry', () => {
|
|
61
|
+
// `''` must not become a wildcard through some string coincidence.
|
|
62
|
+
expect(isHostAllowed('example.com', ['', ' '])).toBe(false);
|
|
63
|
+
});
|
|
64
|
+
it('denies an empty host', () => {
|
|
65
|
+
expect(isHostAllowed('', ['example.com'])).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
describe('splitting an authority', () => {
|
|
69
|
+
it('separates host from port', () => {
|
|
70
|
+
expect(splitAuthority('example.com:8443')).toEqual({ host: 'example.com', port: 8443 });
|
|
71
|
+
});
|
|
72
|
+
it('leaves a bare host alone', () => {
|
|
73
|
+
expect(splitAuthority('example.com')).toEqual({ host: 'example.com' });
|
|
74
|
+
});
|
|
75
|
+
it('handles a bracketed IPv6 literal', () => {
|
|
76
|
+
// A `split(':')` would shred this, and the allowlist would then be
|
|
77
|
+
// matching against a fragment.
|
|
78
|
+
expect(splitAuthority('[::1]:9000')).toEqual({ host: '::1', port: 9000 });
|
|
79
|
+
expect(splitAuthority('[2001:db8::1]')).toEqual({ host: '2001:db8::1' });
|
|
80
|
+
});
|
|
81
|
+
it('keeps the whole value when the port is not a number', () => {
|
|
82
|
+
expect(splitAuthority('example.com:notaport')).toEqual({ host: 'example.com:notaport' });
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=allowlist.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowlist.test.js","sourceRoot":"","sources":["../../../src/egress/__tests__/allowlist.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.test.d.ts","sourceRoot":"","sources":["../../../src/egress/__tests__/proxy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { createServer, request as nodeRequest } from 'node:http';
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
3
|
+
import { EgressProxy } from '../proxy.js';
|
|
4
|
+
/**
|
|
5
|
+
* Until this existed, an egress policy could be declared and only two of
|
|
6
|
+
* its four shapes could be honoured anywhere: the container backend
|
|
7
|
+
* refused a host allowlist outright because it had no proxy to filter
|
|
8
|
+
* through. `deny-all` and `allow-all` were the whole spectrum — all or
|
|
9
|
+
* nothing.
|
|
10
|
+
*
|
|
11
|
+
* It also settles where credentials live. Any token the agent needed to
|
|
12
|
+
* reach an allowed host had to be INSIDE the sandbox, in the environment,
|
|
13
|
+
* readable by the untrusted code it is meant to be isolated from — via
|
|
14
|
+
* `/proc/self/environ`, or via a prompt injection that exfiltrates it over
|
|
15
|
+
* the very egress the policy permits.
|
|
16
|
+
*/
|
|
17
|
+
/** A stand-in upstream that reports what it was sent. */
|
|
18
|
+
function upstream() {
|
|
19
|
+
const seen = [];
|
|
20
|
+
const server = createServer((req, res) => {
|
|
21
|
+
seen.push(req);
|
|
22
|
+
res.writeHead(200, { 'content-type': 'text/plain' });
|
|
23
|
+
res.end('upstream ok');
|
|
24
|
+
});
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
server.listen(0, '127.0.0.1', () => {
|
|
27
|
+
const address = server.address();
|
|
28
|
+
const port = typeof address === 'object' && address !== null ? address.port : 0;
|
|
29
|
+
resolve({ server, port, seen });
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Issue a request THROUGH the proxy, the way a proxied client does: the
|
|
35
|
+
* absolute URL goes in the request line.
|
|
36
|
+
*
|
|
37
|
+
* `fetch` cannot express this — it owns the `Host` header and refuses an
|
|
38
|
+
* override, so a request built with it names the proxy as its own target.
|
|
39
|
+
* The first version of this helper did exactly that, and the proxy
|
|
40
|
+
* forwarded to itself and hung. That hang is now a 400, and this helper
|
|
41
|
+
* speaks the protocol properly.
|
|
42
|
+
*/
|
|
43
|
+
function viaProxy(proxy, target, init = {}) {
|
|
44
|
+
const proxyUrl = new URL(proxy.url);
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
const req = nodeRequest({
|
|
47
|
+
host: proxyUrl.hostname,
|
|
48
|
+
port: Number(proxyUrl.port),
|
|
49
|
+
method: 'GET',
|
|
50
|
+
// Absolute-URI form: what distinguishes a proxied request.
|
|
51
|
+
path: target,
|
|
52
|
+
headers: init.headers ?? {},
|
|
53
|
+
}, (res) => {
|
|
54
|
+
let body = '';
|
|
55
|
+
res.setEncoding('utf-8');
|
|
56
|
+
res.on('data', (chunk) => {
|
|
57
|
+
body += chunk;
|
|
58
|
+
});
|
|
59
|
+
res.on('end', () => resolve({ status: res.statusCode ?? 0, body }));
|
|
60
|
+
});
|
|
61
|
+
req.on('error', reject);
|
|
62
|
+
req.end();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
describe('the boundary', () => {
|
|
66
|
+
let proxy;
|
|
67
|
+
let allowed;
|
|
68
|
+
let denied;
|
|
69
|
+
let target;
|
|
70
|
+
beforeEach(async () => {
|
|
71
|
+
target = await upstream();
|
|
72
|
+
allowed = ['127.0.0.1'];
|
|
73
|
+
denied = [];
|
|
74
|
+
proxy = await new EgressProxy({
|
|
75
|
+
allowedHosts: async () => allowed,
|
|
76
|
+
// The stand-in upstream speaks plain HTTP.
|
|
77
|
+
upgradeToHttps: false,
|
|
78
|
+
onDenied: (host, reason) => denied.push({ host, reason }),
|
|
79
|
+
}).listen();
|
|
80
|
+
});
|
|
81
|
+
afterEach(async () => {
|
|
82
|
+
await proxy.close();
|
|
83
|
+
await new Promise((resolve) => target.server.close(() => resolve()));
|
|
84
|
+
});
|
|
85
|
+
it('lets an allowed host through', async () => {
|
|
86
|
+
const res = await viaProxy(proxy, `http://127.0.0.1:${target.port}/thing`);
|
|
87
|
+
expect(res.status).toBe(200);
|
|
88
|
+
expect(res.body).toBe('upstream ok');
|
|
89
|
+
});
|
|
90
|
+
it('refuses a host that is not on the list', async () => {
|
|
91
|
+
allowed = ['example.com'];
|
|
92
|
+
const res = await viaProxy(proxy, `http://127.0.0.1:${target.port}/thing`);
|
|
93
|
+
expect(res.status).toBe(403);
|
|
94
|
+
// Never reached the upstream at all — the refusal is the point, not
|
|
95
|
+
// the response code.
|
|
96
|
+
expect(target.seen).toHaveLength(0);
|
|
97
|
+
});
|
|
98
|
+
it('names the host it refused', async () => {
|
|
99
|
+
allowed = [];
|
|
100
|
+
const res = await viaProxy(proxy, `http://127.0.0.1:${target.port}/thing`);
|
|
101
|
+
// An agent that cannot tell "not permitted" from "network down"
|
|
102
|
+
// retries forever, and a human debugging it has nothing to go on.
|
|
103
|
+
expect(res.body).toContain('127.0.0.1');
|
|
104
|
+
expect(denied[0]?.host).toBe('127.0.0.1');
|
|
105
|
+
});
|
|
106
|
+
it('denies when the policy cannot be read', async () => {
|
|
107
|
+
// An allowlist that fails open is not an allowlist.
|
|
108
|
+
const failing = await new EgressProxy({
|
|
109
|
+
allowedHosts: async () => {
|
|
110
|
+
throw new Error('policy service unavailable');
|
|
111
|
+
},
|
|
112
|
+
upgradeToHttps: false,
|
|
113
|
+
}).listen();
|
|
114
|
+
try {
|
|
115
|
+
const res = await viaProxy(failing, `http://127.0.0.1:${target.port}/thing`);
|
|
116
|
+
expect(res.status).toBe(403);
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
await failing.close();
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
it('re-reads the policy per request, so a rotating allowlist is honoured', async () => {
|
|
123
|
+
allowed = [];
|
|
124
|
+
expect((await viaProxy(proxy, `http://127.0.0.1:${target.port}/a`)).status).toBe(403);
|
|
125
|
+
allowed = ['127.0.0.1'];
|
|
126
|
+
expect((await viaProxy(proxy, `http://127.0.0.1:${target.port}/b`)).status).toBe(200);
|
|
127
|
+
});
|
|
128
|
+
it('can be narrowed on a live proxy', async () => {
|
|
129
|
+
// "Clone with a token, then drop to deny-all before running
|
|
130
|
+
// untrusted build scripts" was not expressible at all: the policy
|
|
131
|
+
// was frozen at provider construction.
|
|
132
|
+
expect((await viaProxy(proxy, `http://127.0.0.1:${target.port}/a`)).status).toBe(200);
|
|
133
|
+
proxy.setAllowedHosts(async () => []);
|
|
134
|
+
expect((await viaProxy(proxy, `http://127.0.0.1:${target.port}/b`)).status).toBe(403);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('brokering a credential', () => {
|
|
138
|
+
let proxy;
|
|
139
|
+
let target;
|
|
140
|
+
beforeEach(async () => {
|
|
141
|
+
target = await upstream();
|
|
142
|
+
});
|
|
143
|
+
afterEach(async () => {
|
|
144
|
+
await proxy.close();
|
|
145
|
+
await new Promise((resolve) => target.server.close(() => resolve()));
|
|
146
|
+
});
|
|
147
|
+
const withCredentials = async (host) => {
|
|
148
|
+
proxy = await new EgressProxy({
|
|
149
|
+
allowedHosts: async () => ['127.0.0.1'],
|
|
150
|
+
upgradeToHttps: false,
|
|
151
|
+
credentials: [{ host, header: 'authorization', value: 'Bearer real-secret' }],
|
|
152
|
+
}).listen();
|
|
153
|
+
return proxy;
|
|
154
|
+
};
|
|
155
|
+
it('stamps the real value on at the boundary', async () => {
|
|
156
|
+
const p = await withCredentials('127.0.0.1');
|
|
157
|
+
await viaProxy(p, `http://127.0.0.1:${target.port}/thing`);
|
|
158
|
+
// The token never entered the sandbox — a placeholder did, and the
|
|
159
|
+
// value was applied here.
|
|
160
|
+
expect(target.seen[0]?.headers.authorization).toBe('Bearer real-secret');
|
|
161
|
+
});
|
|
162
|
+
it('sends it only to the host it belongs to', async () => {
|
|
163
|
+
// A credential attached to every request is a credential handed to
|
|
164
|
+
// whichever host the agent was talked into contacting.
|
|
165
|
+
const p = await withCredentials('other.example.com');
|
|
166
|
+
await viaProxy(p, `http://127.0.0.1:${target.port}/thing`);
|
|
167
|
+
expect(target.seen[0]?.headers.authorization).toBeUndefined();
|
|
168
|
+
});
|
|
169
|
+
it('does not forward the hop-by-hop proxy header onward', async () => {
|
|
170
|
+
const p = await withCredentials('127.0.0.1');
|
|
171
|
+
await viaProxy(p, `http://127.0.0.1:${target.port}/thing`, {
|
|
172
|
+
headers: { 'proxy-authorization': 'Basic should-not-travel' },
|
|
173
|
+
});
|
|
174
|
+
expect(target.seen[0]?.headers['proxy-authorization']).toBeUndefined();
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=proxy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy.test.js","sourceRoot":"","sources":["../../../src/egress/__tests__/proxy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host matching for an egress allowlist.
|
|
3
|
+
*
|
|
4
|
+
* Kept apart from the proxy because this is the part that decides whether
|
|
5
|
+
* untrusted code reaches the network, and it has to be readable on its own
|
|
6
|
+
* and testable without opening a socket.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Whether `host` is covered by `allowed`.
|
|
10
|
+
*
|
|
11
|
+
* Two forms, and only two:
|
|
12
|
+
*
|
|
13
|
+
* - `api.example.com` — that exact host.
|
|
14
|
+
* - `.example.com` — that domain and any subdomain of it.
|
|
15
|
+
*
|
|
16
|
+
* Substring matching is deliberately NOT one of them. `host.includes(entry)`
|
|
17
|
+
* is the obvious implementation and it is a hole: an allowlist entry of
|
|
18
|
+
* `example.com` would admit `example.com.attacker.net`, which is a domain
|
|
19
|
+
* the attacker owns. Suffix matching has the same hole without the leading
|
|
20
|
+
* dot — `notexample.com` ends with `example.com` — which is why the
|
|
21
|
+
* wildcard form requires it.
|
|
22
|
+
*
|
|
23
|
+
* Comparison is case-insensitive and ignores a trailing dot, because DNS
|
|
24
|
+
* treats `Example.COM.` and `example.com` as the same name and an allowlist
|
|
25
|
+
* that does not would be bypassable by typing the host differently.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isHostAllowed(host: string, allowed: readonly string[]): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Split an authority into host and port.
|
|
30
|
+
*
|
|
31
|
+
* A CONNECT target and a `Host` header both carry `host:port`, and the
|
|
32
|
+
* allowlist is about the HOST — matching the whole authority would make an
|
|
33
|
+
* entry admit one port and silently refuse the same site on another.
|
|
34
|
+
* IPv6 literals are bracketed, which is why this is not a `split(':')`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function splitAuthority(authority: string): {
|
|
37
|
+
host: string;
|
|
38
|
+
port?: number;
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=allowlist.d.ts.map
|