【问题标题】:Bypassing Mac App Store restrictions on privilege escalation绕过 Mac App Store 对提权的限制
【发布时间】:2019-01-25 02:00:17
【问题描述】:

根据Mac App Store Review Guidelines

2.4.5 通过 Mac App Store 分发的应用有一些额外要求需要牢记:

(i) 它们必须经过适当的沙盒处理,并遵循 macOS 文件系统文档。他们还应该只使用适当的 macOS API 来修改其他应用程序存储的用户数据(例如书签、地址簿或日历条目)。

...

(iv) 他们不得下载或安装独立应用、kext、附加代码或资源来添加功能或显着更改我们在审核过程中看到的应用。

(v) 他们不得请求升级到 root 权限或使用 setuid 属性。

沙盒已经排除了AuthorizationCreate()等API的使用,无论如何,第(v)项很清楚。

当然,像 Parallels (MAS link) 这样的应用程序肯定无法在不诉诸特权升级的情况下进行编码。事实上,常规(非 MAS)Parallels 应用程序至少安装了 3 个 kext,其中一个是虚拟机管理程序,如果没有这些,我相信 Parallels 绝对没用。所以他们显然违反了这些规则。

如果开发人员希望编写一个像 Parallels 一样需要提权并且没有它完全无用的应用程序,开发人员将如何绕过这些限制?还是只是一个足够大的问题,苹果会在审查过程中对此视而不见?您可以向 Apple 申请例外吗?

【问题讨论】:

标签: macos mac-app-store


【解决方案1】:

没有对 App Store 政策问题发表评论(很遗憾),但我可以回答您关于 Parallels 的问题。 Mac App Store 上的 Parallels 版本使用 kext,也不需要。 Hypervisor framework 可以编写类似 Parallels 的应用程序,而无需 root 权限,或编写和分发自定义 kext(需要 Apple 单独批准)。 Hypervisor 框架也可用于沙盒应用程序。我相信这个框架是专门为解决这个问题而创建的。希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多