sampadamawatkar/security-scanner
GitHub: sampadamawatkar/security-scanner
一款自托管安全扫描工具,将 nmap 网络扫描结果交由本地 LLM 分析,并通过 Web 界面输出结构化的漏洞报告。
Stars: 1 | Forks: 0
# AI 驱动的漏洞扫描器
一款自托管的安全扫描工具,可对目标执行网络扫描,将原始结果发送至本地 LLM 进行分析,并通过 Web dashboard 展示结构化、易读的漏洞报告。
## 功能说明
1. 用户通过 dashboard 输入目标 IP
2. 后端对该目标运行 `nmap` 扫描
3. 原始扫描输出被发送至本地运行的 LLM (Ollama)
4. 模型返回结构化报告:摘要、开放端口、风险等级和修复建议
5. 报告将回显在 dashboard 上
所有分析均在本地运行——数据不会离开网络,也无需付费 API。
## 架构
```
┌────────────────┐ nmap scan ┌──────────────────────┐
│ Kali Linux │ ───────────────────────▶ │ CentOS │
│ (scanner + │ │ Target: OWASP │
│ FastAPI) │ ◀─────────────────────── │ Juice Shop (Docker) │
└───────┬────────┘ scan result └──────────────────────┘
│
│ raw scan text
▼
┌────────────────┐
│ Ollama (LLM) │ runs on the host machine, called over the network
│ llama3.2 │
└───────┬────────┘
│ structured report
▼
┌────────────────┐
│ Web Dashboard │ browser UI, calls the FastAPI backend
└────────────────┘
```
CentOS 还运行了启用 Docker 的 Jenkins,为构建和部署流程的 CI/CD 自动化做好准备。
## 技术栈
- **扫描:** nmap
- **后端:** Python, FastAPI
- **AI 分析:** Ollama (llama3.2),本地运行——无需云 API
- **前端:** HTML/CSS/JavaScript dashboard
- **目标环境:** OWASP Juice Shop(刻意设计包含漏洞的 Web 应用),使用 Docker 容器化
- **CI/CD(进行中):** CentOS 上的 Jenkins
## 设置
### 前置条件
- 一台运行扫描器的机器(nmap + Python 3 + pip)
- 一台可通过网络访问的目标机器,需安装 Docker 以运行 Juice Shop
- 已安装 Ollama,且可从扫描器机器通过网络访问
### 1. 运行目标
在目标机器上:
```
docker run -d -p 3000:3000 --name juice-shop bkimminich/juice-shop
```
### 2. 运行 Ollama
在托管 LLM 的机器上:
```
ollama pull llama3.2
```
确保 Ollama 可从扫描器机器访问(如果它们位于不同的主机上,请将其绑定到 `0.0.0.0` 而不是 `localhost`)。
### 3. 运行后端
在扫描器机器上:
```
pip3 install fastapi uvicorn requests --break-system-packages
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
更新 `main.py` 顶部的 `OLLAMA_HOST` 值,指向 Ollama 运行的位置。
### 4. 打开 dashboard
在浏览器中打开 `dashboard.html`(在扫描器机器上,或任何可以访问后端的机器上)。输入目标 IP 并点击 **Run scan**。
## 项目结构
```
security-scanner/
├── main.py # FastAPI backend: runs nmap, calls Ollama, returns report
├── dashboard.html # Browser-based UI for triggering scans and viewing reports
└── README.md
```
## 关于此设置的说明
- 这里使用的目标(OWASP Juice Shop)是专为安全培训构建的故意包含漏洞的应用——未扫描任何真实系统。
- 由于硬件限制(Apple Silicon 无法运行 x86 虚拟机),目标和 CI/CD 服务器共同部署在单个 VM 上,而不是像生产安全实验室中通常那样在单独的主机上完全隔离。
## 未来改进
- 使用 Docker 容器化后端和 dashboard
- 通过已配置的 Jenkins pipeline 自动化构建/部署
- 在将 dashboard 暴露到本地网络之外前添加身份验证
- 支持 nmap 之外的其他扫描类型(nikto、dirb)
## 作者
Sampada Manwatkar
标签:AI风险缓解, AV绕过, DLL 劫持, FastAPI, LLM评估, Ollama, 后端开发, 多模态安全, 大语言模型, 插件系统, 数据可视化, 本地部署, 自动化报告, 请求拦截, 逆向工具