如何使用 macOS 安全配置進(jìn)行應(yīng)用程序開發(fā)和測試
在處理 macOS 相關(guān)項(xiàng)目時(shí),您的開發(fā)和質(zhì)量保證 (QA) 團(tuán)隊(duì)必須考慮許多細(xì)微差別以交付安全的應(yīng)用程序。例如,您需要確保您的應(yīng)用程序適用于所有可能的 macOS 安全配置。您必須了解這些功能在特定版本的 macOS 中如何工作、管理員如何配置它們,以及如何通過各種 macOS 安全配置確保解決方案的穩(wěn)定性能。
在本文中,我們概述了八個(gè)關(guān)鍵的 macOS 安全配置,展示了如何使用它們來保護(hù) macOS 設(shè)備,并解釋了開發(fā)安全的 macOS 應(yīng)用程序時(shí)應(yīng)考慮的事項(xiàng)。
本文對于從事 macOS 開發(fā)項(xiàng)目、希望更深入地了解 macOS 安全功能的 IT 工程師非常有用。
1. 設(shè)置用戶帳戶
在 macOS 中,您可以選擇具有不同權(quán)限級(jí)別的四種類型的用戶帳戶。這些權(quán)限可以允許或阻止使用不同操作系統(tǒng)功能的能力。
在 macOS 中,您可以創(chuàng)建以下帳戶類型:
- 行政。管理員擁有所有可能的訪問權(quán)限。他們可以更改任何 macOS 配置、安裝和刪除應(yīng)用程序、創(chuàng)建和管理用戶帳戶等。您在 macOS 中創(chuàng)建的第一個(gè)用戶將屬于管理員類型。一臺(tái)設(shè)備上可以有多個(gè)管理員。
- 標(biāo)準(zhǔn)。標(biāo)準(zhǔn)用戶可以管理自己的設(shè)置、使用主文件夾中的文件和文件夾以及下載系統(tǒng)更新但不能安裝它們。標(biāo)準(zhǔn)用戶無法安裝和刪除應(yīng)用程序、更改其他用戶的配置文件或編輯系統(tǒng)首選項(xiàng)(例如網(wǎng)絡(luò)和安全首選項(xiàng)窗格中的首選項(xiàng))。您可以將標(biāo)準(zhǔn)用戶帳戶升級(jí)為管理員帳戶。
- 僅供分享。僅共享帳戶的用戶唯一可以做的就是遠(yuǎn)程訪問共享文件。他們無法登錄 macOS 中的個(gè)人用戶配置文件。
- 客人。每個(gè)系統(tǒng)只有一個(gè)訪客用戶帳戶,無需密碼即可登錄。訪客無法更改任何設(shè)備或操作系統(tǒng)設(shè)置、管理用戶或遠(yuǎn)程登錄。當(dāng)訪客注銷時(shí),他們創(chuàng)建的所有數(shù)據(jù)都將被刪除。
要管理用戶,請以管理員身份打開“系統(tǒng)偏好設(shè)置”中的“用戶和組”偏好設(shè)置窗格。您將看到用戶列表及其帳戶類型。如果您想更改用戶帳戶,請單擊鎖定圖標(biāo)并輸入管理員密碼:
圖 1. 訪問“用戶和組”首選項(xiàng)窗格
要將標(biāo)準(zhǔn)用戶升級(jí)為管理員,請選中“允許用戶管理此計(jì)算機(jī)”選項(xiàng)。您可以通過取消選中此框?qū)⒐芾韱T用戶降級(jí)為標(biāo)準(zhǔn)用戶。
圖 2. 將標(biāo)準(zhǔn)用戶帳戶升級(jí)為管理員帳戶
單擊訪客用戶管理設(shè)備的訪客帳戶:
圖 3. 在 macOS 中管理來賓用戶帳戶
要?jiǎng)?chuàng)建新用戶,請單擊“用戶和組”首選項(xiàng)窗格左下角的加號(hào)按鈕,然后填寫帳戶創(chuàng)建表單:
圖 4. 創(chuàng)建新用戶帳戶
如果要?jiǎng)h除用戶帳戶,請選擇要?jiǎng)h除的帳戶,單擊“用戶和組”窗格左下角的減號(hào)按鈕,然后確認(rèn)要?jiǎng)h除該帳戶:
圖 5. 刪除用戶帳戶
根據(jù)用戶角色和需求配置用戶帳戶通常有助于提高網(wǎng)絡(luò)和應(yīng)用程序的安全性,但在以下情況下應(yīng)特別注意帳戶創(chuàng)建:
- 該設(shè)備可供多人使用。如果許多人都可以訪問存儲(chǔ)敏感信息的系統(tǒng),您需要保護(hù)它免受未經(jīng)授權(quán)的訪問和內(nèi)部威脅。實(shí)現(xiàn)此目的的一種方法是創(chuàng)建具有所需訪問級(jí)別的不同用戶帳戶。例如,您可以允許用戶讀取數(shù)據(jù)并查看系統(tǒng)設(shè)置,但只允許系統(tǒng)管理員更改數(shù)據(jù)和設(shè)置。
- 組織擁有該設(shè)備。當(dāng)組織為員工提供工作計(jì)算機(jī)時(shí),它可能會(huì)限制用戶訪問設(shè)備設(shè)置的權(quán)限并使用組策略控制此類設(shè)備。macOS 允許管理員通過創(chuàng)建具有訪問限制的用戶帳戶來執(zhí)行此操作。
- 該設(shè)備有多種使用場景。用戶可以使用同一臺(tái)計(jì)算機(jī)執(zhí)行多種任務(wù):編寫代碼、創(chuàng)建內(nèi)容、觀看電影等。為每項(xiàng)任務(wù)創(chuàng)建單獨(dú)的用戶帳戶可以幫助根據(jù)特定的使用場景自定義設(shè)備和應(yīng)用程序設(shè)置。
多種類型的用戶帳戶意味著開發(fā)人員必須測試其應(yīng)用程序如何與所有帳戶配合使用。QA 團(tuán)隊(duì)?wèi)?yīng)驗(yàn)證具有不同訪問權(quán)限的應(yīng)用程序的安裝、執(zhí)行和卸載。
假設(shè)您的應(yīng)用程序中有一項(xiàng)功能僅適用于管理員權(quán)限。要檢查此功能的工作原理,您需要首先使用管理員配置文件進(jìn)行測試。然后,以標(biāo)準(zhǔn)用戶身份運(yùn)行相同的功能,并且不授予應(yīng)用程序所需的權(quán)限。在這種情況下,該功能將不起作用,但應(yīng)用程序應(yīng)該可以繼續(xù)順利運(yùn)行。此外,在這種情況下,應(yīng)用程序可能會(huì)顯示特殊通知,例如< feature > 需要管理員訪問權(quán)限。
QA 工程師應(yīng)將有關(guān)此類訪問請求的信息添加到應(yīng)用程序日志中,以幫助開發(fā)團(tuán)隊(duì)定位可能出現(xiàn)的任何問題。
2.限制屏幕時(shí)間
macOS 管理員可以通過配置屏幕時(shí)間限制來限制用戶對某些應(yīng)用程序的訪問。此功能允許配置計(jì)算機(jī)停機(jī)時(shí)間、應(yīng)用程序限制以及內(nèi)容和隱私限制。開發(fā)應(yīng)用程序時(shí),請確保您了解此功能的工作原理以及您的應(yīng)用程序在屏幕時(shí)間限制下應(yīng)如何運(yùn)行。
您可以通過登錄新帳戶并在“系統(tǒng)偏好設(shè)置”中打開“屏幕時(shí)間”窗格來限制用戶屏幕時(shí)間。然后,選擇選項(xiàng)并打開該功能。下一步是啟用“使用屏幕時(shí)間密碼”。時(shí)間密碼是忽略屏幕時(shí)間限制或更改屏幕時(shí)間設(shè)置所需的四位數(shù)代碼。
圖 6. 為用戶啟用屏幕時(shí)間限制
通過屏幕時(shí)間限制,您還可以定義哪些應(yīng)用程序在特定時(shí)間段內(nèi)可用。進(jìn)入“停機(jī)時(shí)間”選項(xiàng)卡可設(shè)置系統(tǒng)停機(jī)時(shí)間、開啟功能并設(shè)置計(jì)劃。
圖 7. 配置系統(tǒng)停機(jī)時(shí)間
然后,轉(zhuǎn)到“應(yīng)用程序限制”首選項(xiàng)窗格來設(shè)置應(yīng)用程序的每日時(shí)間限制。選擇一個(gè)應(yīng)用程序并設(shè)置限制。當(dāng)超過限制時(shí),應(yīng)用程序?qū)⒈蛔柚埂?/p>
圖 8. 配置應(yīng)用程序停機(jī)時(shí)間
您可以在“始終允許”選項(xiàng)卡中選擇在停機(jī)期間不應(yīng)阻止的應(yīng)用程序。
圖 9. 選擇不應(yīng)阻止的應(yīng)用程序
此功能還允許您阻止露骨和成人內(nèi)容,并為帳戶設(shè)置隱私設(shè)置。您可以在“內(nèi)容和隱私”首選項(xiàng)窗格中執(zhí)行此操作。
圖 10. 配置帳戶隱私設(shè)置
如果用戶嘗試訪問被阻止的網(wǎng)站,他們會(huì)看到一條警告消息。僅當(dāng)他們知道屏幕時(shí)間密碼時(shí),他們才能將此網(wǎng)站添加到批準(zhǔn)列表中。
當(dāng)您為應(yīng)用程序配置屏幕時(shí)間限制并且這些限制處于活動(dòng)狀態(tài)時(shí),用戶將看到一個(gè)陰影圖標(biāo)。
圖 11. 具有活動(dòng)屏幕時(shí)間限制的應(yīng)用程序的圖標(biāo)帶有陰影
當(dāng)用戶嘗試啟動(dòng)被阻止的應(yīng)用程序時(shí),他們會(huì)看到有關(guān)達(dá)到時(shí)間限制的警告。此時(shí),他們可以再獲得一分鐘的時(shí)間來完成任務(wù),或者輸入“屏幕時(shí)間”密碼來解鎖應(yīng)用程序。
macOS 應(yīng)用程序開發(fā)人員在開發(fā)產(chǎn)品時(shí)還必須注意屏幕時(shí)間阻塞。特別是,請務(wù)必檢查:
- 屏幕時(shí)間可以停止您的應(yīng)用程序,而不會(huì)出現(xiàn)任何崩潰或致命錯(cuò)誤
- 如果用戶請求再延長一分鐘或輸入屏幕時(shí)間密碼,則可以繼續(xù)使用您的應(yīng)用程序
- 當(dāng)應(yīng)用程序在停機(jī)后解除阻止時(shí),用戶可以使用該應(yīng)用程序
- 應(yīng)用程序的計(jì)劃進(jìn)程和后臺(tái)進(jìn)程按屏幕時(shí)間限制按預(yù)期工作
屏幕時(shí)間的內(nèi)容和隱私設(shè)置中有很多不同的限制。確保檢查它們不會(huì)使您的應(yīng)用程序崩潰。例如,如果您正在開發(fā)可以阻止成人網(wǎng)站的網(wǎng)絡(luò)流量過濾器,請通過內(nèi)容和隱私限制對此類網(wǎng)站的訪問,并檢查您的應(yīng)用程序的工作方式。如果您正在開發(fā)視頻內(nèi)容應(yīng)用程序,請限制對成人電視節(jié)目的訪問,然后嘗試在應(yīng)用程序內(nèi)觀看它們。如果您正在開發(fā)視頻游戲,您可以限制對在線游戲的訪問并嘗試在線玩。
3.使用Gatekeeper檢查開發(fā)者ID
Gatekeeper 是一項(xiàng)保護(hù) macOS 免受不受信任應(yīng)用程序侵害的功能。macOS 用戶可以在系統(tǒng)偏好設(shè)置的安全和隱私部分中將其系統(tǒng)配置為允許或阻止來源未知和可疑的應(yīng)用程序的執(zhí)行。
圖 12. 為應(yīng)用程序配置可信源
用戶可以允許其設(shè)備僅使用從 App Store 下載的應(yīng)用程序。它是最值得信賴的下載來源,因?yàn)?Apple 會(huì)在應(yīng)用程序在 App Store 上發(fā)布之前對其安全性進(jìn)行審查。如果應(yīng)用程序有任何問題,Apple 會(huì)將其從商店中刪除。
如果用戶嘗試打開不是從 App Store 下載的應(yīng)用程序,他們將看到以下消息:
圖 13. 嘗試啟動(dòng)從不受信任的來源下載的應(yīng)用程序
還有一個(gè)選項(xiàng)允許從 App Store 和指定的開發(fā)人員啟動(dòng)應(yīng)用程序。在這種情況下,macOS 將檢查應(yīng)用程序的開發(fā)者 ID 和公證,以確保其安全。當(dāng)應(yīng)用程序安裝時(shí)以及每次啟動(dòng)時(shí),Gatekeeper 都會(huì)檢查證書。
如果證書無效,則無法安裝應(yīng)用程序。如果已安裝的應(yīng)用程序是在證書有效時(shí)編譯的,則用戶可以執(zhí)行該應(yīng)用程序,即使證書已過期。如果開發(fā)者 ID 配置文件已過期,則無法執(zhí)行應(yīng)用程序。
這就是為什么每個(gè)應(yīng)用程序都應(yīng)該使用開發(fā)者 ID 證書進(jìn)行簽名。要獲得此類證書,您必須得到 Apple 的認(rèn)可并成為 Apple 開發(fā)者計(jì)劃的一部分。開發(fā)者 ID 證書自創(chuàng)建之日起五年內(nèi)有效,因此請務(wù)必定期更新您的開發(fā)者 ID。
任何應(yīng)用程序還應(yīng)該經(jīng)過公證才能受到 macOS 的信任。Apple 公證服務(wù)是一個(gè)自動(dòng)化流程,可掃描應(yīng)用程序中是否存在惡意內(nèi)容。如果沒有發(fā)現(xiàn)問題,它會(huì)允許 macOS 運(yùn)行該應(yīng)用程序。為了檢查公證權(quán)限,Gatekeeper 連接到 Apple 數(shù)據(jù)庫并搜索該應(yīng)用程序。
如果設(shè)備允許用戶運(yùn)行從已識(shí)別的開發(fā)人員處下載的應(yīng)用程序,Gatekeeper 仍會(huì)顯示一條警告消息,并附有注釋,說明Apple 檢查了該設(shè)備是否存在惡意軟件,但未檢測到任何惡意軟件,并且它將允許用戶打開該應(yīng)用程序。
圖 14. 啟動(dòng)經(jīng)過 Apple 驗(yàn)證的第三方應(yīng)用程序
如果用戶嘗試運(yùn)行不受信任的應(yīng)用程序,他們將看到以下消息:
圖 15. 啟動(dòng)不受信任的應(yīng)用程序
管理員可以通過在“安全和隱私”首選項(xiàng)窗格中設(shè)置相應(yīng)的權(quán)限來允許用戶運(yùn)行不受信任的應(yīng)用程序。
圖 16. 允許來自不受信任來源的應(yīng)用程序
當(dāng)您需要測試尚未受信任的應(yīng)用程序并且您不想更改安全首選項(xiàng)時(shí),Gatekeeper 可能會(huì)很麻煩。您可以使用以下命令忽略 Gatekeeper 安全功能:
如何使用macOS 安全配置進(jìn)行應(yīng)用程序開發(fā)和測試(上)
spctl 是一個(gè)可用于與 Gatekeeper 通信的應(yīng)用程序。它將Anywhere選項(xiàng)添加到安全和隱私設(shè)置中。這意味著您將能夠執(zhí)行任何應(yīng)用程序。
圖 17. 允許安裝任何來源的應(yīng)用程序
注意:我們強(qiáng)烈建議您不要禁用任何安全功能,除非您確定自己在做什么!
您可以使用以下命令驗(yàn)證應(yīng)用程序的開發(fā)者 ID 和公證:
如何使用macOS 安全配置進(jìn)行應(yīng)用程序開發(fā)和測試(上)
如果您的應(yīng)用程序由有效的開發(fā)者 ID 簽名并具有有效的公證,則該命令將返回消息經(jīng)過公證的開發(fā)者 ID和開發(fā)者的信息。例如,讓我們檢查 Google Chrome 應(yīng)用程序:
圖 18. 檢查 Google Chrome 的開發(fā)者 ID 和公證
如您所見,Google Chrome 受到 macOS 的信任。
如果您感興趣的應(yīng)用程序是由受信任的開發(fā)人員創(chuàng)建的,但未經(jīng)公證,您將不會(huì)在源字段中看到“已公證”一詞:
圖 19. 檢查未公證應(yīng)用程序的開發(fā)者 ID 和公證
如果應(yīng)用程序甚至沒有開發(fā)人員 ID 簽名,您將看到一條無可用簽名消息:
圖 20. 在沒有可信開發(fā)人員簽名的情況下檢查應(yīng)用程序
在交付任何 macOS 產(chǎn)品之前,請使用上面列出的命令檢查應(yīng)用程序的開發(fā)者 ID 和公證。它將幫助您的最終用戶避免啟動(dòng)應(yīng)用程序時(shí)可能出現(xiàn)的問題。您還可以從任何互聯(lián)網(wǎng)資源下載應(yīng)用程序的安裝程序并安裝它以模擬用戶體驗(yàn)。
在下篇文章中,我們將介紹管理防火墻中的外部連接、指定應(yīng)用程序的隱私訪問權(quán)限、配置鑰匙串訪問等問題。
本文翻譯自:https://www.apriorit.com/dev-blog/macos-cybersecurity-basics如若轉(zhuǎn)載,請注明原文地址