在未越狱的 iOS 设备上维护隐私的最佳做法是什么?

信息安全 移动的 隐私 匿名 IOS
2021-08-28 18:25:04

与大多数其他移动操作系统一样,iOS 有可能将大量个人信息泄露给第三方应用程序以及这些应用程序使用的广告和跟踪网络,这反过来也有可能允许聚合和跟踪用户身份和行为跨应用程序。

定位服务最终被锁定,原生 Safari 浏览器可以保持干净,但安装的应用程序仍然可以在用户不知情或不同意的情况下访问联系人、照片和唯一设备标识符。

有哪些策略、策略和工具可用于帮助改善第三方应用程序的隐私,同时保持合理的功能水平?

3个回答

除了其他答案,这里还有更多提示:

  • 如果您必须使用社交媒体,请使用他们的移动网站或第三方客户端。社交媒体从定义上讲是邪恶的,因为他们的赚钱方式是转售个人数据,但第三方开发者并不关心社交媒体网站赚钱,他们只是希望你购买他们的应用程序,并且在大多数情况下会尊重你的隐私案例。确保你信任开发者,邪恶的第三方应用程序的一个具体例子就是来自未知开发者的无穷无尽的 Snapchat 截图应用程序,这些应用程序通常带有中文名称;如果您想查看这些应用程序造成的损害,请搜索snapchat leaked (NSFW);如果您找不到您信任的客户,请根本不要使用该社交媒体服务。

  • 不要安装所有你能看到的应用程序。对于开发人员来说,在您的设备上安装他们的应用程序应该是一种特权,而不是一种权利。真的不需要安装最新的服装店应用程序或新的火车/飞机票比较应用程序。新闻应用程序也是邪恶的,真的不需要应用程序来阅读新闻,Safari 可以很好地做到这一点,无论是买衣服、阅读新闻还是你在手机上所做的大约 70% 的事情。

  • 喜欢付费应用而不是免费应用。免费应用意味着要么有广告(你的隐私被广告公司侵犯),要么你成为产品(你的隐私被应用开发者自己侵犯)。两者同样糟糕。另一方面,付费应用没有广告,因此假设您信任开发者,您应该是安全的。

  • 再次,尽可能使用 Safari(在隐私浏览模式下)。安装应用程序应该只是作为最后的手段,这应该意味着您完全信任开发人员,这种情况很少发生。

  • 最后,如果您有这样做的技术手段和知识,请考虑通过您的网络传递您设备的所有流量(通过 HTTP 代理、VPN 或自定义 APN;后者非常昂贵,但意味着运营商将所有互联网流量从您的移动计划直接通过您的网络,无需在设备本身上配置 VPN)。您会看到,除了设备本身造成的模糊流量外,还有相当多的分析和崩溃报告流量。虽然它们不如普通广告那么邪恶,但它们也应该在地狱中燃烧。在代理级别(即使使用 HTTPS 也可以根据主机名进行过滤)或在最坏的情况下在防火墙级别阻止它们。

我轻率但准确的答案是“不要将你的裸照存储在 iPhone 上”。您可以通过在代表性配置中嗅探发送到 iPhone 和从 iPhone 发送的数据来审核应用程序,但这将无法检查正确使用 TLS 的应用程序发送的数据。如果您不信任具有敏感数据的第三方应用程序,请不要让他们使用任何敏感数据。

您能够验证特定应用程序的功能的地方(例如,您获得第三方测试报告,或者他们为您提供审核来源,并且您相信他们使用相同的来源来构建产品,或者它是您自己的app) 那么您可以确信在未越狱的 iPhone 上,由于沙盒限制,该应用程序存储在其容器中的内容对其他应用程序不可用。但是,如果应用程序开始使用像相机胶卷或通讯录这样的共享存储空间,那么您将重新信任所有应用程序。

除了 App Store 提供的内容外,隐私政策检查通常是手动为 iOS 应用程序完成的。

我在运行 Network Miner 并使用可插入日志代理重播 SSL/TLS 或其他加密协议时利用 DNS 黑洞创建透明代理。Mallory 经常被认为是一个出色的可插拔日志代理,但我更喜欢 Burp Suite Professional,因为我经常使用这个工具执行其他任务。请注意,此 DNS 黑洞方法不会捕获不执行名称转换的 IP,尽管嗅探器仍会拾取该流量。

更好的方法可能是在构建过程中和构建之后(如果可用)检查源代码。我使用 xcodebuild(连同 clang-analyzer 和 Fortify 360 SCA sourceanalyzer)和 Flash Professional 来处理大部分工作。智能手机dumbapps analyze_ios.pl 工具也相当出色。

使用 iOS Simulator 时,有很多跟踪执行的工具,例如 dtruss、iprofiler、Instruments、iosnoop、execsnoop、DTraceToolkit 等——所有这些工具都真正依赖于 OS X 版本的 DTrace。这些在支持 gdb 的设备上不可用(当从 GUI 成功构建代码时,XCode 还会自动将 lldb 附加到 iOS 模拟器或设备)。

如果您想在设备上查看 Objective-C 运行时,我强烈建议您使用 cycript。

Apple 有关联系人和 UDID 的政策正在迅速变化。我不相信可以依赖 Apple 的政策,因为在其存在期间,许多恶意应用程序已通过其 App Store 提供。是的,比 Android 少——但它仍然发生了。

确实存在一些执行此类检查的 Android 应用程序,例如 TrevE 的 Logging Checker,以及 Lookout Mobile Security 的许多应用程序。我发现这些工具并不完美,并且使用类似工具(strace 代替 DTrace,Android 模拟器代替 iOS 模拟器,Android SDK 代替 xcodebuid,Eclipse ADT 代替 XCode GUI,FindBugs 代替)执行与 iOS 类似的分析铿锵分析器等)。

我相信我们都希望在 iOS 上拥有 Lookout Mobile Security 应用程序等价物,以及在 Android 上为 smali 提供 cycript 实现。