Promote smolmachines to default backend; convert Docker backend to example-only (resolves DNS sinkhole gap) #206
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The egress mitmproxy addon (PRD 0052/0053) is an HTTP proxy: it intercepts HTTPS connections and scans HTTP request/response surfaces. Raw UDP port-53 DNS queries go to the OS resolver and never pass through it.
This means an agent can exfiltrate data via DNS tunnelling — encoding secrets as base32 or hex subdomains in a DNS query — and the egress proxy will not see it at all. The hostname scan added in PRD 0053 catches secrets encoded in the hostname of an HTTP request, but has no effect on actual DNS packets.
What's needed
A controlled DNS resolver (dnsmasq or CoreDNS) that:
<encoded>.api.anthropic.com— anthropic's zone has no legitimate deep subdomains).The network egress guard research doc (
docs/research/network-egress-guard.md) covers this under "Approach 4: DNS-based egress control" and notes it pairs with the in-container iptables approach.Scope
egress.routeshost list.References
docs/research/network-egress-guard.md— Approach 4docs/research/secret-exfil-tripwire-encodings.md— DNS exfil discussionNote: this is not an issue for the smolmachines backend.
smolmachines uses TSI (Transport Socket Interface) — VMM-level
connect()interception — which blocks all socket connections to non-allowlisted IPs before any bytes leave the guest. Since no DNS resolver is in the allowlist, DNS queries are blocked by construction, with no iptables required.This issue is Docker-backend-specific: Docker's embedded DNS resolver at
127.0.0.11is reachable from every container (including those on--internalnetworks) via NAT rules Docker installs at the host level. Blocking it from inside the container requiresNET_ADMIN.Plan: once the Docker backend is converted to an example/reference implementation and the smolmachines backend becomes the default, this issue will be closed. The Docker backend will be disabled (not the default), so this gap will not affect production deployments.
DNS sinkhole: block raw DNS exfiltration via controlled resolverto Promote smolmachines to default backend; convert Docker backend to example-only (resolves DNS sinkhole gap)