AtomSpiderX/Intelliguard-WAF
GitHub: AtomSpiderX/Intelliguard-WAF
IntelliGuard WAF 是一个基于 React、Express 和 SQLite 构建的全栈 Web 应用防火墙,提供实时威胁检测、风险评分、动态速率限制和 Telegram 即时安全告警功能。
Stars: 0 | Forks: 0
# IntelliGuard WAF - 设置与 Telegram 威胁检测指南
IntelliGuard WAF (Sentinel WAF) 是一个全栈 Web 应用防火墙和威胁情报仪表板,使用 React、Vite、Express 和 SQLite 构建。它提供实时流量检测、特征匹配、动态速率限制、风险评分、自动黑名单以及即时的 Telegram 安全警报。
## 🚀 1. 本地设置说明
### 前置条件
- **Node.js**:推荐 v18+
- **npm**:包管理器
- **Telegram App**:用于接收实时安全警报
### 安装说明
1. 克隆仓库并导航到项目目录:
cd intelliguard-waf
2. 安装项目依赖:
npm install
## 📲 2. Telegram Bot 配置
要在 WAF 检测并阻止攻击时接收实时通知:
### 第 1 步:创建 Telegram Bot
1. 打开 Telegram 并搜索 **`@BotFather`**。
2. 开始对话并发送 `/newbot`。
3. 按照提示为你的 bot 设置名称和用户名。
4. `@BotFather` 会给你一个 **HTTP API Token**(例如,`8645508427:AAE93J7BXr...`)。复制此 token。
### 第 2 步:获取你的 Telegram Chat ID
1. 在 Telegram 中搜索 **`@userinfobot`**(或 `@RawDataBot`)。
2. 向 bot 发送 `/start`。
3. bot 会回复你的数字 **Chat ID**(例如,`8661262877`)。
### 第 3 步:配置环境变量
在项目根目录中创建或更新你的 `.env` 文件:
```
# Server 配置
PORT=3000
DATABASE_PATH="waf.db"
JWT_SECRET="super-secret-waf-key-123"
# 可选 AI 分析
GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"
# Telegram 通知凭证
TELEGRAM_BOT_TOKEN="YOUR_TELEGRAM_BOT_TOKEN_HERE"
TELEGRAM_CHAT_ID="YOUR_TELEGRAM_CHAT_ID_HERE"
```
## ▶️ 3. 运行应用程序
启动 Express 后端和 React 前端开发服务器:
```
npm run dev
```
在浏览器中打开 `http://localhost:3000` 以访问 IntelliGuard WAF 仪表板。
## 🎯 4. 测试攻击与 Telegram 警报(分步指南)
以下是触发 WAF 并验证 Telegram 警报的分步命令:
### 攻击向量 1:SQL 注入 (SQLi)
模拟在 URL 参数中的 SQL 注入尝试:
```
curl -G --data-urlencode "id=1' OR 1=1 --" http://localhost:3000/api/simulate
```
*替代的编码语法:*
```
curl "http://localhost:3000/api/simulate?id=1%27%20OR%201=1%20--"
```
### 攻击向量 2:跨站脚本攻击 (XSS)
模拟内联脚本注入 payload:
```
curl -G --data-urlencode "search=" http://localhost:3000/api/simulate
```
### 攻击向量 3:路径遍历 / 蜜罐探测
模拟目录遍历或管理员蜜罐访问:
```
curl "http://localhost:3000/api/simulate?file=../../../../etc/passwd"
```
### 攻击向量 4:恶意扫描器 User-Agent
模拟来自自动化安全扫描工具(例如,`sqlmap`、`nikto`、`nmap`)的请求:
```
curl -H "User-Agent: sqlmap/1.5#stable" http://localhost:3000/api/simulate
```
### 攻击向量 5:动态速率限制 / 暴力破解
通过在短时间窗口内发送大量请求来触发速率限制:
```
for i in {1..15}; do curl -s "http://localhost:3000/api/simulate?q=test"; done
```
## 📩 5. 预期的 WAF 响应与 Telegram 通知
### WAF 终端 / API 响应 (HTTP 403 Forbidden)
```
{
"error": "Security Violation",
"message": "Your request was blocked by Sentinel WAF",
"incident_id": 1746685412000,
"score": 1.2,
"threats": [
"SQL Injection Detected"
],
"fingerprint": {
"browser": "curl 8.5.0",
"os": "Linux"
}
}
```
### Telegram 警报格式
当攻击被阻止时,你的 Telegram bot 会立即收到一条格式化的消息:
```
🚨 Sentinel WAF Alert: Blocked Attack
IP: 127.0.0.1
Method: GET
URL: /api/simulate?id=1%27%20OR%201=1%20--
Threats: SQL Injection Detected
Score: 1.20
Browser: curl 8.5.0
OS: Linux
```
## 📊 功能与架构概述
- 🛡️ **规则特征引擎**:内置针对 SQLi、XSS、RCE、LFI 和扫描器 User-Agent 的正则表达式模式。
- ⚡ **动态速率限制**:自动降低可疑 IP 的请求阈值。
- 🤖 **Telegram 警报**:将威胁通知异步发送到配置的 Telegram 聊天。
- 📈 **实时监控**:风险评分、攻击分布和总请求的可视化图表。
- 🔍 **取证深度调查**:检查请求头、payload、设备指纹和安全评分。
- ⛔ **IP 黑名单引擎**:自动化或手动的 IP 封禁与解封。
标签:AppImage, CISA项目, DOE合作, Express, MITM代理, React, SQLite, Syscalls, Telegram告警, Web应用防火墙, 威胁情报, 安全防护, 开发者工具, 自动化攻击