Chiragranjan12/DAST-Vulnerability-Scanner
GitHub: Chiragranjan12/DAST-Vulnerability-Scanner
一个融合动态应用安全测试与日志入侵检测的统一安全平台,通过单一仪表板实现漏洞主动扫描与事后攻击识别。
Stars: 0 | Forks: 0
# 🛡️ Cyber 入侵检测系统
一个统一的网络安全平台,结合了 **动态应用程序安全测试 (DAST)** 扫描与基于 **日志的入侵检测**(由机器学习和 NLP 驱动)。
检测 Web 应用程序中的漏洞,并识别系统日志中发生的实际攻击——所有这些都来自一个单一、美观的仪表板。
## ✨ 功能特性
### 🔍 **DAST Web 漏洞扫描器**
- 主动扫描网站以查找安全漏洞
- 自动化表单发现和 Fuzzing
- 检测 SQL Injection 和 XSS 攻击
- 实时结果与可视化报告
- 无需编码——只需输入 URL
### 📊 **基于日志的入侵检测**
- 分析服务器日志以检测实际攻击
- 识别 7 种以上威胁类型的模式
- 基于 NLP 的威胁分类
- 分析之间自动清除数据
- 支持常见的日志格式 (Apache, Nginx, Linux)
### 🎯 **检测到的攻击类型**
- ✓ **SQL Injection** - 数据库篡改尝试
- ✓ **XSS (Cross-Site Scripting)** - JavaScript 代码注入
- ✓ **Brute Force** - 密码猜测攻击
- ✓ **Port Scanning** - 网络侦察活动
- ✓ **Privilege Escalation** - 未授权的管理员访问尝试
- ✓ **Data Exfiltration** - 大规模数据窃取检测
- ✓ **Network Anomalies** - 异常流量模式
### 💫 **现代化仪表板**
- Glassmorphism UI 设计
- 实时数据更新
- 交互式图表和表格
- 用于快速洞察的 KPI 卡片
- 严重级别指示器 (🔴 严重, 🟡 高危, 🟢 安全)
## 🚀 快速开始
### 前置条件
- Python 3.8 或更高版本
- pip (Python 包管理器)
### 安装步骤
1. **克隆仓库**
```
cyber-intrusion/
├── app.py # Main Flask application
├── database.py # SQLite database setup & operations
├── scanner.py # DAST vulnerability scanner
├── log_analyzer.py # Log pattern analysis for intrusions
├── nlp_classifier.py # NLP-based threat classification
|
├── templates/
│ └── dashboard.html # Main UI
├── static/
│ ├── css/
│ │ └── styles.css # Dashboard styling
│ └── js/
│ └── chart.js # Frontend logic & charts
|
├── sample_logs_*.txt # Test log files for learning
├── requirements.txt # Python dependencies
├── QUICK_START_GUIDE.txt # Simple usage guide
├── TESTING_LOGS_README.md # Testing documentation
└── README.md # This file
```
2. **创建虚拟环境**
```
sample_logs_clean.txt ✅ Normal traffic (baseline)
sample_logs_brute_force.txt 🔴 Brute force attacks
sample_logs_sql_injection.txt 🔴 SQL injection attempts
sample_logs_xss.txt 🔴 XSS payload injection
sample_logs_port_scan.txt 🟡 Network scanning
sample_logs_privilege_escalation.txt 🔴 Sudo/admin attempts
sample_logs_data_exfiltration.txt 🔴 Data theft detection
sample_logs_mixed_realistic.txt 🔀 Real-world scenario mix
```
3. **激活虚拟环境**
**Windows:**
```
# Flask 设置
FLASK_ENV=development
FLASK_DEBUG=True
# Database
DB_PATH=./intrusion_logs.db
# Timeout 设置
SCAN_TIMEOUT=60
```
**macOS/Linux:**
```
# 检查 Python 版本
python --version # Should be 3.8+
# 重装 dependencies
pip install -r requirements.txt --force
# 使用 verbose output 运行
python app.py -v
```
4. **安装依赖项**
```
# 清空 database
rm intrusion_logs.db scan_results.db
# 重启 server
python app.py
```
5. **启动服务器**
6. **在浏览器中打开**
## 📖 如何使用
### 场景 1:扫描您的网站以查找漏洞
1. 打开仪表板 `http://127.0.0.1:5000`
2. 在左侧面板中,输入您的网站 URL(例如 `https://example.com`)
3. 点击 **"Scan"** 按钮
4. 等待 10-30 秒以完成扫描
5. 在显示发现的漏洞的图表中查看结果
6. 修复代码中已识别的漏洞
### 场景 2:分析日志以检测攻击
1. 获取您网站的日志文件:
- **cPanel/Plesk:** 从 Control Panel 下载
- **Apache:** `/var/log/apache2/access.log`
- **Nginx:** `/var/log/nginx/access.log`
- **联系您的主机提供商**
2. 复制整个日志文件内容
3. 在仪表板中,将日志粘贴到 **"Analyze Logs"** 文本区域
4. 点击 **"Analyze Logs"** 按钮
5. 等待 2-3 秒进行分析
6. 检查 **"Intrusion Events"** 表格以查看检测到的攻击
## 📁 项目结构
## 🛠️ 技术栈
| 组件 | 技术 |
|-----------|-----------|
| **Backend** | Python 3, Flask 3.0.0 |
| **Database** | SQLite |
| **ML/Analytics** | scikit-learn, pandas, numpy |
| **Web Scraping** | BeautifulSoup4 |
| **HTTP Client** | requests |
| **Frontend** | HTML5, CSS3, JavaScript |
| **Charts** | Chart.js |
## 📊 关键统计
- **检测 7 种以上攻击类型**
- **2 项安全功能** (DAST + IDS)
- **实时仪表板更新**
- **自动数据清除**(分析之间)
- **NLP 威胁评分** (0-100)
- **支持多种日志格式**
## 🧪 使用样本数据测试
项目包含 8 个用于测试的真实样本日志文件:
### 快速测试
1. 打开 `sample_logs_mixed_realistic.txt`
2. 复制全部内容
3. 粘贴到仪表板的 "Analyze Logs" 中
4. 点击 "Analyze Logs"
5. 在表格中查看检测到的攻击!
## 📚 文档
- **[QUICK_START_GUIDE.txt](QUICK_START_GUIDE.txt)** - 适合所有人的简单非技术指南
- **[TESTING_LOGS_README.md](TESTING_LOGS_README.md)** - 详细的测试信息
## 🔒 安全与最佳实践
✓ **结合使用两项功能**:
- 扫描报告 = 预防(在攻击发生前发现漏洞)
- 入侵检测 = 检测(在攻击发生后捕获实际攻击)
✓ **定期扫描**:生产站点至少每周一次
✓ **每天审查日志**:及早发现攻击
✓ **立即修复严重问题**:不要拖延安全修复
✓ **仅扫描您拥有的网站**:扫描他人是非法的
## 🎯 用例
### 面向开发者
- 在部署前测试您的应用程序
- 识别代码中的安全缺陷
- 验证修复是否有效
- 了解 Web 漏洞
### 面向安全团队
- 对客户网站进行安全审计
- 监控主动攻击
- 生成合规性报告
- 自动化威胁检测
### 面向 CTF 挑战
- 练习检测漏洞
- 学习攻击模式和签名
- 测试安全知识
- 网络安全课程的教育工具
## 📈 严重级别
| 级别 | 颜色 | 含义 | 操作 |
|-------|-------|---------|--------|
| **Critical** | 🔴 红色 | 攻击者可能窃取所有数据 | 立即修复 |
| **High** | 🟡 黄色 | 重大安全风险 | 24 小时内修复 |
| **Medium** | 🔵 蓝色 | 潜在安全问题 | 1 周内修复 |
| **Low** | 🟢 绿色 | 轻微问题 | 尽可能修复 |
| **Safe** | ✅ 勾选 | 未检测到威胁 | 无需操作 |
## ⚙️ 配置
### 环境变量(可选)
### 自定义检测规则
编辑以下文件中的阈值:
- `log_analyzer.py` - 模式匹配规则
- `nlp_classifier.py` - 威胁关键词词典
- `scanner.py` - Payload 注入参数
## 🐛 故障排除
### 问题:服务器无法启动
**解决方案:**
### 问题:日志中未检测到攻击
**解决方案:**
- 使用 `sample_logs_mixed_realistic.txt` 进行测试
- 确保日志已完整粘贴
- 检查是否支持日志格式 (Apache/Nginx/Linux)
### 问题:仪表板加载但没有数据
**解决方案:**
### 问题:扫描耗时很长
**解决方案:**
- 尝试先扫描一个较小的网站
- 检查目标站点是否响应
- 如有需要,增加超时时间
## 📝 API 端点
| 端点 | 方法 | 用途 |
|----------|--------|---------|
| `/` | GET | 仪表板 UI |
| `/api/stats` | GET | 获取扫描统计数据 |
| `/api/events` | GET | 获取近期事件 |
| `/api/scan` | POST | 开始新扫描 |
| `/api/intrusions` | GET | 获取检测到的入侵 |
| `/api/threat-summary` | GET | 获取威胁统计 |
| `/api/analyze-logs` | POST | 分析日志文件 |
## 🤝 贡献
欢迎贡献!贡献步骤:
1. Fork 本仓库
2. 创建一个功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开一个 Pull Request
### 贡献领域
- 额外的威胁检测模式
- 支持更多日志格式
- 增强的 UI/UX
- 性能优化
- 文档改进
- 额外的攻击类型检测
## 📋 路线图
- [ ] 网络活动监控
- [ ] 实时日志流
- [ ] 多服务器日志聚合
- [ ] 自动修复建议
- [ ] 用户认证系统
- [ ] 导出报告 (PDF/Excel)
- [ ] 移动应用
- [ ] API 密钥认证
- [ ] Webhook 通知
- [ ] Docker 支持
## 📄 许可证
本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。
## ⚠️ 免责声明
此工具专为 **授权的安全测试** 设计:
- 仅扫描 **您拥有或有权测试的网站**
- 未经明确许可,请勿在系统上使用
- 未经授权的扫描可能是非法的
- 作者不对滥用行为负责
## 🤔 常见问题
**Q: 我可以扫描任何网站吗?**
A: 仅扫描 **您拥有的网站**。未经许可扫描他人是非法的。
**Q: 扫描需要多长时间?**
A: 扫描报告:10-30 秒 | 日志分析:2-5 秒
**Q: 我的数据会被存储吗?**
A: 是的,结果存储在 SQLite 中。您可以随时删除 `.db` 文件。
**Q: 我可以在生产站点上使用此工具吗?**
A: 可以,但请先在 ~~staging~~ 环境测试。扫描器发送的 Payload 可能会触发 WAF 拦截。
**Q: 扫描报告和入侵检测有什么区别?**
A: 扫描报告在攻击发生前 **发现漏洞**。入侵检测 **检测已发生的实际攻击**。
## 📞 支持与提问
- 查看 **[QUICK_START_GUIDE.txt](QUICK_START_GUIDE.txt)** 了解基础内容
- 阅读 **[TESTING_LOGS_README.md](TESTING_LOGS_README.md)** 获取测试帮助
- 在 GitHub 上提出 Issue 报告 Bug
- 发帖前请检查现有的 Issues
## 🙏 致谢
- Flask 框架用于 Web 应用程序
- scikit-learn 用于机器学习
- Chart.js 用于数据可视化
- BeautifulSoup4 用于 Web 抓取
- 灵感来源于 OWASP 安全标准
## 📊 项目状态




## 🌟 表示支持
如果您觉得这个项目有用,请考虑:
- ⭐ Star 本仓库
- 🐛 报告 Bug
- 💡 建议新功能
- 📢 分享给他人
- 🤝 为项目做贡献
**祝您 Hack 愉快! 🎉**
用 ❤️ 为网络安全爱好者和专业人士构建。
标签:Apex, BurpSuite集成, CISA项目, DAST, DOE合作, fuzzing, GUI界面, NLP, PE 加载器, Python安全工具, SQL注入检测, Web漏洞扫描, XSS检测, 互联网扫描, 免杀技术, 入侵检测系统, 动态应用程序安全测试, 可视化仪表盘, 威胁情报, 安全攻防, 安全数据湖, 安全运营, 开发者工具, 异常检测, 恶意软件分析, 扫描框架, 插件系统, 数据可视化, 数据渗漏检测, 暴力破解检测, 机器学习, 权限提升检测, 端口扫描检测, 网络安全, 逆向工具, 隐私保护