Cyb3rgh/phishing-url-analyzer
GitHub: Cyb3rgh/phishing-url-analyzer
该项目是一款钓鱼网址分析器,通过结合本地静态结构分析与 VirusTotal 威胁情报,在无需访问目标地址的情况下对可疑 URL 进行安全风险评估。
Stars: 0 | Forks: 0
# Phishing URL 分析器
一款防御性网络安全应用,无需打开即可检查可疑 URL。它结合了本地结构分析与现有的 VirusTotal 威胁情报报告,从而生成清晰的风险评估。
由 **Fayyad Dahweesh** 开发,作为一个实用的网络安全作品集项目。
## 功能
- 无需访问目标即可进行静态 URL 检查
- 自动进行 URL 规范化和域名提取
- 从 0 到 100 的风险评分
- 低风险、可疑和高风险分类
- HTTPS 验证
- IP 地址检测
- 可疑关键词检测
- URL 缩短服务检测
- Punycode 和异常子域名检测
- 实时 VirusTotal 信誉查询
- 安全引擎判定统计
- 社区信誉和 URL 分类
- 响应式 SOC 风格界面
- 服务端 API 密钥保护
## 技术栈
- Next.js
- React
- TypeScript
- Tailwind CSS
- VirusTotal API v3
- ESLint
## 工作原理
1. 用户提交一个 URL。
2. 应用程序对输入进行规范化和验证。
3. 本地引擎检查结构性的钓鱼指标。
4. 服务端 API 路由创建 VirusTotal URL 标识符。
5. 该路由获取现有的 VirusTotal 报告。
6. 将本地和外部情报结合计算出风险评分。
7. 界面显示分析结果和引擎统计信息。
应用程序不会导航至提交的目标地址。
## 风险指标
本地引擎会评估以下指标:
- 缺少 HTTPS
- 使用原始 IP 地址而不是域名
- 可能会掩盖目标地址的 `@` 符号
- Punycode 域名
- URL 长度过长
- 诸如 `login`、`verify` 和 `password` 等可疑词汇
- 子域名过多
- 已知的 URL 缩短服务
当安全引擎将 URL 判定为可疑或恶意时,VirusTotal 的检测结果会提高最终的风险评分。
## 本地设置
### 环境要求
- Node.js 20.9 或更高版本
- npm
- 免费的 VirusTotal 社区版 API 密钥
### 安装说明
克隆代码库并进入项目目录:
```
git clone https://github.com/Cyb3rgh/phishing-url-analyzer.git
cd phishing-url-analyzer
```
安装依赖:
```
npm install
```
在项目根目录下创建一个 `.env.local` 文件:
```
VIRUSTOTAL_API_KEY=your_private_api_key
```
切勿在客户端代码中暴露 API 密钥,也不要提交 `.env.local`。
启动开发服务器:
```
npm run dev
```
打开:
```
http://localhost:3000
```
## 测试
安全的文档测试:
```
example.com
```
预期结果:低风险,且没有恶意的 VirusTotal 检测结果。
受控的钓鱼警告测试:
```
https://testsafebrowsing.appspot.com/s/phishing.html
```
这是一个官方的 Safe Browsing 测试 URL。请将其粘贴到分析器中;不要直接在浏览器中访问。
质量检查:
```
npm run lint
npm run build
```
## 安全与隐私
- VirusTotal API 密钥存储在仅限服务端访问的环境变量中。
- 该密钥永远不会返回给浏览器。
- `.env.local` 已被排除在 Git 之外。
- 仅接受 HTTP 和 HTTPS URL。
- 会拒绝包含嵌入式凭证的 URL。
- 限制输入长度。
- 应用程序仅获取现有的 VirusTotal 报告,不会自动提交新 URL 进行扫描。
请勿使用公共威胁情报服务分析私密的密码重置链接、公司内部 URL、身份验证 token 或机密地址。
## 局限性
- 低风险结果并不能保证 URL 是安全的。
- 未检测出威胁的结果意味着引擎尚未得出结论,并不代表该 URL 无害。
- 受限于 VirusTotal 社区 API 的配额。
- 以前未见过的 URL 可能没有现成的 VirusTotal 报告。
- 静态指标可能会产生误报或漏报。
## 免责声明
本项目旨在用于防御性安全教育和作品集展示。其结果应作为专业调查和安全控制的辅助参考,而非替代品。
## 作者
**Fayyad Dahweesh**
技术支持专家 | IT 支持专业人员 | 有志成为网络安全分析师
标签:React, Syscalls, TypeScript, URL分析, 威胁情报, 安全插件, 开发者工具, 网络钓鱼检测, 自动化攻击