BotGuard-Android
已验证方法论驱动的开发流程
v1.0 · 2026-07-14
📋方法论基础
NIST SP 800-86 → 数据采集按易失性优先
MITRE ATT&CK Mobile → 13项技术映射
多维度框架 v2.0 → 4类10维度+3方法
8专家联合评审 → P0×3 / P1×4 / P2×4
Android安全最佳实践 → 2025-2026行业标准
📊项目概况
开发语言Kotlin 1.9+ / Compose
最低版本Android 8.0 (API 26)
目标版本Android 14 (API 34)
APK 大小<15MB
内存占用<100MB
扫描时长<2 分钟
🚀开发阶段总览
Phase 0:工程基建
3-5 天 · 搭骨架定规范
→ 可编译空壳 App + 核心接口
Phase 1:MVP 核心检测
2-3 周 · 4 模块可运行
→ A2+A3+A5+A6 + 简版报告
Phase 2:情报增强
2-3 周 · API+IoC+网络/文件审计
→ VT API + 4家族IoC + 详版报告
Phase 3:深度检测
2-3 周 · ATT&CK+Beaconing+Root
→ 攻击链 + 定时扫描 + ADB模式
Phase 4:发布准备
1-2 周 · 加固+测试+发布
→ 签名APK + 全量测试 + GitHub
🔧开源对标项目
HypatiaClamAV签名 · 极低资源
SentinelAppVT API · Material 3 UI
SG360联邦学习 · TFLite端侧
SCAMYNX多模块架构 · PDF报告
LibreAVML推理 · 零网络流量
✅P0 改进落实
P0-1 MVP验收标准→ Phase 1 定义
P0-2 用户报告结构→ 简版+详版双报告
P0-3 判定阈值→ 每项有明确逻辑
Phase 0 + 1
工程基建 + MVP 核心检测
▶ Phase 0:工程基建(3-5天)
任务清单
项目初始化(Kotlin 1.9+, Compose, Hilt, Room)
多模块架构搭建(app/core/feature/modules/data)
核心接口定义(ScanModule/Finding/RiskLevel)
基础 UI 骨架(3导航页 + Material 3)
验收标准
编译assembleDebug 成功
静态分析detekt 零 error
UI 骨架3 页可切换
🎯Phase 1 MVP 验收标准
核心模块A2+A3+A5+A6 可运行
扫描时长<2 分钟
风险评级4级(🔴🟠🟡🟢)
输出格式UI + JSON
误报率<15%(有白名单)
离线可用✅ 全部模块
权限要求普通(无Root可用)
5️⃣A5 系统行为审计(第1步·最易失)
检测项与判定阈值
| 检测项 | 阈值 | 排除规则 |
| ADB调试 | 开启即告警 | 用户已知 |
| 无线ADB | 开启即告警 | 用户已知 |
| 开发者选项 | 开启即提示 | 用户已知 |
| 电池异常 | >10%/h 持续1h | 导航/音乐 |
| 流量异常 | >500KB/min 持续5min | 更新/同步 |
| CPU异常 | >20% 持续10min | 编译/杀毒 |
| USB调试 | 仅提示 | — |
| 未知来源安装 | 开启即提示 | 文件管理器 |
2️⃣A2 应用与进程审计(第2步)
高危权限组合(8种)
ACCESSIBILITY + INTERNET → Overlay/无障碍劫持
READ_SMS + SEND_SMS + INTERNET → SMS拦截
DEVICE_ADMIN + INTERNET → 勒索/防卸载
READ_CONTACTS + INTERNET → 通讯录窃取
CAMERA + RECORD_AUDIO + INTERNET → 间谍软件
REQUEST_INSTALL + INTERNET → 恶意安装
ACCESS_FINE_LOCATION + INTERNET → 位置追踪
BOOT_COMPLETED + WAKE_LOCK → 自启+保活
其他检测项
隐藏图标无 launcher Activity
伪装系统应用包名/图标模仿
签名异常自签名+非官方来源
动态加载DexClassLoader 使用
多进程守护3+ 进程互拉
3️⃣A3 持久化审计(第3步·12项)
| # | 检测项 | 风险 | 无Root |
| 1 | 设备管理器滥用 | 🔴 | ✅ |
| 2 | 无障碍服务滥用 | 🔴 | ✅ |
| 3 | 开机自启广播 | 🟠 | ✅ |
| 4 | 前台服务保活 | 🟠 | ADB |
| 5 | JobScheduler滥用 | 🟠 | ADB |
| 6 | AlarmManager定时 | 🟠 | Root |
| 7 | 电池优化白名单 | 🟠 | ✅ |
| 8 | 唤醒锁滥用 | 🟠 | ADB |
| 9 | 系统级持久化 | 🔴 | Root |
| 10 | tmp目录残留 | 🟠 | Root |
| 11 | 覆盖窗口权限 | 🟠 | ✅ |
| 12 | 通知监听服务 | 🟠 | ✅ |
6️⃣A6 Root与环境检测(第4步)
Root状态su/Magisk/SuperSU
/system修改系统分区可写+非标准文件
模拟器Build属性检测
调试器附加isDebuggerConnected
Xposed/LSPosed框架文件/类检测
Frida注入端口/线程检测
SELinuxgetenforce 状态
Verified Bootdm-verity 状态
📝简版报告设计(P0-2)
总体安全状态:🟢/🟡/🟠/🔴
发现问题数:N(🔴× 🟠× 🟡×)
Top 3 需关注:
1. [一句话描述] [风险等级]
2. [一句话描述] [风险等级]
3. [一句话描述] [风险等级]
建议动作:
① 立即断开网络
② 卸载 XXX 应用
③ 关闭 XXX 权限
📡Phase 2:情报增强(2-3周)
A7 威胁情报比对
VirusTotalAPI v3 · 4次/min
AbuseIPDBIP信誉查询
API Key安全EncryptedSharedPreferences
本地缓存Room · TTL 24h
离线降级本地IoC库兜底
内置家族 IoC
Kimwolf v75 C2域名 + ENS + 进程/文件/Socket
Vo1d系统分区安装特征
BTMOB无障碍劫持/多进程守护
Rafel RAT设备管理器/反卸载
A1 网络连接审计
流量统计NetworkStatsManager 按应用
IoC比对外连IP/域名 vs IoC库
DoT检测853端口(Kimwolf特征)
VPN异常分裂隧道篡改
A4 文件系统审计
tmp目录/data/local/tmp/ 扫描
下载目录/sdcard/Download/ APK检测
APK分析SHA256 + Androguard
隐藏文件.开头文件检测
验收标准
VT查询✅ 速率限制生效
误报率<10%(情报增强后)
详版报告8章结构完整
🔬Phase 3:深度检测(2-3周)
A8 ATT&CK 映射
| ATT&CK ID | 技术 | 模块 |
| T1437.001 | 开机自启 | A3 |
| T1418.001 | 设备管理器 | A3 |
| T1418.002 | 无障碍服务 | A3 |
| T1637.001 | 权限滥用 | A2 |
| T1417.002 | 覆盖窗口 | A2 |
| T1432 | 付费短信 | A5 |
| T1418.003 | 通知监听 | A3 |
| T1636.002 | 动态加载 | A2 |
| T1444 | 伪装系统应用 | A2 |
| T1481.001 | C2通信 | A1 |
| T1481.002 | DNS C2 | A1 |
| T1638.001 | 系统分区修改 | A3 |
| T1407 | 代码混淆 | A2 |
A1 Beaconing 检测
算法CV 变异系数法
阈值CV<0.3 且连接>10
采集窗口30分钟时间戳
Tor检测Kimwolf v7 备用通道
区块链C2Ethereum RPC / ENS
Root模式增强
系统分区/system/bin 非标准二进制
init.rc解析自启服务
进程枚举ps -A 全量
Socketss/netstat 枚举
定时扫描
WorkManager每日/每周定时
安装监控新应用自动扫描
告警推送高风险通知
风险模型 + 质量保证
评分引擎 · 误报控制 · 发布检查
⚖️三维风险评分模型
评分 = 严重性(1-5) × 紧迫性(1-5) × 置信度(1-5)
范围:1 ~ 125
🔴 立即响应 · 75-125 · 断网+隔离+取证
🟠 紧急处理 · 30-74 · 卸载/禁用+深扫
🛡️误报控制策略
策略1系统应用白名单(AOSP+GMS+厂商)
策略2良性权限组合白名单
策略3用户反馈闭环("这是误报"按钮)
策略4双条件命中(高风险需双条件)
策略5渐进式告警(3次发现才升级)
📋响应建议引擎
1.威胁描述发现了什么+意味着什么
2.紧急动作断网/终止/禁用
3.取证建议保留什么证据
4.清理选项手动步骤/建议重装
5.预防建议如何防止再次感染
🔒Phase 4 APK安全加固
| 加固项 | 方法 | 优先级 |
| R8混淆 | 全量混淆+压缩 | P0 |
| 签名验证 | 运行时APK签名校验 | P0 |
| 密钥安全 | EncryptedPrefs+Keystore | P0 |
| 清除日志 | BuildConfig.DEBUG守卫 | P0 |
| 组件审计 | exported组件全审查 | P0 |
| 反调试 | ptrace检测 | P1 |
| 反Frida | 端口/线程检测 | P1 |
| 完整性 | APK hash自校验 | P1 |
| 证书固定 | OkHttp CertificatePinner | P1 |
| 依赖扫描 | dependencyCheck | P1 |
🧪测试策略
单元测试JUnit5 + MockK · 覆盖率>70%
插桩测试AndroidX Test + Espresso
安全测试MobSF 静态分析
误报测试干净设备+良性应用
检出测试Kimwolf IoC 样本
性能测试Macrobenchmark
兼容测试Firebase Test Lab
渗透测试Burp Suite + 手动
✅发布检查清单
usesCleartextTraffic=false
🚪质量门禁
Phase 完成检查:
├── 验收标准全部通过?
├── 单元测试覆盖率 >70%?
├── detekt 零 error?
├── 干净设备零误报?
└── 文档已更新?
→ 任一不通过 → 不进入下一阶段