cobrich/scam-checker-api

GitHub: cobrich/scam-checker-api

基于 Go 的威胁情报 API,通过聚合公开恶意数据源并结合启发式分析与基础设施扫描,提供实时 URL 钓鱼和诈骗检测服务。

Stars: 2 | Forks: 0

# 🛡️ Scam Checker API 使用 Go 构建的威胁情报 API 和钓鱼扫描器。 Scam Checker API 利用公开威胁源、启发式分析、Redis 缓存和实时 URL 扫描来检测钓鱼、恶意软件、诈骗 URL、可疑域名和有风险的基础设施。 ![Go](https://img.shields.io/badge/Go-1.23+-00ADD8?style=for-the-badge\&logo=go) ![Fiber](https://img.shields.io/badge/Fiber-00ADD8?style=for-the-badge) ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15-4169E1?style=for-the-badge\&logo=postgresql) ![Redis](https://img.shields.io/badge/Redis-Caching-DC382D?style=for-the-badge\&logo=redis) ![Docker](https://img.shields.io/badge/Docker-Ready-2496ED?style=for-the-badge\&logo=docker) ![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge) ## 功能 | 功能 | 描述 | | ------------------- | ------------------------------------------------------------------------------------- | | 威胁源 | 从多个公开来源聚合钓鱼和恶意软件 URL | | 启发式分析 | 检测域名拼写抢注、品牌注入、可疑关键词、熵和混淆 | | 基础设施扫描 | 检查 DNS、SSL、HTTP 内容、重定向和托管信号 | | 智能评分 | 生成 0 到 100 的风险评分 | | Redis 缓存 | 加速重复检查 | | PostgreSQL 存储 | 存储标准化的威胁情报数据 | | Docker 支持 | 在本地运行 API、PostgreSQL 和 Redis | ## 威胁情报来源 * PhishTank * URLhaus * OpenPhish * ThreatFox * GitHub Phishing Database * VX Vault * Phishing Army * StopForumSpam ## 架构 ``` flowchart TD Client["Client / API User"] --> API["Fiber REST API"] API --> Checker["Checker Service"] Checker --> Whitelist["Whitelist Check"] Checker --> Cache["Redis Cache"] Checker --> DB["PostgreSQL Threat DB"] Checker --> Heuristics["Heuristic Analyzer"] Checker --> Infra["Infrastructure Scanner"] Infra --> DNS["DNS Scan"] Infra --> SSL["SSL/TLS Check"] Infra --> HTTP["HTTP Content Scan"] Infra --> WHOIS["WHOIS Analysis"] Fetchers["Threat Feed Fetchers"] --> DB Checker --> Score["Risk Scoring"] Score --> API ``` ## 智能 Pipeline 1. **白名单检查** — 受信任的域名会立即返回。 2. **Redis 缓存** — 快速解决重复检查。 3. **数据库查询** — 根据存储的威胁源检查 URL 哈希。 4. **启发式分析** — 分析可疑的 URL 结构。 5. **基础设施扫描** — 检查 DNS、SSL、WHOIS 和 HTTP 信号。 6. **风险评分** — 将信号标准化为最终判定。 ## 技术栈 * Go * Fiber * PostgreSQL * Redis * Docker * pgx * MaxMind GeoLite2 * 公开威胁情报源 ## 项目结构 ``` cmd/ └── api/ # API entrypoint config/ # App configuration internal/ ├── app/ # Server and background workers ├── domain/ # Domain models ├── repository/ # PostgreSQL repositories ├── service/ │ ├── analyzer/ # Heuristic analysis │ ├── cache/ # Redis cache │ ├── fetcher/ # Threat feed fetchers │ ├── infra/ # DNS / SSL / HTTP scanner │ ├── whois/ # WHOIS analysis │ ├── checker.go # Main checking logic │ └── whitelist.go └── transport/ └── rest/ # HTTP handlers ``` ## 快速开始 ### 前置条件 * Docker * Docker Compose * MaxMind GeoLite2 City 数据库 * MaxMind GeoLite2 ASN 数据库 ### 克隆 ``` git clone https://github.com/cobrich/scam-checker-api.git cd scam-checker-api ``` ### GeoIP 数据库 从 MaxMind 下载: * `GeoLite2-City.mmdb` * `GeoLite2-ASN.mmdb` 将这两个文件放在项目根目录下。 ### 环境 ``` APP_PORT=:8080 DATABASE_URL=postgres://user:password@db:5432/scam_db REDIS_URL=redis://redis:6379/0 RUN_FETCHERS=true ``` ### 运行 ``` docker compose up -d --build ``` API 将在以下地址可用: ``` http://localhost:8080 ``` ## API ### 检查 URL ``` GET /api/check?url=http://secure-login-apple.com&full=true ``` | 参数 | 类型 | 描述 | | --------- | ------- | --------------------------- | | url | string | 要分析的 URL | | full | boolean | 启用基础设施扫描 | ### 响应示例 ``` { "target": "http://secure-login-apple.com", "verdict": "Dangerous", "risk_score": 100, "reason": "Suspicious Activity Detected", "signals": [ "Typosquatting", "Brand Injection", "No HTTPS" ], "infrastructure": { "status": "Online", "ip": "1.2.3.4" } } ``` ### 健康检查 ``` GET /health ``` ``` { "status": "ok" } ``` ## 工程亮点 * 并发 URL 分析 pipeline * 基于 Redis 的重复查询缓存 * 针对威胁源的 PostgreSQL 批量插入 * 智能评分系统 * 防误报逻辑 * 基础设施扫描 * Dockerized 本地环境 * 模块化的 Go 项目结构 ## 路线图 * [x] 威胁源聚合 * [x] URL 风险评分 * [x] Redis 缓存 * [x] PostgreSQL 持久化 * [x] DNS / SSL / HTTP 扫描 * [x] Docker Compose 设置 * [ ] API 认证 * [ ] 管理后台面板 * [ ] Prometheus 指标 * [ ] 后台源更新调度器 * [ ] 公开 API 文档 * [ ] 速率限制 * [ ] CI/CD pipeline ## 经验总结 构建 Scam Checker API 帮助我提升了: * Go 后端架构 * 威胁情报数据处理 * 并发网络扫描 * PostgreSQL 优化 * Redis 缓存 * 基于 Docker 的开发 * REST API 设计 * 专注于安全的后端开发 ## 许可证 该项目基于 MIT 许可证授权。 ## 作者 Bekzat Tursun GitHub: https://github.com/cobrich
标签:EVTX分析, Go, GraphQL安全矩阵, PostgreSQL, Redis, Ruby工具, Syscall, Web开发, 威胁情报, 安全扫描器, 开发者工具, 搜索引擎查询, 日志审计, 测试用例, 请求拦截, 钓鱼检测