HaythamAbouelfaid/SentinelOps

GitHub: HaythamAbouelfaid/SentinelOps

AI辅助的钓鱼调查工具,通过浏览器自动化和确定性规则引擎实现从URL到结构化报告的完整调查流水线。

Stars: 0 | Forks: 0

# SentinelOps ![SentinelOps](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/cf34daa063201523.png) **SentinelOps** 是一个 AI 辅助的网络钓鱼调查工具,专为网络安全分类和网页分析而构建。它通过收集浏览器渲染的证据、提取危害指标 (IOC)、推导钓鱼特定的检测特征、分配确定性风险评分以及生成可供分析师使用的调查报告,自动化了网络钓鱼调查的早期阶段。 SentinelOps 被设计为一个 **CLI 优先的网络安全工程项目**,它结合了: - **浏览器自动化** - **确定性威胁分析** - **基于规则的网络钓鱼评分** - **LLM 辅助证据审查** - **结构化报告与持久化** ## 架构工作流 ![SentinelOps Architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f16f1b86e1201524.png) ## 项目概述 网络钓鱼调查通常始于重复的手动工作: - 在安全环境中打开可疑 URL - 捕获屏幕截图和渲染后的 HTML - 识别表单、登录提示和可疑语言 - 提取 URL、域名、电子邮件、IP 和品牌冒用线索 - 以结构化格式记录调查结果 SentinelOps 将该工作流程简化为可重复的流水线。 给定一个可疑 URL,SentinelOps 会: 1. 使用 Playwright 启动浏览器会话 2. 捕获渲染后的网页工件 3. 提取钓鱼相关的指标和证据 4. 使用确定性的网络钓鱼启发式规则对页面进行评分 5. 可选地通过 OpenRouter 使用基于 LLM 的结构化分析来丰富调查 6. 保存 JSON 和 Markdown 调查报告 7. 将案例记录到 SQLite 以供将来审查 ## 核心功能 ### 基于浏览器的证据收集 - 使用 **Playwright** 加载可疑 URL - 捕获 **整页屏幕截图** - 保存 **渲染后的 HTML 快照** - 提取: - 可见页面文本 - 链接 - 表单 - 按钮 - 元数据 ### 确定性 IOC 提取 - 提取: - URL - 域名 - 电子邮件地址 - IP 地址 - 检测: - 可疑的网络钓鱼关键词 - 已知的品牌提及 - 对指标进行去重和规范化 ### 网络钓鱼特征检测 SentinelOps 推导出结构化的网络钓鱼信号,包括: - 登录表单检测 - 密码字段检测 - 紧急语言检测 - 凭据提示检测 - 支付相关语言检测 - 冒用信号检测 - 可疑域名信号检测 ### 基于规则的风险评分 SentinelOps 使用加权安全信号计算 **0 到 100** 之间的确定性网络钓鱼风险评分。 严重级别分类: - **Low (低)** - **Medium (中)** - **High (高)** - **Critical (严重)** 分类示例: - **Likely Phishing (可能是网络钓鱼)** - **Suspicious (可疑)** - **Needs Review (需审查)** - **Low Risk (低风险)** ### OpenRouter LLM 分析 在确定性分析完成后,SentinelOps 会通过 **OpenRouter** 将结构化证据包发送给 LLM,以生成: - 分类 - 分析师摘要 - 判断依据 - 置信度 - 建议操作 LLM 仅用作 **证据审查者**,而不是主要的检测引擎。 ### 结构化报告 SentinelOps 生成: - **JSON 报告** - **Markdown 分析师报告** - **终端摘要输出** ### 持久化 - 将案例元数据和报告路径存储在 **SQLite** 中 - 保留: - 案例历史 - 工件位置 - 分类 - 严重程度 - 评分 ## 架构摘要 SentinelOps 遵循模块化的网络安全流水线: ### 1. CLI 层 接受调查输入: - 可疑 URL - 可选的分析师备注 - 调查模式 ### 2. 浏览器收集层 使用 Playwright 来: - 渲染目标页面 - 捕获 HTML 和屏幕截图 - 收集表单、按钮、链接和元数据 ### 3. 提取层 使用以下工具执行确定性解析和 IOC 提取: - BeautifulSoup - 正则表达式 (regex) - URL/域名规范化 ### 4. 检测层 构建特定的网络钓鱼安全信号并计算: - 检测特征 - 风险评分 - 严重程度 - 证据列表 ### 5. LLM 分析层 使用 OpenRouter 仅基于收集的证据生成结构化的分析师式评估。 ### 6. 报告与持久化层 输出: - JSON 报告 - Markdown 报告 - SQLite 案例条目 - 保存的调查工件 ## 技术栈 ### 核心 - **Python** - **Typer** — CLI 接口 - **Playwright** — 浏览器自动化 - **BeautifulSoup4** — HTML 解析 - **Pydantic** — 模式验证和类型化数据模型 - **SQLite** — 持久层 - **Rich** — 终端输出格式化 - **python-dotenv** — 环境变量处理 - **tldextract** — 域名解析 - **httpx** — API 请求 - **pytest** — 确定性测试 ### AI / 模型层 - **OpenRouter** — 用于结构化网络钓鱼分析的 LLM 网关 ## 项目结构 ``` sentinelops/ ├── app/ │ ├── main.py │ ├── config.py │ ├── cli/ │ │ └── commands.py │ ├── orchestrator/ │ │ └── investigation_runner.py │ ├── browser/ │ │ └── collector.py │ ├── extractors/ │ │ ├── ioc_extractor.py │ │ ├── feature_extractor.py │ │ └── content_parser.py │ ├── analyzers/ │ │ ├── risk_engine.py │ │ └── llm_analyzer.py │ ├── reports/ │ │ ├── json_reporter.py │ │ ├── markdown_reporter.py │ │ └── terminal_reporter.py │ ├── storage/ │ │ ├── db.py │ │ └── repository.py │ ├── models/ │ │ └── schemas.py │ └── utils/ │ ├── logger.py │ ├── helpers.py │ └── urls.py ├── assets/ │ └── sentinelops-architecture.png ├── data/ │ ├── cases/ │ ├── screenshots/ │ ├── html/ │ └── reports/ ├── tests/ ├── requirements.txt ├── README.md └── .env.example ``` ## 安装说明 ### 1. 克隆仓库 ``` git clone https://github.com/yourusername/sentinelops.git cd sentinelops ``` ### 2. 创建并激活虚拟环境 ``` python3 -m venv .venv source .venv/bin/activate ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 安装 Playwright 浏览器二进制文件 ``` playwright install chromium ``` ## 环境变量 在项目根目录下创建一个 `.env` 文件: ``` OPENROUTER_API_KEY=your_openrouter_api_key OPENROUTER_MODEL=anthropic/claude-3.5-sonnet OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 ``` 如果未提供 API 密钥,SentinelOps 仍将使用其确定性分析流水线和回退逻辑运行。 ## 使用方法 ### 显示 CLI 帮助 ``` python -m app.main investigate --help ``` ### 运行调查 ``` python -m app.main investigate --url "https://example.com" --notes "Test run" ``` ### 运行测试 ``` PYTHONPATH=. pytest -v tests/ ``` ## 调查工作流示例 SentinelOps 的典型运行过程如下: 1. 用户提交一个可疑 URL 2. SentinelOps 启动 Playwright 3. 收集网页工件 4. 提取危害指标 (IOC) 5. 推导网络钓鱼特征 6. 计算风险评分和严重程度 7. 生成结构化的 LLM 审查 8. 保存 JSON 和 Markdown 报告 9. 将案例元数据记录到 SQLite ## 输出工件 每次调查可以生成: ### 浏览器工件 - 整页屏幕截图 (`.png`) - 渲染后的 HTML 快照 (`.html`) ### 报告 - 结构化 JSON 报告 (`.json`) - 分析师可读的 Markdown 报告 (`.md`) ### 持久化 - SQLite 案例记录 (`.db`) 这些输出使该项目适用于: - 网络钓鱼分类演示 - 分析师工作流模拟 - 作品集案例研究 - 未来的 SOC 工具扩展 ## 测试 SentinelOps 包含针对核心安全逻辑的确定性测试: - IOC 提取 - 网络钓鱼特征提取 - 风险评分 - Markdown 报告 使用以下命令运行套件: ``` PYTHONPATH=. pytest -v tests/ ``` ## 安全/研究说明 SentinelOps 旨在用于: - **防御性安全研究** - **网络钓鱼调查实践** - **SOC 风格的工作流模拟** - **安全作品集演示** 它不适用于进攻性用途或与活动的恶意基础设施进行不安全的交互。 在测试可疑 URL 时始终要谨慎行事。 ## 未来路线图 计划中的未来改进包括: - 多页网络钓鱼爬取模式 - 重定向链映射 - 屏幕截图证据库 - PDF 报告导出 - Streamlit 或轻量级 Web 仪表板 - 分析师审查队列 UI - 威胁情报丰富集成 - 域名信誉丰富 - 扩展的网络钓鱼品牌冒用检测 - CVE / 供应商公告分析模式 - SOC 案例管理增强 ## 为什么这个项目很重要 SentinelOps 的构建旨在利用现代自动化和 AI 辅助分析来模拟真实的网络安全调查工作流程。 该项目不仅仅依赖 LLM,还有意结合了: - **确定性提取** - **可解释的风险评分** - **结构化证据审查** - **工件保存** - **分析师可读输出** 这种设计使其成为一个更强大的工程项目,也是一个比简单的“AI 包装器”更真实的安全工作流。 ## 许可证 本项目用于教育、研究和作品集用途。 如果您公开发布此项目的扩展版本,请考虑添加 MIT 许可证。
标签:AI 安全, DAST, DLL 劫持, ESC漏洞, IOC 提取, OpenRouter, Playwright, Python, SOC工具, SQLite, 品牌保护, 大语言模型, 威胁情报, 威胁搜寻, 安全规则引擎, 安全运营, 开发者工具, 恶意软件分析, 扫描框架, 搜索语句(dork), 无后门, 漏洞发现, 特征检测, 网络安全, 网页分析, 自动化取证, 证据收集, 运行时操纵, 逆向工具, 钓鱼调查, 隐私保护, 风险评分