Mathesv/Cybershield
GitHub: Mathesv/Cybershield
一个面向初学者的 Flask 安全仪表板,整合密码强度分析、文件完整性监控、端口扫描和钓鱼 URL 检测四大教学模块。
Stars: 0 | Forks: 0
# CyberShield — 多工具安全仪表板
一个对新手友好的网络安全项目,将**四个独立且贴近现实的
安全工具**整合到一个 Flask Web 仪表板中。完全使用 Python
标准库构建(无付费 API,无黑盒库),因此每一行代码都能在答辩/演示中进行解释。
## 功能介绍
| # | 模块 | 领域 | 教学内容 |
|---|--------|--------|------------------|
| 1 | 密码强度分析器 | 应用安全 | 熵、暴力破解数学、泄露密码字典 |
| 2 | 文件完整性监控器 | 端点安全 | SHA-256 哈希、基线/差异检测(Tripwire/AIDE 的工作原理) |
| 3 | 网络端口扫描器 | 网络安全 | TCP 握手、服务指纹识别(Nmap 基本扫描的工作原理) |
| 4 | 钓鱼 URL 检测器 | 社会工程学防御 | 启发式威胁评分(浏览器/邮件过滤器的工作原理) |
## 项目结构
```
cybershield/
├── app.py # Flask backend — all 4 security modules + API routes
├── requirements.txt # Just Flask
├── templates/
│ └── index.html # Single-page dashboard UI
├── static/
│ ├── style.css # Dark "security console" theme
│ └── script.js # Talks to the backend via fetch()
└── data/
└── baseline.json # Auto-created — stores file-integrity baselines
```
## 如何运行
```
# 1. Clone 或下载此 repo,然后进入该目录
cd cybershield
# 2. (推荐)创建一个 virtual environment
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 3. 安装这一个 dependency
pip install -r requirements.txt
# 4. 运行它
python3 app.py
# 5. 打开你的浏览器
http://127.0.0.1:5000
```
## 模块 1 — 密码强度分析器
**工作原理:**
- 计算 **Shannon 熵**:`entropy = length × log2(character_pool_size)`。
如果你使用了小写字母、大写字母、数字和符号,字符池的大小就会增加——更大的
字符池意味着攻击者必须在每个字符上从更多的可能性中进行猜测。
- 估算**真实的破解时间**,假设攻击者每秒可以尝试 100 亿次
猜测(这是离线 GPU 破解设备的真实数据)。
- 将密码与世界上一些最常见的已泄露密码(`123456`、`password` 等)列表进行交叉检查——这与“Have I Been Pwned”式检查背后的理念相同,但在本地完成,无需调用 API。
- 按照 NIST SP 800-63B 指南描述的方式对密码规则(长度、大小写、数字、符号)进行评分。
**试试看:** 输入 `123456`(弱),然后再输入 `Gr@n1te-Bridge92!`(非常强)并进行对比。
## 模块 2 — 文件完整性监控器
**工作原理:**
- `hash_file()` 以 8KB 为块读取文件,并通过 **SHA-256** 进行处理,生成
唯一的指纹。即使更改文件中的哪怕一个字节,哈希值也会完全改变。
- “Save Baseline”会对文件夹中的每个文件进行哈希处理,并将结果存储在 `data/baseline.json` 中。
- “Check Now”会重新对文件夹进行哈希处理,并将其与保存的基线进行比较,报告
任何被**修改**、**添加**或**删除**的文件——这正是真实的
文件完整性工具(Tripwire、AIDE、Windows 文件完整性监控)检测
篡改或恶意软件的方式。
**试试看:** 将它指向任意文件夹,保存基线,在其中编辑/添加/删除文件,
然后再次点击“Check Now”。
## 模块 3 — 网络端口扫描器
**工作原理:**
- 针对 14 个知名端口(FTP、SSH、HTTP、MySQL、RDP 等)中的每一个,它会尝试使用 Python 的 `socket` 模块进行真实的 **TCP connect**。
- 如果连接成功(`connect_ex` 返回 0),则报告该端口为 **OPEN**,
这意味着有某些服务正在那里监听。
- 这与 Nmap 默认 `-sT`(TCP connect)扫描背后的基本技术相同。
**⚠️ 道德规范提示(对答辩很重要):** 扫描你不拥有或
没有书面测试许可的系统在大多数国家是非法的(例如根据
《计算机滥用法》/《IT 法》)。这就是为什么此工具默认指向 `127.0.0.1`
(你自己的机器)。在你展示项目时请明确提及这一界限——
评估者很乐意看到你理解这一点。
## 模块 4 — 钓鱼 URL 检测器
**工作原理:** 运行 7 项启发式检查并累加风险分数:
1. URL 长度 > 75 个字符
2. 域名是原始 IP 地址而不是名称
3. 包含 `@` 符号(可隐藏真实目的地)
4. 域名有 2 个或更多连字符(在仿冒的相似域名中很常见)
5. 未使用 HTTPS
6. 包含可疑关键字(`login`、`verify`、`secure`、`banking` 等)
7. 使用已知的 URL 缩短服务(可掩盖真实链接)
这反映了真实的浏览器/邮件钓鱼过滤器在引入机器学习之前,在最基本层面上的工作方式。
**试试看:** 将 `https://www.wikipedia.org`(低风险)与类似
`http://192.168.1.1-secure-login.tk/verify@bank.com`(高风险)的地址进行对比。
## 为什么这个项目脱颖而出
大多数初学者的网络安全提交作品都是*单一*的脚本——一个端口扫描器,
或一个密码检查器。本项目展示了对**四个
不同网络安全领域**(应用安全、端点安全、网络
安全、社会工程学防御)的综合能力,它们被集成在一个具有凝聚力且可运行的 Web 应用程序中——
同时保持足够简单,使得每个函数都能在不到一段话的篇幅内逐行解释。
## 可能的未来扩展(在你的报告中作为“未来范围”提及这些)
- 当文件完整性监控器检测到更改时添加邮件提醒
- 在分析器旁边添加密码生成器
- 扩展端口扫描器以接受自定义端口范围
- 训练一个小型 ML 模型来替代钓鱼启发式算法(一个很棒的“第二部分”项目)
## 技术栈
- **后端:** Python 3, Flask
- **前端:** HTML, CSS, 原生 JavaScript(无框架)
- **核心安全概念:** hashlib (SHA-256), socket (TCP), 正则表达式, 熵数学
- **依赖项:** 仅 Flask —— 其他所有内容均为 Python 的标准库
## 许可证
可免费用于学术用途和修改。
标签:Flask, Python, x64dbg, 多模态安全, 密码强度分析, 插件系统, 数据可视化, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护