我可以从自定义网站下载应用程序并运行它们,即使我的网闸设置位于“仅AppStore”也是如此。这是我的应用程序-甚至没有签名。
这可能是什么原因?我可以在所有3台Mac电脑上重现此行为。
我可以从自定义网站下载应用程序并运行它们,即使我的网闸设置位于“仅AppStore”也是如此。这是我的应用程序-甚至没有签名。
这可能是什么原因?我可以在所有3台Mac电脑上重现此行为。
Answers:
管理员用户还可以更改Gatekeeper设置或完全禁用它,因此呈现一次性白名单对话框以确保管理员用户打算允许不合规(未签名)的行为(至少在我看来)没有真正的危害(至少在我看来)或非Mac App Store)应用程序运行。
现在,如果您找到了一种非管理员用户绕过Gatekeeper的方法,那么我希望向Apple提出一个安全漏洞,一旦他们修补了由于实施错误而导致政策应用无法运行的漏洞,便可以从中发现漏洞。
Apple深入记录了此功能,详细介绍了如何将应用程序明确列入白名单。
Gatekeeper不是恶意软件防护,也不是黑名单。它是一组策略,允许首先启动经过正确签名的应用程序和/或验证Mac App Store收据。如果管理员用户明确启动并批准运行不兼容的软件,则说明您存在教育或政策问题,而不是发现Gatekeeper中的某些缺陷。
详细地,我总结了Apple帮助的相关部分(大部分内容是复制的),在白名单中列出了任何应用程序,以便Gatekeeper可以不受阻碍和无提示地运行它:
如何从身份不明的开发人员打开应用程序并将其从Gatekeeper中豁免
如果您确信从Internet下载的应用程序是最新版本并且是您信任的来源,则可以按照以下步骤从身份不明的开发人员处打开应用程序。
重要提示:某些正在从开发人员处经过Apple筛选的应用程序中,正在获取开发人员ID签名的过程中,双击它们时将显示“打开”选项。
注意:在大多数情况下,您只需对Mac上的所有用户帐户执行一次以下步骤:
- 在Finder中,按住Control键单击或右键单击该应用程序的图标。
- 从出现的上下文菜单的顶部选择“打开”。
- 在对话框中单击“打开”。如果出现提示,请输入管理员名称和密码。
注意:如果有一个显示多个Gatekeeper对话框的应用程序,则可以临时使用Gatekeeper的“始终”选项。确保还原以前带回的Gatekeeper功能的Gatekeeper选项。
您可以通过不向不知道此功能的用户分发管理员用户名和密码来轻松地控制哪些人可以将应用程序列入白名单,还可以通过终端机或配置文件管理器以及其他托管设置软件(如JAMF的Casper)来管理网守。您还可以审核计算机中是否有列入白名单的软件,以定期重置允许的应用程序列表,并确定谁在行使此功能,以防您希望更改策略和习惯。
spctl
以便spctl --assess -v /Applications/Whatever.app
向您显示是允许还是拒绝它,并spctl --remove /Applications/Whatever.app
会重置特定应用程序的“对话框”和状态。我使用工具来收集系统上的所有应用程序,以便可以在需要时使用简短的脚本来审核使用情况并更正错误。
通过SMB下载文件不会触发隔离,并且由于未隔离该应用,因此不会检查网守策略。我不确定为什么在其他计算机上将其标记为已隔离...
要随时检查隔离,请使用以下ls -ld@
命令来查找com.apple.quarantine属性:
$ ls -ld@ /Applications/TextWrangler.app
drwxrwxr-x@ 3 gordon staff 102 Apr 30 2012 /Applications/TextWrangler.app
com.apple.FinderInfo 32
com.apple.quarantine 57
如果该隔离属性附加到了应用程序,则将检查网守策略。如果没有,它不会。有趣的问题是,为什么隔离它在其他计算机上,并且如果在分发应用程序时使用此命令在各个点检查应用程序,则可以确定何时附加属性(以及附加属性的原因)。
编辑:苹果知识库文章HT5290的“单击此处以获取更多详细信息”部分中有与此相关的注释:
重要提示:开发人员ID签名适用于从Internet下载的应用。除非这些应用程序最初是从Internet下载的,否则其他来源的应用程序(例如文件服务器,外部驱动器或光盘)将被豁免。
xattr -d com.apple.quarantine
即使它违反了网守策略,也可以将其打开。
Gatekeeper阻止通过双击运行应用程序,但是您始终可以通过从上下文菜单中选择“ 打开”来覆盖它。
如果可以通过双击运行下载的未签名应用程序,则这是Gatekeeper的问题。文件将其隔离状态存储在名为com.apple.quarantine的扩展属性中。如果出于某种原因从下载的文件中清除了此属性,则Gatekeeper将把下载的文件与计算机上的其他文件一样。因此,我建议如果安装了Xcode ,则下载程序然后在Terminal中使用将是一个很好的诊断工具。xattr -l filename
如果通过菜单中的“打开”命令运行它们,则这是设计的行为。请注意,从菜单运行程序后,无论您的Gatekeeper设置如何,都可以通过双击永久启用该程序。