lcolon231/nodelink-security-scanner

GitHub: lcolon231/nodelink-security-scanner

面向中小企业的轻量级外部安全态势扫描器,通过九项被动检查生成量化评分和品牌化 PDF 报告,帮助 MSP 将安全服务转化为可理解的商业成果。

Stars: 0 | Forks: 0

# NodeLink SMB 安全态势扫描器 为 NodeLink Technologies LLC 打造的旗舰项目。生产就绪的 Next.js、TypeScript 和 pdf-lib。 ![扫描结果页面](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/17fc5f7d2c123443.png) ## 为什么会有这个项目 大多数托管服务提供商 (MSP) 向小型企业销售云和安全服务,但小企业主往往很难理解他们真正需要什么。这个工具将“你应该加强安全防护”转化为一个具体的成果:一个 0-100 的分数和一份带有品牌标识的 PDF 报告,潜在客户只需五分钟就能看懂。 对于 NodeLink 来说,这是一个潜在客户开发工具。潜在客户运行一次扫描,得分低于 75 分,就有了一个具体的理由来安排一次电话沟通。对于作品集审查者来说,它展示了对 DNS、TLS 和网络编程的真实运用,以及对目标用户及其需求的产品化思考。 ## 演示流程 1. 潜在客户输入他们的域名 2. 扫描器并行运行九项被动外部检查(约 15-30 秒) 3. 结果页面展示分数、按严重程度排序的发现以及修复建议 4. 潜在客户下载一份带有品牌标识的 PDF 报告 ![主页](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/42de1ffaae123444.png) ![PDF 报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2ba30e95d5123446.png) ## 功能 - 九项被动外部检查:SPF、DKIM、DMARC、MX、DNS 卫生 (NS、CAA)、TLS 证书健康状况和协议、HTTP 安全标头、HTTPS 重定向、暴露的常用端口。 - 确定性的 0-100 风险评分,具有可解释的基于严重程度的扣分机制。 - 为非技术所有者(而非安全工程师)编写的通俗易懂的修复建议。 - 包含 Logo、评分卡、执行摘要和各项发现修复框的定制品牌 PDF 报告。 - 扫描历史仪表盘。 - 基于 IP 的速率限制。 - 开发环境使用 SQLite,只需更改一个环境变量即可切换为 PostgreSQL。 ## 安全边界 该工具仅对公共基础设施执行**被动或低影响检查**:只读 DNS 查询、TLS 握手检查、常用端口上的 TCP 连接探测,以及用于读取响应标头的 HTTP 抓取。它不会利用漏洞、尝试身份验证、对输入进行模糊测试、执行 SYN 扫描或对目标进行压力测试。 请仅对您被授权评估的域名使用此工具(您自己的域名,或已同意进行自我评估的潜在客户的域名)。 ## 技术栈 - Next.js 15 (App Router) + TypeScript - Tailwind CSS - Prisma 5 + SQLite (开发环境) / PostgreSQL (生产环境) - pdf-lib 用于 PDF 生成(无 Chromium 依赖) - Zod 用于输入验证 - LRU 缓存用于内存速率限制 ## 快速开始 需要 Node.js 18.17+(推荐 20+ 版本)。 ``` npm install cp .env.example .env npx prisma generate npx prisma db push npm run dev ``` 打开 http://localhost:3000 并扫描您拥有或有权评估的域名。 ## 项目结构 ``` . ├── prisma/ Prisma schema and dev SQLite database ├── public/ Logo embedded into PDF ├── samples/ Example scan output JSON ├── docs/screenshots/ README screenshots └── src/ ├── app/ Next.js routes (pages and API) │ ├── api/scan/ POST /api/scan, GET /api/scan/[id], /pdf │ ├── scan/[id]/ Results page │ └── scans/ History dashboard ├── components/ ScanForm, ScoreGauge, FindingCard, SeverityBadge ├── lib/ db, validation, rate limit, logger ├── pdf/ pdf-lib report generator └── scanner/ Orchestrator + 9 check modules + scoring ``` ## 评分模型 ## 评分模型 初始分数为 100。每次未通过的检查会根据其严重程度进行扣分。通过和信息性发现不扣分。 | 严重程度 | 扣分 | |----------|-----------| | Critical | 25 | | High | 15 | | Medium | 8 | | Low | 3 | | Info | 0 | 严重程度是每项检查固有的,而非根据上下文推导得出。这保证了评分的确定性和可解释性。 | 分数 | 等级 | |-------|------------| | 90-100 | Strong (强) | | 75-89 | Good (良好) | | 60-74 | Needs Work (待改进) | | 40-59 | Weak (较弱) | | 0-39 | Critical (危急) | ## 扫描输出示例 查看 [`samples/scan-output.json`](./samples/scan-output.json) 获取由 `GET /api/scan/[id]` 返回的 JSON 示例。 ## 生产部署的安全建议 该 MVP 适用于个人演示和授权的自我评估。在部署用于付费或多租户用途之前: 1. **身份验证。** 添加 NextAuth 或 Clerk 并将扫描范围限定到具体用户。 2. **更强的速率限制。** 将内存中的 LRU 替换为 Upstash Redis 或 Vercel KV,使限制在重启后依然有效,并能在无服务器实例间正常工作。同时根据 IP 和账户进行限制。 3. **自动发送电子邮件报告前的域名所有权验证。** 在生成包含请求者信息的品牌 PDF 之前,要求提供 TXT 验证记录。 4. **后台作业。** 将扫描任务移至队列 (Inngest、BullMQ 或 Vercel Cron + 轮询状态端点),以获得更好的用户体验和超时安全性 (特别是在无服务器环境下)。 5. **出站网络出口。** 确保您的托管服务提供商允许到常用端口 (22、25、3389 等) 的出站 TCP 连接。 6. **审计日志。** 扩展数据库结构以包含 IP、user-agent 和已验证的用户 ID。 7. **滥用防范。** 维护一份敏感域名 (政府、银行、您未获授权评估的医疗机构等) 的拒绝名单。 ## 路线图 ### MVP (当前代码库) - [x] 域名输入 + 验证 - [x] 九项被动外部检查 - [x] 具有可解释严重性的风险评分 - [x] 带有评分仪表盘和发现的结果页面 - [x] 品牌化 PDF 报告 - [x] 扫描历史仪表盘 - [x] 基于 IP 的速率限制 ### v1 - [ ] 用户账户 (NextAuth) - [ ] 生产环境使用 Postgres - [ ] 带有状态轮询的异步扫描 - [ ] PDF 报告的电子邮件发送 (包含域名所有权验证) - [ ] 定期重新扫描 - [ ] 扫描间的差异比对 ("自上周以来新增 3 个问题") - [ ] 每个工作区的 Logo 上传 (面向 MSP 合作伙伴的白标服务) - [ ] 导出为 CSV / JSON ### 高级版 - [ ] 通过证书透明度和被动 DNS 进行子域名枚举 - [ ] 从公共元数据提供云资源配置错误提示 - [ ] 在获得收件箱访问授权的情况下,进行邮箱级别的 DKIM/DMARC 对齐检查 - [ ] PDF 中的 HIPAA / SOC 2 控制映射 - [ ] 评分下降时的 Slack/Teams 告警 - [ ] 用于 MSP 集成的 API 访问 - [ ] 供应商风险模块 (批量评估供应商) ## 许可证 MIT — 查看 [LICENSE](./LICENSE)。 ## 免责声明 此工具基于对公共域名基础设施的被动检查提供轻量级的外部评估。它不是一次渗透测试,也不是全面的安全审计,并且不保证不存在漏洞。各项发现仅供参考。请仅对您拥有或已获得明确授权评估的域名使用。
标签:B2B安全服务, DKIM检查, DMARC验证, DNS安全检测, GNU通用公共许可证, HTTPS重定向验证, HTTP安全头检测, MSP工具, MX记录解析, Next.js 15, Node.js, pdf-lib, PDF报告生成, PostgreSQL, React, SaaS安全工具, SPF记录检查, SQLite, Syscalls, TLS证书健康检查, TypeScript, 中小企业安全, 合规检测, 品牌定制报告, 外部安全态势扫描, 安全合规, 安全意识宣贯, 安全插件, 测试用例, 潜在客户生成, 端口暴露扫描, 网络代理, 网络安全评估, 自动化攻击, 获客工具, 风险评估打分