如何使用macOS 安全配置进行应用程序开发和测试(下)
2023-8-12 12:0:0 Author: www.4hou.com(查看原文) 阅读量:25 收藏

导语:在本文中,我们概述了八个关键的 macOS 安全配置,展示了如何使用它们来保护 macOS 设备,并解释了开发安全的 macOS 应用程序时应考虑的事项。

4. 管理防火墙中的外部连接

macOS 具有内置防火墙,可以保护应用程序免受未经授权的互联网访问。它有助于阻止任何传入连接并允许访问您想要的应用程序。

要配置防火墙,请访问“安全和隐私”首选项窗格中的“防火墙”选项卡:

image.png

图 21. 访问防火墙配置

然后,单击“防火墙选项”以配置防火墙。您可以阻止所有传入连接,以禁止任何人或任何事物连接到 macOS。这是最安全的防火墙配置,但某些应用程序在启用后可能无法提供在线功能。

image.png

图 22. 使用防火墙阻止所有连接

您还可以选择允许特定应用程序的传入连接。如果您正在测试客户端-服务器应用程序并且发现客户端-服务器连接有任何问题,请检查防火墙配置并尝试将您的应用程序添加到允许列表中。

image.png

图 23. 允许通过防火墙进行特定的互联网连接

5. 指定应用程序的隐私访问权限

某些应用程序需要访问高级 macOS 功能才能正常工作。但恶意应用程序也可能请求访问这些功能以窃取用户的个人数据。默认情况下,macOS 会阻止对位置服务、联系人、照片、麦克风、设备磁盘、屏幕录制、蓝牙和其他功能的访问,以保护用户免受安全威胁。

如果用户安装的应用程序请求访问被阻止的功能,则用户必须在“安全和隐私”首选项窗格的“隐私”选项卡中提供访问权限。

image.png

图 24. 为应用程序提供对位置服务的访问权限

当开发需要访问敏感功能和资源的应用程序时,请确保在安装程序中包含访问请求。该请求可能如下所示:Please grant

6. 配置钥匙串访问

Keychain Access 是用于密码管理的默认 macOS 应用程序,可存储用户的凭据,从而减少用户必须记住的密码数量。您可以在应用程序列表的实用程序文件夹中找到钥匙串访问。打开它以查找并配置任何存储的凭据。

image.png

图 25. 访问 Keychain Access 中存储的凭据

为了保护凭据,此应用程序使用传输层安全 (TLS)协议和公钥证书。让我们来看看它们是如何工作的。

TLS 是一种加密协议,旨在保护计算机网络中的通信。它广泛用于使用HTTPS 的应用程序,例如电子邮件、即时消息和 IP 语音。

公钥证书包含有关公钥、其所有者以及已验证证书内容的实体的数字签名的信息。如果签名有效并且检查证书的软件信任颁发者,则它可以使用该密钥与证书主体进行安全通信。 

在电子邮件加密、代码签名和电子签名系统中,证书的主体通常是个人或组织。在 TLS 中,证书的主体通常是计算机或其他设备,尽管 TLS 证书除了识别设备的核心角色之外还可以识别组织或个人。 

如果您尝试访问任何受保护的资源,则其证书需要受到 macOS 的信任。默认情况下,macOS 有一个受信任的证书列表。如果您想访问没有受信任证书的资源,您将看到以下消息:

image.png

图 26. 尝试访问没有受信任证书的资源

只有具有相应凭据的管理员才能将资源添加到钥匙串访问。单击“显示详细信息”,然后单击“访问网站”以将证书添加到“钥匙串访问”。

image.png

图 27. 将资源添加到钥匙串访问

之后,您可以打开证书详细信息并更改证书的设置。

image.png

图 28. 配置证书设置

在开发和测试客户端-服务器 macOS 应用程序时,您需要了解如何使用钥匙串访问并管理其中的安全证书。如果您的应用程序在安装过程中创建了证书,请确保执行以下操作: 

当您的应用程序请求管理员访问权限时,为您的应用程序提供所有权限,然后检查“钥匙串访问”内的证书。 

不提供证书安装的管理员权限,或者不使连接受信任。检查应用程序安装过程和应用程序行为。您的应用程序应显示有关证书问题的通知。此外,它还应该将有关这些问题的信息添加到应用程序日志中。但是,它不应该崩溃。 

当您将应用程序的证书设为不可信或完全删除该证书时,请检查应用程序的行为。 

通过将 macOS 中的日期更改为任何未来日期,使应用程序证书过期。检查应用程序在这种情况下的行为方式。 

请记住,钥匙串访问功能在不同的 macOS 版本中会发生变化。例如,在 macOS 10.15 及更早版本中,您可以通过以超级用户身份执行以下脚本来使证书受信任:

image.png

在更高版本的 macOS 中,您无法执行此操作。此外,在 macOS 11 和 12 中,即使用户运行终端命令以使证书受信任,也需要手动批准应用程序证书。这样做是出于安全原因:未经用户许可,脚本无法使任何证书受信任。在这些版本的 macOS 中,请使用终端命令检查 UI 和静默安装选项,因为您可能会在 macOS 11 及更高版本上遇到静默安装问题。

7. 启用远程登录

远程访问 macOS 允许开发人员重现并修复用户遇到的问题。操作系统默认提供了访问远程系统的功能,因此您无需安装第三方软件。

默认情况下,所有远程访问功能均处于禁用状态,但您可以在共享首选项中配置它们。启用远程登录将向您显示一条消息:

image.png

图 29. 启用对系统的远程访问

使用此命令和您的密码可以访问其他用户的系统。

您还可以在屏幕共享中启用虚拟网络计算(VNC) 访问,这将允许您共享屏幕。当您启用此功能时,您将看到类似的消息:

image.png

图 30. 通过 VNC 服务启用远程访问

请注意,要启动屏幕共享,您需要打开计算机设置并设置用于访问系统的密码。

您可以在远程管理服务中启用Apple 远程桌面。它使您能够远程执行任何脚本并使用所有终端功能。您可以从任何操作系统通过 Apple Remote Desktop 连接到另一台设备。Apple 远程桌面是在互联网连接速度较慢时建立远程连接的最佳方式,因为它不加载 macOS GUI。

VNC 服务为您提供与 macOS GUI 的远程连接。作为开发人员或 QA 工程师,您可以使用 VNC 在另一台具有不同 macOS 版本的 Mac 设备上测试您的应用程序。您还可以连接到最终用户的 macOS 设备并调试应用程序的任何问题。

image.png

图 31. 启用 Apple 远程桌面

8. 获取超级用户访问权限

Root 是超级用户,可以无限制地访问所有系统功能和文件。当管理员帐户无法提供所需的权限级别时,此用户会很有帮助。例如,管理员无法更改系统文件,但超级用户可以。您可以通过终端和 GUI 获取 root 访问权限。让我们看一下终端选项。

当您运行命令并看到“权限被拒绝”消息时,请运行相同的命令,并在其前面加上 sudo 一词。您需要输入 root 密码,然后命令将被执行而不会出现访问问题。

要成为终端内的超级用户而无需在每个命令前输入 sudo,请使用 sudo su 命令。您还需要输入 root 密码。执行此命令后,您将在此终端会话中获得超级用户访问权限。

要通过 GUI 获得超级用户访问权限,您需要成为管理员。默认情况下无法以超级用户身份登录 macOS,但有一个解决方法。在“用户和组”首选项窗格中打开“登录选项”,然后单击“加入”。

image.png

图 32. 更改 macOS 中的登录选项

在打开的表单中,选择“打开目录实用程序”,然后单击左下角的锁定图标并输入管理员凭据。

image.png

图 33. 登录目录实用程序

在“目录实用程序”中,打开“编辑”菜单,选择“启用 Root 用户”,然后为 root 用户设置密码。

image.png

图 34. 通过 macOS GUI 启用 root 用户

现在您可以以 root 用户身份登录和退出 macOS。在登录屏幕上,选择“其他”,输入“root”作为用户名,然后输入您为 root 帐户创建的密码。

image.png

图 35. 登录 root 帐户

如果您的应用程序具有需要 root 访问权限才能工作的功能,请检查在用户没有 root 访问权限时这些功能的执行情况。理想情况下,在这种情况下,应用程序应显示有关权限问题的消息,将此信息添加到其日志中,并继续工作而不会崩溃。

结论

macOS 具有一组强大的内置安全功能,macOS 开发人员需要了解这些功能并正确配置以保护其系统和应用程序。此外,Apple 经常重新设计和改进这些安全功能,因此在新的 macOS 版本中,您需要确保您的软件能够在最新版本中正常运行。 

本文翻译自:https://www.apriorit.com/dev-blog/macos-cybersecurity-basics如若转载,请注明原文地址

  • 分享至

取消 嘶吼

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟


文章来源: https://www.4hou.com/posts/2qJz
如有侵权请联系:admin#unsafe.sh