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, 后端开发, 多模态安全, 大语言模型, 插件系统, 数据可视化, 本地部署, 自动化报告, 请求拦截, 逆向工具