Skip to content

Adversarial tests: implement all 8 ignored test scenarios #35

@jeremymanning

Description

@jeremymanning

Description

8 adversarial tests exist as #[ignore] stubs with unimplemented!() macros in tests/adversarial/:

  1. test_flood_resilience.rs: malformed_peer_flood (T140) — needs gossip transport test injection
  2. test_flood_resilience.rs: job_submit_flood_rate_limited — rate limiting under flood
  3. test_sandbox_escape.rs: sandbox_escape_via_ptrace (T137) — needs sandbox runtime integration
  4. test_sandbox_escape.rs: sandbox_escape_via_container_runtime — container escape attempt
  5. test_network_isolation.rs: network_escape_via_host_bridge (T138) — needs network namespace plumbing
  6. test_network_isolation.rs: network_escape_via_dns_intercept — DNS interception attempt
  7. test_byzantine_donor.rs: byzantine_data_corruption (T139) — needs multi-node test harness
  8. test_byzantine_donor.rs: byzantine_quorum_bypass — quorum manipulation attempt

Requirements

  • Each test must actually exercise the attack scenario, not just assert
  • Tests require real sandbox runtimes (Firecracker/WASM), real network namespaces, real gossip transport
  • Multi-node tests need a test harness that spawns multiple agent instances
  • Tests must verify the attack is detected AND contained (not just blocked)

Success Criteria

  • All 8 tests are implemented (no unimplemented!() macros, no #[ignore])
  • Sandbox escape tests run inside real VM boundary
  • Network isolation tests use real network namespaces
  • Byzantine tests run multi-node scenarios
  • Flood resilience tests inject real gossip traffic
  • All tests pass on CI (Linux with KVM for Firecracker tests)

Testing (Principle V)

  • Run on real hardware with KVM support
  • Sandbox escape: attempt ptrace from inside Firecracker VM → must fail
  • Network isolation: attempt to reach host bridge → must fail
  • Byzantine: inject wrong result → must be detected within 100 audited tasks
  • Flood: send malformed gossip for 60s → cluster remains operational

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions