如何使用 macOS 安全配置進行應用程序開發和測試
在處理 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如若轉載,請注明原文地址