Ankur11112006/cotter-backend

GitHub: Ankur11112006/cotter-backend

COTTER Engine 是一个基于 FastAPI 的欺诈检测后端,通过多维度信号分析对 APK、URL 和短信进行风险评分并提供可解释的安全判定与自动化上报。

Stars: 0 | Forks: 0

# COTTER Engine — 后端 从提案中提取的单一 "COTTER Engine":一个供每个客户端 (Android 应用、安装守门员、WhatsApp 机器人、仪表盘)调用的 FastAPI 服务。它负责接收原始 产物(APK / URL / SMS),对其进行 0–100 的评分并提供解释,存储群体 情报,并将确认的威胁上报给印度当局。 ## 运行 ``` cd backend pip install -r requirements.txt cp .env.example .env # fill in API keys (optional — degrades gracefully) uvicorn app.main:app --reload # 针对真实 APK 离线验证 core engine: python demo_scan.py path/to/app.apk path/to/suspect.apk ``` ## 架构 / 数据流 ``` Android app / WhatsApp bot / Dashboard / Install-Gatekeeper │ HTTPS ▼ ┌─────────────────── FastAPI (app/main.py) ───────────────────┐ │ /gate/apk /scan/apk /scan/url /scan/sms /report │ └───────┬───────────────┬───────────────┬───────────────┬───────┘ ▼ ▼ ▼ ▼ apk_analyzer url_scorer sms_classifier reporting (androguard) (lexical+ (rules + MuRIL) (CERT-In email, cert/perm RDAP/GSB/VT) Chakshu, GSB) \______________ enrich ______________/ │ ▼ Threat DB (app/db.py) crowd counter · broadcast trigger · retrain data ``` ### 评分逻辑(在每个引擎中相同) `score = Σ weighted_signals`,限制在 0–100 之间,并映射到 `SAFE / SUSPICIOUS / DANGER`。每个信号都会返回一个 `Reason(code, points, message, severity)`,以便 UI 能够解释*为什么*——没有黑盒。离线信号(证书检查、权限 权重、URL 词法层、SMS 规则)始终运行;网络信号(VirusTotal、 Safe Browsing、RDAP)仅用于*锐化*判定结果,因此该服务永远不会硬性依赖于 外部 API。 ### 决定性信号 — 证书身份 如果没有所有者的私钥,应用的签名证书 SHA-256 是无法伪造的。 `app/data/official_apps.py` 包含了真实的 YONO 指纹 (`435776…`,从真实的 APK 中提取)。逻辑如下: - 包名是官方的 **且** 证书匹配 → **VERIFIED SAFE (0)** - 包名是官方的 **但** 证书不同 → **CERT_MISMATCH (100)** - 名称声称是该品牌但包名是外部的 → **BRAND_IMPERSONATION (+60)** ## 集成 (`app/integrations/`) | 模块 | 渠道 | 现实情况 | |---|---|---| | `virustotal.py` | VT v3 文件/URL 信誉 | 真实 API,免费层级,带缓存 | | `safebrowsing.py` | Google Safe Browsing v4 查询 | 真实 API,免费密钥 | | `rdap.py` | 通过 RDAP 获取域名年龄 | 真实,无需密钥 | | `reporting.py` → CERT-In | 事件邮件 | **真实,完全自动化** (SMTP) | | `reporting.py` → Chakshu | Sanchar Saathi 欺诈报告 | **辅助** — 无公开 API;我们构建精确的 payload + 引导式 OTP 提交 | | `reporting.py` → Safe Browsing 报告 | 钓鱼 URL 提交 | 辅助(报告表单 / Web Risk) | ## 端点 - `POST /gate/apk` → `{action: ALLOW|WARN|BLOCK, score, verdict}` — 安装守门员契约 - `POST /scan/apk` → 完整的 APK 判定 - `POST /scan/url` → `{url}` 判定 - `POST /scan/sms` → `{text, sender}` 判定 - `POST /report` → 存储 + 群众计数 + (确认后)上报 - `GET /threats/{kind}/{indicator}` → 群众情报查询
标签:AV绕过, FastAPI, Python, URL扫描, 云安全监控, 反欺诈检测, 威胁情报, 开发者工具, 无后门, 短信分类, 逆向工具, 静态分析