Skip to content

docs: red-team program — adversary simulation plan for containerized xtcp2 on Ubuntu - #304

Merged
randomizedcoder merged 1 commit into
mainfrom
docs/redteam-plan
Nov 14, 2026
Merged

randomizedcoder merged 1 commit into
mainfrom
docs/redteam-plan

Conversation

@randomizedcoder

Copy link
Copy Markdown
Owner

What

Security red-team program for xtcp2 running in its production shape: the OCI image under Docker on Ubuntu 22.04/24.04 hosts, with /var/lib/xtcp2 bind-mounted (the TODO-SOON §29 topology). The attacker is assumed to have full knowledge of this open-source repo.

Two documents:

  • docs/redteam-plan.md — threat model, six attacker profiles, an attack-surface inventory, and a ~60-scenario catalog in ten families:

    • RT-1/RT-9 recon and network position (unauthenticated scrape/stream, TTL reach, route_localnet, host-network vs bridge exposure)
    • RT-2 authentication attacks (HMAC replay window, auth-mode confusion footguns, timing, plaintext token capture)
    • RT-3 admin API abuse (ConfigService.Set telemetry redirection = full socket-record exfil, S3 exfil with inherited creds, pprof secret scraping)
    • RT-4 DoS (connection exhaustion — the unwired max_connections limits, slow consumers, namespace churn, broker outage)
    • RT-5 host attacks through xtcp2: netlink write audit (the daemon should send only GET-class netlink), setns scope, privileged-container blast radius, minimum-cap matrix
    • RT-6 filesystem/UDS attacks (stale-socket unlink, replacement races, baseline poisoning)
    • RT-7 artifacts (ASN parquet/zstd decompression bombs, bootstrap integrity)
    • RT-8 parser/protocol attacks (hostile-netns netlink stress, /ip argv-path fuzzing, extended fuzz campaigns)
    • RT-10 dependency/CVE surface (govulncheck gate)
    • RT-11 monitoring-blindness from a co-tenant container: what an attacker container on the same host can do to stop TCP statistics about the base OS and other tenants from being reported — scrape-slot starvation (MaxRequestsInFlight=10), FD exhaustion crossing into the collection path, own-netns dump amplification, L2 delivery kills, and the privileged tiers (docker.sock, netfilter, netns flood/poisoning). Includes the tier × reporting-link matrix and a blind-detection runbook deliverable.

    The scenarios treat every documented limitation in docs/security.md ("Resource protections and implementation limits") as an attacker checklist.

  • docs/redteam-implementation.md — execution companion: harness architecture (Vagrant/libvirt on l, Ubuntu 24.04 + Docker + the OCI image, deployment matrix env, flake-app wrapping), per-phase tasks with checkbox definition of done, the EXPECT=CONFIRMED scenario contract (expectation flips travel with fixes, then graduate to regression gates), cross-cutting workstreams, effort estimates (~23–29 days), risks, and program-level exit criteria.

docs/README.md links both.

Notes for review

  • Documentation only — no code, Nix, or harness files yet; Phase 0 (the vagrant/ bootstrap) starts on approval.
  • Scenario IDs are stable and map to the implementation plan's phases 0–7.
  • Existing coverage is cross-referenced (microVM uds-security/ip-listen/scrape-auth checks, fixture tests, fuzz targets) so the Ubuntu/Docker suite covers only the deltas.

Closes nothing yet; findings from execution will file their own issues.

…xtcp2 on Ubuntu

Threat model, attacker profiles (co-tenant, on-path, remote, admin-adjacent,
artifact poisoner, host-side), and a ~60-scenario catalog across ten families:
recon, auth, admin abuse, DoS, host/netlink assurance, UDS, artifacts,
parsers, network position, and monitoring-blindness from a co-tenant
container (RT-11). The scenarios run in a Vagrant/libvirt harness that boots
Ubuntu 24.04 + Docker and runs the OCI image as prod does, wrapped as flake
apps. docs/redteam-implementation.md is the execution companion: per-phase
tasks with definition of done, effort estimates, risks, and program-level
exit criteria.
@randomizedcoder
randomizedcoder merged commit 890889e into main Nov 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant