🏛️ 白宫官方App深度逆向分析
security
privacy
government
react-native
gps-tracking
onesignal
⚠️ 严重安全与隐私问题: 这是一个美国政府官方App的安全与隐私审计。
📱 技术架构
- 框架: React Native + Expo SDK 54 + Hermes JavaScript引擎
- 后端: WordPress REST API (whitehouse.gov)
- 构建方: "forty-five-press"
- 代码量: 5.5 MB Hermes字节码bundle
🔍 核心发现
1. GPS追踪管道(已编译就绪)
- OneSignal SDK原生位置追踪代码完整编译进APK
- 前台: 每4.5分钟获取一次GPS位置
- 后台: 每9.5分钟获取一次GPS位置
- 追踪数据: 纬度、经度、精度、时间戳、前台/后台状态、GPS/网络定位
- 所有数据同步到OneSignal服务器
- 完整的背景服务,持续追踪即使App未激活
注意: 追踪不是无条件激活,需要三个条件:1) JS层调用setLocationShared(true) 2) 用户授予位置权限 3) 设备有位置提供者。但整个追踪基础设施已完整编译,JS API已就绪,随时可激活。"withNoLocation" Expo插件显然没有剥离任何东西。
2. WebView JavaScript注入 - 去除 Consent 弹窗
- App的WebView每次加载页面都会注入JavaScript代码
- 强制隐藏: Cookie横幅、GDPR同意框、OneTrust弹窗、隐私横幅、登录墙、注册墙、增值提示、付费墙、CMP对话框
- 强制 body { overflow: auto !important } 恢复被同意对话框锁定的滚动
- 使用MutationObserver持续清除动态添加的同意元素
🗳️ 一个美国政府官方App正在向第三方网站注入CSS和JavaScript,以剥离cookie同意对话框、GDPR横幅、登录墙和付费墙。
3. 第三方JavaScript加载 - 安全风险
- YouTube嵌入: 从随机人员GitHub Pages (lonelycpp.github.io) 加载播放器HTML。如果该账户被攻破,攻击者可以向每个App用户发送任意HTML和JavaScript,在WebView上下文中执行。
- 社交媒体Widget: 从Elfsight (商业SaaS) 加载JavaScript,无沙箱隔离
- 第三方服务: Mailchimp、Uploadcare CDN、Truth Social、Facebook插件
4. OneSignal数据收集
- addTag - 用户分群
- addSms - 关联电话号码
- addAliases - 跨设备用户识别
- addOutcomeWithValue - 跟踪用户行为和转化
- 通知点击跟踪
- 应用内消息生命周期跟踪
- 用户状态变化跟踪
- 位置共享设置
- 隐私同意设置
5. 开发遗留问题
- localhost URL泄露到生产Hermes bundle
- 开发者本地IP硬编码在字符串资源中
- Expo开发客户端编译进发布构建
- 开发专用Compose PreviewActivity导出到Manifest
📊 包含的68+第三方库
- 框架: React Native, Expo SDK 54, Hermes JS引擎
- 推送: OneSignal, Firebase Cloud Messaging
- 分析: Firebase Analytics, Google Data Transport, OpenTelemetry
- 网络: OkHttp 3, Apollo GraphQL
- 图像: Fresco, Glide, Coil 3, Uploadcare CDN
- 视频: ExoPlayer (Media3), Expo Video
- ML: Google ML Kit Vision (条形码扫描)
- 存储: Expo Secure Store, React Native Async Storage
🔐 SSL安全
App使用标准Android TrustManager进行SSL,无自定义证书固定。如果位于被攻击的CA网络(企业代理、有MITM的公共WiFi等),App与其后端之间的流量可以被拦截和读取。
📋 结论
这个美国政府官方Android App存在严重的安全和隐私问题。它不仅追踪用户位置,还注入JavaScript去除网站的隐私保护机制,并从不受控的第三方来源加载代码。这是一个技术债务和安全风险的教科书级案例。
← 返回首页