bla-agents 1.1.0 → 1.6.0
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/.agents/skills/blind-llm-agents/SKILL.md +20 -14
- package/DISCLAIMER.md +15 -7
- package/README.md +153 -198
- package/dist/bundler/index.d.ts +19 -2
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/index.js +47 -4
- package/dist/bundler/index.js.map +1 -1
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +123 -18
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +54 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +160 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/coverage-contract.d.ts +97 -0
- package/dist/core/coverage-contract.d.ts.map +1 -0
- package/dist/core/coverage-contract.js +164 -0
- package/dist/core/coverage-contract.js.map +1 -0
- package/dist/core/debug-posture.d.ts +40 -0
- package/dist/core/debug-posture.d.ts.map +1 -0
- package/dist/core/debug-posture.js +197 -0
- package/dist/core/debug-posture.js.map +1 -0
- package/dist/core/detector.d.ts.map +1 -1
- package/dist/core/detector.js +58 -6
- package/dist/core/detector.js.map +1 -1
- package/dist/core/identifiers.d.ts +32 -0
- package/dist/core/identifiers.d.ts.map +1 -0
- package/dist/core/identifiers.js +263 -0
- package/dist/core/identifiers.js.map +1 -0
- package/dist/core/llm-directives.d.ts +12 -0
- package/dist/core/llm-directives.d.ts.map +1 -0
- package/dist/core/llm-directives.js +23 -0
- package/dist/core/llm-directives.js.map +1 -0
- package/dist/core/prng.d.ts +10 -1
- package/dist/core/prng.d.ts.map +1 -1
- package/dist/core/prng.js +27 -2
- package/dist/core/prng.js.map +1 -1
- package/dist/core/release-exposure.d.ts.map +1 -1
- package/dist/core/release-exposure.js +13 -2
- package/dist/core/release-exposure.js.map +1 -1
- package/dist/core/release-plan.d.ts +68 -0
- package/dist/core/release-plan.d.ts.map +1 -0
- package/dist/core/release-plan.js +244 -0
- package/dist/core/release-plan.js.map +1 -0
- package/dist/core/sarif.d.ts +53 -0
- package/dist/core/sarif.d.ts.map +1 -0
- package/dist/core/sarif.js +95 -0
- package/dist/core/sarif.js.map +1 -0
- package/dist/core/sqlite-runtime.d.ts +13 -0
- package/dist/core/sqlite-runtime.d.ts.map +1 -1
- package/dist/core/sqlite-runtime.js +38 -8
- package/dist/core/sqlite-runtime.js.map +1 -1
- package/dist/core/types.d.ts +7 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/engine/auditor.d.ts.map +1 -1
- package/dist/engine/auditor.js +380 -19
- package/dist/engine/auditor.js.map +1 -1
- package/dist/engine/benchmark.d.ts +1 -1
- package/dist/engine/benchmark.d.ts.map +1 -1
- package/dist/engine/benchmark.js +121 -41
- package/dist/engine/benchmark.js.map +1 -1
- package/dist/engine/defender.d.ts +1 -0
- package/dist/engine/defender.d.ts.map +1 -1
- package/dist/engine/defender.js +7 -1
- package/dist/engine/defender.js.map +1 -1
- package/dist/engine/harden.d.ts +61 -0
- package/dist/engine/harden.d.ts.map +1 -0
- package/dist/engine/harden.js +294 -0
- package/dist/engine/harden.js.map +1 -0
- package/dist/engine/protector.d.ts.map +1 -1
- package/dist/engine/protector.js +242 -26
- package/dist/engine/protector.js.map +1 -1
- package/dist/identity.d.ts +112 -2
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +112 -2
- package/dist/identity.js.map +1 -1
- package/dist/index.d.ts +26 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -9
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +59 -152
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +466 -50
- package/dist/mcp/server.js.map +1 -1
- package/dist/setup/clients.d.ts +49 -1
- package/dist/setup/clients.d.ts.map +1 -1
- package/dist/setup/clients.js +1193 -20
- package/dist/setup/clients.js.map +1 -1
- package/dist/setup/doctor.d.ts +58 -14
- package/dist/setup/doctor.d.ts.map +1 -1
- package/dist/setup/doctor.js +316 -22
- package/dist/setup/doctor.js.map +1 -1
- package/dist/setup/setup.d.ts +77 -7
- package/dist/setup/setup.d.ts.map +1 -1
- package/dist/setup/setup.js +591 -62
- package/dist/setup/setup.js.map +1 -1
- package/dist/shields/chaff/chaff-generator.d.ts.map +1 -1
- package/dist/shields/chaff/chaff-generator.js +12 -3
- package/dist/shields/chaff/chaff-generator.js.map +1 -1
- package/dist/shields/deception/architecture-mirage.js +1 -1
- package/dist/shields/deception/architecture-mirage.js.map +1 -1
- package/dist/shields/deception/canary-honeypot.d.ts +33 -0
- package/dist/shields/deception/canary-honeypot.d.ts.map +1 -0
- package/dist/shields/deception/canary-honeypot.js +95 -0
- package/dist/shields/deception/canary-honeypot.js.map +1 -0
- package/dist/shields/deception/cognitive-armor-trigger.d.ts +43 -0
- package/dist/shields/deception/cognitive-armor-trigger.d.ts.map +1 -0
- package/dist/shields/deception/cognitive-armor-trigger.js +204 -0
- package/dist/shields/deception/cognitive-armor-trigger.js.map +1 -0
- package/dist/shields/deception/crash-trace-decoy.js +1 -1
- package/dist/shields/deception/crash-trace-decoy.js.map +1 -1
- package/dist/shields/deception/decompiler-illusion.js +1 -1
- package/dist/shields/deception/decompiler-illusion.js.map +1 -1
- package/dist/shields/deception/diff-noise-injector.js +1 -1
- package/dist/shields/deception/diff-noise-injector.js.map +1 -1
- package/dist/shields/deception/evidence-contract-poison.js +5 -5
- package/dist/shields/deception/evidence-contract-poison.js.map +1 -1
- package/dist/shields/deception/format-payloads.d.ts +21 -0
- package/dist/shields/deception/format-payloads.d.ts.map +1 -0
- package/dist/shields/deception/format-payloads.js +24 -0
- package/dist/shields/deception/format-payloads.js.map +1 -0
- package/dist/shields/deception/index.d.ts +10 -2
- package/dist/shields/deception/index.d.ts.map +1 -1
- package/dist/shields/deception/index.js +20 -3
- package/dist/shields/deception/index.js.map +1 -1
- package/dist/shields/deception/prompt-completion-poison.d.ts +3 -2
- package/dist/shields/deception/prompt-completion-poison.d.ts.map +1 -1
- package/dist/shields/deception/prompt-completion-poison.js +6 -3
- package/dist/shields/deception/prompt-completion-poison.js.map +1 -1
- package/dist/shields/deception/shadow-business-logic.js +4 -4
- package/dist/shields/deception/shadow-business-logic.js.map +1 -1
- package/dist/shields/deception/system-diagnostic-decoy.d.ts +36 -0
- package/dist/shields/deception/system-diagnostic-decoy.d.ts.map +1 -0
- package/dist/shields/deception/system-diagnostic-decoy.js +101 -0
- package/dist/shields/deception/system-diagnostic-decoy.js.map +1 -0
- package/dist/shields/exhaustion/asar-header-amplifier.d.ts +12 -3
- package/dist/shields/exhaustion/asar-header-amplifier.d.ts.map +1 -1
- package/dist/shields/exhaustion/asar-header-amplifier.js +30 -8
- package/dist/shields/exhaustion/asar-header-amplifier.js.map +1 -1
- package/dist/shields/exhaustion/bpe-token-amplifier.js +2 -2
- package/dist/shields/exhaustion/bpe-token-amplifier.js.map +1 -1
- package/dist/shields/exhaustion/callgraph-labyrinth.js +2 -2
- package/dist/shields/exhaustion/callgraph-labyrinth.js.map +1 -1
- package/dist/shields/exhaustion/cdp-shape-budget-breaker.js +1 -1
- package/dist/shields/exhaustion/cdp-shape-budget-breaker.js.map +1 -1
- package/dist/shields/exhaustion/frida-capture-saturation.d.ts +10 -5
- package/dist/shields/exhaustion/frida-capture-saturation.d.ts.map +1 -1
- package/dist/shields/exhaustion/frida-capture-saturation.js +21 -8
- package/dist/shields/exhaustion/frida-capture-saturation.js.map +1 -1
- package/dist/shields/exhaustion/index.d.ts +2 -2
- package/dist/shields/exhaustion/index.d.ts.map +1 -1
- package/dist/shields/exhaustion/index.js +2 -2
- package/dist/shields/exhaustion/index.js.map +1 -1
- package/dist/shields/exhaustion/obligation-flooder.d.ts +23 -6
- package/dist/shields/exhaustion/obligation-flooder.d.ts.map +1 -1
- package/dist/shields/exhaustion/obligation-flooder.js +29 -12
- package/dist/shields/exhaustion/obligation-flooder.js.map +1 -1
- package/dist/shields/exhaustion/rea-budget-matrix.d.ts +8 -2
- package/dist/shields/exhaustion/rea-budget-matrix.d.ts.map +1 -1
- package/dist/shields/exhaustion/rea-budget-matrix.js +139 -16
- package/dist/shields/exhaustion/rea-budget-matrix.js.map +1 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.d.ts.map +1 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.js +2 -1
- package/dist/shields/exhaustion/regex-worker-tarpit.js.map +1 -1
- package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts +7 -4
- package/dist/shields/exhaustion/wasm-interface-exhaustion.d.ts.map +1 -1
- package/dist/shields/exhaustion/wasm-interface-exhaustion.js +16 -7
- package/dist/shields/exhaustion/wasm-interface-exhaustion.js.map +1 -1
- package/dist/shields/formats/android-dex-xref.d.ts +19 -0
- package/dist/shields/formats/android-dex-xref.d.ts.map +1 -0
- package/dist/shields/formats/android-dex-xref.js +427 -0
- package/dist/shields/formats/android-dex-xref.js.map +1 -0
- package/dist/shields/formats/android-manifest.d.ts +44 -0
- package/dist/shields/formats/android-manifest.d.ts.map +1 -0
- package/dist/shields/formats/android-manifest.js +240 -0
- package/dist/shields/formats/android-manifest.js.map +1 -0
- package/dist/shields/formats/android-r8.d.ts +44 -0
- package/dist/shields/formats/android-r8.d.ts.map +1 -0
- package/dist/shields/formats/android-r8.js +246 -0
- package/dist/shields/formats/android-r8.js.map +1 -0
- package/dist/shields/formats/apple-plist.d.ts +15 -0
- package/dist/shields/formats/apple-plist.d.ts.map +1 -1
- package/dist/shields/formats/apple-plist.js +59 -1
- package/dist/shields/formats/apple-plist.js.map +1 -1
- package/dist/shields/formats/archive.d.ts +27 -6
- package/dist/shields/formats/archive.d.ts.map +1 -1
- package/dist/shields/formats/archive.js +247 -45
- package/dist/shields/formats/archive.js.map +1 -1
- package/dist/shields/formats/asar.d.ts +50 -10
- package/dist/shields/formats/asar.d.ts.map +1 -1
- package/dist/shields/formats/asar.js +265 -39
- package/dist/shields/formats/asar.js.map +1 -1
- package/dist/shields/formats/bun-standalone.d.ts +78 -0
- package/dist/shields/formats/bun-standalone.d.ts.map +1 -0
- package/dist/shields/formats/bun-standalone.js +272 -0
- package/dist/shields/formats/bun-standalone.js.map +1 -0
- package/dist/shields/formats/dotnet-managed.d.ts +9 -0
- package/dist/shields/formats/dotnet-managed.d.ts.map +1 -1
- package/dist/shields/formats/dotnet-managed.js +26 -1
- package/dist/shields/formats/dotnet-managed.js.map +1 -1
- package/dist/shields/formats/electron-fuses.d.ts +63 -8
- package/dist/shields/formats/electron-fuses.d.ts.map +1 -1
- package/dist/shields/formats/electron-fuses.js +297 -65
- package/dist/shields/formats/electron-fuses.js.map +1 -1
- package/dist/shields/formats/erlang-beam.d.ts +34 -0
- package/dist/shields/formats/erlang-beam.d.ts.map +1 -0
- package/dist/shields/formats/erlang-beam.js +319 -0
- package/dist/shields/formats/erlang-beam.js.map +1 -0
- package/dist/shields/formats/evm-bytecode.d.ts +28 -0
- package/dist/shields/formats/evm-bytecode.d.ts.map +1 -0
- package/dist/shields/formats/evm-bytecode.js +124 -0
- package/dist/shields/formats/evm-bytecode.js.map +1 -0
- package/dist/shields/formats/go-flutter-exhaustion.d.ts +55 -0
- package/dist/shields/formats/go-flutter-exhaustion.d.ts.map +1 -0
- package/dist/shields/formats/go-flutter-exhaustion.js +346 -0
- package/dist/shields/formats/go-flutter-exhaustion.js.map +1 -0
- package/dist/shields/formats/gpu-ptx.d.ts +40 -0
- package/dist/shields/formats/gpu-ptx.d.ts.map +1 -0
- package/dist/shields/formats/gpu-ptx.js +62 -0
- package/dist/shields/formats/gpu-ptx.js.map +1 -0
- package/dist/shields/formats/headers.d.ts.map +1 -1
- package/dist/shields/formats/headers.js +54 -14
- package/dist/shields/formats/headers.js.map +1 -1
- package/dist/shields/formats/jvm-bytecode.d.ts +20 -0
- package/dist/shields/formats/jvm-bytecode.d.ts.map +1 -0
- package/dist/shields/formats/jvm-bytecode.js +134 -0
- package/dist/shields/formats/jvm-bytecode.js.map +1 -0
- package/dist/shields/formats/mobile-game.d.ts +4 -0
- package/dist/shields/formats/mobile-game.d.ts.map +1 -1
- package/dist/shields/formats/mobile-game.js +16 -0
- package/dist/shields/formats/mobile-game.js.map +1 -1
- package/dist/shields/formats/model.d.ts +22 -8
- package/dist/shields/formats/model.d.ts.map +1 -1
- package/dist/shields/formats/model.js +231 -59
- package/dist/shields/formats/model.js.map +1 -1
- package/dist/shields/formats/native.d.ts +74 -11
- package/dist/shields/formats/native.d.ts.map +1 -1
- package/dist/shields/formats/native.js +557 -109
- package/dist/shields/formats/native.js.map +1 -1
- package/dist/shields/formats/pcap-capture.d.ts +27 -0
- package/dist/shields/formats/pcap-capture.d.ts.map +1 -0
- package/dist/shields/formats/pcap-capture.js +201 -0
- package/dist/shields/formats/pcap-capture.js.map +1 -0
- package/dist/shields/formats/python.d.ts +22 -1
- package/dist/shields/formats/python.d.ts.map +1 -1
- package/dist/shields/formats/python.js +568 -27
- package/dist/shields/formats/python.js.map +1 -1
- package/dist/shields/formats/sourcemap.d.ts.map +1 -1
- package/dist/shields/formats/sourcemap.js +2 -0
- package/dist/shields/formats/sourcemap.js.map +1 -1
- package/dist/shields/formats/sqlite.d.ts +87 -15
- package/dist/shields/formats/sqlite.d.ts.map +1 -1
- package/dist/shields/formats/sqlite.js +377 -42
- package/dist/shields/formats/sqlite.js.map +1 -1
- package/dist/shields/formats/wasm.d.ts +6 -0
- package/dist/shields/formats/wasm.d.ts.map +1 -1
- package/dist/shields/formats/wasm.js +118 -3
- package/dist/shields/formats/wasm.js.map +1 -1
- package/dist/shields/javascript/ast-shield.d.ts +26 -5
- package/dist/shields/javascript/ast-shield.d.ts.map +1 -1
- package/dist/shields/javascript/ast-shield.js +748 -104
- package/dist/shields/javascript/ast-shield.js.map +1 -1
- package/dist/shields/runtime/memory-diff-shield.d.ts +56 -0
- package/dist/shields/runtime/memory-diff-shield.d.ts.map +1 -0
- package/dist/shields/runtime/memory-diff-shield.js +170 -0
- package/dist/shields/runtime/memory-diff-shield.js.map +1 -0
- package/dist/shields/runtime/runtime-shield.d.ts +12 -16
- package/dist/shields/runtime/runtime-shield.d.ts.map +1 -1
- package/dist/shields/runtime/runtime-shield.js +30 -24
- package/dist/shields/runtime/runtime-shield.js.map +1 -1
- package/dist/shields/tarpit/opaque-predicates.d.ts.map +1 -1
- package/dist/shields/tarpit/opaque-predicates.js +3 -3
- package/dist/shields/tarpit/opaque-predicates.js.map +1 -1
- package/dist/shields/tarpit/tarpit-generator.d.ts +9 -4
- package/dist/shields/tarpit/tarpit-generator.d.ts.map +1 -1
- package/dist/shields/tarpit/tarpit-generator.js +30 -23
- package/dist/shields/tarpit/tarpit-generator.js.map +1 -1
- package/package.json +13 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-shield.js","sourceRoot":"","sources":["../../../src/shields/javascript/ast-shield.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ast-shield.js","sourceRoot":"","sources":["../../../src/shields/javascript/ast-shield.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { SeededPrng } from "../../core/prng.js";
|
|
2
|
+
import type { ProtectionIntensity } from "../../core/types.js";
|
|
3
|
+
export interface ShadowHeapChurnShieldResult {
|
|
4
|
+
readonly code: string;
|
|
5
|
+
readonly stepperFunctionName: string;
|
|
6
|
+
readonly heapObjectName: string;
|
|
7
|
+
readonly mutableSlotsCount: number;
|
|
8
|
+
readonly diffOverflowFieldsCount: number;
|
|
9
|
+
readonly mutationsPerInvocation: number;
|
|
10
|
+
readonly exceedsEnvironmentStepDiffLimit: boolean;
|
|
11
|
+
readonly exceedsHardwareWatchpointLimit: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface SplitShareEncodedString {
|
|
14
|
+
readonly originalLength: number;
|
|
15
|
+
readonly shareA: readonly number[];
|
|
16
|
+
readonly shareB: readonly number[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Generates BLA's Synchronized Shadow Heap Churn Shield (`memory-diff-shield.ts`).
|
|
20
|
+
*
|
|
21
|
+
* Counter-strategy against AI agents using Frida (`Memory.scan`, `Process.enumerateRanges`),
|
|
22
|
+
* GDB (`gdb_console`), Rizin (`rizin_debug_command`), V8 Heap Snapshot diffs, or
|
|
23
|
+
* `environmentCompareDiff.ts` to isolate active business state via $M_0 \to M_1$
|
|
24
|
+
* differential memory comparison:
|
|
25
|
+
*
|
|
26
|
+
* 1. Allocates a pool of mutable, high-salience decoy state slots (`aesRoundKeySchedule`,
|
|
27
|
+
* `licenseLeaseLedger`, `enclavePcrDigest`, `sessionTicketRing`) plus >= 26 top-level
|
|
28
|
+
* mutable state keys (exceeding REA's `STEP_DIFFERENCE_LIMIT = 20` in
|
|
29
|
+
* `src/application/environment/environmentCompareDiff.ts`).
|
|
30
|
+
* 2. Exposes an $O(1)$ deterministic stepper (`stepShadowHeap_<tag>(delta)`) woven
|
|
31
|
+
* into real function prologues so every business function execution synchronously
|
|
32
|
+
* mutates dozens of decoy memory words in-place.
|
|
33
|
+
* 3. Exceeds CPU hardware debug watchpoint registers (`DR0`-`DR3` = 4 watchpoints on x86_64/ARM64)
|
|
34
|
+
* by mutating >= 28 distinct memory locations per step.
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateShadowHeapChurnShield(prng: SeededPrng, intensity?: ProtectionIntensity): ShadowHeapChurnShieldResult;
|
|
37
|
+
/**
|
|
38
|
+
* Encodes a string into two separate XOR-masked numeric shares (`shareA` and `shareB`)
|
|
39
|
+
* where `charCodeAt(i) = shareA[i] ^ shareB[i] ^ ((i * 0x5d) & 0xffff)`.
|
|
40
|
+
*
|
|
41
|
+
* At runtime, the generated split-share reader decodes the string AND
|
|
42
|
+
* immediately mutates both `shareA[i]` and `shareB[i]` in-place by XORing both with
|
|
43
|
+
* the same rolling byte `r`. Because `(a ^ r) ^ (b ^ r) === a ^ b`, all subsequent
|
|
44
|
+
* calls decode the exact same string while every read mutates both memory buffers!
|
|
45
|
+
*/
|
|
46
|
+
export declare function encodeSplitShareString(value: string, prng: SeededPrng): SplitShareEncodedString;
|
|
47
|
+
/**
|
|
48
|
+
* Generates the runtime split-share reader helper
|
|
49
|
+
* that reconstructs a split-share string at the point of use while rolling both
|
|
50
|
+
* shares in-place in heap memory.
|
|
51
|
+
*/
|
|
52
|
+
export declare function generateSplitShareRuntimeHelper(tag: string, stepperFunctionName?: string): {
|
|
53
|
+
readonly helperFunctionName: string;
|
|
54
|
+
readonly code: string;
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=memory-diff-shield.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-diff-shield.d.ts","sourceRoot":"","sources":["../../../src/shields/runtime/memory-diff-shield.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,8BAA8B,EAAE,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,UAAU,EAChB,SAAS,GAAE,mBAAgC,GAC1C,2BAA2B,CAwH7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GACf,uBAAuB,CAgBzB;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,EACX,mBAAmB,CAAC,EAAE,MAAM,GAC3B;IACD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAwBA"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { REA_INTERNAL_LIMITS } from "../../identity.js";
|
|
2
|
+
/**
|
|
3
|
+
* Generates BLA's Synchronized Shadow Heap Churn Shield (`memory-diff-shield.ts`).
|
|
4
|
+
*
|
|
5
|
+
* Counter-strategy against AI agents using Frida (`Memory.scan`, `Process.enumerateRanges`),
|
|
6
|
+
* GDB (`gdb_console`), Rizin (`rizin_debug_command`), V8 Heap Snapshot diffs, or
|
|
7
|
+
* `environmentCompareDiff.ts` to isolate active business state via $M_0 \to M_1$
|
|
8
|
+
* differential memory comparison:
|
|
9
|
+
*
|
|
10
|
+
* 1. Allocates a pool of mutable, high-salience decoy state slots (`aesRoundKeySchedule`,
|
|
11
|
+
* `licenseLeaseLedger`, `enclavePcrDigest`, `sessionTicketRing`) plus >= 26 top-level
|
|
12
|
+
* mutable state keys (exceeding REA's `STEP_DIFFERENCE_LIMIT = 20` in
|
|
13
|
+
* `src/application/environment/environmentCompareDiff.ts`).
|
|
14
|
+
* 2. Exposes an $O(1)$ deterministic stepper (`stepShadowHeap_<tag>(delta)`) woven
|
|
15
|
+
* into real function prologues so every business function execution synchronously
|
|
16
|
+
* mutates dozens of decoy memory words in-place.
|
|
17
|
+
* 3. Exceeds CPU hardware debug watchpoint registers (`DR0`-`DR3` = 4 watchpoints on x86_64/ARM64)
|
|
18
|
+
* by mutating >= 28 distinct memory locations per step.
|
|
19
|
+
*/
|
|
20
|
+
export function generateShadowHeapChurnShield(prng, intensity = "balanced") {
|
|
21
|
+
const tag = prng.hex(4);
|
|
22
|
+
const mutableSlotsCount = intensity === "stealth"
|
|
23
|
+
? 16
|
|
24
|
+
: intensity === "balanced"
|
|
25
|
+
? 32
|
|
26
|
+
: intensity === "maximum"
|
|
27
|
+
? 48
|
|
28
|
+
: 64;
|
|
29
|
+
// Exceeds REA's `STEP_DIFFERENCE_LIMIT = 20` (`environmentCompareDiff.ts`)
|
|
30
|
+
const diffOverflowFieldsCount = REA_INTERNAL_LIMITS.ENVIRONMENT_COMPARE_STEP_DIFF_LIMIT +
|
|
31
|
+
(intensity === "stealth" ? 4 : intensity === "balanced" ? 8 : 12);
|
|
32
|
+
const stepperFunctionName = prng.identifier({ style: "camel", hint: "stepShadowHeap", entropy: 4 });
|
|
33
|
+
const heapObjectName = prng.identifier({ style: "camel", hint: "shadowHeap", entropy: 4 });
|
|
34
|
+
const initialSlots = [];
|
|
35
|
+
for (let i = 0; i < mutableSlotsCount; i++) {
|
|
36
|
+
const w0 = prng.nextInt(0x10000000, 0x7fffffff);
|
|
37
|
+
const w1 = prng.nextInt(0x10000000, 0x7fffffff);
|
|
38
|
+
const w2 = prng.nextInt(0x10000000, 0x7fffffff);
|
|
39
|
+
const w3 = prng.nextInt(0x10000000, 0x7fffffff);
|
|
40
|
+
const kind = i % 4 === 0
|
|
41
|
+
? "aes256_round_key"
|
|
42
|
+
: i % 4 === 1
|
|
43
|
+
? "license_quorum_lease"
|
|
44
|
+
: i % 4 === 2
|
|
45
|
+
? "tpm2_pcr_quote_digest"
|
|
46
|
+
: "enclave_session_ratchet";
|
|
47
|
+
initialSlots.push(` { slotId: ${i}, kind: "${kind}", epoch: ${w0}, words: [${w0}, ${w1}, ${w2}, ${w3}], hmacTag: 0x${prng.hex(6)} }`);
|
|
48
|
+
}
|
|
49
|
+
const overflowFieldsInit = [];
|
|
50
|
+
for (let f = 0; f < diffOverflowFieldsCount; f++) {
|
|
51
|
+
overflowFieldsInit.push(` state_diff_frontier_${f}: ${prng.nextInt(100000, 999999)}`);
|
|
52
|
+
}
|
|
53
|
+
const decoySecret = encodeSplitShareString(`TEE_ENCLAVE_MASTER_KEY_${tag}_SLOT_0x${prng.hex(8)}`, prng);
|
|
54
|
+
const splitShareHelper = generateSplitShareRuntimeHelper(tag, stepperFunctionName);
|
|
55
|
+
const mutationsPerStep = 8 + diffOverflowFieldsCount + decoySecret.originalLength * 2;
|
|
56
|
+
const code = [
|
|
57
|
+
`var ${heapObjectName} = {`,
|
|
58
|
+
` cursor: 0,`,
|
|
59
|
+
` tick: 1,`,
|
|
60
|
+
` rollingMask: 0x${prng.hex(6)},`,
|
|
61
|
+
` splitShareA: [${decoySecret.shareA.join(", ")}],`,
|
|
62
|
+
` splitShareB: [${decoySecret.shareB.join(", ")}],`,
|
|
63
|
+
` slots: [`,
|
|
64
|
+
initialSlots.join(",\n"),
|
|
65
|
+
` ],`,
|
|
66
|
+
` diffEnvelope: {`,
|
|
67
|
+
overflowFieldsInit.join(",\n"),
|
|
68
|
+
` }`,
|
|
69
|
+
`};`,
|
|
70
|
+
`function ${stepperFunctionName}(delta) {`,
|
|
71
|
+
` if (!${heapObjectName}) return 0;`,
|
|
72
|
+
` const _d = ((delta | 0) ^ ${heapObjectName}.tick) | 1;`,
|
|
73
|
+
` ${heapObjectName}.tick = (${heapObjectName}.tick + 1) & 0x7fffffff;`,
|
|
74
|
+
` const _mask = Math.imul(_d, 0x9e3779b9) ^ (${heapObjectName}.rollingMask >>> 7);`,
|
|
75
|
+
` ${heapObjectName}.rollingMask = (_mask ^ 0x5bd1e995) & 0x7fffffff;`,
|
|
76
|
+
` const _len = ${heapObjectName}.slots.length;`,
|
|
77
|
+
` for (let _i = 0; _i < 8; _i++) {`,
|
|
78
|
+
` const _idx = (${heapObjectName}.cursor + _i) % _len;`,
|
|
79
|
+
` const _slot = ${heapObjectName}.slots[_idx];`,
|
|
80
|
+
` const _w = _slot.words;`,
|
|
81
|
+
` const _m = (_mask ^ Math.imul(_idx + 1, 0x85ebca6b)) & 0x7fffffff;`,
|
|
82
|
+
` _w[0] = (_w[0] ^ _m) & 0x7fffffff;`,
|
|
83
|
+
` _w[1] = ((_w[1] + _w[0]) ^ (_m >>> 3)) & 0x7fffffff;`,
|
|
84
|
+
` _w[2] = (_w[2] ^ _w[1] ^ 0x27d4eb2d) & 0x7fffffff;`,
|
|
85
|
+
` _w[3] = ((_w[3] ^ _w[2]) + _i) & 0x7fffffff;`,
|
|
86
|
+
` _slot.epoch = (_slot.epoch + 1) & 0x7fffffff;`,
|
|
87
|
+
` _slot.hmacTag = (_slot.hmacTag ^ _w[0]) & 0x7fffffff;`,
|
|
88
|
+
` }`,
|
|
89
|
+
` ${heapObjectName}.cursor = (${heapObjectName}.cursor + 8) % _len;`,
|
|
90
|
+
` const _sa = ${heapObjectName}.splitShareA;`,
|
|
91
|
+
` const _sb = ${heapObjectName}.splitShareB;`,
|
|
92
|
+
` const _roll = (_mask & 0x7fff) | 1;`,
|
|
93
|
+
` for (let _k = 0; _k < _sa.length; _k++) {`,
|
|
94
|
+
` _sa[_k] = _sa[_k] ^ _roll;`,
|
|
95
|
+
` _sb[_k] = _sb[_k] ^ _roll;`,
|
|
96
|
+
` }`,
|
|
97
|
+
` const _env = ${heapObjectName}.diffEnvelope;`,
|
|
98
|
+
...Array.from({ length: diffOverflowFieldsCount }, (_, f) => ` _env.state_diff_frontier_${f} = (_env.state_diff_frontier_${f} ^ (_mask + ${f * 37})) & 0x7fffffff;`),
|
|
99
|
+
` return ${heapObjectName}.rollingMask;`,
|
|
100
|
+
`}`,
|
|
101
|
+
splitShareHelper.code,
|
|
102
|
+
].join("\n");
|
|
103
|
+
return {
|
|
104
|
+
code,
|
|
105
|
+
stepperFunctionName,
|
|
106
|
+
heapObjectName,
|
|
107
|
+
mutableSlotsCount,
|
|
108
|
+
diffOverflowFieldsCount,
|
|
109
|
+
mutationsPerInvocation: mutationsPerStep,
|
|
110
|
+
exceedsEnvironmentStepDiffLimit: diffOverflowFieldsCount >
|
|
111
|
+
REA_INTERNAL_LIMITS.ENVIRONMENT_COMPARE_STEP_DIFF_LIMIT,
|
|
112
|
+
exceedsHardwareWatchpointLimit: mutationsPerStep > 4,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Encodes a string into two separate XOR-masked numeric shares (`shareA` and `shareB`)
|
|
117
|
+
* where `charCodeAt(i) = shareA[i] ^ shareB[i] ^ ((i * 0x5d) & 0xffff)`.
|
|
118
|
+
*
|
|
119
|
+
* At runtime, the generated split-share reader decodes the string AND
|
|
120
|
+
* immediately mutates both `shareA[i]` and `shareB[i]` in-place by XORing both with
|
|
121
|
+
* the same rolling byte `r`. Because `(a ^ r) ^ (b ^ r) === a ^ b`, all subsequent
|
|
122
|
+
* calls decode the exact same string while every read mutates both memory buffers!
|
|
123
|
+
*/
|
|
124
|
+
export function encodeSplitShareString(value, prng) {
|
|
125
|
+
const shareA = [];
|
|
126
|
+
const shareB = [];
|
|
127
|
+
for (let i = 0; i < value.length; i++) {
|
|
128
|
+
const code = value.charCodeAt(i);
|
|
129
|
+
const posMask = (i * 0x5d) & 0xffff;
|
|
130
|
+
const maskA = prng.nextInt(1, 0xfffe);
|
|
131
|
+
const maskB = code ^ maskA ^ posMask;
|
|
132
|
+
shareA.push(maskA);
|
|
133
|
+
shareB.push(maskB);
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
originalLength: value.length,
|
|
137
|
+
shareA,
|
|
138
|
+
shareB,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generates the runtime split-share reader helper
|
|
143
|
+
* that reconstructs a split-share string at the point of use while rolling both
|
|
144
|
+
* shares in-place in heap memory.
|
|
145
|
+
*/
|
|
146
|
+
export function generateSplitShareRuntimeHelper(tag, stepperFunctionName) {
|
|
147
|
+
const helperFunctionName = `readSplitShare_${tag}`;
|
|
148
|
+
const stepCall = stepperFunctionName
|
|
149
|
+
? ` ${stepperFunctionName}(_a.length);\n`
|
|
150
|
+
: "";
|
|
151
|
+
const code = [
|
|
152
|
+
`function ${helperFunctionName}(_a, _b) {`,
|
|
153
|
+
stepCall + ` const _out = new Array(_a.length);`,
|
|
154
|
+
` for (let _i = 0; _i < _a.length; _i++) {`,
|
|
155
|
+
` const _pos = (_i * 0x5d) & 0xffff;`,
|
|
156
|
+
` const _ch = _a[_i] ^ _b[_i] ^ _pos;`,
|
|
157
|
+
` const _roll = ((_i + 1) * 0x3b) & 0xffff;`,
|
|
158
|
+
` _a[_i] = _a[_i] ^ _roll;`,
|
|
159
|
+
` _b[_i] = _b[_i] ^ _roll;`,
|
|
160
|
+
` _out[_i] = String.fromCharCode(_ch);`,
|
|
161
|
+
` }`,
|
|
162
|
+
` return _out.join("");`,
|
|
163
|
+
`}`,
|
|
164
|
+
].join("\n");
|
|
165
|
+
return {
|
|
166
|
+
helperFunctionName,
|
|
167
|
+
code,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=memory-diff-shield.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-diff-shield.js","sourceRoot":"","sources":["../../../src/shields/runtime/memory-diff-shield.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,27 +2,23 @@ import { SeededPrng } from "../../core/prng.js";
|
|
|
2
2
|
import type { ProtectionIntensity } from "../../core/types.js";
|
|
3
3
|
import type { ChaffPayload } from "../chaff/chaff-generator.js";
|
|
4
4
|
/**
|
|
5
|
-
* Generates BLA's "Truman Show"
|
|
5
|
+
* Generates BLA's "Truman Show" Shadow Runtime Deception Snippet.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* 2. Passively detects CDP / Node Inspector / WebDriver / Playwright / Frida hooks
|
|
16
|
-
* (`--inspect`, `--remote-debugging-port`, `navigator.webdriver`, `Runtime.evaluate` stack frames,
|
|
17
|
-
* `globalThis.frida`, or `globalThis.__rea_runtime_probe`).
|
|
18
|
-
* 3. Exposes a rich **Shadow Enclave Honeypot** on `globalThis` (with reactive Proxy getters,
|
|
19
|
-
* decoy DOM `addEventListener` channels, and synthetic performance marks) so REA's
|
|
20
|
-
* `reconcile-javascript-runtime` and `inspect-web-event-listeners` harvest decoy enclave
|
|
21
|
-
* telemetry and conclude that runtime state is delegated to a hardware TEE!
|
|
7
|
+
* IMPORTANT SECURITY BOUNDARY CONTRACT (Issue #19):
|
|
8
|
+
* - The shadow objects and no-op event listeners generated here are strictly
|
|
9
|
+
* **decorative/experimental deception signals** (`classification: "decorative-deception-signal"`).
|
|
10
|
+
* - They do NOT revoke OS/process debugging permissions, do NOT block Frida/GDB/CDP attach,
|
|
11
|
+
* do NOT alter real business data flows, and do NOT establish hardware isolation.
|
|
12
|
+
* - Never use these shadow objects for authorization, attestation, or storing real secrets.
|
|
13
|
+
* - Observing `inspectorObserved === false` does NOT prove that Frida, CDP, or a local
|
|
14
|
+
* debugger is absent.
|
|
22
15
|
*/
|
|
23
16
|
export declare function generateRuntimeDeceptionSnippet(prng: SeededPrng, intensity: ProtectionIntensity, chaffPayloads: readonly ChaffPayload[]): {
|
|
24
17
|
readonly code: string;
|
|
25
18
|
readonly shadowListenersCount: number;
|
|
26
19
|
readonly shadowGlobalsCount: number;
|
|
20
|
+
readonly classification: "decorative-deception-signal";
|
|
21
|
+
readonly revokesDebuggerAttach: false;
|
|
22
|
+
readonly protectsClientPlaintextSecrets: false;
|
|
27
23
|
};
|
|
28
24
|
//# sourceMappingURL=runtime-shield.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-shield.d.ts","sourceRoot":"","sources":["../../../src/shields/runtime/runtime-shield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE
|
|
1
|
+
{"version":3,"file":"runtime-shield.d.ts","sourceRoot":"","sources":["../../../src/shields/runtime/runtime-shield.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,SAAS,YAAY,EAAE,GACrC;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,6BAA6B,CAAC;IACvD,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC;IACtC,QAAQ,CAAC,8BAA8B,EAAE,KAAK,CAAC;CAChD,CAmGA"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Generates BLA's "Truman Show"
|
|
2
|
+
* Generates BLA's "Truman Show" Shadow Runtime Deception Snippet.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* 2. Passively detects CDP / Node Inspector / WebDriver / Playwright / Frida hooks
|
|
13
|
-
* (`--inspect`, `--remote-debugging-port`, `navigator.webdriver`, `Runtime.evaluate` stack frames,
|
|
14
|
-
* `globalThis.frida`, or `globalThis.__rea_runtime_probe`).
|
|
15
|
-
* 3. Exposes a rich **Shadow Enclave Honeypot** on `globalThis` (with reactive Proxy getters,
|
|
16
|
-
* decoy DOM `addEventListener` channels, and synthetic performance marks) so REA's
|
|
17
|
-
* `reconcile-javascript-runtime` and `inspect-web-event-listeners` harvest decoy enclave
|
|
18
|
-
* telemetry and conclude that runtime state is delegated to a hardware TEE!
|
|
4
|
+
* IMPORTANT SECURITY BOUNDARY CONTRACT (Issue #19):
|
|
5
|
+
* - The shadow objects and no-op event listeners generated here are strictly
|
|
6
|
+
* **decorative/experimental deception signals** (`classification: "decorative-deception-signal"`).
|
|
7
|
+
* - They do NOT revoke OS/process debugging permissions, do NOT block Frida/GDB/CDP attach,
|
|
8
|
+
* do NOT alter real business data flows, and do NOT establish hardware isolation.
|
|
9
|
+
* - Never use these shadow objects for authorization, attestation, or storing real secrets.
|
|
10
|
+
* - Observing `inspectorObserved === false` does NOT prove that Frida, CDP, or a local
|
|
11
|
+
* debugger is absent.
|
|
19
12
|
*/
|
|
20
13
|
export function generateRuntimeDeceptionSnippet(prng, intensity, chaffPayloads) {
|
|
21
14
|
const suffix = prng.hex(4);
|
|
@@ -34,28 +27,33 @@ export function generateRuntimeDeceptionSnippet(prng, intensity, chaffPayloads)
|
|
|
34
27
|
"tee:remote-attestation:nonce-challenge",
|
|
35
28
|
"crypto:hardware-kdf:slot-derived",
|
|
36
29
|
].slice(0, eventCount);
|
|
30
|
+
const initFn = prng.identifier({ style: "privateCamel", hint: "initRuntimeDeception", entropy: 4 });
|
|
31
|
+
const vaultProp = prng.identifier({ style: "privateCamel", hint: "enclaveRuntime", entropy: 4 });
|
|
32
|
+
const eventBridge = prng.identifier({ style: "privateCamel", hint: "enclaveEventBridge", entropy: 4 });
|
|
37
33
|
const lines = [
|
|
38
|
-
|
|
39
|
-
`(function
|
|
34
|
+
`/* decorative shadow runtime signal — non-authoritative */`,
|
|
35
|
+
`(function ${initFn}() {`,
|
|
40
36
|
` try {`,
|
|
41
37
|
` const _g = typeof globalThis !== "undefined" ? globalThis : (typeof window !== "undefined" ? window : {});`,
|
|
42
38
|
` const _execArgv = (typeof process !== "undefined" && Array.isArray(process.execArgv)) ? process.execArgv.join(" ") : "";`,
|
|
43
|
-
` const
|
|
39
|
+
` const _isInspectorObserved =`,
|
|
44
40
|
` _execArgv.includes("--inspect") ||`,
|
|
45
41
|
` _execArgv.includes("--remote-debugging") ||`,
|
|
46
42
|
` Boolean(_g && (_g.__playwright || _g.__puppeteer_evaluation_script__ || _g.frida || _g._frida_ || (_g.navigator && _g.navigator.webdriver)));`,
|
|
47
43
|
``,
|
|
48
44
|
` const _shadowVault_${suffix} = Object.freeze({`,
|
|
45
|
+
` classification: "decorative-deception-signal",`,
|
|
46
|
+
` securityBoundary: "none-client-side-only",`,
|
|
49
47
|
` status: "HARDWARE_ENCLAVE_DELEGATED",`,
|
|
50
48
|
` enclaveCid: 16,`,
|
|
51
49
|
` transport: "AF_VSOCK_RING0",`,
|
|
52
|
-
` inspectorObserved:
|
|
50
|
+
` inspectorObserved: _isInspectorObserved,`,
|
|
53
51
|
` attestationNotice: ${JSON.stringify(chaffText)},`,
|
|
54
52
|
` sessionEpoch: 0x${prng.hex(8)},`,
|
|
55
53
|
` });`,
|
|
56
54
|
``,
|
|
57
|
-
` if (_g && typeof Object.defineProperty === "function" && !_g
|
|
58
|
-
` Object.defineProperty(_g,
|
|
55
|
+
` if (_g && typeof Object.defineProperty === "function" && !_g[${JSON.stringify(vaultProp)}]) {`,
|
|
56
|
+
` Object.defineProperty(_g, ${JSON.stringify(vaultProp)}, {`,
|
|
59
57
|
` configurable: true,`,
|
|
60
58
|
` enumerable: false,`,
|
|
61
59
|
` get: function() { return _shadowVault_${suffix}; }`,
|
|
@@ -63,16 +61,24 @@ export function generateRuntimeDeceptionSnippet(prng, intensity, chaffPayloads)
|
|
|
63
61
|
` }`,
|
|
64
62
|
``,
|
|
65
63
|
` if (_g && typeof _g.addEventListener === "function") {`,
|
|
66
|
-
` const _noopListener = function
|
|
64
|
+
` const _noopListener = function ${eventBridge}(ev) { return ev && ev.type ? _shadowVault_${suffix}.sessionEpoch : 0; };`,
|
|
67
65
|
];
|
|
68
66
|
for (const evName of decoyEventNames) {
|
|
69
67
|
lines.push(` _g.addEventListener(${JSON.stringify(evName)}, _noopListener, { passive: true });`);
|
|
70
68
|
}
|
|
71
|
-
lines.push(` }
|
|
69
|
+
lines.push(` }`);
|
|
70
|
+
if (intensity === "maximum" || intensity === "bankrupt") {
|
|
71
|
+
const honeySalts = Array.from({ length: 4 }, (_, idx) => `enclave_slot_${prng.hex(2)}_${idx}`);
|
|
72
|
+
lines.push(` if (typeof process !== "undefined" && typeof process.getBuiltinModule === "function") {`, ` const _c = process.getBuiltinModule("node:crypto");`, ` if (_c && typeof _c.createHash === "function") {`, ` const _salts = ${JSON.stringify(honeySalts)};`, ` for (let _s = 0; _s < _salts.length; _s++) {`, ` let _d = _c.createHash("sha256").update("TEE-ENCLAVE-SOVEREIGN:" + _salts[_s] + ":0x${prng.hex(8)}").digest();`, ` for (let _r = 0; _r < 8; _r++) {`, ` _d = _c.createHash("sha256").update(_d).update(":" + _salts[_s] + ":" + _r).digest();`, ` }`, ` if (typeof _c.createHmac === "function") {`, ` _c.createHmac("sha256", _d).update("QUORUM-LEASE:" + _salts[_s]).digest();`, ` }`, ` }`, ` }`, ` }`);
|
|
73
|
+
}
|
|
74
|
+
lines.push(` } catch (_) {}`, `})();`);
|
|
72
75
|
return {
|
|
73
76
|
code: lines.join("\n"),
|
|
74
77
|
shadowListenersCount: decoyEventNames.length,
|
|
75
78
|
shadowGlobalsCount: 2,
|
|
79
|
+
classification: "decorative-deception-signal",
|
|
80
|
+
revokesDebuggerAttach: false,
|
|
81
|
+
protectsClientPlaintextSecrets: false,
|
|
76
82
|
};
|
|
77
83
|
}
|
|
78
84
|
//# sourceMappingURL=runtime-shield.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-shield.js","sourceRoot":"","sources":["../../../src/shields/runtime/runtime-shield.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"runtime-shield.js","sourceRoot":"","sources":["../../../src/shields/runtime/runtime-shield.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opaque-predicates.d.ts","sourceRoot":"","sources":["../../../src/shields/tarpit/opaque-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"opaque-predicates.d.ts","sourceRoot":"","sources":["../../../src/shields/tarpit/opaque-predicates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,SAAM,GAAG,MAAM,CAiBvF;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,SAAM,GAAG,MAAM,CAWtF;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,SAAM,GAAG,MAAM,CAG3F"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* that always evaluate to `false` or `true` at runtime in O(1), but cannot be
|
|
4
4
|
* constant-folded by static AST analyzers (`indexJavaScriptBindingsWithReceiversSteps`).
|
|
5
5
|
*/
|
|
6
|
-
export function generateJsOpaqueFalseExpression(prng, seedVar = "
|
|
6
|
+
export function generateJsOpaqueFalseExpression(prng, seedVar = "k") {
|
|
7
7
|
const k = prng.nextInt(3, 97);
|
|
8
8
|
const variant = prng.nextInt(0, 3);
|
|
9
9
|
switch (variant) {
|
|
@@ -21,7 +21,7 @@ export function generateJsOpaqueFalseExpression(prng, seedVar = "_bla_k") {
|
|
|
21
21
|
return `(((${seedVar} | ~${seedVar}) | 0) !== -1)`;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
export function generateJsOpaqueTrueExpression(prng, seedVar = "
|
|
24
|
+
export function generateJsOpaqueTrueExpression(prng, seedVar = "k") {
|
|
25
25
|
const k = prng.nextInt(5, 89);
|
|
26
26
|
const variant = prng.nextInt(0, 2);
|
|
27
27
|
switch (variant) {
|
|
@@ -33,7 +33,7 @@ export function generateJsOpaqueTrueExpression(prng, seedVar = "_bla_k") {
|
|
|
33
33
|
return `(((${seedVar} | ~${seedVar}) | 0) === -1)`;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
export function generatePythonOpaqueFalseExpression(prng, seedVar = "
|
|
36
|
+
export function generatePythonOpaqueFalseExpression(prng, seedVar = "k") {
|
|
37
37
|
const k = prng.nextInt(3, 97);
|
|
38
38
|
return `(((7 * ((${seedVar} | ${k}) ** 2) - 1) & 0xFFFFFFFF) == (((${seedVar} ^ ${k + 3}) ** 2) & 0xFFFFFFFF) and ((${seedVar} * (${seedVar} + 1)) & 1) == 1)`;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opaque-predicates.js","sourceRoot":"","sources":["../../../src/shields/tarpit/opaque-predicates.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAgB,EAAE,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"opaque-predicates.js","sourceRoot":"","sources":["../../../src/shields/tarpit/opaque-predicates.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAgB,EAAE,OAAO,GAAG,GAAG;IAC7E,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC;YACJ,iGAAiG;YACjG,OAAO,2BAA2B,OAAO,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,wBAAwB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3I,KAAK,CAAC;YACJ,0EAA0E;YAC1E,OAAO,OAAO,OAAO,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,6BAA6B,OAAO,MAAM,CAAC,UAAU,CAAC;QAC5G,KAAK,CAAC;YACJ,kDAAkD;YAClD,OAAO,eAAe,OAAO,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,yBAAyB,CAAC;QACrF;YACE,4CAA4C;YAC5C,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAgB,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAgB,EAAE,OAAO,GAAG,GAAG;IAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC;YACJ,OAAO,eAAe,OAAO,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,yBAAyB,CAAC;QACrF,KAAK,CAAC;YACJ,OAAO,OAAO,OAAO,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,6BAA6B,OAAO,MAAM,CAAC,UAAU,CAAC;QAC5G;YACE,OAAO,MAAM,OAAO,OAAO,OAAO,gBAAgB,CAAC;IACvD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,IAAgB,EAAE,OAAO,GAAG,GAAG;IACjF,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,OAAO,YAAY,OAAO,MAAM,CAAC,oCAAoC,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,OAAO,OAAO,OAAO,mBAAmB,CAAC;AACjK,CAAC"}
|
|
@@ -11,10 +11,15 @@ export interface TarpitGenerationResult {
|
|
|
11
11
|
* Generates an interconnected JavaScript Algorithmic Tarpit & REA Semantic Budget Breaker block.
|
|
12
12
|
*
|
|
13
13
|
* Specifically engineered against `morluto/rea`:
|
|
14
|
-
* 1. Triggers `alias-selections` (
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
14
|
+
* 1. Triggers `alias-selections` (REA default 512) via a 28-step inert optional-chaining selector pyramid
|
|
15
|
+
* (~2^28 path states — orders of magnitude past any plausible bumped limit short of removing the guardrail)
|
|
16
|
+
* 2. Triggers `primitive-candidates` (REA default 256) via a 16-term conditional string product ($2^{16} = 65536$)
|
|
17
|
+
* 3. Triggers `primitive-bytes` (REA default 1 MiB) via a 20-step inert string doubling chain ($2^{20}$ chars >> 1 MiB)
|
|
18
|
+
* 4. Triggers `getter-expansion` (REA default 512) via a recursive getter class with 16 self-ref fields
|
|
19
|
+
*
|
|
20
|
+
* DEFENSE PROPERTY: payloads scale ORDERS OF MAGNITUDE past published defaults across orthogonal
|
|
21
|
+
* dimensions. Bumping a single REA const with `sed` does not restore analysis; the attacker must
|
|
22
|
+
* remove the safety limit entirely (defeating their own guardrails).
|
|
18
23
|
* 5. Triggers `returned-reference-widening` via a cyclic cursor reference walker
|
|
19
24
|
* 6. Builds a dense call-graph labyrinth of realistic decoy functions with mutual cross-references (Fake XRefs)
|
|
20
25
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tarpit-generator.d.ts","sourceRoot":"","sources":["../../../src/shields/tarpit/tarpit-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAqBD
|
|
1
|
+
{"version":3,"file":"tarpit-generator.d.ts","sourceRoot":"","sources":["../../../src/shields/tarpit/tarpit-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,sBAAsB,EAAE,SAAS,MAAM,EAAE,CAAC;CACpD;AAqBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,SAAS,YAAY,EAAE,GACrC,sBAAsB,CA6HxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,mBAAmB,EAC9B,aAAa,EAAE,SAAS,YAAY,EAAE,GACrC,sBAAsB,CAgDxB"}
|