在处理 macOS 相关项目时,您的开发和质量保证 (QA) 团队必须考虑许多细微差别以交付安全的应用程序。例如,您需要确保您的应用程序适用于所有可能的 macOS 安全配置。您必须了解这些功能在特定版本的 macOS 中如何工作、管理员如何配置它们,以及如何通过各种 macOS 安全配置确保解决方案的稳定性能。
在本文中,我们概述了八个关键的 macOS 安全配置,展示了如何使用它们来保护 macOS 设备,并解释了开发安全的 macOS 应用程序时应考虑的事项。
本文对于从事 macOS 开发项目、希望更深入地了解 macOS 安全功能的 IT 工程师非常有用。
1. 设置用户帐户
在 macOS 中,您可以选择具有不同权限级别的四种类型的用户帐户。这些权限可以允许或阻止使用不同操作系统功能的能力。
在 macOS 中,您可以创建以下帐户类型:
- 行政。管理员拥有所有可能的访问权限。他们可以更改任何 macOS 配置、安装和删除应用程序、创建和管理用户帐户等。您在 macOS 中创建的第一个用户将属于管理员类型。一台设备上可以有多个管理员。
- 标准。标准用户可以管理自己的设置、使用主文件夹中的文件和文件夹以及下载系统更新但不能安装它们。标准用户无法安装和删除应用程序、更改其他用户的配置文件或编辑系统首选项(例如网络和安全首选项窗格中的首选项)。您可以将标准用户帐户升级为管理员帐户。
- 仅供分享。仅共享帐户的用户唯一可以做的就是远程访问共享文件。他们无法登录 macOS 中的个人用户配置文件。
- 客人。每个系统只有一个访客用户帐户,无需密码即可登录。访客无法更改任何设备或操作系统设置、管理用户或远程登录。当访客注销时,他们创建的所有数据都将被删除。
要管理用户,请以管理员身份打开“系统偏好设置”中的“用户和组”偏好设置窗格。您将看到用户列表及其帐户类型。如果您想更改用户帐户,请单击锁定图标并输入管理员密码:
图 1. 访问“用户和组”首选项窗格
要将标准用户升级为管理员,请选中“允许用户管理此计算机”选项。您可以通过取消选中此框将管理员用户降级为标准用户。
图 2. 将标准用户帐户升级为管理员帐户
单击访客用户管理设备的访客帐户:
图 3. 在 macOS 中管理来宾用户帐户
要创建新用户,请单击“用户和组”首选项窗格左下角的加号按钮,然后填写帐户创建表单:
图 4. 创建新用户帐户
如果要删除用户帐户,请选择要删除的帐户,单击“用户和组”窗格左下角的减号按钮,然后确认要删除该帐户:
图 5. 删除用户帐户
根据用户角色和需求配置用户帐户通常有助于提高网络和应用程序的安全性,但在以下情况下应特别注意帐户创建:
- 该设备可供多人使用。如果许多人都可以访问存储敏感信息的系统,您需要保护它免受未经授权的访问和内部威胁。实现此目的的一种方法是创建具有所需访问级别的不同用户帐户。例如,您可以允许用户读取数据并查看系统设置,但只允许系统管理员更改数据和设置。
- 组织拥有该设备。当组织为员工提供工作计算机时,它可能会限制用户访问设备设置的权限并使用组策略控制此类设备。macOS 允许管理员通过创建具有访问限制的用户帐户来执行此操作。
- 该设备有多种使用场景。用户可以使用同一台计算机执行多种任务:编写代码、创建内容、观看电影等。为每项任务创建单独的用户帐户可以帮助根据特定的使用场景自定义设备和应用程序设置。
多种类型的用户帐户意味着开发人员必须测试其应用程序如何与所有帐户配合使用。QA 团队应验证具有不同访问权限的应用程序的安装、执行和卸载。
假设您的应用程序中有一项功能仅适用于管理员权限。要检查此功能的工作原理,您需要首先使用管理员配置文件进行测试。然后,以标准用户身份运行相同的功能,并且不授予应用程序所需的权限。在这种情况下,该功能将不起作用,但应用程序应该可以继续顺利运行。此外,在这种情况下,应用程序可能会显示特殊通知,例如< feature > 需要管理员访问权限。
QA 工程师应将有关此类访问请求的信息添加到应用程序日志中,以帮助开发团队定位可能出现的任何问题。
2.限制屏幕时间
macOS 管理员可以通过配置屏幕时间限制来限制用户对某些应用程序的访问。此功能允许配置计算机停机时间、应用程序限制以及内容和隐私限制。开发应用程序时,请确保您了解此功能的工作原理以及您的应用程序在屏幕时间限制下应如何运行。
您可以通过登录新帐户并在“系统偏好设置”中打开“屏幕时间”窗格来限制用户屏幕时间。然后,选择选项并打开该功能。下一步是启用“使用屏幕时间密码”。时间密码是忽略屏幕时间限制或更改屏幕时间设置所需的四位数代码。
图 6. 为用户启用屏幕时间限制
通过屏幕时间限制,您还可以定义哪些应用程序在特定时间段内可用。进入“停机时间”选项卡可设置系统停机时间、开启功能并设置计划。
图 7. 配置系统停机时间
然后,转到“应用程序限制”首选项窗格来设置应用程序的每日时间限制。选择一个应用程序并设置限制。当超过限制时,应用程序将被阻止。
图 8. 配置应用程序停机时间
您可以在“始终允许”选项卡中选择在停机期间不应阻止的应用程序。
图 9. 选择不应阻止的应用程序
此功能还允许您阻止露骨和成人内容,并为帐户设置隐私设置。您可以在“内容和隐私”首选项窗格中执行此操作。
图 10. 配置帐户隐私设置
如果用户尝试访问被阻止的网站,他们会看到一条警告消息。仅当他们知道屏幕时间密码时,他们才能将此网站添加到批准列表中。
当您为应用程序配置屏幕时间限制并且这些限制处于活动状态时,用户将看到一个阴影图标。
图 11. 具有活动屏幕时间限制的应用程序的图标带有阴影
当用户尝试启动被阻止的应用程序时,他们会看到有关达到时间限制的警告。此时,他们可以再获得一分钟的时间来完成任务,或者输入“屏幕时间”密码来解锁应用程序。
macOS 应用程序开发人员在开发产品时还必须注意屏幕时间阻塞。特别是,请务必检查:
- 屏幕时间可以停止您的应用程序,而不会出现任何崩溃或致命错误
- 如果用户请求再延长一分钟或输入屏幕时间密码,则可以继续使用您的应用程序
- 当应用程序在停机后解除阻止时,用户可以使用该应用程序
- 应用程序的计划进程和后台进程按屏幕时间限制按预期工作
屏幕时间的内容和隐私设置中有很多不同的限制。确保检查它们不会使您的应用程序崩溃。例如,如果您正在开发可以阻止成人网站的网络流量过滤器,请通过内容和隐私限制对此类网站的访问,并检查您的应用程序的工作方式。如果您正在开发视频内容应用程序,请限制对成人电视节目的访问,然后尝试在应用程序内观看它们。如果您正在开发视频游戏,您可以限制对在线游戏的访问并尝试在线玩。
3.使用Gatekeeper检查开发者ID
Gatekeeper 是一项保护 macOS 免受不受信任应用程序侵害的功能。macOS 用户可以在系统偏好设置的安全和隐私部分中将其系统配置为允许或阻止来源未知和可疑的应用程序的执行。
图 12. 为应用程序配置可信源
用户可以允许其设备仅使用从 App Store 下载的应用程序。它是最值得信赖的下载来源,因为 Apple 会在应用程序在 App Store 上发布之前对其安全性进行审查。如果应用程序有任何问题,Apple 会将其从商店中删除。
如果用户尝试打开不是从 App Store 下载的应用程序,他们将看到以下消息:
图 13. 尝试启动从不受信任的来源下载的应用程序
还有一个选项允许从 App Store 和指定的开发人员启动应用程序。在这种情况下,macOS 将检查应用程序的开发者 ID 和公证,以确保其安全。当应用程序安装时以及每次启动时,Gatekeeper 都会检查证书。
如果证书无效,则无法安装应用程序。如果已安装的应用程序是在证书有效时编译的,则用户可以执行该应用程序,即使证书已过期。如果开发者 ID 配置文件已过期,则无法执行应用程序。
这就是为什么每个应用程序都应该使用开发者 ID 证书进行签名。要获得此类证书,您必须得到 Apple 的认可并成为 Apple 开发者计划的一部分。开发者 ID 证书自创建之日起五年内有效,因此请务必定期更新您的开发者 ID。
任何应用程序还应该经过公证才能受到 macOS 的信任。Apple 公证服务是一个自动化流程,可扫描应用程序中是否存在恶意内容。如果没有发现问题,它会允许 macOS 运行该应用程序。为了检查公证权限,Gatekeeper 连接到 Apple 数据库并搜索该应用程序。
如果设备允许用户运行从已识别的开发人员处下载的应用程序,Gatekeeper 仍会显示一条警告消息,并附有注释,说明Apple 检查了该设备是否存在恶意软件,但未检测到任何恶意软件,并且它将允许用户打开该应用程序。
图 14. 启动经过 Apple 验证的第三方应用程序
如果用户尝试运行不受信任的应用程序,他们将看到以下消息:
图 15. 启动不受信任的应用程序
管理员可以通过在“安全和隐私”首选项窗格中设置相应的权限来允许用户运行不受信任的应用程序。
图 16. 允许来自不受信任来源的应用程序
当您需要测试尚未受信任的应用程序并且您不想更改安全首选项时,Gatekeeper 可能会很麻烦。您可以使用以下命令忽略 Gatekeeper 安全功能:
如何使用macOS 安全配置进行应用程序开发和测试(上)
spctl 是一个可用于与 Gatekeeper 通信的应用程序。它将Anywhere选项添加到安全和隐私设置中。这意味着您将能够执行任何应用程序。
图 17. 允许安装任何来源的应用程序
注意:我们强烈建议您不要禁用任何安全功能,除非您确定自己在做什么!
您可以使用以下命令验证应用程序的开发者 ID 和公证:
如何使用macOS 安全配置进行应用程序开发和测试(上)
如果您的应用程序由有效的开发者 ID 签名并具有有效的公证,则该命令将返回消息经过公证的开发者 ID和开发者的信息。例如,让我们检查 Google Chrome 应用程序:
图 18. 检查 Google Chrome 的开发者 ID 和公证
如您所见,Google Chrome 受到 macOS 的信任。
如果您感兴趣的应用程序是由受信任的开发人员创建的,但未经公证,您将不会在源字段中看到“已公证”一词:
图 19. 检查未公证应用程序的开发者 ID 和公证
如果应用程序甚至没有开发人员 ID 签名,您将看到一条无可用签名消息:
图 20. 在没有可信开发人员签名的情况下检查应用程序
在交付任何 macOS 产品之前,请使用上面列出的命令检查应用程序的开发者 ID 和公证。它将帮助您的最终用户避免启动应用程序时可能出现的问题。您还可以从任何互联网资源下载应用程序的安装程序并安装它以模拟用户体验。
在下篇文章中,我们将介绍管理防火墙中的外部连接、指定应用程序的隐私访问权限、配置钥匙串访问等问题。
本文翻译自:https://www.apriorit.com/dev-blog/macos-cybersecurity-basics如若转载,请注明原文地址