theghostshinobi/Shibuya-waf-light-version
GitHub: theghostshinobi/Shibuya-waf-light-version
一款基于 Rust 和 eBPF 的高性能开源 Web 应用防火墙,通过规则引擎和机器学习双层防护保护 Web 应用免受各类攻击。
Stars: 16 | Forks: 1
SHIBUYA WAF
**版本:** 1.0
**发布日期:** 2026年2月14日
**分类:** 产品文档
## 目录
- [简介](#introduction)
- [系统要求](#system-requirements)
- [安装说明](#installation)
- [用户界面概览](#user-interface-overview)
- [功能指南](#feature-guides)
- [配置指南](#configuration-guide)
- [技术术语表](#technical-glossary)
- [支持](#support)
## 简介
### 什么是 SHIBUYA WAF
SHIBUYA 是一款高性能、开源的 Web Application Firewall (WAF),使用 Rust 编写。它在互联网和您的后端服务器之间充当反向代理,实时分析每一个 HTTP 请求,在网络攻击到达您的应用程序之前将其拦截。
### 目的
SHIBUYA 保护 Web 应用程序免受以下威胁:
| 威胁 | 描述 |
|--------|-------------|
| SQL Injection | 试图操纵数据库查询 |
| Cross-Site Scripting (XSS) | 注入恶意的 JavaScript 代码 |
| Remote Code Execution (RCE) | 在服务器上执行命令 |
| Local File Inclusion (LFI) | 未授权访问系统文件 |
| SSRF | 利用服务器访问内部资源的攻击 |
| Malicious Bots | 爬取、暴力破解、撞库 |
| Application-layer DDoS | 通过过量请求导致服务器过载 |
### 架构
```
Internet → SHIBUYA WAF (analysis + blocking) → Backend App
↓
Dashboard (monitoring)
```
SHIBUYA 在 5 个安全层上运行:
1. **OWASP CRS 规则** — 614 条模式匹配规则
2. **ML 异常检测** — IsolationForest 用于检测未知威胁
3. **ML 分类** — SVM 对攻击类型进行分类
4. **威胁情报** — 来自外部源 的 IP 信誉
5. **Bot 检测** — TLS 指纹识别和行为分析
### 目标受众
- 希望保护其应用程序的开发者
- 管理 Web 基础设施的 DevOps/SRE 团队
- 需要可配置 WAF 的安全团队
- 寻求 Cloudflare WAF 开源替代方案的初创公司和中小企业
## 系统要求
### 最低要求
| 组件 | 要求 |
|-----------|-------------|
| 操作系统 | macOS 12+, Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+) |
| CPU | 2 核 (x86_64 或 ARM64) |
| RAM | 512 MB |
| 磁盘 | 500 MB 可用空间(不含构建产物) |
| Node.js | v18.0 或更高版本 |
| npm | v8.0 或更高版本 |
| Rust | 1.75+(用于编译后端) |
### 推荐要求(生产环境)
| 组件 | 要求 |
|-----------|-------------|
| CPU | 4+ 核 |
| RAM | 2 GB+ |
| 磁盘 | 5 GB(包含日志和 ML 模型) |
| 网络 | 1 Gbps |
| OS | Linux(性能最佳) |
### 网络端口
| 端口 | 服务 | 可配置 |
|------|---------|--------------|
| 8080 | WAF HTTP 代理 | 是 (server.http_port) |
| 8443 | WAF HTTPS 代理 | 是 (server.https_port) |
| 9090 | Admin API | 是 (telemetry.metrics_port) |
| 5173 | Dashboard 开发服务器 | 是 (--port 标志) |
### 可选软件
| 软件 | 用途 |
|----------|---------|
| PostgreSQL 14+ | 日志持久化,流量重放 |
| Python 3.10+ | ML 训练脚本 |
| Docker | 容器化部署 |
## 安装说明
### 快速安装
```
# 1. 克隆 repository
git clone https://github.com/your-org/shibuya-waf.git
cd shibuya-waf/waf-killer
# 2. 运行 setup script(安装所有 dependencies)
./setup
# 3. 启动 application(在 browser 中打开)
./start
```
**提示:** `./setup` 脚本会自动检查前提条件,安装 npm 依赖,并编译 Rust 后端。
### 手动安装
#### Dashboard (前端)
```
cd waf-killer/dashboard
npm install
npm run dev -- --port 5173
```
Dashboard 将在 http://localhost:5173 上可用。
#### 后端 (WAF 引擎)
```
cd waf-killer/core
cargo build --release
./target/release/waf-killer --config config/waf.yaml
```
WAF 代理将在 http://localhost:8080 上激活。
#### 安装验证
```
# 验证 dashboard 正在响应
curl -s http://localhost:5173 | head -5
# 验证 WAF proxy 正在响应(需要 compiled backend)
curl -s http://localhost:8080/health
# 验证 Admin API 正在响应
curl -s http://localhost:9090/api/health
```
### 首次访问
1. 在浏览器中打开 http://localhost:5173
2. 使用默认凭据登录:
- **用户名:** admin
- **密码:** BrutalDevAccess2026!
3. 您将被重定向到主 Dashboard
**注意:** 在生产环境中,请立即通过设置部分更改默认密码。
## 用户界面概览
### 总体布局
界面采用专业的深色主题和双栏布局:
- **左侧边栏** — 各部分之间的导航
- **主区域** — 当前页面内容
- **顶栏** — 当前路径、简单/高级切换、WAF 状态
### 界面模式
SHIBUYA 提供两种查看模式:
| 模式 | 内容 | 目标用户 |
|------|---------|-------------|
| 简单 | 仅包含必要页面(Dashboard、快速设置、请求、分析、规则、ML、Bot 检测) | 非技术用户 |
| 高级 | 所有页面 + 设置、漏洞、Shadow API、系统 | DevOps 和安全团队 |
切换按钮位于顶栏的右侧。
### 导航图
| 页面 | 功能 |
|------|----------|
| Dashboard | 实时概览:指标、组件状态 |
| 快速设置 | 30 秒内保护站点的向导 |
| 请求 | 包含详情的所有请求日志 |
| 分析 | 攻击趋势图表,按类型分布 |
| 规则 | OWASP CRS 规则管理 |
| ML 引擎 | ML 模型配置和反馈 |
| Bot 检测 | 反 Bot 统计和配置 |
| 设置 | 完整的 WAF 配置(高级) |
| 漏洞 | 漏洞扫描器(高级) |
## 功能指南
### 快速设置 — 30 秒完成防护
快速设置是激活 WAF 防护的最快方式。无需手动配置。
#### 如何使用
**第 1 步 — 输入后端 URL**
输入您的应用程序 URL(例如 http://localhost:3000)。您也可以点击其中一个框架预设以自动填充:
| 预设 | 自动填充的 URL | 建议级别 |
|--------|----------------|-----------------|
| Next.js | http://localhost:3000 | 适中 |
| Vite/React | http://localhost:5173 | 适中 |
| Django | http://localhost:8000 | 严格 |
| Flask | http://localhost:5000 | 适中 |
| Express | http://localhost:3000 | 适中 |
| Laravel | http://localhost:8000 | 严格 |
| Rails | http://localhost:3000 | 适中 |
| Go | http://localhost:8080 | 宽松 |
绿色的勾号表示 URL 有效。
**第 2 步 — 选择安全级别**
| 级别 | 异常阈值 | Paranoia | 描述 |
|-------|------------------|----------|-------------|
| 严格 | T=3 | PL3 | 最大程度的保护。可能会拦截合法的边缘情况。适用于银行和医疗应用。 |
| 适中 ⭐ | T=5 | PL1 | 平衡模式。拦截真实攻击且误报很少。推荐大多数情况使用。 |
| 宽松 | T=10 | PL1 | 最小干扰。仅拦截明显攻击。适用于高流量公共 API。 |
**第 3 步 — 点击“激活保护”**
系统将:
- 验证 URL(检查格式并阻止 SSRF)
- 测试与后端的连接性(5 秒超时)
- 实时更新 WAF 配置(热加载,零重启)
- 显示成功屏幕,包含 WAF URL 和 curl 测试命令
**提示:** 激活后,所有发往 http://localhost:8080 的流量都将被代理并自动受到保护。
### Dashboard — 概览
Dashboard 显示 WAF 的实时状态。
#### 主要指标
| 指标 | 含义 |
|--------|---------|
| 总请求数 | 已处理的请求总数 |
| 已拦截 | 被 WAF 拦截的请求(攻击) |
| 已放行 | 通过的合法请求 |
| 运行时间 | 自上次 WAF 启动以来的时间 |
#### 组件状态
| 组件 | 绿色 | 红色 |
|-----------|-------|-----|
| 代理 | 代理处于活动状态且正常运行 | 代理无法访问 |
| 规则引擎 | CRS 规则已加载 | 加载规则时出错 |
| eBPF | 内核过滤器处于活动状态 | 不支持或已禁用 |
| WASM 插件 | 插件已加载 | 无插件或出错 |
### 请求 — 请求日志
此部分显示 WAF 处理的每个请求的详细日志。
#### 每个请求的信息
| 字段 | 描述 |
|-------|-------------|
| 时间戳 | 请求的日期和时间 |
| 方法 | GET, POST, PUT, DELETE 等 |
| 路径 | 请求的 URL |
| 状态 | HTTP 响应码 |
| 客户端 IP | 请求者的 IP 地址 |
| 动作 | ALLOW, BLOCK, CHALLENGE |
| 分数 | 触发规则的累积异常分数 |
| 匹配的规则 | 匹配的 CRS 规则列表 |
#### 可用的过滤器
- 按动作过滤(已拦截 / 已放行 / 全部)
- 按 HTTP 方法过滤
- 按源 IP 过滤
- 按 URL 路径搜索
### 分析 — 趋势与统计
包含图表和流量随时间分析的页面。
#### 可用的图表
| 图表 | 显示内容 |
|-------|---------------|
| 请求量 | 随时间变化的总请求数(折线图) |
| 拦截率 | 被拦截请求的百分比 |
| 攻击类型 | 按类型分布:SQLi, XSS, RCE, LFI 等 |
| Top IPs | 被拦截请求最多的 IP 地址 |
| Top 路径 | 最常被攻击的 URL |
| 响应码 | HTTP 代码分布 (200, 403, 500 等) |
### 规则 — 规则管理
用于查看、启用和禁用 OWASP CRS 规则的界面。
#### 规则类别
| ID 范围 | 类别 | 保护内容 |
|----------|----------|------------------|
| 920xxx | 协议强制 | HTTP 格式验证 |
| 921xxx | 协议攻击 | HTTP 走私、拆分 |
| 930xxx | LFI | 路径遍历、文件包含 |
| 932xxx | RCE | 命令注入、OS 命令 |
| 941xxx | XSS | Cross-Site Scripting |
| 942xxx | SQLi | SQL Injection |
| 943xxx | 会话固定 | 会话劫持 |
| 944xxx | Java 攻击 | Java 反序列化 |
#### 可用的操作
- **切换开/关** — 启用或禁用单个规则
- **查看规则** — 显示规则的正则表达式模式
- **搜索** — 按 ID 或描述搜索规则
- **按类别过滤** — 按攻击类型过滤
**警告:** 禁用规则会降低保护。仅在规则导致确认的误报时才这样做。
### ML 引擎 — 机器学习
人工智能模型的配置和监控。
#### 活动模型
| 模型 | 类型 | 用途 |
|-------|------|---------|
| IsolationForest | 异常检测 | 检测从未见过的行为(零日) |
| SVM 分类器 | 分类 | 分类:SQLi, XSS, RCE, 良性 |
#### 可配置参数
| 参数 | 默认值 | 描述 |
|-----------|---------|-------------|
| 阈值 | 0.7 | ML 标记为可疑的分数阈值(0.0–1.0) |
| ML 权重 | 0.3 | ML 判定在总分中的权重 |
| Shadow 模式 | 关闭 | 如果激活,ML 仅记录决策而不拦截 |
| 故障打开 | 开启 | 如果 ML 出错,允许请求通过 |
#### 反馈循环
在待审核部分,您可以:
- 查看 ML 标记的请求
- 标记为真阳性(确认的攻击)或假阳性(错误)
- 模型根据反馈自动重新校准
### Bot 检测
自动化 Bot 的检测和拦截。
#### 检测技术
| 技术 | 描述 |
|-----------|-------------|
| JA3 指纹 | 从 TLS 握手识别客户端 |
| 行为分析 | 分析模式:点击速度、页面顺序 |
| 速率模式 | 过于规律的请求 = Bot |
| User-Agent 分析 | 与已知 Bot 数据库进行比较 |
#### 显示的统计数据
- **人类与 Bot 比例** — 人类与自动化流量的百分比
- **Top Bot IPs** — Bot 活动最多的 IP
- **Bot 类型** — 爬虫、抓取器、暴力破解等
- **拦截率** — 被拦截的 Bot 占总数的
### 漏洞扫描器
集成扫描器,用于识别受保护应用程序中的漏洞。
#### 如何启动扫描
1. 进入漏洞页面(高级模式)
2. 点击开始扫描
3. 等待完成(状态:自动轮询)
4. 查看按严重程度分类的结果:严重、高、中、低
#### 结果
每个漏洞报告:
- **CVE/ID** — 漏洞标识符
- **严重程度** — 严重 / 高 / 中 / 低
- **描述** — 问题描述
- **受影响的组件** — 相关的路径或组件
- **修复建议** — 修正建议
### 设置 — UI 配置
在高级模式下可访问的完整配置页面。
#### 可用的选项卡
| 选项卡 | 内容 |
|-----|---------|
| 常规 | HTTP/HTTPS 端口、超时、最大连接数、TLS |
| 上游 | 后端 URL、池大小、连接超时、健康检查 |
| 检测 | 模式(拦截/Shadow)、阈值、Paranoia 级别 |
| ML | ML 阈值、Shadow 模式、故障打开 |
| API 保护 | OpenAPI 验证、GraphQL 限制 |
| 安全 | Admin token、最大 body/header 大小、允许的方法 |
**重要提示:** 通过设置所做的更改将实时应用(热加载)。无需重启 WAF。
## 配置指南
### 配置文件
主文件是 `config/waf.yaml`。它在启动时被读取,可以通过 UI(设置)或直接使用文本编辑器进行修改。
### server 部分 — 服务器配置
```
server:
listen_addr: 0.0.0.0 # Listen address (0.0.0.0 = all interfaces)
http_port: 8080 # WAF proxy HTTP port
https_port: 8443 # WAF proxy HTTPS port
shutdown_timeout: 30s # Wait time for graceful shutdown
request_timeout: 1m # Maximum timeout per request
max_connections: 10000 # Maximum simultaneous TCP connections
tls:
enabled: false # Enable HTTPS
cert_path: certs/server.crt
key_path: certs/server.key
min_version: TLS1.3 # Minimum accepted TLS version
cipher_suites: # Allowed cipher suites
- TLS_AES_256_GCM_SHA384
- TLS_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
```
### upstream 部分 — 后端
```
upstream:
backend_url: http://localhost:3000 # Application URL to protect
pool_size: 100 # Connections in pool to backend
connect_timeout: 5s # Timeout to open connection
request_timeout: 30s # Timeout to receive response
idle_timeout: 1m 30s # Timeout for idle connections
health_check:
enabled: true # Enable periodic health check
path: /health # Path to query
interval: 10s # Check frequency
timeout: 5s # Single check timeout
unhealthy_threshold: 3 # Failed checks before marking "unhealthy"
healthy_threshold: 2 # Successful checks before marking "healthy"
```
### detection 部分 — 检测引擎
```
detection:
enabled: true # Enable detection engine
mode: blocking # blocking | shadow (log only) | disabled
crs:
enabled: true # Enable OWASP CRS rules
rules_path: rules/crs # Rules file path
paranoia_level: 1 # 1=conservative, 2=medium, 3=aggressive, 4=paranoid
inbound_threshold: 5 # Cumulative score to block (lower = more sensitive)
outbound_threshold: 4 # Score for outbound responses
rate_limiting:
enabled: true # Enable rate limiting
requests_per_second: 100 # Requests/s per IP
burst_size: 200 # Maximum allowed burst
ban_duration_secs: 60 # Ban duration after exceeding
blocking_threshold: 25 # Overall anomaly score for blocking
challenge_threshold: 15 # Score to show challenge (CAPTCHA) instead of block
```
**注意:** Paranoia 级别:PL1 适用于大多数站点。仅在高敏感度应用程序(银行、医疗)中增加到 PL2-PL3。PL4 会产生大量误报,需要逐条规则调整。
### ml 部分 — 机器学习
```
ml:
enabled: true # Enable ML inference
model_path: ml/models/isolation_forest.onnx # Anomaly detection model
classifier_model_path: ml/models/attack_classifier.onnx # Classification model
scaler_path: ml/models/scaler.json # Feature normalizer
threshold: 0.7 # ML score to flag (0.0-1.0, lower = more sensitive)
inference_threads: 4 # Threads dedicated to inference
cache_features: true # Cache features for similar requests
ml_weight: 0.3 # ML weight in total score (0.0-1.0)
shadow_mode: false # If true, ML logs but doesn't block
fail_open: true # If ML has error, allow (true) or block (false)
```
### security 部分 — 安全限制
```
security:
admin_token: "your-secret-token" # Token for Admin API authentication
max_body_size: 10485760 # Max body size in bytes (10 MB)
max_header_size: 8192 # Max header size (8 KB)
max_uri_length: 2048 # Max URI length (2 KB)
allowed_methods: # Allowed HTTP methods
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- OPTIONS
blocked_user_agents: [] # Blocked user-agent list (regex)
```
### api_protection 部分 — API 保护
```
api_protection:
enabled: true
openapi_validation_enabled: false # Validate requests against OpenAPI spec
openapi_specs: [] # OpenAPI 3.x file paths
graphql:
endpoint: /graphql # GraphQL endpoint to protect
max_depth: 7 # Maximum query depth
max_complexity: 1000 # Maximum query complexity
max_batch_size: 10 # Maximum batch queries
max_aliases: 50 # Maximum aliases
introspection_enabled: false # Block introspection queries
strict_mode: false # Block requests not conforming to spec
```
### telemetry 部分 — 日志和指标
```
telemetry:
log_level: debug # Log level: trace | debug | info | warn | error
log_format: json # Format: json | text
metrics_enabled: true # Expose Prometheus metrics
metrics_port: 9090 # /metrics endpoint port
tracing_enabled: true # Enable distributed tracing
tracing_sample_rate: 0.1 # Percentage of traced requests (0.0-1.0)
```
### shadow 部分 — Shadow 模式
```
shadow:
enabled: false # Enable global shadow mode
percentage: 10 # Captured traffic percentage (1-100)
duration: null # Shadow duration (null = indefinite, or "24h")
routes: null # Specific routes (null = all)
```
**提示:** 在引入新规则时使用 Shadow 模式:在 Shadow 模式下激活 24-72 小时,检查日志中的误报,然后提升为拦截模式。
### 环境变量
某些配置可以通过环境变量覆盖:
| 变量 | 覆盖项 | 示例 |
|----------|-----------|---------|
| WAF_HTTP_PORT | server.http_port | WAF_HTTP_PORT=9080 |
| WAF_BACKEND_URL | upstream.backend_url | WAF_BACKEND_URL=http://app:3000 |
| WAF_LOG_LEVEL | telemetry.log_level | WAF_LOG_LEVEL=info |
| WAF_ADMIN_TOKEN | security.admin_token | WAF_ADMIN_TOKEN=mysecret123 |
| WAF_PARANOIA_LEVEL | detection.crs.paranoia_level | WAF_PARANOIA_LEVEL=2 |
## 技术术语表
| 术语 | 定义 |
|------|------------|
| WAF | Web Application Firewall — 专门用于 Web 应用程序的防火墙 |
| 反向代理 | 代表后端接收请求的中间服务器 |
| OWASP | Open Web Application Security Project — Web 安全组织 |
| CRS | Core Rule Set — OWASP 的 WAF 规则集 |
| SQLi | SQL Injection — 操纵数据库查询的攻击 |
| XSS | Cross-Site Scripting — 恶意 JavaScript 代码注入 |
| RCE | Remote Code Execution — 在服务器上远程执行命令 |
| LFI | Local File Inclusion — 未授权访问服务器文件 |
| SSRF | Server-Side Request Forgery — 攻击者利用服务器发起内部请求 |
| DDoS | Distributed Denial of Service — 分布式服务过载 |
| 异常分数 | 匹配请求的规则的累积分数 |
| Paranoia 级别 | CRS 规则的激进程度级别 (1-4) |
| 阈值 | 请求被拦截的临界值 |
| 热加载 | 无需重启服务即可更新配置 |
| ArcSwap | Rust 中用于原子更新共享数据的机制 |
| Shadow 模式 | 记录决策但不拦截流量的模式 |
| 假阳性 (FP) | 被错误拦截的合法请求 |
| 假阴性 (FN) | 未被检测到并通过的攻击 |
| TPR | True Positive Rate — 正确拦截的攻击百分比 |
| FPR | False Positive Rate — 被错误拦截的合法请求百分比 |
| IsolationForest | 用于异常检测的 ML 算法(检测异常值) |
| SVM | Support Vector Machine — 用于分类的 ML 算法 |
| ONNX | Open Neural Network Exchange — ML 模型的标准格式 |
| JA3 | 基于客户端握手的 TLS 指纹 |
| 速率限制 | 限制单位时间内的请求数量 |
| 令牌桶 | 允许突发的速率限制算法 |
| 连接池 | 一组重用的到后端的连接 |
| 健康检查 | 定期检查后端健康状态 |
| TLS | Transport Layer Security — HTTPS 的加密协议 |
| mTLS | Mutual TLS — 相互的客户端/服务器身份验证 |
| GraphQL | 具有类型化 schema 的 API 查询语言 |
| OpenAPI | 用于描述 REST API 的规范(前身是 Swagger) |
| Prometheus | 开源监控和警报系统 |
| CVE | Common Vulnerabilities and Exposures — 漏洞标识符 |
## 支持
### 社区支持(免费)
| 渠道 | 链接 | 响应时间 |
|---------|------|---------------|
| GitHub Issues | github.com/your-org/shibuya-waf/issues | 24-48小时 |
| Discord 服务器 | discord.gg/shibuya-waf | 工作时间 |
### Bug 报告
要报告 Bug:
1. 前往 GitHub Issues
2. 使用“Bug Report”模板
3. 包含:WAF 版本、操作系统、相关日志、复现步骤
### 漏洞披露
**注意:** 请勿在公开的 GitHub Issues 上报告安全漏洞。
我们提供漏洞赏金计划,针对关键 WAF 绕过的奖励高达 $5,000。
**文档生成于 2026年2月14日 — SHIBUYA WAF v1.0**
# WAF 安全测试报告
## 📊 测试摘要
| 指标 | 数值 |
|--------|-------|
| **总测试数** | 51 (50 次攻击 + 1 次安全基线) |
| **通过** | 51 / 51 |
| **失败** | 0 |
| **检测率** | 100.0% |
| **WAF 拦截率** | 96.1% (49 次拦截, 2 次放行) |
## 🛡️ 完整 OWASP Top 10 (2021) 覆盖
| 类别 | 测试 | 攻击 | 结果 |
|----------|-------|---------|--------|
| **A01: Broken Access Control** | 1–4 | 路径遍历、强制浏览、点文件 | ✅ 4/4 |
| **A02: Cryptographic Failures** | 5–7 | URL 中的密码、API 密钥、token | ✅ 3/3 |
| **A03: Injection (SQLi)** | 8–13 | OR 1=1, UNION, 盲注, 堆叠, 登录绕过, NoSQL $ne | ✅ 6/6 |
| **A03: Injection (XSS)** | 14–18 | script, img onerror, onmouseover, javascript:, SVG onload | ✅ 5/5 |
| **A03: Injection (CMDi)** | 19–21 | ping, exec, PowerShell | ✅ 3/3 |
| **A04: Insecure Design** | 22–24 | `__proto__` 污染, 批量赋值, 负数量 | ✅ 3/3 |
| **A05: Security Misconfiguration** | 25–28 | Nikto, sqlmap, debug, server-status | ✅ 4/4 |
| **A06: Vulnerable Components** | 29–32 | Log4Shell, Shellshock, Spring4Shell, WP plugin | ✅ 4/4 |
| **A07: Authentication Failures** | 33–38 | 开放重定向 ×2, 暴力破解突发 (4 次尝试) | ✅ 6/6 |
| **A08: Software & Data Integrity** | 39–41 | PHP 反序列化, 原型污染, Java 反序列化 (rO0ABX) | ✅ 3/3 |
| **A09: Logging & Monitoring Failures** | 42–44 | CRLF, 日志注入, HTTP 响应拆分 | ✅ 3/3 |
| **A10: Server-Side Request Forgery** | 45–47 | AWS 元数据, 内网, file:// 协议 | ✅ 3/3 |
## 🎯 MITRE ATT&CK 技术
| 技术 | 测试 | 攻击 | 结果 |
|-----------|------|--------|--------|
| **T1190: Exploit Public-Facing Application** | 48 | 通过 User-Agent 的 Shellshock | ✅ 拦截 |
| **T1595: Active Reconnaissance** | 49 | WP xmlrpc.php 指纹识别 | ✅ 拦截 |
| **T1059: Command & Scripting Interpreter** | 50 | Base64 编码的 bash 注入 | ✅ 拦截 |
## 🔒 WAF 规则(共 16 条)
| 规则 ID | 类别 | OWASP | 严重程度 |
|---------|----------|-------|----------|
| `CRS-942100` | SQL Injection + NoSQL | A03 | 🔴 严重 |
| `CRS-941100` | XSS | A03 | 🟠 高 |
| `CRS-932100` | 命令注入 | A03 | 🔴 严重 |
| `CRS-930100` | 路径遍历 | A01 | 🟠 高 |
| `CRS-930110` | Broken Access Control | A01 | 🟡 中 |
| `CRS-934100` | SSRF | A10 | 🔴 严重 |
| `CRS-934110` | 开放重定向 | A07 | 🟡 中 |
| `CRS-921100` | CRLF/Header 注入 | A09 | 🟠 高 |
| `CRS-920100` | 敏感数据泄露 | A02 | 🟡 中 |
| `CRS-944100` | 反序列化 | A08 | 🔴 严重 |
| `RATE-001` | 速率限制 | A04 | 🟡 中 |
| `CRS-920200` | 安全配置错误 | A05 | 🟡 中 |
| `CRS-944200` | 易受攻击的组件 | A06 | 🔴 严重 |
| `CRS-920300` | 暴力破解 | A07 | 🟠 高 |
| `MITRE-T1190` | Exploit Public-Facing App | MITRE | 🔴 严重 |
| `MITRE-T1595` | Active Reconnaissance | MITRE | 🟡 中 |
## 🚀 特性
- ✅ 所有 OWASP Top 10 类别 **100% 检测率**
- 🛡️ 智能白名单机制下的 **96.1% 拦截率**
- 🎯 **MITRE ATT&CK** 技术覆盖
- 📈 **实时监控** 和日志记录
- 🔧 **可定制的规则** 引擎
- ⚡ **低延迟** 性能
# 渋 SHIBUYA WAF — 企业版
**版本:** 1.0 (完整源代码)
**架构:** Rust (Pingora) + eBPF + Machine Learning + SvelteKit
**许可证:** 商业 / 自托管(禁止转售)
## 欢迎来到猛兽。
感谢您的购买。您现在拥有 **SHIBUYA WAF** 的完整源代码,这是一款专为极致性能和零日威胁检测设计的下一代 Web Application Firewall。
通过绕过传统的 SaaS 订阅,您现在可以 100% 控制您的数据、流量和安全基础设施。
## 📑 目录
1. [系统要求](#1-system-requirements)
2. [快速开始部署](#2-quick-start-deployment)
3. [访问 Dashboard](#3-accessing-the-dashboard)
4. [Project Ashigaru:漏洞靶场](#4-project-ashigaru-the-vulnerable-lab)
5. [官方安全基准测试](#5-official-security-benchmark)
6. [故障排除与常见问题](#6-troubleshooting--faq)
## 1. 系统要求
对于生产环境,请确保您的系统符合以下规格:
* **操作系统:** 强烈推荐 Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+) 以支持 eBPF 内核功能。macOS 支持用于开发,但不包含 eBPF。
* **硬件:** 4+ CPU 核心数2GB+ RAM。
* **依赖项:** * Rust 1.75+(用于后端编译)
* Node.js v18+ & npm v8+(用于 SvelteKit Dashboard)
* Docker & Docker Compose(用于 Ashigaru Lab)
## 2. 快速开始部署
我们已经自动化了繁重的工作。要构建 Rust 引擎、下载 ML 模型并安装前端依赖项,只需运行包含的脚本。
在项目根目录中打开终端并执行:
```
# 1. 使 scripts 可执行(如果它们尚未可执行)
chmod +x setup start shibuya
# 2. 运行 initialization wizard
./setup
# 3. 启动 WAF Engine 和 Dashboard
./start
```
*`./start` 脚本将自动在端口 `8080` 上启动 Rust 代理,在 `9090` 上启动 Admin API,并在 `5173` 上启动 SvelteKit UI。*
## 3. 访问 Dashboard
服务运行后,打开浏览器并导航至 SHIBUYA 指挥中心:
👉 **URL:** `http://localhost:5173`
### 默认管理员凭据
* **用户名:** `admin`
* **密码:** `BrutalDevAccess2026!`
## 4. Project Ashigaru:漏洞靶场
您的购买包含 **Ashigaru**,这是一个隔离的 Docker 环境,包含 6 个故意存在漏洞的应用程序(SQLi、React2Shell RCE、LLM Prompt Injection)和一个自动化红队 Bot。这是您测试 WAF 的个人训练场。
### 如何启动靶场:
```
cd ashigaru
docker-compose up -d
```
### 靶场端点:
* 网关 (REST):`http://localhost:3000`
* 前端 (React SSR):`http://localhost:4000`
* GraphQL 引擎:`http://localhost:4001`
* AI 搜索:`http://localhost:5001`
* 旧版 PHP:`http://localhost:8888`
### 运行自动化攻击 Bot:
要实时验证 SHIBUYA 针对 100+ 载荷的防御能力:
```
cd ashigaru/redteam
python3 ashigaru_redteam.py --target http://localhost:8080 --cycles 1
```
## 5. 官方安全基准测试
SHIBUYA WAF 已通过 OWASP Top 10 (2021) 和高级 MITRE ATT&CK 技术的严格测试。
| 指标 | 数值 |
| --- | --- |
| **总测试数** | 51 (50 次攻击 + 1 次安全基线) |
| **检测率** | 100.0% |
| **WAF 拦截率** | 96.1% (49 次拦截, 2 次放行) |
### 已清除的攻击向量:
* **A01: Broken Access Control**(路径遍历、强制浏览) — ✅ 4/4 已拦截
* **A03: Injection**(SQLi, OR 1=1, UNION, 盲注, 堆叠) — ✅ 6/6 已拦截
* **A03: XSS**(script, img onerror, SVG onload) — ✅ 5/5 已拦截
* **A03: 命令注入**(ping, exec, PowerShell) — ✅ 3/3 已拦截
* **A06: Vulnerable Components**(Log4Shell, Shellshock) — ✅ 4/4 已拦截
* **A10: SSRF**(AWS 元数据, 内网) — ✅ 3/3 已拦截
## 6. 故障排除与常见问题
**问:Rust 编译在 `./setup` 期间失败。**
答:请确保您拥有最新的稳定版 Rust 工具链。运行 `rustup update stable` 并重试。如果您使用的是 Ubuntu/Debian,请确保已安装 `build-essential` 和 `libssl-dev`(`sudo apt install build-essential libssl-dev`)。
**问:启用 eBPF 模块时出现“Permission Denied”错误。**
答:eBPF 需要 root 权限才能附加到内核网络栈。如果您打算使用 eBPF 过滤,则必须以提升的权限运行 Rust 后端(例如 `sudo ./target/release/waf-killer`)。
**问:启动时出现“Address already in use”错误。**
答:SHIBUYA 使用端口 `8080`、`8443`、`9090` 和 `5173`。请确保没有其他服务(如 Apache、Nginx 或其他 Node 实例)占用这些端口。您可以在 `config/waf.yaml` 中更改 WAF 端口。
**问:机器学习模型拦截了合法流量(误报)。**
答:导航至 Dashboard 中的 `ML Engine` 选项卡。您可以降低异常阈值(例如从 `0.7` 降至 `0.85`),或使用 **Pending Reviews** 部分将特定请求标记为“False Positive”,以便模型自动重新校准。
*精准构建。捍卫您的基础设施。*
**为安全的 Web 应用程序而用 ❤️ 打造**
**为安全的 Web 应用程序而用 ❤️ 打造**标签:Apex, API安全, AppImage, Beacon Object File, CISA项目, CNCF毕业项目, DDoS防护, Docker镜像, IP 地址批量处理, JSON输出, ModSecurity替代, PE 加载器, RCE, Rust, SIEM集成, SQL注入防护, WAF, WASM, WebAssembly, Web应用防火墙, XSS防护, 人工智能, 企业级安全, 入侵防御, 内核过滤, 反向代理, 可视化界面, 威胁情报, 密码管理, 开发者工具, 开源安全工具, 异常检测, 机器学习, 测试用例, 爬虫检测, 用户模式Hook绕过, 编程工具, 网络安全, 网络流量审计, 虚拟补丁, 请求拦截, 远程代码执行, 逆向工程平台, 通知系统, 通知系统, 通知系统, 隐私保护, 零日漏洞防御, 高并发