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