Ghostwyre is a modular security scanning system combining a fast Go-based scanner engine with an AI-driven analysis layer for reasoning, prioritization, and reporting.
GhostWyre/
├── scanner/ # Go scanning engine
│ ├── cmd/
│ │ ├── main.go # CLI entrypoint
│ │ └── scan.go # `ghostwyre scan` command
│ │
│ ├── internal/
│ │ ├── crawler/ #
│ │ ├── probe/ # HTTP, TLS, DNS, security header checks
│ │ ├── injector/ # XSS, SQLi, open redirect payloads
│ │ ├── fingerprint/ # Tech stack detection
│ │ └── reporter/ # JSON/HTML report generation
│ │
│ └── pkg/
│ ├── config/ # YAML + env configuration loader
│ └── httpclient/ # Shared HTTP client, retries, tracing
│
├── agent/ # Python AI orchestration layer
│ ├── orchestrator.py # LangGraph workflow
│ │
│ ├── tools/
│ │ ├── scan_tool.py # Execute Go scanner
│ │ ├── vuln_lookup.py # CVE/NVD enrichment
│ │ └── report_tool.py # Findings summarization
│ │
│ └── prompts/
│ ├── planner.md
│ ├── analyst.md
│ ├── scorer.md
│ └── reporter.md
│
├── api/ # Service layer
│ └── server.py # FastAPI endpoints
│
├── output/ # Generated reports
│ ├── scans/
│ ├── reports/
│ └── exports/
│
├── configs/
│ ├── config.yaml
│ └── rules.yaml
│
├── docs/
│ ├── architecture.md
│ └── roadmap.md
│
├── Makefile
├── go.mod
├── go.sum
├── requirements.txt
└── README.md
Ghostwyre is designed as a hybrid architecture:
- Go CLI Scanner → fast, deterministic, low-level scanning
- Python AI Orchestrator → reasoning, CVE mapping, risk scoring
- Web/API Layer → visualization, automation, scheduling
User Prompt: "Scan example.com and tell me what's risky"
↓
LangGraph Orchestrator
├── Planner Agent
│ → decides scan strategy
├── Scanner Tool (Go CLI)
│ → returns structured JSON findings
├── Analyst Agent
│ → interprets vulnerabilities + CVEs
├── Risk Scorer
│ → assigns severity / CVSS-like score
└── Reporter Agent
→ generates human-readable report
Build a stable, fast scanning CLI with structured output.
| Component | Description |
|---|---|
| CLI Framework | Add cobra → ghostwyre scan --target https://example.com --depth 3 |
| Config System | YAML config + environment variable overrides |
| Output Format | Replace logs with structured JSON findings |
| HTTP Probe Module | Extract headers, TLS cert info, CORS, CSP, HSTS |
| Basic Crawler | BFS-based link discovery with configurable depth |
Introduce security detection capabilities.
| Component | Description |
|---|---|
| Fingerprinting | Detect CMS, frameworks, server versions via headers + response body |
| Passive Vulnerability Checks | Match detected versions with known CVEs |
| Injection Probes | Basic XSS, SQL error-based detection, open redirects |
| Rate Limiting | Prevent target overload with configurable delays |
Add reasoning, prioritization, and explanation.
Go Scanner → JSON Output → AI Orchestrator → Risk Analysis → Report
| Agent | Responsibility |
|---|---|
| Planner Agent | Chooses scan modules based on user prompt |
| Scanner Tool | Executes Go binary and returns structured results |
| Analyst Agent | Interprets findings, maps CVEs |
| Risk Scorer | Assigns severity (CVSS-like scoring) |
| Reporter Agent | Generates human-readable security report |
User: "Scan example.com and tell me what's risky"
→ Planner selects modules
→ Go scanner executes crawl + probes
→ JSON findings returned
→ AI analyzes vulnerabilities
→ Final report generated
Make Ghostwyre usable in real environments (UI + API + scheduling)
- Web dashboard for scan history
- REST API for programmatic scanning
- Scheduled scans (cron / Temporal integration)
- Export reports (JSON → HTML/PDF)
| Layer | Tech | Reason |
|---|---|---|
| CLI Engine | Go (cobra, viper) |
Fast, production-ready CLI tooling |
| HTTP / Crawling | net/http or colly |
Reliable web crawling support |
| AI Orchestration | LangGraph (Python) | Structured multi-agent workflows |
| LLM | Claude (Sonnet) | Strong reasoning + security analysis |
| API Layer | FastAPI | Async, simple integration |
| Output Format | JSON → HTML templates | Portable + diff-friendly reports |
All scanner outputs must be:
- Structured (JSON)
- Machine-readable
- Agent-friendly
- Versionable
- Diff-trackable
Example:
{
"target": "https://example.com",
"findings": [
{
"type": "missing_header",
"name": "CSP",
"severity": "medium"
}
]
}- Go handles speed + correctness
- Python handles reasoning + intelligence
- AI never directly scans — it interprets results
- Scanner remains deterministic and reproducible
- Authenticated scanning modules
- Plugin system for custom checks
- Distributed scanning workers
- Real-time attack surface monitoring
- SIEM integrations (Splunk, ELK)