ehansih/android-vuln-scanner

GitHub: ehansih/android-vuln-scanner

Android 设备本地安全扫描应用,检测设备安全配置、应用 CVE 风险、网络安全设置并关联真实攻击活动,提供风险评分和修复建议。

Stars: 0 | Forks: 0

# VulnScanner — Android 设备漏洞扫描器 **最新版本:** [v1.3.0](https://github.com/ehansih/android-vuln-scanner/releases/latest) · Android 8.0+ · Kotlin · Jetpack Compose · Material 3 ## 截图 ``` ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ DASHBOARD │ │ DEVICE SECURITY │ │ ┌───────────────────────┐ │ │ ┌───────────────────────┐ │ │ │ Overall Risk: HIGH │ │ │ │ ✅ Screen Lock │ │ │ │ Score: 62/100 │ │ │ │ ✅ Storage Encrypted │ │ │ │ ████████░░ 62% │ │ │ │ ❌ Developer Mode ON │ │ │ └───────────────────────┘ │ │ │ ❌ USB Debugging ON │ │ │ │ │ │ ✅ Biometric Enrolled │ │ │ Apps Scanned: 47 │ │ │ ⚠️ Patch: 6 mo old │ │ │ Risky Apps: 8 │ │ └───────────────────────┘ │ │ Critical CVEs: 2 │ │ OS CVEs Found: 15 │ │ High CVEs: 9 │ │ Device Score: 62/100 │ │ │ │ │ │ [START FULL SCAN] │ │ [SEE ALL FINDINGS] │ └─────────────────────────────┘ └─────────────────────────────┘ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ APP CVE SCANNER │ │ ATTACK INTELLIGENCE │ │ ┌───────────────────────┐ │ │ ┌───────────────────────┐ │ │ │ Chrome CVSS 8.8 🔴 │ │ │ │ FluBot Campaign │ │ │ │ CVE-2024-xxxx HIGH │ │ │ │ Matched: 3 findings │ │ │ │ │ │ │ │ Financial Impact: $1B │ │ │ │ WhatsApp CVSS 6.5 🟡 │ │ │ ├───────────────────────┤ │ │ │ CVE-2023-xxxx MED │ │ │ │ Pegasus Spyware │ │ │ │ │ │ │ │ Matched: 1 finding │ │ │ │ Telegram CVSS 0.0 🟢 │ │ │ │ Indicators found │ │ │ │ No CVEs found │ │ │ └───────────────────────┘ │ │ └───────────────────────┘ │ │ Total Exposure: ~$1.2B │ └─────────────────────────────┘ └─────────────────────────────┘ ┌─────────────────────────────┐ ┌─────────────────────────────┐ │ NETWORK SECURITY │ │ DEBUG LOGS │ │ ┌───────────────────────┐ │ │ ┌───────────────────────┐ │ │ │ SSID: MyHomeWiFi │ │ │ │ [I] Scan started │ │ │ │ Encryption: WPA2 ✅ │ │ │ │ [I] Device scan OK │ │ │ │ VPN: Active ✅ │ │ │ │ [W] NVD rate limit │ │ │ │ Proxy: None ✅ │ │ │ │ [I] App 12/47: Chrome │ │ │ │ TLS: 1.3 ✅ │ │ │ │ [I] CVE found: 8.8 │ │ │ └───────────────────────┘ │ │ │ [I] Scan complete │ │ │ No critical findings │ │ └───────────────────────┘ │ │ │ │ [COPY LOGS] [SHARE] │ └─────────────────────────────┘ └─────────────────────────────┘ ``` ## 功能 | 模块 | 检查内容 | |--------|---------------| | **设备安全** | Root 状态、开发者模式、USB 调试、屏幕锁定、存储加密、生物识别、Play Protect、安全补丁时效 | | **已安装应用** | 对所有应用进行 NVD CVE 数据库扫描、危险权限授予、侧载/未知来源应用 | | **系统漏洞** | 根据 NVD 已知 CVE 匹配 Android 版本 | | **网络安全** | WiFi 加密类型(WEP/WPA/WPA2/WPA3/Open)、VPN 状态、代理配置 | | **攻击情报** | 真实移动攻击活动(FluBot、Pegasus、Cerberus 等)与扫描结果关联,包含已记录的财务和数据泄露影响 | | **恶意软件行为** | 无障碍服务滥用、设备管理员劫持、悬浮窗权限滥用、隐藏应用(无启动器图标) | | **泄露监控** | 通过 HaveIBeenPwned API v3 检查邮箱泄露(需要 HIBP 密钥) | | **VirusTotal** | APK SHA-256 哈希值通过 VT 引擎检查(需要 VT 密钥) | | **SIM 安全** | SIM 锁定状态、运营商锁定状态 | | **蓝牙** | 配对设备审计、可发现模式检查 | | **调试日志** | 应用内实时日志查看器 — 按级别筛选、复制或分享以获取支持 | ## 颜色编码 | 颜色 | 含义 | |--------|---------| | 🟢 绿色 | 安全 / 无问题 | | 🟡 黄色 | 中等风险 | | 🟠 橙色 | 高风险 | | 🔴 红色 | 严重 — 需要立即处理 | 每项发现都包含 **"如何修复"** 部分,提供具体的设置菜单步骤。 ## NVD 连接验证 ``` === NVD API Dry Run Test === Endpoint: https://services.nvd.nist.gov/rest/json/cves/2.0 Test 1 — Unauthenticated ping: Status: OK Total CVEs in NVD database: 342,458 Timestamp: 2026-04-06T08:36:11.182Z Test 2 — Authenticated lookup (Android 14 CVEs): Status: OK | Rate limit: 50 req/30s (authenticated) Total results for "android 14": 122 CVEs CVE-2014-0537 CVSS 7.5 2014-07-09 CVE-2014-0539 CVSS 7.5 2014-07-09 CVE-2014-4671 CVSS 4.3 2014-07-09 Test 3 — App keyword scan (WhatsApp): Status: OK Total WhatsApp CVEs: 63 CVE-2015-1157 CVSS 7.8 2015-05-28 CVE-2017-8769 CVSS 4.6 2017-05-18 CVE-2018-11632 CVSS 6.5 2018-05-31 Test 4 — Rate limit burst (5 rapid requests): req1: HTTP 200 req2: HTTP 200 req3: HTTP 200 req4: HTTP 200 req5: HTTP 200 5 requests in ~6230ms — avg 1246ms/req (no 429s hit) Conclusion: NVD fully reachable. Authenticated key active. Rate limit: 50 req/30s | 9x faster than unauthenticated. ``` **速率限制:** | 模式 | 请求数 | 时间窗口 | 每个应用耗时 | |------|----------|--------|-------------| | 无 API 密钥 | 5 请求 | 30秒 | ~6,200毫秒 | | 有 API 密钥 | 50 请求 | 30秒 | ~700毫秒 | ## 模拟扫描结果 ``` === Full Scan Started === [Device & Network — parallel scan] Root check: PASS (not rooted) Developer mode: WARN (enabled) USB debugging: WARN (enabled) Screen lock: PASS (PIN set) Encryption: PASS (active) Biometric: PASS (fingerprint enrolled) Play Protect: PASS (enabled) Security patch: WARN (8 months old → HIGH) OS CVEs (android 14): 15 found (2 CRITICAL, 4 HIGH) Network SSID: HomeWiFi (WPA2) VPN: not active → LOW Device score: 62/100 [App Scan — 47 user/updated apps] Scanning [ 1/47]: Google Chrome CVE found (CVSS 8.8 HIGH) Scanning [ 2/47]: WhatsApp CVE found (CVSS 6.5 MEDIUM) Scanning [ 3/47]: Telegram No CVEs Scanning [ 4/47]: Instagram CVE found (CVSS 7.5 HIGH) ... Scanning [47/47]: Calculator No CVEs NVD rate-limited (429) → backed off 2s → resumed Risky apps: 8 / 47 Critical CVEs: 2 | High CVEs: 9 [Attack Intelligence] FluBot campaign matched (3 findings) — $1B+ financial exposure Pegasus indicators: 1 (developer mode active) Cerberus: 0 matches [Risk Summary] Overall Risk: HIGH Device Score: 62/100 CVE Network: OK (NVD reachable) Scan duration: ~42s (with API key) === Scan Complete === ``` ## 安全审计 ### 已修复问题 | # | 严重程度 | 位置 | 问题 | 修复方案 | |---|----------|----------|-------|-------------| | 1 | **严重** | `app/build.gradle.kts` | NVD API 密钥硬编码在版本控制文件中 — 在公开 GitHub 上暴露 | 移至 `local.properties`(已加入 gitignore)。密钥通过 `localProperties.getProperty()` 在构建时读取 | | 2 | **中等** | `AndroidManifest.xml` | `android:allowBackup="true"` — 允许通过 ADB 备份安全扫描器应用的数据 | 改为 `android:allowBackup="false"` | | 3 | **低** | `RetrofitClient.kt` | `HttpLoggingInterceptor.Level.BASIC` 应用于所有构建类型 — 在发布版本中泄露 API 请求 URL 和标头到 logcat | 改为仅在调试版本中使用 `BASIC`,发布版本中使用 `NONE` | ### 确认安全 | 检查项 | 状态 | 备注 | |-------|--------|-------| | 明文流量 | ✅ 已阻止 | `android:usesCleartextTraffic="false"` + `network_security_config.xml` 中 `cleartextTrafficPermitted="false"` | | 证书固定 | ✅ 仅系统锚点 | 不信任用户 CA — 阻止通过安装的代理证书进行 MITM 攻击 | | TLS 版本 | ✅ TLS 1.3 | Android 10+ 默认值;OkHttp 强制使用现代加密套件 | | 源代码中的 API 密钥 | ✅ 已移除 | NVD 密钥现位于 `local.properties`(已加入 gitignore)。HIBP/VT 密钥存储在 `SharedPreferences`(设备本地) | | SharedPreferences 作用域 | ✅ 私有 | `Context.MODE_PRIVATE` — 不对世界可读 | | SQL 注入 | ✅ 安全 | Room ORM 使用参数化查询;无原始 SQL | | 输入验证 | ✅ 已存在 | 在 HIBP 调用前验证邮箱;在 VT 调用前验证哈希长度 | | 发布版本中的日志 | ✅ 已修复 | HTTP 日志在发布版本中现为 `NONE` | | 权限 | ✅ 最小化 | 所有声明的权限都有文档说明的用途;无过度授权 | | Root 检测绕过风险 | ✅ 已标注 | Root 检测是尽力而为(文件 + `su` 执行);Magisk Hide 可绕过。应用不会仅根据 Root 状态做出安全决策。 | | ProGuard/R8 | ✅ 已启用 | 发布版本中 `isMinifyEnabled = true`;代码压缩和混淆已激活 | | 数据备份 | ✅ 已修复 | `allowBackup="false"` 防止通过 ADB/云提取扫描数据 | ### 后续说明 - NVD API 密钥在此次修复之前存在于 git 历史中。如果您在 v1.3.1 之前 fork 了项目,**请生成新密钥** https://nvd.nist.gov/developers/request-an-api-key — 密钥是免费的。 - Root 检测是基于启发式的;高级 Root 隐藏工具(Magisk Delta、Zygisk)可能会绕过它。这是 Android 的已知限制 — 没有应用层修复方案,除非使用 Play Integrity API。 ## 安装(侧载 APK) ### 要求 - Android 8.0+(API 26+) - 互联网连接(用于 CVE 查询) ### 步骤 1. **下载 APK** — 从 [GitHub Releases]( │ │ ├── AppScanner.kt # Installed app + CVE lookup + rate-limit backoff │ │ ├── DeviceSecurityScanner.kt # OS/device checks + OS CVE lookup │ │ ├── NetworkScanner.kt # WiFi/VPN/proxy checks │ │ ├── AttackIntelligenceEngine.kt # Maps findings → real-world attack campaigns │ │ ├── MalwareBehaviorScanner.kt # Accessibility/admin/overlay/hidden app scan │ │ ├── BreachMonitorClient.kt # HIBP email check + VT APK hash check │ │ ├── BluetoothSecurityScanner.kt # Bluetooth paired device audit │ │ ├── PermissionUsageScanner.kt # Permission usage history (AppOps) │ │ ├── SimSecurityScanner.kt # SIM lock / carrier lock status │ │ └── MdmDetectionScanner.kt # MDM/EMM profile detection │ ├── ui/ │ │ ├── screens/ # Compose screens (Home, Device, Apps, Network, │ │ │ # Threats, Logs, Malware, MDM, Breach, Perms) │ │ ├── components/SeverityBadge.kt # Colour-coded severity indicator │ │ └── theme/Theme.kt # Dark theme + severity colour palette │ └── viewmodel/ScanViewModel.kt # StateFlow → UI, scan lifecycle management ``` **技术栈:** Kotlin · Jetpack Compose · MVVM · Room · Retrofit · OkHttp · Coroutines · Material 3 ## 版本发布 | 版本 | 亮点 | |---------|-----------| | **v1.3.0** | **NVD API 密钥已激活** — 扫描延迟从每应用 6200毫秒降至 700毫秒(提速 9 倍)。47 个应用约 42 秒扫描完成。安全修复:API 密钥移至 `local.properties`。 | | v1.2.0 | 并行设备和网络扫描、系统应用从 CVE 扫描中过滤、NVD 速率限制修正 | | v1.0.4 | **攻击情报仪表盘** — FluBot、PegasusCerberus 与发现结果关联。NVD 429 指数退避 | | v1.0.3 | 包名清理 | | v1.0.2 | 应用内调试日志屏幕、每个应用的实时扫描进度 | | v1.0.1 | 修复:扫描启动时的生物识别权限崩溃 | | v1.0.0 | 初始发布 | ## 许可证 仅供个人和内部安全使用。CVE 数据来源于 [NVD (NIST)](https://nvd.nist.gov/),属于公共领域。
标签:AMSI绕过, Android, Android安全, Claude, CVE检测, DSL, GitHub Advanced Security, Jetpack Compose, Kotlin, Material 3, URL发现, 威胁检测, 安全加固, 安全检测, 安全评分, 弱配置检测, 目录枚举, 移动安全, 网络安全, 设备安全, 隐私保护