SANDHYAKUMARI1504/AI-based-vulnerability-scanner
GitHub: SANDHYAKUMARI1504/AI-based-vulnerability-scanner
一个基于 Python 后端和 React 前端的全栈 Web 漏洞扫描器,利用 AI 引擎检测常见安全漏洞、分类风险等级并生成修复建议,通过浏览器界面提供直观的扫描配置与报告展示。
Stars: 0 | Forks: 0
# 基于 AI 的漏洞扫描器
一个全栈 Web 应用程序,结合了 Python 后端、AI 驱动的分析引擎和现代化的 React 前端,用于检测、分类和报告安全漏洞。该系统旨在通过直观的浏览器界面和智能扫描逻辑,协助安全专业人员、开发人员和学生识别和理解常见的应用程序及网络弱点。
## 目录
- [关于本项目](#about-the-project)
- [项目结构](#project-structure)
- [技术栈](#tech-stack)
- [开始使用](#getting-started)
- [前置条件](#prerequisites)
- [后端设置](#backend-setup)
- [前端设置](#frontend-setup)
- [运行应用程序](#running-the-application)
- [前端架构](#frontend-architecture)
- [功能特性](#features)
- [漏洞检测范围](#vulnerability-detection-coverage)
- [工作原理](#how-it-works)
- [配置说明](#configuration)
- [为生产环境扩展 ESLint](#extending-eslint-for-production)
- [贡献指南](#contributing)
- [免责声明](#disclaimer)
- [作者](#author)
## 关于本项目
安全漏洞是现代软件系统面临的最关键风险之一。手动识别它们成本高昂、速度缓慢且容易产生不一致。本项目通过构建一个全栈 AI 驱动的漏洞扫描器来填补这一空白,为运行智能安全评估提供了一个易于访问的界面。
后端使用 Python 构建,并使用 AI 模型来分析目标、解释发现的问题并生成修复指导。前端是一个响应式的 React 应用程序,使用 Vite 构建并使用 Tailwind CSS 进行样式设计,为用户提供了一个干净且专业的界面,用于配置扫描、监控进度和查看详细的漏洞报告。
该项目遵循客户端-服务器架构,其中 React 前端通过 REST API 与 Python 后端进行通信。用户设置和扫描配置使用本地 SQLite 数据库和基于 JSON 的存储文件进行持久化保存。
## 项目结构
```
AI-based-vulnerability-scanner/
│
├── secureai-backend/ # Python backend server
│ ├── app/ # Core application logic, routes, and API handlers
│ ├── models/ # AI models and vulnerability analysis modules
│ ├── requirements.txt # Python dependencies
│ ├── run.py # Application entry point
│ ├── settings.db # SQLite database for persistent settings and results
│ ├── settings.json # Application configuration file
│ └── users.json # User data store
│
├── secureai-frontend/ # React + Vite frontend application
│ ├── public/ # Static assets served directly
│ ├── src/ # React components, pages, hooks, and utilities
│ ├── index.html # Root HTML entry point
│ ├── package.json # Node.js dependencies and npm scripts
│ ├── package-lock.json # Dependency lock file
│ ├── tailwind.config.js # Tailwind CSS configuration
│ ├── postcss.config.js # PostCSS configuration
│ ├── vite.config.js # Vite build tool and dev server configuration
│ └── eslint.config.js # ESLint rules and code quality configuration
│
├── README.md
└── desktop.ini
```
## 技术栈
### 后端
| 技术 | 用途 |
|---|---|
| Python 3.x | 核心后端语言 |
| Flask / FastAPI | REST API 服务器(位于 `app/` 内) |
| AI / ML 模型 | 漏洞分析与修复建议生成 |
| SQLite (`settings.db`) | 扫描设置和结果的持久化存储 |
| JSON 文件 | 轻量级用户和配置存储 |
### 前端
| 技术 | 用途 |
|---|---|
| React | 基于组件的 UI 框架 |
| Vite | 具备热模块替换 (HMR) 的快速开发服务器 |
| Tailwind CSS | 实用优先的 CSS 样式框架 |
| PostCSS | CSS 转换和处理 pipeline |
| ESLint | 静态代码分析与质量保证工具 |
## 开始使用
### 前置条件
在继续之前,请确保您的系统已安装以下软件:
- Python 3.8 或更高版本
- pip (Python 包管理器)
- Node.js 18 或更高版本
- npm(随 Node.js 一起提供)
### 后端设置
1. 导航到后端目录:
```
cd secureai-backend
```
2. 创建并激活虚拟环境:
```
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. 安装所需的 Python 依赖项:
```
pip install -r requirements.txt
```
4. 根据需要查看并更新配置文件:
```
# 打开 settings.json 以配置 API keys、scan options 和 server parameters
```
### 前端设置
1. 导航到前端目录:
```
cd secureai-frontend
```
2. 安装所需的 Node.js 依赖项:
```
npm install
```
## 运行应用程序
### 启动后端服务器
从 `secureai-backend` 目录中,在已激活虚拟环境的情况下运行:
```
python run.py
```
后端 API 服务器将启动并监听传入的请求。默认情况下,它在 `http://localhost:5000` 上运行,除非在 `settings.json` 中另有配置。
### 启动前端开发服务器
从 `secureai-frontend` 目录中运行:
```
npm run dev
```
React 应用程序将在您的浏览器中通过 `http://localhost:5173` 访问。Vite 开箱即用地提供热模块替换 (HMR),因此对源文件的所有更改都会立即反映在浏览器中,而无需完全重新加载页面。
### 为生产环境构建前端
```
npm run build
```
Vite 将为生产环境打包并优化应用程序。输出将被放置在 `secureai-frontend` 内部的 `dist/` 目录中,并且可以由任何静态文件托管服务或 Web 服务器提供服务。
### 在本地预览生产构建
```
npm run preview
```
这将在本地提供生产构建服务,以便您在部署之前验证输出。
## 前端架构
前端是使用 React 与作为开发和构建工具链的 Vite 构建的。与传统的打包工具相比,Vite 通过在开发过程中利用原生 ES modules,显著缩短了启动和重建时间。
### React Fast Refresh
该项目使用两个官方 Vite 插件之一来实现 React Fast Refresh,这使得组件能够在开发期间独立重新加载,而不会丢失应用程序状态:
- `@vitejs/plugin-react` — 使用 Babel(或者在与 rolldown-vite 一起使用时使用 oxc)实现 Fast Refresh。这是标准且兼容性最广的选项。
- `@vitejs/plugin-react-swc` — 使用基于 Rust 的编译器 SWC,以实现更快的转换速度。推荐用于构建性能是优先考虑事项的较大型项目。
当前启用的插件可以在 `vite.config.js` 中找到并更改。
### 样式
Tailwind CSS 通过 `tailwind.config.js` 进行配置,并通过 `postcss.config.js` 中定义的 PostCSS pipeline 进行处理。此设置支持实用优先的样式设计,并在生产构建中完全清除未使用的类,从而产生最小的 CSS 包体积。
### 代码质量
ESLint 在 `eslint.config.js` 中配置了适用于 React 应用程序的规则。可以通过以下方式运行代码检查:
```
npm run lint
```
## 功能特性
- 基于浏览器的界面,用于配置和启动漏洞扫描
- AI 驱动的后端,用于评估扫描结果并生成可操作的修复建议
- 通过 `users.json` 和 `settings.db` 进行用户身份验证和会话管理
- 持久化的扫描设置和历史记录存储在 SQLite 和 JSON 中
- 使用 React、Vite 和 Tailwind CSS 构建的响应式现代化 UI
- 前端开发期间支持热模块替换,实现快速迭代工作流
- 模块化的 Python 后端,具有独立的 `app/` 和 `models/` 目录,便于可扩展开发
- 简洁的 REST API 架构,实现前端和后端关注点的完全分离
- 直接在浏览器中渲染的结构化漏洞报告
## 漏洞检测范围
该扫描器旨在检测和分析以下类别的安全漏洞:
- SQL 注入
- 跨站脚本攻击 (XSS)
- 跨站请求伪造 (CSRF)
- 服务器端请求伪造 (SSRF)
- 不安全的直接对象引用
- 安全配置错误和敏感文件暴露
- 身份验证失效和弱会话管理
- 开放重定向漏洞
- 基于检测到的软件版本匹配已知 CVE
## 工作原理
1. 用户在浏览器中打开 React 前端,并通过 UI 配置扫描目标和选项。
2. 前端通过 REST API 调用将扫描请求发送到 Python 后端。
3. 后端 `app/` 层接收请求,验证输入,并触发扫描逻辑。
4. `models/` 层使用 AI 辅助的漏洞检测技术处理目标。
5. AI 模型分析发现的问题,对严重程度进行分类,并生成人类可读的修复建议。
6. 结果以结构化的 JSON 响应形式返回给前端。
7. 前端在浏览器内以简洁、有条理的报告视图呈现分析结果。
8. 扫描设置和结果被持久化到 `settings.db` 及相关 JSON 文件中,以供将来参考。
## 配置说明
通过编辑 `secureai-backend` 目录中的 `settings.json` 文件来配置后端。常见的配置选项包括:
- API 服务器主机和端口
- AI 模型 API 密钥或本地模型路径
- 扫描超时和深度设置
- 允许的 CORS 来源(应与前端开发和生产环境的 URL 匹配)
用户帐户和访问凭证通过 `users.json` 文件进行管理。
前端环境变量(例如后端 API 基础 URL)可以使用 `secureai-frontend` 目录中的 `.env` 文件进行配置:
```
VITE_API_BASE_URL=http://localhost:5000
```
Vite 会自动将任何带有 `VITE_` 前缀的变量暴露给客户端应用程序。
## 为生产环境扩展 ESLint
当前的 ESLint 配置为开发提供了一个坚实的基础。对于生产级应用程序,建议启用带有类型感知 lint 规则的 TypeScript,以实现更强的静态分析和早期错误检测。
要将前端升级到 TypeScript:
1. 请参阅 [Vite React TypeScript 模板](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) 以获取推荐的设置。
2. 集成 [typescript-eslint](https://typescript-eslint.io) 以在整个代码库中启用类型感知的 linting 规则。
这是一项可选的增强功能,不会影响当前的功能。
## 贡献指南
欢迎各种贡献。要为本项目做出贡献:
1. Fork 本仓库
2. 创建一个新的功能分支:`git checkout -b feature/your-feature-name`
3. 使用清晰的消息提交您的更改:`git commit -m "Add your descriptive commit message"`
4. 推送到您的分支:`git push origin feature/your-feature-name`
5. 开启一个 Pull Request,描述您更改了什么以及为什么更改
请确保所有贡献均仅用于合乎道德和经授权的用途。
## 免责声明
本工具仅用于教育目的、授权的渗透测试和道德安全研究。未经所有者明确书面许可扫描系统、网络或应用程序是非法且不道德的。
作者对因使用本软件而导致的任何滥用、损害或法律后果不承担任何责任。使用本工具即表示您接受对自身行为的全部责任,并确认您已获得进行您发起的任何扫描的必要授权。
## 作者
Sandhya Kumari
GitHub: [SANDHYAKUMARI1504](https://github.com/SANDHYAKUMARI1504)
标签:AI安全, Chat Copilot, CISA项目, DOE合作, Python后端, React前端, REST API, Tailwind CSS, URL发现, Vite, Web安全, 人工智能, 修复建议, 加密, 反取证, 安全检测, 安全评估, 攻击面分析, 浏览器界面, 漏洞扫描器, 用户模式Hook绕过, 网络安全, 自定义脚本, 蓝队分析, 逆向工具, 隐私保护, 风险分类