twsnmp/twSecScan
GitHub: twsnmp/twSecScan
一款基于 Wails 和 Svelte 5 构建的零依赖 AI 驱动安全扫描桌面应用,以单一二进制文件提供涵盖网络、Web、API、加密及本地审计的多模块安全检测能力。
Stars: 0 | Forks: 0
# twSecScan
**twSecScan** 是一款由 AI 驱动、零依赖的安全扫描桌面应用程序。它使用 [Wails](https://wails.io/) 和 [Svelte 5](https://svelte.dev/) 构建,以单一跨平台二进制文件的形式提供完整的安全套件——无需 `nmap` 或 `nuclei` 等外部工具。
## ✨ 核心功能
- **9 个扫描模块**,涵盖网络、Web、API、加密和本地文件系统安全
- **由 AI 驱动的缓解建议**,通过 Ollama(本地)、OpenAI 或 Anthropic 提供
- **零外部依赖** — 所有扫描器均以纯 Go 实现
- **单一二进制文件** — 可移植部署,无需安装
- **双语 UI** — 支持英文和日文,自动检测操作系统语言
- **报告导出** — 支持 HTML、Markdown 和 JSON 格式
- **扫描历史记录** — 通过 bbolt 嵌入式数据库进行持久化存储
## 🗺️ 概览

*twSecScan 提供四大核心模块(OSINT、Web、API 安全、本地审计),一个集成了 OpenAI、Anthropic 或 Ollama 的 AI 引擎,以及五步扫描工作流——所有这些都打包在单一的二进制文件中。*
## 🖥️ 截图
### 仪表盘

*输入目标 URL 或 IP,选择扫描模块,然后点击“开始扫描”。*
### 扫描发现与 AI 建议

*扫描结果会显示严重性级别标记(严重 / 高危 / 中危 / 低危 / 信息)以及由 AI 生成的缓解策略。*
### 设置

*配置您的 AI 提供商(Ollama、OpenAI、Anthropic)、扫描并发数以及 UI 语言。*
## 🔍 扫描模块
| 模块 | 描述 | 目标 |
|--------|-------------|--------|
| **OSINT 扫描** | 对常用端口进行 TCP 端口扫描 + DNS 和 WHOIS 查询 | IP 或域名 |
| **Web 扫描器** | 用于检测失效链接、HTTP 安全标头、PII 泄露的递归爬虫 | `https://...` |
| **资产审计器** | 探测暴露的配置文件、备份、`.git`、管理面板 | `https://...` |
| **验证测试器** | 抓取页面并测试 URL 参数是否存在 XSS 和 SQL 注入 | `https://...` |
| **技术栈检测器** | 从标头和 HTML 中识别 Web 服务器、CMS、框架 | `https://...` |
| **API 模糊测试器** | 解析 OpenAPI 3.0 规范,并对所有 endpoint 进行动态安全模糊测试 | URL 或本地文件 |
| **DNS 和 WHOIS** | 独立的 DNS 记录和 WHOIS 注册商信息查询 | 域名 |
| **加密扫描器** | 检查 SSL/TLS 证书、SSH 标头横幅以及邮件服务器加密(SMTP/IMAP/POP3) | IP 或域名 |
| **本地文件夹审计** | 遍历本地目录,检查密钥、不安全的权限以及是否符合 CIS 控制措施要求 | 本地路径 |
## 🤖 AI 集成
twSecScan 集成了 LLM 提供商,旨在为每一项发现生成可操作的缓解建议。
| 提供商 | 配置 |
|----------|--------------|
| **Ollama**(默认) | 在本地运行。设置 endpoint URL(默认:`http://localhost:11434`)和模型名称 |
| **OpenAI** | 在设置中提供您的 API 密钥 |
| **Anthropic** | 在设置中提供您的 API 密钥 |
如果未配置 AI 提供商,扫描发现仍将包含完整的技术详情被记录下来。
## 🛠️ 技术栈
| 组件 | 技术 |
|-----------|-----------|
| 后端 | Go(纯 Go,无 CGO) |
| 前端 | Wails v2 + Svelte 5 (Runes) + Tailwind CSS |
| 数据库 | bbolt(嵌入式 key-value 存储) |
| OpenAPI 解析器 | `getkin/kin-openapi` |
| 构建工具链 | `mise`(Go + Node.js + Wails 版本管理) |
## 🚀 快速开始
### 前置条件
- [mise](https://mise.jdx.dev/) — 开发工具链管理器
### 安装工具链
```
# 通过 mise 安装 Go、Node.js 和 Wails
mise install
```
### 开发
```
# 以开发模式启动(热重载)
wails dev
```
### 构建
```
# 构建生产环境二进制文件
wails build
```
输出的二进制文件 (`twSecScan`) 将放置在 `build/bin/` 目录中。
## 📁 项目结构
```
twSecScan/
├── main.go # Wails entry point
├── app.go # Backend bindings (Frontend ↔ Backend)
├── core/
│ ├── db/bbolt.go # Persistent storage (bbolt)
│ └── models/models.go # Config, Scan, Finding structs
├── modules/
│ ├── ai/ # LLM client abstraction (Ollama/OpenAI/Anthropic)
│ ├── apisec/ # OpenAPI parser + API fuzzer
│ ├── osint/ # Port scanner, DNS/WHOIS, Crypto scanner
│ ├── webscanner/ # Crawler, Asset auditor, Validation tester, Tech detector
│ └── localaudit/ # Local folder CIS audit
├── embed/
│ └── wordlists/ # Embedded wordlists (directories, subdomains)
└── frontend/src/
└── App.svelte # Single-file Svelte 5 UI
```
## 📊 报告导出
扫描完成后,点击扫描历史记录视图中的 **导出** 按钮以保存报告:
- **HTML** — 带有样式和严重性级别标记的独立报告
- **Markdown** — 适用于文档记录的纯文本报告
- **JSON** — 用于程序化处理的原始 `{scan, findings}` 数据
## 🗄️ 数据存储
扫描历史记录和设置存储在一个数据库文件中,该文件会自动创建在以下特定于平台的位置:
| 操作系统 | 默认路径 |
|----|--------------|
| macOS | `~/Library/Application Support/twSecScan/twSecScan.db` |
| Windows | `%APPDATA%\twSecScan\twSecScan.db` |
| Linux | `~/.config/twSecScan/twSecScan.db` |
### 自定义数据库路径 (CLI 选项)
使用 `--db-path` 标志可覆盖默认位置:
```
# 保存在当前目录
./twSecScan --db-path ./mydata.db
# 指定绝对路径
./twSecScan --db-path /home/user/backup/scan.db
```
## ⚠️ 法律声明
twSecScan 仅供**授权的安全测试**使用。在扫描任何非您所有的系统或网络之前,请务必获得明确的许可。未经授权的扫描可能会违反法律法规。
## 📄 许可证
[Apache License 2.0](LICENSE)
标签:AI风险缓解, API安全, ESC4, EVTX分析, GitHub, Go, GraphQL安全矩阵, JSON输出, OSINT, Petitpotam, Ruby工具, SBOM分析, Svelte, Wails, Web安全, 安全扫描器, 实时处理, 密码管理, 插件系统, 日志审计, 桌面应用, 蓝队分析