文章
技术

madaidan's insecurities - Android

solids  ·  2020年10月31日 Ñøñë

Android by default has a strong security model with full system SELinux policies, strong app sandboxing, full verified boot, modern exploit mitigations like fine-grained forward-edge Control-Flow Integrity and ShadowCallStack, widespread use of memory-safe languages (Java) and more. 本文旨在讨论人们破坏安卓安全模型的行为,而不是批评安卓本身。

解锁 BOOTLOADER

Unlocking the bootloader in Android is a massive security risk. It disables verified boot, a fundamental part of the security model. VERIFIED BOOT 确保基本系统完整,确保启动链,从而阻止恶意软件存在。如果攻击者确实获得了设备的极高权限,VERIFIED BOOT 会在重启后重置他的所有更改,并确保对设备的控制无法持续。

VERIFIED BOOT 不仅仅是人们认为的「仅确保物理安全」。 它的目的是针对远程攻击,「确保物理安全」是一个不错的附加效应。

绝对不要解锁 BOOTLOADER。

ROOT

ROOT 设备允许攻击者得到极高的权限。 Android 的架构基于 最小权限原则. 默认情况下,系统中不存在 ROOT 用户,请看full system SELinux policy. 即使 INIT SYSTEM 也没有 ROOT 的权限. 把操作系统都没有的权限交给应用层是很愚蠢的.

ROOT 权限的名单式授权也不能确保安全,攻击者完全可以伪造用户输入,比如 CLICKJACKING。他们也可以在你赋权的 APP 里植入风险。

人们会说「如果 ROOT 不安全,为什么 Linux 有?」. 实际上,Linux 并没有 Android 那样的 安全模型. 在大多数 Linux 上, 获取 ROOT 非常简单.

自定 ROM

主流的自定 ROM 都会破坏安全模型,比如「禁用 VERIFIED BOOT」,「使用 USERDEBUG BUILDS」,「禁用 SELinux」,「不提供 FIRMWARE 更新」,以及很多。 以上全占的一个 ROM 是 LineageOS

LineageOS

LineageOS 使用 userdebug builds which 带来了大量增加攻击面的调试工具, 减弱 SELinux polices,向 adb 提供 ROOT 权限。 LineageOS 需要解锁 BOOTLOADER 以及禁用 验证系统完整性的必须:VERIFIED BOOT。不提供回滚保护,攻击者可以降级此系统,并利用已被修复的风险漏洞。(LineageOS 自带的 Updater 应用就允许您降级)。 不提供 FIRMWARE 更新,您无法获得修复风险漏洞的补丁程序。 这样的安全问题还有很多。

LineageOS (以及其他许多自定 ROM) 注重自定义而不是安全/隐私。

MicroG / Signature Spoofing

MicroG 是 Google Play 服务的流行替代方案。 许多人借此摆脱 Google 追踪他们的设备,其实他们未必了解这会危害安全性,因为 MicroG 需要 伪造签名 ,允许 APP 请求绕过签名验证。

尽管有的 伪造签名 的实现不那么糟糕,比如CalyxOS 的.

防火墙

AFWall+ or Netguard 常被用来阻止某个 APP 联网,实际上,不起作用。任何 APP 可以用 IPC 绕过限制. 即使你切断了某个 APP 的网络连接, 也不能阻止其向其他应用发送 intent (比如浏览器) 来完成相同的网络连接.

许多 APP 无意中已经做到了这一点,通过下载管理器.

最有效的阻止网络连接的方法是让其在其独立的 工作资料 中运行,它无法与资料外的 APP 联络。同时撤销其INTERNET 权限 。(GrapheneOS 可以做到

总结

安全/隐私的最好选项是用 Pixel >= 3 并安装 GrapheneOS. GrapheneOS 不包含追踪器(Pixel 和许多厂商的原始系统有很多追踪器),并增加了许多加固比如hardened memory allocator, hardened C library, hardened kernel, stricter SELinux policies and more.

Pixel 是最好的硬件,有许多加固措施,比如 full verified boot 并包含对用户自定密钥的支持, Titan M, hardened basebands, a good IOMMU to isolate hardware devices, fine-grained forward-edge kernel Control-Flow Integrity, kernel ShadowCallStack, etc.

注意 GrapheneOS 并不能避免您自己破环自己的隐私。无论用什么操作系统,您都要小心才行。


Source: https://madaidans-insecurities.github.io/android.html

菜单