feat(web-security): geo-distributed DNS resolution via Shodan/Censys open resolvers - #127
Merged
GangGreenTemperTatum merged 1 commit intoAug 25, 2026
Conversation
…open resolvers Add geo-distributed routing testing to the web-security capability for detecting geo-fenced infrastructure invisible from a single vantage point. When authorized by the operator (GEO_RESOLVERS_ENABLED) and API keys are available, open recursive resolvers discovered via Shodan or Censys act as regional DNS vantage points. Resolving target hostnames through resolvers in different countries reveals whether authoritative nameservers return region-specific A/AAAA records — the DNS-layer footprint of geo-fencing, GSLB routing, and region-locked infrastructure. Orthogonal to IP rotation (flareprox/fireprox): those change the egress IP for HTTP requests; this changes the vantage point for DNS lookups. New files: - tools/geo_resolvers.py — zero-dependency async DNS engine (raw UDP), Shodan + Censys Platform API v3 discovery, resolver verification, divergence analysis, 5 LLM-facing tools - tests/test_geo_resolvers.py — 76 tests covering DNS wire format, provider parsing, authorization gate, divergence analysis, all tools - skills/distributed-routing-testing/SKILL.md — full workflow playbook Updated: - capability.yaml — 1.12.0 → 1.13.0, description, keywords - agents/web-security.md — tool usage guidance Closes: CAP-1189
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add geo-distributed routing testing to the web-security capability for detecting geo-fenced infrastructure invisible from a single vantage point.
When authorized by the operator (
GEO_RESOLVERS_ENABLED) and API keys are available, open recursive resolvers discovered via Shodan or Censys act as regional DNS vantage points. Resolving target hostnames through resolvers in different countries reveals whether authoritative nameservers return region-specific A/AAAA records — the DNS-layer footprint of geo-fencing, GSLB routing, and region-locked infrastructure.Orthogonal to IP rotation (flareprox/fireprox): those change the egress IP for HTTP requests; this changes the vantage point for DNS lookups.
New files
tools/geo_resolvers.py(989 lines) — Zero-dependency async DNS engine (raw UDP), Shodan + Censys Platform API v3 discovery, resolver verification, divergence analysis, 5 LLM-facing toolstests/test_geo_resolvers.py(800 lines) — 76 tests covering DNS wire format, provider parsing, authorization gate, divergence analysis, all toolsskills/distributed-routing-testing/SKILL.md(119 lines) — Full workflow playbookUpdated files
capability.yaml— 1.12.0 → 1.13.0, description updated, 6 keywords addedagents/web-security.md— Tool usage guidance addedTool surface (5 tools)
check_geo_resolver_readinessdiscover_open_resolverslist_open_resolversresolve_via_open_resolversclear_open_resolver_cacheDesign decisions
GEO_RESOLVERS_ENABLEDfollows theIPROTATE_ENABLEDprecedent — every tool checks it, no network activity when unsetSHODAN_API_KEY) and Censys Platform v3 (CENSYS_PAT);autopicks whichever key is presentone.one.one.one→{1.1.1.1, 1.0.0.1}; hijacking resolvers discarded to prevent false divergencePrivateAttr(default_factory=dict)— nothing written to diskValidation
just validate: web-security@1.13.0 validates (53 tools, 83 skills)Closes: CAP-1189