LahsenAitOiahmane/SAST
GitHub: LahsenAitOiahmane/SAST
一个结合规则扫描与 AI 可解释性的静态应用安全测试平台,专注于检测并修复 Java、PHP 和 .NET 中的不安全反序列化漏洞。
Stars: 1 | Forks: 0
# AI增强型 SAST 平台
一个静态应用安全测试 (SAST) 平台,使用基于规则的扫描器(Semgrep、CodeQL)与 AI/LLM 可解释性(Ollama)相结合的混合引擎,检测、解释并修复 Java、PHP 和 .NET 源代码中的**不安全反序列化漏洞**。它具有现代化的响应式 React 单页应用 (SPA),提供高级深色/浅度主题模式、文件级过滤和高级逐行代码查看器。
## 项目状态
| 冲刺 | 目标 | 状态 |
|--------|------|--------|
| **冲刺 1** | 基础设施与基础 | ✅ 已完成 |
| **冲刺 2** | 扫描引擎 (Semgrep + CodeQL) | ✅ 已完成 |
| 冲刺 3 | AI/LLM 集成 (Ollama + ChromaDB) | 🔜 计划中 |
| 冲刺 4 | 完整 UI 与报告生成 | 🔜 计划中 |
## 技术栈
| 层级 | 技术 |
|-------|-----------|
| 后端 API | FastAPI (Python 3.11) |
| 前端 | React 18 + TypeScript + Vite |
| 样式 | Tailwind CSS v3 |
| 数据库 | PostgreSQL 16 |
| 缓存 | Redis (Alpine) |
| 反向代理 | Nginx (Alpine) |
| 容器化 | Docker + Docker Compose |
| CI/CD | GitHub Actions |
| 部署 | DigitalOcean Droplet (Ubuntu 24.04) |
| SAST 引擎 (冲刺 2) | Semgrep, CodeQL |
| AI 引擎 (冲刺 3) | Ollama, ChromaDB |
## 仓库结构
```
SAST/
├── backend/ # FastAPI Python application
├── frontend/ # React + TypeScript + Vite SPA
├── nginx/ # Nginx reverse proxy configuration
├── scripts/ # Developer utility shell scripts
├── docs/ # Project documentation
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions CI/CD pipeline
├── docker-compose.yml # Multi-service orchestration
├── .env.example # Environment variable template
├── .flake8 # Python linting configuration
├── .pre-commit-config.yaml # Pre-commit hooks
└── README.md
```
## 快速开始
### 前置条件
- Git
- Docker & Docker Compose(在你的服务器上)
- Node.js 20+(仅用于本地前端开发)
- Python 3.11+(仅用于本地后端开发)
### 通过 CI/CD 部署(推荐)
1. 推送到 `main` 分支。
2. GitHub Actions 会自动运行 lint、测试和构建检查。
3. 成功后,它将通过 SSH 连接到 DigitalOcean droplet 并运行 `docker compose up -d --build`。
4. 平台将在 `http://YOUR_SERVER_IP` 上线。
### 手动本地开发
```
# Clone
git clone https://github.com/LahsenAitOiahmane/SAST.git
cd SAST
# 复制环境文件并填写值
cp .env.example .env
# 启动所有服务
docker compose up -d --build
# 检查健康状态
curl http://localhost/api/v1/health
```
请参阅 [`docs/Installation.md`](docs/Installation.md) 获取完整的设置说明。
## 服务与端口
| 服务 | 内部端口 | 是否暴露 |
|---------|---------------|---------|
| Nginx | 80 | ✅ `0.0.0.0:80` |
| 后端 (FastAPI) | 8000 | ❌ 仅限内部 |
| 前端 (Vite) | 80 | ❌ 仅限内部 |
| PostgreSQL | 5432 | ❌ 仅限内部 |
| Redis | 6379 | ❌ 仅限内部 |
所有流量均通过 Nginx 路由:
- `/` → 前端
- `/api/*` → 后端 FastAPI
## CI/CD 流水线
```
Push to main
│
├── backend-test-lint
│ ├── isort check
│ ├── black check
│ ├── flake8 lint
│ ├── pytest tests
│ └── docker build (dry-run)
│
├── frontend-test-lint
│ ├── eslint check
│ ├── prettier check
│ ├── npm run build
│ └── docker build (dry-run)
│
└── deploy (only if both above pass)
└── SSH → git pull → docker compose up -d --build
```
## 文档
| 文件 | 描述 |
|------|-------------|
| [`docs/Architecture.md`](docs/Architecture.md) | 系统架构与组件图 |
| [`docs/Installation.md`](docs/Installation.md) | 本地和服务器安装指南 |
| [`docs/Deployment.md`](docs/Deployment.md) | DigitalOcean 部署与 CI/CD 演示 |
| [`docs/Development.md`](docs/Development.md) | 开发者工作流、Lint 和测试指南 |
| [`docs/Sprint2-Scan-Architecture.md`](docs/Sprint2-Scan-Architecture.md) | 异步扫描引擎 pipeline 设计与细节 |
## 许可证
本项目是作为 **DataProtect** 的实习交付成果而开发的。
标签:AI风险缓解, AV绕过, CISA项目, DLL 劫持, Docker, FastAPI, React, Syscalls, 大语言模型, 安全防御评估, 搜索引擎查询, 测试用例, 请求拦截, 逆向工具, 静态应用安全测试