itprodirect/psec-baseline-hunter
GitHub: itprodirect/psec-baseline-hunter
一个网络安全扫描结果可视化与基线变更追踪工具,帮助非技术人员理解网络风险状况。
Stars: 0 | Forks: 0
# PSEC Baseline Hunter
**为每个人设计的网络安全** — 了解你的网络发生了什么变化,用通俗易懂的英文为你解释。
[](https://nextjs.org/)
[](https://www.typescriptlang.org/)
[](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