chenchu-code/stryx-py
GitHub: chenchu-code/stryx-py
STRYX 是一个开源邮件和URL威胁分析器,帮助用户快速检测钓鱼攻击等安全威胁。
Stars: 0 | Forks: 0
```
███████╗████████╗██████╗ ██╗ ██╗██╗ ██╗
██╔════╝╚══██╔══╝██╔══██╗╚██╗ ██╔╝╚██╗██╔╝
███████╗ ██║ ██████╔╝ ╚████╔╝ ╚███╔╝
╚════██║ ██║ ██╔══██╗ ╚██╔╝ ██╔██╗
███████║ ██║ ██║ ██║ ██║ ██╔╝ ██╗
╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
```
**邮件与URL威胁分析器 — SOC情报工具**
[](https://python.org)
[](https://streamlit.io)
[](LICENSE)
[]()
[](https://attack.mitre.org)
[**在线演示 →**](https://stryx-py.streamlit.app) · [**报告Bug**](https://github.com/chenchu-code/stryx-py/issues) · [**请求功能**](https://github.com/chenchu-code/stryx-py/issues)
## ⟩ 概述
**STRYX** 是一款专为SOC分析师、网络安全学生和安全意识强的个人用户打造的开源威胁情报工具。它使用定制的启发式规则引擎实时分析URL和电子邮件,在无需任何API依赖的情况下,检测网络钓鱼、欺骗、社会工程和品牌冒充攻击。
## ⟩ 主要功能
| 功能 | 描述 |
|---|---|
| 🔍 **URL分析** | 12条检测规则,覆盖仿冒域名、IP主机、可疑顶级域名、混淆、同形字符攻击等 |
| 📧 **邮件分析** | 8条检测规则,覆盖伪造发件人、紧急性语言、凭证请求、钓鱼链接、支付诈骗 |
| 🎯 **MITRE ATT&CK映射** | 威胁发现与真实技术ID(T1566, T1598, T1657, T1071)关联 |
| 📊 **仪表板** | 可视化分析——风险分数趋势、判定结果分布、主要威胁类型细分 |
| 🟢 **简易模式** | 为非技术用户提供通俗易懂的判定结果 |
| 🔴 **高级模式** | 完整的技术分析,包含每个指标的严重性评级 |
| 📄 **报告导出** | 可从任何扫描中下载专业的`.txt`格式事件报告 |
| ⚡ **即时结果** | 纯规则引擎——无API调用、无需等待、无需联网 |
| 🔒 **100%隐私** | 零数据外发。所有分析在您本地会话中运行 |
## ⟩ 检测引擎
### URL规则(12条生效中)
```
┌─────────────────────────┬──────────┬──────────────────────────────────────────────┐
│ Rule │ Severity │ Description │
├─────────────────────────┼──────────┼──────────────────────────────────────────────┤
│ PROTOCOL │ MEDIUM │ HTTP instead of HTTPS │
│ IP AS HOST │ CRITICAL │ Raw IP address used as domain │
│ SUSPICIOUS TLD │ HIGH │ .xyz .tk .top .ml .ga and 15+ more │
│ URL SHORTENER │ MEDIUM │ bit.ly tinyurl rb.gy and 8+ more │
│ LOOKALIKE DOMAIN │ CRITICAL │ paypa1 g00gle amaz0n and similar │
│ SUSPICIOUS PATH │ HIGH │ /login /verify /account /credential │
│ EXCESS SUBDOMAINS │ MEDIUM │ More than 4 subdomains │
│ OBFUSCATION │ HIGH │ 3+ URL-encoded characters │
│ LONG URL │ LOW │ Over 120 characters │
│ MANY PARAMETERS │ LOW │ More than 5 query parameters │
│ AT-SIGN IN URL │ HIGH │ @ symbol used to redirect │
│ BRAND IMPERSONATION │ CRITICAL │ Brand name + action keyword pattern │
└─────────────────────────┴──────────┴──────────────────────────────────────────────┘
```
### 邮件规则(8条生效中)
```
┌─────────────────────────┬──────────┬──────────────────────────────────────────────┐
│ Rule │ Severity │ Description │
├─────────────────────────┼──────────┼──────────────────────────────────────────────┤
│ URGENCY LANGUAGE │ HIGH │ Urgent, act now, suspended, expires │
│ CREDENTIAL REQUEST │ CRITICAL │ Password, CVV, SSN, bank account │
│ SUSPICIOUS LINK │ CRITICAL │ High-risk URLs embedded in body │
│ BRAND MENTION │ MEDIUM │ Known brands — cross-checks sender domain │
│ GENERIC GREETING │ LOW │ Dear Customer / Dear User │
│ SPOOFED SENDER │ CRITICAL │ Display name vs domain mismatch │
│ PAYMENT REQUEST │ HIGH │ Wire, gift card, Zelle, Western Union │
│ THREAT LANGUAGE │ HIGH │ Legal action, arrest, account closure │
└─────────────────────────┴──────────┴──────────────────────────────────────────────┘
```
### 评分系统
```
Score 0–14 → SAFE 🔵 No action needed
Score 15–34 → LOW 🟢 Verify before proceeding
Score 35–54 → MEDIUM 🟡 Suspicious — do not click
Score 55–74 → HIGH 🟠 Likely malicious — block
Score 75–100 → CRITICAL 🔴 Confirmed threat — escalate
```
## ⟩ MITRE ATT&CK 映射
| 指标类型 | MITRE 技术 |
|---|---|
| 仿冒域名 | T1566.002 — 通过服务进行鱼叉式网络钓鱼 |
| 伪造发件人 | T1566.001 — 鱼叉式网络钓鱼附件 |
| 凭证请求 | T1598 — 钓鱼获取信息 |
| 可疑链接 | T1566.002 — 鱼叉式网络钓鱼链接 |
| 品牌冒充 | T1566 — 钓鱼 |
| IP作为主机 | T1071 — 应用层协议滥用 |
| 支付请求 | T1657 — 金融盗窃 |
## ⟩ 技术栈
```
Language → Python 3.9+
Framework → Streamlit 1.32+
Detection → Custom rule engine (regex + heuristics)
Charts → Streamlit native charts
Storage → Session state (no database)
Deploy → Streamlit Community Cloud (free)
```
## ⟩ 项目结构
```
stryx-py/
├── app.py ← Main Streamlit application
├── requirements.txt ← Python dependencies
└── README.md ← This file
```
## ⟩ 本地运行
**要求:** Python 3.9+
```
# 克隆 repo
git clone https://github.com/chenchu-code/stryx-py.git
cd stryx-py
# 安装 dependencies
pip install -r requirements.txt
# 运行 app
streamlit run app.py
```
在浏览器中打开 `http://localhost:8501`。
## ⟩ 部署到Streamlit Cloud(免费)
1. 将此仓库复刻到你的GitHub
2. 前往 [streamlit.io/cloud](https://streamlit.io/cloud)
3. 使用GitHub登录
4. 点击 **New app** → 选择此仓库
5. 主文件路径:`app.py`
6. 点击 **Deploy**
不到2分钟即可上线。永久免费。
## ⟩ 测试案例示例
**钓鱼URL:**
```
http://paypa1-secure-login.xyz/verify?user=account&token=8fx2k
```
**钓鱼邮件:**
```
From: security@paypa1-alerts.com
Subject: URGENT: Your account will be suspended in 24 hours!
Dear Valued Customer,
We detected suspicious activity. Verify immediately:
http://paypa1-secure.xyz/verify
PayPal Security Team
```
**安全URL:**
```
https://www.google.com
```
## ⟩ 路线图
- [x] URL威胁分析引擎
- [x] 邮件威胁分析引擎
- [x] MITRE ATT&CK 映射
- [x] 简易与高级输出模式
- [x] 可视化分析仪表板
- [x] 报告下载(.txt)
- [ ] 批量URL扫描器(一次处理多个URL)
- [ ] VirusTotal API集成(可选)
- [ ] 以PDF格式导出报告
- [ ] 自定义规则构建器
- [ ] 浏览器扩展版本
## ⟩ 使用场景
- **SOC分析师** — 快速分类可疑URL和邮件
- **安全学生** — 学习钓鱼检测模式和MITRE映射
- **IT团队** — 验证员工报告的可疑邮件
- **个人用户** — 点击链接前检查URL
## ⟩ 免责声明
STRYX**仅用于安全研究和教育目的**。请勿将此工具用于恶意或未授权的活动。该工具使用启发式规则——在采取行动前,请务必通过额外调查验证发现结果。
## ⟩ 制作者
**Chenchu** · Silent Storm
- 🐙 GitHub: [@chenchu-code](https://github.com/chenchu-code)
## ⟩ 许可证
MIT许可证 — 可自由使用、修改和分发,但需注明来源。
**⟩ STRYX v1.0 — 邮件与URL威胁分析器 — Silent Storm**
*如果此项目对您有所帮助,欢迎在GitHub上给我们一个⭐*
标签:DInvoke, Kubernetes, meg, Python开发, SOC分析, Streamlit应用, URL安全, 信息安全, 启发式规则引擎, 品牌冒充, 在线安全, 威胁分析工具, 威胁情报, 安全运营中心, 实时分析, 开发者工具, 开源安全工具, 恶意链接检测, 欺骗检测, 电子邮件安全, 电子邮件欺骗, 社会工程, 网络安全, 网络映射, 逆向工具, 逆向工程平台, 钓鱼检测, 隐私保护