# Phase 12: OSINT IoT/Device Search & Cloud Storage - Context

**Gathered:** 2026-04-06
**Status:** Ready for planning
**Mode:** Auto-generated

<domain>
## Phase Boundary
Adds ReconSource implementations for internet-facing device search engines (Shodan, Censys, ZoomEye, FOFA, Netlas, BinaryEdge) and public cloud storage bucket scanners (AWS S3, GCS, Azure Blob, DigitalOcean Spaces) to find API keys exposed in device banners, configs, and misconfigured storage buckets.
</domain>

<decisions>
## Implementation Decisions
### Claude's Discretion
All implementation choices are at Claude's discretion. Follow the established Phase 10 pattern: each source implements recon.ReconSource, uses pkg/recon/sources/httpclient.go for HTTP, uses httptest for tests. Each source goes in its own file.
</decisions>

<code_context>
## Existing Code Insights
### Reusable Assets
- pkg/recon/sources/ — established source implementation pattern from Phase 10
- pkg/recon/sources/httpclient.go — shared retry HTTP client
- pkg/recon/sources/register.go — RegisterAll (extend per phase)
- pkg/recon/source.go — ReconSource interface
</code_context>

<specifics>
## Specific Ideas
- ShodanSource — search Shodan for exposed API keys in banners/configs
- CensysSource — search Censys for exposed services leaking keys
- ZoomEyeSource — search ZoomEye for device/service key exposure
- FOFASource — search FOFA for exposed endpoints with keys
- NetlasSource — search Netlas for internet-wide scan results
- BinaryEdgeSource — search BinaryEdge for exposed services
- S3Scanner — scan publicly accessible AWS S3 buckets for key files
- GCSScanner — scan publicly accessible Google Cloud Storage buckets
- AzureBlobScanner — scan publicly accessible Azure Blob containers
- DigitalOceanSpaces — scan publicly accessible DO Spaces
</specifics>

<deferred>
## Deferred Ideas
None — straightforward source implementations.
</deferred>
