Lazarus-AI/clearwing

GitHub: Lazarus-AI/clearwing

一个基于 LangGraph 的双模式攻防工具,兼具网络渗透代理与源码安全猎手能力。

Stars: 1040 | Forks: 154

# Clearwing image 作者:Eric Hartford, Lazarus AI 受 Anthropic 的 Glasswing 启发。 挑战:使用所有人都能访问的模型,产生与 Glasswing 类似的结果。 **自主漏洞扫描器和源代码猎手。** 基于 `genai-pyo3` 构建,这是一个由原生 Rust 支持的 LLM 运行时,支持对话所有主流的 提供商(Anthropic、OpenAI、OpenRouter、Ollama、LM Studio、Together、 Groq、DeepSeek、MiniMax、Gemini 以及任何兼容 OpenAI 的 endpoint)。 Clearwing 是一款双模式攻击性安全工具: - **网络渗透测试 agent** —— 一个具备 63 个绑定工具的 ReAct 循环 agent, 可扫描活动目标,检测服务和漏洞, 运行沙箱化的 Kali 工具,尝试漏洞利用(通过 人工批准的护栏进行限制),并将报告写入持久化的 知识图谱。 - **源代码猎手** —— 一个文件并行的 agent 驱动 流水线,它会对源文件进行排名,展开逐文件搜寻的 hunter agent (全 shell 或受限模式),使用 ASan/UBSan 崩溃作为事实依据, 通过一个 4 轴验证器(REAL / TRIGGERABLE / IMPACTFUL / GENERAL)验证发现结果,在全新的 容器间运行 PoC 稳定性检查,可选择生成经过验证的补丁, 并输出带有明确证据级别的 SARIF/markdown/JSON 报告 (`suspicion → static_corroboration → crash_reproduced → root_cause_explained → exploit_demonstrated → patch_validated`)。 具备三档预算提升、大文件的 entry-point 分片、跨子系统搜寻、带有 根因去重的共享发现池、多轮 agent 化漏洞利用开发, 以及人机协同的漏洞利用推敲等功能。 - **N-day 漏洞利用流水线** —— 给定 CVE ID,构建 漏洞版本,开发可用的漏洞利用程序,并针对 已修复的版本进行验证以确认修复情况。 - **逆向工程流水线** —— 通过 Ghidra 反编译闭源 ELF 二进制文件,利用 LLM 重构可能的源代码, 然后使用混合的源代码 + 二进制验证方法搜寻漏洞。 - ** Campaign 编排** —— 通过带有共享 预算、检查点/恢复以及汇总报告的单个 YAML 配置,在数十或数百个存储库中运行 sourcehunt。 - **负责任的漏洞披露** —— 带有 MITRE/HackerOne 模板生成、用于证明优先级的 SHA-3 加密承诺、时间线 跟踪以及批量披露的人机协同验证工作流。 - **基准测试与评估** —— 用于模型对比的 OSS-Fuzz 崩溃严重性 阶梯,以及用于衡量预处理是提升还是降低发现质量的 A/B 测试框架。 **仅供授权使用。** Clearwing 是一款双用途的攻击性安全 工具。仅针对您拥有或获得明确书面 测试授权的目标运行它。操作员需对测试范围、法律 授权和漏洞披露负责。请参阅 `SECURITY.md`。 ## 安装 **最终用户** —— 直接从 GitHub 安装带标签的发行版: ``` git clone https://github.com/Lazarus-AI/clearwing.git cd clearwing # 推荐使用 uv sync,因为 Clearwing 通过 # pyproject.toml 中的 tool.uv.sources 固定了 genai-pyo3。 uv sync --all-extras source .venv/bin/activate # fish: source .venv/bin/activate.fish # 交互式设置向导 — 菜单驱动的 provider 选择、 # 凭证输入、可选的实时测试,并持久化到 ~/.clearwing/config.yaml clearwing setup # 环境检查 — 验证 Python、凭证、Docker daemon、 # 外部工具、可选的 extras 以及网络可达性 clearwing doctor clearwing --version # 1.0.0 clearwing --help ``` 或者跳过向导并直接进行配置: ``` # Anthropic direct export ANTHROPIC_API_KEY=sk-ant-... # 或任何兼容 OpenAI 的 endpoint — OpenRouter、Ollama、LM Studio、 # vLLM、Together、Groq、DeepSeek、OpenAI: export CLEARWING_BASE_URL=https://openrouter.ai/api/v1 export CLEARWING_API_KEY=sk-or-... export CLEARWING_MODEL=anthropic/claude-opus-4 ``` 有关特定于提供商的配置方法以及每个任务的分发策略,请参阅 [`docs/providers.md`](docs/providers.md)。 **开发者** —— 克隆并安装锁定版本的开发环境: ``` git clone https://github.com/Lazarus-AI/clearwing.git cd clearwing uv sync --all-extras source .venv/bin/activate # fish: source .venv/bin/activate.fish clearwing --help ``` 要求:Python 3.10+,以及可选的 Docker(用于 Kali 容器 和 sanitizer-image 沙箱功能)。`genai-pyo3` 在 PyPI 上以预构建的 wheels 形式提供(支持 linux x86_64/aarch64、macOS universal2、windows x86_64、 Python 3.9–3.13),因此安装时不需要 Rust 工具链。 ## 快速入门 ``` # 扫描单个目标的网络扫描 clearwing scan 192.168.1.10 -p 22,80,443 --detect-services # 针对 repo 的 Source-code 探索(标准深度 — 沙箱化的 LLM hunters、 # adversarial verifier、mechanism memory、variant loop) clearwing sourcehunt https://github.com/example/project \ --depth standard # N-day exploit pipeline — 构建并利用已知的 CVE clearwing sourcehunt https://github.com/example/project \ --nday --cve-list CVE-2024-1234,CVE-2024-5678 # 逆向工程 — 在闭源 binaries 中寻找漏洞 clearwing sourcehunt /path/to/binary --reveng --arch x86_64 # 跨多个项目的 Campaign-scale 编排 clearwing campaign run campaign.yaml # 负责任的披露工作流 clearwing disclose queue ./results/sourcehunt/sh-*/ clearwing disclose review # OSS-Fuzz 崩溃严重性 benchmark clearwing bench ossfuzz --corpus-dir ./oss-fuzz-projects --mode standard # A/B 测试预处理是有益还是有害 clearwing eval preprocessing --project https://github.com/example/project \ --configs glasswing_minimal,sourcehunt_full --runs 3 # 使用全套工具集的交互式 ReAct 聊天 clearwing interactive # 带有 SARIF 输出的非交互式 CI 模式,用于 GitHub Code Scanning clearwing ci --config .clearwing.ci.yaml --sarif results.sarif ``` 有关更详细的操作演练(包括凭证、会话恢复和任务模式操作),请参阅 [`docs/quickstart.md`](docs/quickstart.md)。 ## 在本地存储库上运行 sourcehunt(FFmpeg 示例) `clearwing sourcehunt ` CLI 会克隆远程 URL。要使用原生异步流水线和 自托管的兼容 OpenAI 的后端搜寻已克隆的代码树(例如 FFmpeg),请直接驱动 `SourceHuntRunner`: ``` # 1. Clone 目标一次 git clone https://github.com/FFmpeg/FFmpeg.git # 2. 针对本地 checkout 运行 sourcehunt uv run python -u - <<'PY' import logging from clearwing.llm.native import AsyncLLMClient from clearwing.sourcehunt.runner import SourceHuntRunner logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(name)s: %(message)s') REPO = './FFmpeg' RUN_DIR = './results/sourcehunt' COMMON = dict( provider_name='openai_resp', # or 'openai' for /v1/chat/completions api_key='YOUR_KEY', base_url='http://localhost:8183/v1', # any OpenAI-compatible endpoint max_concurrency=15, ) # 每个 stage 一个 client — 将每个 stage 路由到不同的 model ranker_llm = AsyncLLMClient(model_name='gpt-5.4-mini', **COMMON) hunter_llm = AsyncLLMClient(model_name='gpt-5.4', **COMMON) verifier_llm = AsyncLLMClient(model_name='gpt-5.4-mini', **COMMON) exploiter_llm = AsyncLLMClient(model_name='gpt-5.3-codex', **COMMON) runner = SourceHuntRunner( repo_url=REPO, local_path=REPO, depth='standard', budget_usd=1000.0, max_parallel=15, output_dir=RUN_DIR, output_formats=['json', 'markdown'], ranker_llm=ranker_llm, hunter_llm=hunter_llm, verifier_llm=verifier_llm, exploiter_llm=exploiter_llm, enable_patch_oracle=True, ) print(runner.run()) # sync wrapper; internally drives SourceHuntRunner.arun() PY ``` 运行完成后,发现结果将作为 JSON + markdown 保存在 `./results/sourcehunt/sh-/` 中。FFmpeg 大约有 1 万个源文件,因此预计大仓库排名器会预先筛选候选者,且 tier-A hunter 池将运行数小时。 如果您计划让进程在后台运行,请将 stdout/stderr 重定向到文件 —— 运行器自身的产出物只会在最后才写入。 `AsyncLLMClient` 接受 `provider_name` 值为 `openai_resp`(流式 `/v1/responses` 格式)或 `openai`(标准 `/v1/chat/completions`);将 `base_url` 指向任何兼容 OpenAI 的服务器。有关托管提供商的路径,请参阅 [`docs/providers.md`](docs/providers.md)。 ## 架构概览 ``` ┌──────────────────────┐ ┌────────────────────────────────┐ │ Network-pentest agent│ │ Source-code hunter │ │ clearwing.agent.graph│ │ clearwing.sourcehunt.runner │ │ (63 tools, ReAct) │ │ │ │ │ │ preprocess → rank → pool → │ │ │ │ hunter → verify → exploit → │ │ │ │ variant loop → auto-patch → │ │ │ │ report │ └─────────┬────────────┘ └────────┬───────────────────────┘ │ │ └───────────┬─────────────────┘ ▼ ┌───────────────────────────────────────────────────────────────┐ │ N-day pipeline │ Reveng pipeline │ Campaign orchestrator │ │ Disclosure workflow + SHA-3 commitments │ ├───────────────────────────────────────────────────────────────┤ │ Shared substrate │ │ Finding dataclass │ capabilities probe │ sandbox layer │ │ knowledge graph │ episodic memory │ event bus │ │ telemetry │ guardrails + audit │ CVSS scoring │ │ artifact store │ behavior monitor │ seccomp │ ├───────────────────────────────────────────────────────────────┤ │ Bench: OSS-Fuzz severity ladder │ Eval: preprocessing A/B │ └───────────────────────────────────────────────────────────────┘ ``` 深入解析位于 [`docs/`](docs/) 中: | 文档 | 涵盖内容 | |---|---| | [`docs/index.md`](docs/index.md) | 首页 + 目录 | | [`docs/quickstart.md`](docs/quickstart.md) | 完整的安装 + 首次运行演练 | | [`docs/providers.md`](docs/providers.md) | OpenRouter / Ollama / LM Studio / vLLM / Together / Groq 配置指南、任务分发策略、环境变量优先级 | | [`docs/architecture.md`](docs/architecture.md) | 两条流水线、底层基础、功能门控、工具布局 | | [`docs/cli.md`](docs/cli.md) | 所有子命令标志,按工作流分组 | | [`docs/api.md`](docs/api.md) | API 参考(由 mkdocstrings 自动生成) | GitHub Pages 工作流发布后,文档将托管在 。 ## 开发 ``` uv sync --all-extras source .venv/bin/activate # fish: source .venv/bin/activate.fish pytest -q ruff check clearwing/ tests/ ruff format --check clearwing/ tests/ mypy --follow-imports=silent \ clearwing/findings \ clearwing/sourcehunt \ clearwing/capabilities.py \ clearwing/agent/tools \ clearwing/core python -m mkdocs serve --dev-addr 127.0.0.1:8000 ``` 有关完整的开发环境设置指南和 PR 检查清单,请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md)。 ## 报告漏洞 有两个通道,并且它们指向不同的目的地: - **Clearwing *自身*的漏洞** → GitHub Security Advisories ()。 有关范围、SLA 和安全 Harbor 条款,请参阅 [`SECURITY.md`](SECURITY.md)。 - **Clearwing *发现*的他人软件中的漏洞** → 该供应商的披露渠道。`clearwing sourcehunt --export-disclosures` 会在 `evidence_level >= root_cause_explained` 时,为每个发现生成预填写的 MITRE CVE 请求和 HackerOne 模板。 ## 许可证 MIT。请参阅 [`LICENSE`](LICENSE)。
标签:CISA项目, DLL 劫持, Rust, XXE攻击, 人工智能, 大语言模型, 漏洞挖掘, 用户模式Hook绕过, 网络安全, 网络流量审计, 自动化渗透测试, 隐私保护