Local dev URL: http://localhost:3000 (run npm run dev)
PoC mode (malware-only UI/domain) is now default. To disable and re-enable legacy domains: VITE_MALWARE_POC_MODE=0 npm run dev.
Automated Reasoning (AR) systems often face a tradeoff between expressiveness (how complex the rules can be) and tractability (how fast the system can reason). Standard Higher-Order Logics are often undecidable or exponential in complexity.
TS-PHOL (Tractable Stratified Probabilistic Higher-Order Logic) solves this by:
- Enforcing PTIME Complexity: Using a restricted logical fragment that guarantees polynomial-time inference.
- Neuro-Symbolic Composition: Seamlessly combining low-level Machine Learning (ML) probabilistic signals with high-level symbolic rules.
- Machine-Checkable Proofs: Generating structured, low-burden logical explanations for every decision, ensuring human trust and auditability.
- Configure Scenario: Go to the Scenario tab. In malware mode, adjust the endpoint count or edit endpoint parameters (defender telemetry, suspicious behavior intensity, responder capacity, telemetry gaps).
- Inspect ML Signals: Switch to the ML Signals tab to see raw probability predictions from the neural layer.
- Run Inference: Click the Run Inference button in the header. Watch the progress bar as the system moves from World State to Final Decision.
- Inspect Proof: Go to the Proof tab. Select a decision to see its derivation tree. Hover over nodes to see which endpoints triggered specific rules.
- What-If Analysis: In the Inference tab, adjust the
p_attackthreshold slider to see how containment recommendations change under different risk tolerances.
- Stratum: A logical layer in the reasoning hierarchy. Higher strata depend on lower ones, preventing cycles and ensuring tractability.
- Grounded Fact: A concrete instance of a predicate where variables are replaced by actual entities (e.g.,
Vulnerable(Endpoint_1)). - PTIME: Polynomial Time. A complexity class ensuring the system remains fast even as the problem space (number of endpoints/zones) grows.
- Range Restriction: A safety property ensuring every variable in a rule's head also appears in its body, preventing the creation of infinite new entities.
The project is split into:
src/engine/tsphol.ts: Core inference and validation logic.src/hooks/useInference.ts: State management and inference orchestration.src/components/: Reusable UI components (Map, Decision Card, Onboarding).src/types.ts: Centralized type definitions.
This workbench already contains the core architectural skeleton required by the proposal:
- Observation layer (ML signals): per-host probabilistic telemetry can be represented by
p_attack/p_successand additional host features. - Reasoning layer (AR + symbolic rules): stratified TS-PHOL rules convert low-level signals into high-level behavior hypotheses.
- Decision layer (deception orchestration):
Execute(...)rules map recognized behavior to runtime deception ploys with proof traces.
To make this alignment explicit, the project now includes a Malware Deception (AR-ML) domain preset with deception-oriented rules such as Execute(FakeReadResponse, z) and Execute(ProcessMirror, z).
- Replace synthetic zone generation with API-call sequence ingestion (ETW/Sysmon/eBPF traces).
- Add a behavior ontology:
FileDiscovery,CredentialAccess,LateralMovement, mapped to ATT&CK techniques. - Extend validator checks to include contradiction constraints between simultaneous deception ploys.
- Add utility-based optimization to choose maximal-gain conflict-free deception bundles per host.
- Export machine-checkable proof artifacts for SOC and forensics workflows.
The workbench now includes malware-native pipeline components in addition to legacy zone simulation:
-
Observation engine: API event ingestion and rolling-window feature extraction (
src/engine/observation/apiSequenceObservation.ts). -
Behavior hypotheses: ATT&CK-like behavior abstraction (
FileDiscovery,CredentialAccess,Collection). -
Playbook planner: utility-based, conflict-aware ploy selection (
src/engine/planner/playbookPlanner.ts). -
Contradiction validator: detects mutual-exclusion and contradictory deception claims (
src/engine/planner/deceptionValidator.ts). -
Hook integration: malware inference cycles track telemetry-driven orchestration (
hosts,apiEvents,behaviorHypotheses,activePlaybook,inferenceCycles). -
Malware-native inference path:
MalwareInferenceEnginereasons directly from hosts + behavior hypotheses without requiring zone-grounding. -
Telemetry adapters: observation supports adapter pattern (
ReplayTelemetryAdapter) for progressive migration to ETW/Sysmon/eBPF sources. -
Malware benchmark harness:
MalwareBenchmarkmeasures event-volume runtime/fact/firing/depth characteristics for research reporting. -
Temporal conflict checks: runtime now validates selected ploys against previous cycle ploys to block unsafe rapid contradiction switches.
-
Sysmon ingestion path: malware mode can now ingest offline Sysmon JSONL batches for host-state refresh in addition to synthetic replay streams.
-
Richer behavior mapping: observation now infers
LateralMovementandExfiltrationmotifs from API patterns, not only discovery/credential collection. -
Improved temporal safety: deception-mode switches are now blocked with explicit cooldown windows across inference cycles.
-
Artifact portability: latest inference cycle artifact can be exported as JSON for SOC/offline analysis.
-
Telemetry quality gate: ingestion now validates/normalizes incoming events and tracks drop reasons for malformed telemetry.
-
Policy-driven safety controls: malware mode exposes runtime orchestration policy controls (cooldown, per-host ploy cap, churn window).
-
Policy profiles: malware UI supports conservative/balanced/aggressive presets for quick orchestration posture switching.
-
Telemetry provenance summary: malware panel displays source mix and duplicate suppression metrics.
-
Expanded benchmarking metrics: malware benchmark now reports p50/p95 latency and contradiction-rejection rate in addition to runtime/facts/firings/proof depth.
-
Provenance signing: exported malware cycle artifacts now include a local WebCrypto ECDSA signature and hash chaining (
previousIntegrity) for stronger attestation.
- API-sequence style observation and host/process feature extraction.
- Behavior-to-deception orchestration with utility scoring.
- Conflict checking and rejection rationale surfaced in the runtime playbook.
- Malware mode is host-native in UI and inference, and PoC mode now defaults to malware-only domain lock for demo/research packaging (
VITE_MALWARE_POC_MODEopt-out only for legacy compatibility). - Telemetry ingestion supports replay/JSONL, HTTP NDJSON streams, and an ETW-native bridge adapter path for live collector integration.
- Card labels now avoid legacy abbreviations and use analyst-facing terms; malware cards use SOC-native metric shorthand: TC (Telemetry Confidence), MI (Malware Intensity), DS (Deception Surface), BC (Business Criticality), plus Threat/Contain bars.
- PoC mode MUST default to malware-only with explicit opt-out (
VITE_MALWARE_POC_MODE=0) and locked domain selector in PoC mode. - CI MUST execute ETW adapter contract tests (
npm run test:malware:etw) alongside existing malware engine and pipeline tests. - CI MUST enforce abstract compliance score floor (
MALWARE_MIN_ABSTRACT_COMPLIANCE_SCORE=90).
- Malware card labels MUST never render legacy shorthand (
A/E/S/V,Atk/Suc) and must use analyst-facing terms (TC/MI/DS/BC,Threat/Contain) in malware mode. - CI MUST pass
benchmark:malware:large-replayandbenchmark:malware:scenario-familiesruntime and density thresholds. - Orchestration policy MUST enforce cooldown, per-host ploy cap, action-churn, and mode-switch budgets in temporal validation.
-
Run
npm run benchmark:malwareto produce event-volume scaling records for malware-mode inference/planning and enforce p95/rejection budgets via env thresholds. -
Run
npm run benchmark:malware:replayto evaluate pipeline behavior on the included Sysmon JSONL replay dataset (data/sample-sysmon.jsonl). -
Run
npm run benchmark:malware:stressto execute a large synthetic replay stress run with runtime budget enforcement.- Tune stress realism with
MALWARE_STRESS_HOST_COUNT,MALWARE_STRESS_PROCESS_COUNT, andMALWARE_STRESS_HOT_HOST_RATIO.
- Tune stress realism with
-
Run
npm run benchmark:malware:replay-suiteto compare behavior across benign/mixed/malicious/noisy replay datasets. -
Run
npm run benchmark:malware:large-replayto evaluate runtime + hypothesis density on a large synthetic replay corpus and enforce thresholds. -
Run
npm run benchmark:malware:scenario-familiesto test low-and-slow exfiltration, credential bursts, admin-noise, and mixed-campaign synthetic families. -
Run
npm run eval:malware:qualityto compute planner-reject, action-stability, temporal-violation, and FP/FN rates (fails if thresholds are not met).- Supports strict env tuning, including
MALWARE_MIN_STABILITY_SAMPLES, to avoid passing stability on undersampled hosts.
- Supports strict env tuning, including
-
Run
npm run eval:malware:calibrationto enforce deterministic replay calibration checks (hosts/hypotheses/execute facts) including noisy telemetry samples.- By default, this now also runs a synthetic broad-coverage calibration pass; tune with
MALWARE_REQUIRE_SYNTHETIC_CALIBRATION,MALWARE_SYNTH_CALIBRATION_HOST_COUNT, andMALWARE_SYNTH_CALIBRATION_SEQUENCES.
- By default, this now also runs a synthetic broad-coverage calibration pass; tune with
-
Run
npm run test:malwareto execute deterministic pipeline sanity checks for planning and temporal safety constraints. -
Run
npm run test:malware:enginesto unit-check observation motifs, planner output, inference execute-facts, and dataset JSONL validity. -
Run
npm run test:malware:artifactto execute self-test verification of integrity, signature validation, and chain linkage for artifacts. -
Run
npm run test:malware:artifact:clito run end-to-end artifact verification through the CLI path with trust-level enforcement. -
Run
npm run verify:malware:artifact -- <artifact.json> [previous-artifact.json]to validate integrity, signature, and chain linkage for exported cycle artifacts. -
Run
npm run check:bundle:sizeafter build to enforce frontend bundle-size budget locally (defaultMAX_BUNDLE_JS_BYTES=1000000). -
Run
npm run check:abstract:alignmentto verify abstract-alignment documentation and ensure card labels avoid legacy abbreviations. -
Run
npm run report:abstract:complianceto generate a weighted compliance score report (0-100) against the abstract-alignment PoC checklist; it now subtracts penalty for known open gaps and fails if belowMALWARE_MIN_ABSTRACT_COMPLIANCE_SCORE(default90).