itprodirect/psec-baseline-hunter

GitHub: itprodirect/psec-baseline-hunter

一个网络安全扫描结果可视化与基线变更追踪工具,帮助非技术人员理解网络风险状况。

Stars: 0 | Forks: 0

# PSEC Baseline Hunter **为每个人设计的网络安全** — 了解你的网络发生了什么变化,用通俗易懂的英文为你解释。 [![Next.js](https://img.shields.io/badge/Next.js-16.x-black)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue)](https://www.typescriptlang.org/) [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE) ## 这是什么? PSEC Baseline Hunter 帮你回答:**“我的网络安全吗,我该怎么做?”** 上传你的网络扫描结果,即可获得: - **通俗易懂的摘要**,专为你的角色(高管、律师、IT 人员、家长)量身定制 - **优先行动计划** — 先解决什么以及为什么 - **变更检测** — 自上次扫描以来有什么新变化 - **风险评分** — 一目了然地了解你的安全态势 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 🏠 Your Network Health │ │ │ │ Risk Score: 72 (Good) │ │ │ │ ✅ No critical exposures detected │ │ ⚠️ 2 new devices joined your network │ │ 📋 Recommended: Review unknown devices │ │ │ │ [View Details] [Explain This To Me] [Export Report] │ └─────────────────────────────────────────────────────────────────┘ ``` ## 核心功能 | 功能 | 作用 | |---------|-------------| | **个性化解释** | 选择你的受众群体(高管、安全专家、律师、运维人员),用你能听懂的语言获取结果 | | **演示模式** | 使用示例数据立即试用应用 — 无需扫描 | | **风险优先级排序** | 严重 → 高 → 关注 分类,并附带清晰的行动计划 | | **变更检测** | 随着时间的推移比较扫描结果,查看新增或不同之处 | | **一键导出** | 为利益相关者、IT 团队或合规要求生成报告 | | **LLM 驱动的摘要** | 可选的 AI 解释,根据你的职业和背景量身定制 | ## 快速开始 ### 选项 1:试用演示模式(无需设置) ``` git clone https://github.com/itprodirect/psec-baseline-hunter.git cd psec-baseline-hunter npm install npm run dev ``` 打开 http://localhost:3000 并点击 **“试用演示”** — 立即查看带有示例数据的应用。 ### 选项 2:扫描你自己的网络 **前置条件:** Node.js 20+,已安装 Nmap ``` # 1. 运行扫描(替换为您的网络范围) nmap -sV --top-ports 200 192.168.1.0/24 -oX my_scan.xml # 2. 创建 ZIP 结构 mkdir -p my-network/rawscans/$(date +%Y-%m-%d_%H%M)_baseline mv my_scan.xml my-network/rawscans/*/ports_top200_open.xml zip -r my-network.zip my-network/ # 3. 上传至 http://localhost:3000 ``` ## 这是为谁设计的? ### 👨‍👩‍👧‍👦 家庭与个人用户 当新设备出现时获取警报,用通俗易懂的语言了解风险,并获取简单的修复说明。 ### ⚖️ 律师与合规人员 导出包含责任界定、证据保管链和法律监管背景的专业报告。 ### 💼 小型企业主 查看你的风险评分,获取排名前 3 的行动建议,并与你的 IT 供应商分享报告。 ### 🔒 安全专业人士 完整的端口/服务详情,P0/P1/P2 分类,并可导出至 CHANGES.md / WATCHLIST.md。 ## 三步流程 ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ UPLOAD │────▶│ ANALYZE │────▶│ ACT │ │ │ │ │ │ │ │ Drag & drop │ │ View health │ │ Fix issues │ │ your scan │ │ summary & │ │ with guided │ │ ZIP file │ │ risk score │ │ checklist │ └──────────────┘ └──────────────┘ └──────────────┘ ``` ## 个性化解释 应用会根据你的身份调整语言: | 角色 | 语言风格 | |---------|---------------| | **高管** | 风险趋势、业务影响、适合汇报的摘要 | | **律师** | 责任风险、文档记录、保密特权问题 | | **安全人员** | 端口、服务、CVE、技术修复方案 | | **运维人员** | 变更工单、正常运行时间风险、回滚步骤 | | **家长** | “你孩子的 iPad” 对比 “儿童 Wi-Fi 上的未知设备” | ## 项目结构 ``` psec-baseline-hunter/ ├── src/ │ ├── app/ # Next.js App Router │ │ ├── (dashboard)/ # Main dashboard pages │ │ │ ├── page.tsx # Network Health Dashboard │ │ │ ├── scorecard/ # Health Overview (single run) │ │ │ └── diff/ # Changes view (compare runs) │ │ └── api/ # Backend API routes │ ├── components/ │ │ ├── scorecard/ # Personalized summary, modals │ │ ├── layout/ # Sidebar, navigation │ │ └── ui/ # shadcn/ui components │ └── lib/ │ ├── services/ # Diff engine, risk classifier, parsers │ ├── llm/ # LLM prompt builders │ ├── types/ # TypeScript definitions │ └── constants/ # Risk ports, actions mapping ├── scripts/ # PowerShell/bash scan scripts ├── docs/ # Documentation └── data/ # Local storage (gitignored) ``` ## 风险分类 | 优先级 | 端口 | 为什么重要 | |----------|-------|----------------| | **P0 严重** | 23, 445, 3389, 5900, 135, 139, 1080 | 远程访问与文件共享 — 立即修复 | | **P1 管理** | 8080, 8443, 8888, 9000, 9090 | 管理面板 — 通常未受保护 | | **P2 关注** | 22, 80, 443 | 常见服务 — 注意是否为新增 | ## 配置 ### 可选:启用 AI 摘要 添加至 `.env.local`: ``` # 配置后会优先使用 Anthropic。 ANTHROPIC_API_KEY=sk-ant-your-key-here ANTHROPIC_MODEL=claude-3-5-sonnet-20241022 # 仅在未配置 Anthropic 时使用 OpenAI。 OPENAI_API_KEY=sk-your-key-here OPENAI_MODEL=gpt-4o # 可选的 LLM 安全控制。 LLM_REQUEST_TIMEOUT_MS=15000 LLM_MAX_TOKENS=2000 ``` 模型变量是可选的;上面显示的值与当前 runtime 的默认值相匹配。如果没有 API 密钥,或者路由级别的 LLM 调用失败,应用将使用基于规则的智能摘要。 当前实现说明: - OpenAI 使用直接的 Chat Completions API `fetch`,而不是 Responses API 或 OpenAI SDK。 - Anthropic 使用直接的 Messages API `fetch`,而不是 Anthropic SDK。 - 未来的模型默认设置或 API 现代化应该在单独的专门 issue/PR 中处理。 ## 开发 ``` npm run dev # Start dev server npm run build # Production build npm run lint # Run linter npm test # Run tests ``` ## 文档 | 文档 | 描述 | |----------|-------------| | [CLAUDE.md](CLAUDE.md) | Claude Code 的 AI 助手上下文 | | [ROADMAP.md](docs/ROADMAP.md) | 功能路线图 | | [SCANNING_GUIDE.md](docs/SCANNING_GUIDE.md) | 如何运行 Nmap 扫描 | | [CHANGELOG.md](CHANGELOG.md) | 版本历史 | ## 路线图亮点 ### ✅ 已完成 (v0.6.0) - 基于 persona 的解释与 LLM 集成 - 带有示例数据的演示模式 - 风险评分与优先级排序 - 变更检测与差异视图 - 带有真实泄露案例的实际影响卡片 - 面向领导层的高管摘要 - **自定义风险规则** - 基于网络的端口分类 - **CSV 导出** - 下载评分卡和差异数据 - **对比历史** - 保存并分享扫描对比结果 ### 📋 计划中 (Phase 6+) - **LLM 可观测性** - 集成 Wandb 以追踪 API 调用、成本和性能 - **S3 云存储** - 从本地文件系统迁移 - 设备识别(HTTP 标题、MAC 厂商) - 定时扫描 + 每周摘要 - 安全强化(速率限制、输入验证) ## 许可证 MIT License — 详情请参阅 [LICENSE](LICENSE)。 ## 鸣谢 - [Nmap](https://nmap.org/) — 为我们提供数据支持的网络扫描器 - [shadcn/ui](https://ui.shadcn.com/) — 精美的 UI 组件 - [Next.js](https://nextjs.org/) — React 框架 - [Anthropic](https://anthropic.com/) — 用于生成摘要的 Claude AI **致力于帮助家庭、小型企业和专业人士了解他们的网络安全。**
标签:CTI, DInvoke, Petitpotam