Ameerhamza2637/vulnify-lens
GitHub: Ameerhamza2637/vulnify-lens
一个多租户实时网络攻击检测与安全分析 SaaS 平台,帮助企业即时发现并响应安全威胁。
Stars: 0 | Forks: 0

# Vulnify Lens
### 为您的业务运行的系统提供实时网络攻击检测、事件响应和安全分析。
多租户安全监控 SaaS · **Vue 3** 前端 · **Laravel 11** API · **PostgreSQL** · **Redis** · **Docker**
[快速开始](#-quick-start-docker) · [架构](docs/ARCHITECTURE.md) · [接入流程](docs/ONBOARDING.md) · [API 参考](docs/API.md) · [安全模型](docs/SECURITY.md)
## 什么是 Vulnify Lens?
**Vulnify Lens** 是一个多租户 SaaS 平台,允许各类组织——银行、软件供应商、电子商务以及任何运行内部或集中式系统的公司——**连接其网站、服务器和应用程序,并在遭受攻击的瞬间收到告警。**
客户端将遥测数据(Web 服务器日志、WAF 事件、认证日志)流式传输到统一的接入 endpoint。Vulnify Lens 使用具有可解释性的、基于特征和行为的检测引擎实时分析每一个事件,生成按优先级排序的**事件**(incident),并在面临高严重性和致命威胁时**立即向客户的安全团队发送电子邮件**——其中包含通俗易懂的解释和针对每个事件的建议操作。
每个客户都会获得一个与其行业量身定制的、基于权限的独立分析仪表板。
## 为什么它很重要
- **攻击是被检测到的,而不仅仅是被编目。** SQL 注入、XSS、路径遍历、命令注入、Log4Shell 式的 RCE、凭证暴力破解、DoS 泛洪和自动化扫描器都会在发生时被标记。
- **零噪声告警。** 严重性阈值控制、按类别静音和静默时段意味着团队只会收到真正重要的电子邮件。
- **设计上即可解释。** 每个事件都会说明匹配了*什么*、*为什么*它很危险、对应的 **MITRE ATT&CK** 技术以及*下一步该怎么做*——没有黑盒评分。
- **为多客户而生。** 每个组织完全的数据隔离、基于角色的仪表板(Owner / Analyst / Viewer)以及针对特定客户的告警路由。
## 核心功能
| 领域 | 亮点 |
| --- | --- |
| **客户接入** | 3 步向导:组织与行业 → 注册资产 → 签发接入密钥并连接 |
| **检测引擎** | 特征 + 行为规则,MITRE ATT&CK 映射,建议的修复方案 |
| **事件** | 优先级动态、过滤、确认/解决工作流、完整的证据链 |
| **电子邮件告警** | 对高危/致命事件进行排队通知,可配置的严重性阈值和静默时段 |
| **分析** | 随时间变化的攻击趋势、严重性分布、热门攻击类型、攻击源国家/地区细分、最受攻击的资产 |
| **RBAC** | Owner、Analyst 和 Viewer 角色,具有细粒度权限 (Spatie) |
| **多租户** | 每个资产、事件、事件和密钥都限定在一个组织范围内 |
| **攻击模拟器** | `php artisan vulnify:simulate` 生成逼真的遥测数据,确保可靠的演示 |
| **计费就绪** | Plan 字段 + 设置脚手架,已为集成 Stripe (Laravel Cashier) 做好准备 |
## 技术栈
- **前端:** Vue 3, Vite, Pinia, Vue Router, ApexCharts
- **后端:** Laravel 11, PHP 8.3, Sanctum (token auth), Spatie Permission (RBAC)
- **数据:** PostgreSQL 16 (关系型,多租户), Redis 7 (缓存 + 队列)
- **基础设施:** Docker Compose — nginx, php-fpm, worker, Postgres, Redis, MailHog
## 🚀 快速开始 (Docker)
```
git clone
vulnify-lens
cd vulnify-lens
docker compose up --build
```
就是这样。首次启动时,系统会迁移数据库,植入一个演示客户并生成示例攻击数据。然后打开:
| 服务 | URL |
| --- | --- |
| **Web 应用** | http://localhost:5173 |
| **API** | http://localhost:8080/api/v1 |
| **MailHog(查看告警邮件)** | http://localhost:8025 |
### 演示登录(密码:`password`)
| 角色 | 电子邮件 | 可见范围 |
| --- | --- | --- |
| Owner | `owner@vulnify.test` | 包括设置、团队和密钥在内的所有内容 |
| Analyst | `analyst@vulnify.test` | 仪表板、事件、资产 |
| Viewer | `viewer@vulnify.test` | 只读仪表板 |
### 触发实时攻击(会触发真实的邮件告警)
```
docker compose exec app php artisan vulnify:simulate --live=3
```
观察仪表板中出现的事件,并查看落在 [MailHog](http://localhost:8025) 中的告警。
## 🧑💻 本地开发(不使用 Docker)
```
# Backend(开箱即用 SQLite)
cd backend
composer install
php artisan migrate:fresh --seed
php artisan vulnify:simulate --count=80
php artisan serve --port=8080
# Frontend(在另一个终端中)
cd frontend
npm install
npm run dev
```
## 客户如何连接
```
Client system (web server / WAF / app logs)
│ POST /api/v1/ingest/events (header: X-Ingest-Key)
▼
Ingest API ──► SecurityEvent stored ──► queued ProcessSecurityEvent job
│
▼
Detection Engine (signatures + behaviour)
│ match?
▼
Incident created ──► Alert settings evaluated ──► Email the security team
│
▼
Real-time dashboard & incident feed
```
请参阅 [docs/ONBOARDING.md](docs/ONBOARDING.md) 了解完整流程,以及 [docs/API.md](docs/API.md) 了解接入约定。
## 仓库布局
```
vulnify-lens/
├─ backend/ Laravel 11 API (detection engine, incidents, RBAC, alerts)
├─ frontend/ Vue 3 + Vite SPA (dashboard, onboarding, incidents, settings)
├─ docker/ nginx + php-fpm images and config
├─ docs/ Architecture, onboarding, API and security documentation
└─ docker-compose.yml
```
## 路线图
- 通过 Laravel Cashier 实现 Stripe 计费(套餐已建模完成)
- 原生日志推送代理 (nginx / Apache / Cloudflare / syslog)
- 真正的 GeoIP 丰富 (MaxMind GeoLite2)
- Slack / PagerDuty / webhook 告警渠道
- 相关的多事件攻击活动
## 许可证
MIT — 查看 [LICENSE](LICENSE)。标签:CISA项目, ffuf, Laravel, SaaS, Vue, 搜索引擎查询, 文件系统扫描, 测试用例, 请求拦截