EmanPalavra/ScamShield
GitHub: EmanPalavra/ScamShield
一个基于 Flask 的诈骗消息与可疑链接分诊工具,通过启发式评分和威胁情报富化给出风险评级、分类置信度及通俗解释。
Stars: 0 | Forks: 0
# ScamShield
ScamShield 是一个基于 Flask 的诈骗分类应用,用于分析粘贴的短信、WhatsApp 消息、电子邮件文本以及可疑链接。
它旨在回答一个实际问题:
`此消息或链接是诈骗吗?`
该应用结合了消息分析、URL 启发式算法以及可选的威胁情报查询,返回以下内容:
- 总体风险
- 分类置信度
- 通俗解释
- 建议的后续操作
- 面向分析人员的证据和指标
## 亮点
- 跨网络钓鱼、银行、加密货币、包裹、工作及招聘类诈骗的消息分类
- URL 提取与域名启发式分析
- 域名抢注、可疑顶级域名 (TLD)、路径及短链接分析
- 使用 RDAP 进行域名年龄检查
- Google Safe Browsing、PhishTank 以及可选的 VirusTotal 富化分析
- 简单视图与分析师视图
- 可解释性、证据细分、IOC 提取及提供商状态
- 针对用户粘贴内容的隐私保护处理说明
## 截图
### 概览

### 扫描工作流

### 解释

### 证据细分

### 深度扫描

## 工作原理
1. 用户粘贴可疑消息或链接。
2. ScamShield 从文本中提取 URL 和指标。
3. 对消息进行社会工程学模式评分。
4. 使用本地启发式算法和可选的外部情报对每个 URL 进行评估。
5. 将消息和链接信号整合为最终的风险评分。
6. UI 渲染风险、置信度、解释、证据和建议操作。
## 检测模型
ScamShield 将输出分为两部分:
- `总体风险`:内容看起来有多危险
- `分类置信度`:应用对该诈骗系列的判断有多确信
### 消息信号
评分引擎会寻找以下模式:
- 紧急和恐吓性语言
- 索要凭据或身份信息
- 支付压力
- 品牌冒充
- 引导至平台外联系
- 招聘和创作者拓展诱饵
- 加密货币推广和预付费行为
- 要求先回复的对话陷阱
### 链接信号
URL 引擎会评估:
- 可疑关键词
- 域名抢注和形似域名
- Punycode 和缩短的链接
- 域名结构和路径风险
- 可疑顶级域名 (TLD)
- 域名年龄
- 信誉提供商的结果
## 架构
核心项目文件:
- `app.py` - 评分引擎、富化逻辑和 Flask 路由
- `templates/index.html` - 主 UI 模板
- `static/style.css` - UI 样式
- `tests/data/sample_messages.json` - 已标记的诈骗和良性数据集
- `tests/run_dataset.py` - 本地数据集评估器
## 设置
在项目根目录创建一个 `.env` 文件:
```
GOOGLE_API_KEY=your_google_safe_browsing_key
PHISHTANK_API_KEY=your_phishtank_key
VT_API_KEY=your_virustotal_key
APP_USER_AGENT=ScamShield/1.0 security scanner
PHISHTANK_CACHE_HOURS=12
PHISHTANK_MAX_CACHE_ITEMS=5000
```
请勿将 `.env` 提交到 Git。
运行应用:
```
.\venv\Scripts\python.exe app.py
```
## 数据集测试
ScamShield 包含一个已标记的数据集,用于模型调优和回归检查。
运行:
```
.\venv\Scripts\python.exe tests\run_dataset.py
```
评估器将报告:
- 类别匹配情况
- 风险级别匹配情况
- 用于调优的单个不匹配项
## 隐私说明
- 粘贴的完整消息仅在当前请求期间在内存中处理。
- 该应用不会故意将完整的消息正文持久化到数据库。
- PhishTank 缓存存储的是域名级别的查询结果,而非完整消息。
- 启用富化功能后,URL 可能会被发送到外部提供商。
- API 密钥保留在服务器端,绝不应提交到源代码管理中。
## 局限性
- 外部提供商可能会出现故障、触发速率限制或不可用的情况。
- 信誉源可能会遗漏新的诈骗域名。
- 消息分类是基于启发式和规则的。
- 结果应辅助分类筛查,不能替代独立的核实。
## 展示技能
本项目展示了:
- 网络钓鱼和诈骗分类的思维方式
- 检测逻辑和加权评分
- 可解释的风险决策
- 对外部提供商故障的优雅处理
- 面向非技术用户的安全 UX 设计
- 使用已标记数据集进行实际调优
标签:Ask搜索, Flask, Google Safe Browsing, heuristic 评分, IOC提取, PhishTank, Python, RDAP, SEO安全工具, URL分析, URL启发式分析, VirusTotal, WhatsApp安全, 反诈骗, 可解释性, 域名溯源, 威胁情报, 开发者工具, 恶意链接检测, 无后门, 短信安全, 社会工程学防御, 网络钓鱼分析, 诈骗分诊, 调试辅助, 逆向工具, 邮件安全, 钓鱼检测