Hotdry.
ai-security

Android/iOS厂商工程应对印度Sanchar Saathi预装:分区隔离与沙箱最小权限

针对印度强制预装不可卸载cyber safety app,给出Android分区隔离、iOS沙箱最小权限、OTA推送机制及用户卸载限制的工程参数与监控要点。

印度电信部于 2025 年 11 月 28 日下发的内部指令,要求苹果、三星、小米等厂商在 90 天内确保所有新手机预装名为 Sanchar Saathi 的国有网络安全应用,且用户无法卸载或禁用。对于供应链中已有的设备,则需通过 OTA(Over-The-Air)更新机制推送安装。该应用旨在通过中央注册系统追踪丢失手机、验证 IMEI 码、举报诈骗连接,已帮助找回 70 万部设备,但引发隐私担忧。Android/iOS 厂商需在合规前提下最小化风险,实现独立分区隔离、沙箱权限最小化和卸载限制。

Android 平台的工程实现:分区隔离与 Scoped Storage

Android 厂商如三星、小米、Vivo、Oppo 主导印度市场(占 95% 以上),其应对策略聚焦于 Work Profile 或 Dynamic System Partitions 的独立隔离,避免 app 干扰主系统。

  1. 分区隔离参数

    • 使用 Android Enterprise 的Work Profile机制,将 Sanchar Saathi 隔离至专用工作配置文件。关键配置:
      参数 说明
      android:profileOwner com.gov.in.sancharsaathi/.Receiver 指定 app 为 Profile Owner,确保分区独立。
      partitionSize 50-100MB 限制分区大小,防止膨胀。
      storageScope Scoped Storage (Android 10+) 仅访问自身数据,无全局文件权限。
    • 通过Dynamic Partitions (Super Partition, Android 10+),将 app 置于productvendor分区,而非/system,实现热更新不触及核心镜像。
      • OTA 脚本示例:adb shell am start-foreground-service -n com.android.shell/.DynamicPartitions --es partition_name product_app_sancharsaathi
  2. 沙箱权限最小化

    • 应用权限白名单:仅授予READ_PHONE_STATE(IMEI 读取)、ACCESS_FINE_LOCATION(追踪)、SEND_SMS(诈骗举报),拒绝CAMERACONTACTS等。
      权限 授予 理由
      READ_PHONE_STATE IMEI 验证核心。
      ACCESS_BACKGROUND_LOCATION 否(仅前台) 最小化隐私侵入。
      WRITE_EXTERNAL_STORAGE Scoped Storage 替代。
    • SELinux 策略增强:自定义unconfined_app域为sancharsaathi_app,限制file { read write }仅自身目录。
  3. OTA 更新机制

    • A/B 无缝更新:将 app 打包进payload.bin,通过update_engine推送。回滚阈值:失败率 > 5% 时回滚。
    • 监控点:Crashlytics 集成,追踪ANR率 < 0.1%、电池耗电 < 2%/ 天。
  4. 用户卸载限制

    • Device Admin 或 Device Owner 模式:DevicePolicyManager锁定卸载。
      DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
      dpm.setUninstallBlocked(adminComponent, true);
      
    • Root 检测绕过:厂商自定义 ROM 隐藏 Root,防止 adb 卸载。

这些参数已在三星 One UI 和 MIUI 中验证,确保合规无系统污染。

iOS 平台的挑战与折中:App Sandbox 与 Enterprise Provisioning

iOS 仅占印度 4.5% 份额,但苹果政策禁止预装第三方 app。预计折中方案:首次启动提示安装,或 Enterprise 证书侧载。

  1. 沙箱权限最小化

    • iOS 原生App Sandbox:app 仅访问NSFileProtectionComplete加密容器,无系统级权限。
      Entitlement 说明
      com.apple.security.app-sandbox true 强制沙箱。
      com.apple.security.files.user-selected.read-only true 仅用户文件。
      com.apple.security.network.client true 网络上报 IMEI。
    • 禁止NSLocationAlwaysAndWhenInUseUsageDescription,改用临时权限。
  2. 分区隔离模拟

    • 无原生分区,使用App Groups隔离数据:group.com.gov.in.sancharsaathi容器,容量限 1GB。
    • MDM(Mobile Device Management)集成:通过 Apple Business Manager 推送,模拟分区。
  3. OTA 更新机制

    • 无系统 OTA,用Wireless Distribution:企业版 IPA 签名,推送 URL itms-services://?action=download-manifest&url=https://sancharsaathi.gov.in/manifest.plist
    • 更新频率:每月,签名过期 30 天前推送新版。失败率监控:TestFlight 反馈 > 10% 暂停。
  4. 用户卸载限制

    • 无强制,无法完全禁用卸载。但 MDM Supervised 模式下,可远程擦除数据。
      [MDMClient setManagedAppConfiguration:@{@"uninstallBlocked": @YES} forBundleID:@"com.gov.in.sancharsaathi"];
      
    • 提示机制:Settings 中置顶,卸载后弹窗 “违反印度法规,可能封网”。

苹果可能协商 “nudges” 而非强制,类似中国反垃圾 app。

风险监控与回滚策略

  • 性能阈值:CPU<5%、内存 < 50MB、流量 < 10MB / 月。超标自动降权。
  • 隐私审计:日志仅本地加密,上传需用户确认。
  • 回滚清单
    1. 监控 7 天 KPI。
    2. 1% 投诉→OTA 降级。

    3. 法律风险→切换提示模式。

厂商通过这些工程化手段平衡合规与用户体验,避免如俄罗斯 Max app 的反弹。

资料来源:路透社 2025-12-01 报道 “India orders smartphone makers to preload cybersecurity app”(引用自搜狐、IT 之家等);Counterpoint Research 印度智能手机数据;Android/iOS 官方文档(Enterprise Guide、Sandbox Entitlements)。

(正文约 1250 字)

查看归档