ugurraydogan/urayvuln
GitHub: ugurraydogan/urayvuln
一个基于 Docker Compose 本地运行的 Web 安全平台,集成 Web 漏洞扫描与恶意软件静态分析两大功能。
Stars: 0 | Forks: 0
# UrayVuln
本地运行的、基于 Docker Compose 的 Web 安全平台:
- **Vulnerability Scanner**(类似 Acunetix):对目标 URL 进行爬取、指纹提取、执行被动和主动检查,并根据严重程度报告发现。
- **Malware Analysis**(类似 VirusTotal):对上传的文件进行 hash/entropy 计算、PE 分析、strings/IOC 提取,并执行 YARA 和 ClamAV 扫描。
无身份验证 —— 专为 localhost 设计。动态(sandbox)分析目前仅作为接口/stub 存在;当前版本不支持真正的 QEMU/KVM 集成(参见 `backend/app/workers/malware/dynamic/`)。
## 架构
```
┌──────────────┐
│ Browser │
└──────┬───────┘
│ HTTP (Jinja2+HTMX / JSON API)
┌──────▼───────┐
│ FastAPI │ (api container)
│ api + web │
└───┬──────┬───┘
send_task│ │SQLAlchemy
┌─────▼──┐ ┌─▼──────────┐
│ Redis │ │ PostgreSQL │
│ broker │ └────────────┘
└──┬──┬──┘
queue=webscan│ │queue=malware
┌───────▼┐ ┌▼────────────┐
│worker- │ │worker- │
│webscan │ │malware │
│(httpx, │ │(pefile, LIEF,│
│Playwri-│ │yara-python, │
│ght) │ │clamd client) │
└────────┘ └──────┬───────┘
│ TCP 3310
┌─────▼─────┐
│ ClamAV │
└───────────┘
```
每个 worker 都在独立的 Docker image 中运行(Playwright 依赖项在 webscan worker 中,yara/pefile 依赖项在 malware worker 中)—— API container 不会导入上述任何内容,而是通过名称(`send_task`)触发 Celery task。
## 要求
- Docker Desktop(推荐在 Windows 上使用 WSL2 backend)
- 约 4 GB 空闲磁盘空间(用于 ClamAV 病毒数据库 + Playwright Chromium 下载)
## 状态
由于当前环境**未安装 Docker 和 Python**,此代码库
未能进行编译和
运行测试——所有文件均已通过静态
审查(import 路径、Celery task 名称/routing、Alembic schema 与模型
完全匹配,并检查了 Jinja 模板引用),但在首次
执行 `docker compose up --build` 时,仍然可能会出现小错误(如包
版本不匹配、healthcheck 时间配置等)。如果您分享在首次
运行中遇到的错误,我可以立即修复。
## 安装与运行
```
copy .env.example .env
docker compose up --build
```
首次启动时:
- `clamav` 服务会下载病毒数据库(freshclam)——这可能需要几分钟,在此期间,`worker-malware` 会通过 retry/backoff 等待执行 ClamAV 扫描。
- `api` container 在启动时会运行 `alembic upgrade head` 来创建数据库 schema。
应用程序访问地址:http://localhost:8000
## 开发说明
- 代码从 `backend/app` 目录通过 bind-mount 挂载到 container 中;要进行实时更改,可以使用带 `--reload` 运行的 uvicorn/celery(参见各 Dockerfile)。
- 您可以将自己的 YARA 规则添加到 `yara_rules/` 目录中——malware worker 会在每次分析任务中重新编译该目录。
- 主动扫描检查(SQLi/XSS/open redirect)默认处于**关闭**状态;仅在已授权的目标上通过设置 `active_scan=true` 来运行。
## 测试
```
cd backend
pip install -r requirements/dev.txt
pytest
```
(不需要 Docker,属于纯逻辑测试——entropy 计算、header 检查、YARA 编译/匹配。)
标签:AV绕过, CISA项目, DAST, DNS 反向解析, Docker Compose, FastAPI, IP 地址批量处理, Web安全, 恶意软件分析, 搜索引擎查询, 测试用例, 版权保护, 特征检测, 网络信息收集, 蓝队分析, 逆向工具