xenon1919/Sentinel-Live-Threat-Hunting-Agent

GitHub: xenon1919/Sentinel-Live-Threat-Hunting-Agent

一个基于 LangChain 的自主防御性安全 Agent,持续在开放网络上搜寻企业泄露的凭证、仿冒域名及品牌滥用,并生成优先级风险报告。

Stars: 0 | Forks: 0

# 🛡️ 开放网络暴露监控器 **一个自主的防御性安全 agent,它在开放网络上搜寻您组织的暴露信息——泄露的凭证、仿冒域名和品牌滥用——然后返回一份经过优先级排序的风险报告。** 专为 **Web Data UNLOCKED Hackathon** 打造 · 赛道 3:安全与合规。 ## 为什么开发这个工具 威胁、泄露的凭证和品牌仿冒不会出现在您的内部系统中——它们出现在开放网络上,出现在任何 SIEM 都无法监控的来源中。这个 agent 为安全团队提供了对该攻击面的实时、自主覆盖,并返回**结构化、可操作**的发现,而不是原始的噪音。 它是一个**防御性**工具:它只呈现*已经公开*的信息,以便防御者可以做出响应(强制重置、提交下架请求、提醒用户)。它不会访问私人系统、利用漏洞或收集凭证。 ## 它的功能(agent 循环) 一个易于理解、由 LangChain 驱动且具有明确阶段的循环。它作为流式生成器运行,因此您可以**实时观看 agent 思考**: ``` plan ──▶ search ──▶ triage ──▶ fetch ──▶ analyze ──▶ report ──▶ remember │ │ │ │ │ │ │ LLM SERP API LLM picks Web Unlocker LLM judges LLM ranks memory proposes (Bright URLs worth (Bright each page findings diffs NEW queries Data) reading Data) for signal by severity vs seen ``` 1. **规划 (Plan)** — LLM 提出有针对性的、防御性的搜索查询(凭证泄露、相似域名、网络钓鱼、违规提及)。 2. **搜索 (Search)** — 每个查询都通过 **Bright Data SERP API** 运行。 3. **分诊 (Triage)** — LLM 挑选出哪些结果 URL 实际上值得阅读。 4. **抓取 (Fetch)** — 每个选定的页面都通过 **Bright Data Web Unlocker** 检索(绕过机器人检测 / CAPTCHA / 地理封锁)。 5. **分析 (Analyze)** — LLM 评估每个页面是否存在*真实的*暴露信号,并分配严重程度(对误报保持怀疑;从不回显敏感值)。 6. **报告 (Report)** — LLM 综合生成一份包含建议操作的优先级风险报告。 7. **记忆 (Remember)** — **Cognee** 记忆会持久化保存发现结果,以便未来的扫描只标记**新**暴露。 ## 技术栈 | 层级 | 工具 | |---|---| | Web 数据 | **Bright Data** — SERP API + Web Unlocker(单一 `/request` 端点) | | LLM 推理 | **AI/ML API** (兼容 OpenAI),通过 `langchain-openai` | | Agent 框架 | **LangChain** | | 记忆 | **Cognee**(带有自动本地 JSON 回退机制) | | UI | **Streamlit**(实时追踪 + 报告) | ## 设置 ### 1. 安装 ``` git clone cd exposure-monitor pip install -r requirements.txt ``` ### 2. 配置 ``` cp .env.example .env ``` 填写 `.env`: - **Bright Data**: 获取您的 API 密钥,兑换 `unlocked` 促销代码以获得 250 美元额度,并创建两个区域(一个 Web Unlocker 区域和一个 SERP 区域)。将密钥和这两个**区域名称**放入 `.env`。 - **AI/ML API**: 获取您的密钥(以及 200 美元的合作伙伴额度),保持 base URL 不变,选择任意聊天模型。 ### 3. 零成本验证 离线自检会模拟这两个 API,并检查整个循环、解析和记忆逻辑: ``` python selftest.py # 所有 SELFTESTS 通过 ✅ ``` ## 使用方法 ### Streamlit UI(演示推荐) ``` streamlit run ui/app.py ``` 输入公司 + 域名,点击 **Run scan**,观看实时追踪逐阶段填充,然后风险报告就会呈现出来。 ### CLI ``` python run_cli.py --company "Acme Corp" --domain acme.com --context "fintech, SF" ``` ## 项目结构 ``` exposure-monitor/ ├── agent/ │ ├── config.py # env-driven settings │ ├── llm.py # AI/ML API client (LangChain) + robust JSON parsing │ ├── prompts.py # per-stage prompts (defensive framing baked in) │ └── orchestrator.py # the streaming agent loop ├── bright_data/ │ ├── client.py # Web Unlocker + SERP over the /request endpoint │ └── parsing.py # SERP HTML -> hits; page -> clean text ├── memory/ │ └── store.py # Cognee memory + local fallback (NEW-vs-seen diff) ├── ui/app.py # Streamlit live-trace UI ├── run_cli.py # terminal runner ├── selftest.py # offline end-to-end verification ├── requirements.txt └── .env.example ``` ## 如何符合评审标准 - **技术应用** — 一个真正的多阶段自主 agent,以正确的方式使用 Bright Data(使用 SERP API 进行发现,使用 Web Unlocker 处理被封锁的页面),在每个阶段都使用 AI/ML API 进行推理,并使用 Cognee 作为记忆。 - **商业价值** — “在被利用之前检测到泄露的凭证和仿冒行为”是内部工具无法覆盖的、直接且明确的企业需求。 - **独创性** — 大多数构建者会倾向于选择销售/竞争对手工具;而一个自主的开放网络威胁搜寻 agent 则脱颖而出。 - **演示效果** — 实时追踪让 agent 的推理过程实时可见,并且演示在两分钟内即可完成。 ## 负责任的使用 这是一个防御性工具。仅将其用于您拥有或被授权保护的组织。它呈现**已经公开**的暴露信息,以便安全团队能够做出响应;它不会访问私人系统、利用漏洞或收集凭证,并且绝不会重现其遇到的敏感值。
标签:Kubernetes, 智能体, 逆向工具