SandeMK/scamshield

GitHub: SandeMK/scamshield

ScamShield 是一个面向南非 SMS 钓鱼检测的云驱动移动威胁情报网络,结合规则与 ML 混合引擎实时评分并在用户间共享诈骗指标。

Stars: 1 | Forks: 0

# ScamShield **移动优先、云驱动的威胁情报网络,用于检测南非的 SMS 钓鱼诈骗活动** 南非近期出现了大量激增的 SMS 钓鱼诈骗,这些消息通常会伪装成银行、 SARS 或快递服务。ScamShield 可以近乎实时地检测可疑的 SMS 消息及 其内嵌的 URL,为其分配一个可解释的 0–100 风险评分,并附带至少三个 原因代码,同时通过云威胁情报网络在所有用户之间共享最新发现的诈骗指标。 ## 架构 ``` ┌─────────────────┐ REST ┌──────────────────────┐ │ Android App │──────────▶│ Cloud Scoring API │ │ (SMS listener, │◀──────────│ (FastAPI) │ │ local rules, │ score + │ rules + ML hybrid │ │ dashboard) │ reasons └──────┬───────────────┘ └─────────────────┘ │ │ report scams ▼ ▼ ┌──────────────────────┐ ┌─────────────────┐ │ Threat Intel DB │ │ Mock Fintech │─────────▶│ (Supabase/Postgres, │ │ API Client │ REST │ hashed indicators) │ └─────────────────┘ └──────▲───────────────┘ │ daily ingestion ┌──────────────┴───────┐ │ Public feeds: │ │ URLhaus, OpenPhish │ └──────────────────────┘ ``` ## 仓库结构 → 提案交付件 | 文件夹 | 交付件(提案 §) | 状态 | |---|---|---| | [`ml/`](ml/) | 混合检测引擎 — 规则 + ML(§3.2.2 核心) | ✅ 完成 — F1 0.956 | | [`api/`](api/) | 云威胁评分 API(§3.2.2) | ✅ 完成 — 延迟约 3 ms | | [`ingestion/`](ingestion/) | 公共威胁情报集成(§3.2.4)+ 共享 DB schema(§3.2.3) | ✅ 完成 — 每日自动摄入 | | [`mobile-app/`](mobile-app/) | Flutter 移动应用程序(§3.2.1, FR-01..FR-10)+ 应用内分析仪表板(§3.2.5) | ✅ 源码完成 — 通过 `mobile-app/setup.sh` 构建 | | [`fintech-client/`](fintech-client/) | 模拟 Fintech API 客户端(§3.2.6) | 🔜 计划中 | ## 目前的关键结果 | 成功标准 | 目标 | 达成情况 | |---|---|---| | 诈骗检测 F1-score | ≥ 0.85 | **0.942** 留出集;模型选择 §14.5:LogReg 0.941 > RF 0.923 > GB 0.915(5 折 CV) | | 带标签数据集大小 | ≥ 500 | 5,572 (UCI SMS Spam Collection) | | 解释原因代码 | 每个结果 ≥ 3 个 | 设计保证 | | 评分响应时间 | < 2 秒 | 本地约 3 ms (p50 1.1 ms) | ## 快速开始(ML 组件) ``` git clone https://github.com/SandeMK/scamshield.git cd scamshield/ml pip install -r requirements.txt python train.py # auto-downloads dataset, trains, evaluates, saves model python score.py # demo on realistic SA smishing samples ``` ## 数据库说明(设计偏差) 作业 2 指定使用 Cloud Firestore;实现时采用了 Supabase (PostgreSQL)。理由:指标负载是关系型的(唯一的 hash+type upsert 操作伴随 `hit_count` 递增,并通过单个 SQL 函数进行信誉合并),行级安全将表锁定为仅限服务密钥访问,且免费层级无需绑定计费账户。文档中的设计 -- 集合、字段、SHA-256 哈希、首次/最后一次出现的元数据 -- 与 `ingestion/schema.sql` 中的 SQL schema 完全一一对应。 ## 技术栈 Python 3.11 · scikit-learn · FastAPI · Supabase (PostgreSQL) · Flutter (Dart) · URLhaus & OpenPhish feeds · GitHub Actions CI ## License MIT — 见 [LICENSE](LICENSE)。
标签:Android, Apex, AV绕过, DSL, FastAPI, Supabase, 反网络钓鱼, 威胁情报, 开发者工具, 机器学习, 测试用例, 移动应用, 逆向工具