增強代碼簽名安全性的8項最佳實踐

代碼簽名的用途在于為軟件、固件或應用添加數(shù)字簽名,以確保用戶的代碼來自可信源并且在上次簽名后未被篡改。但代碼簽名的實際效用取決于其執(zhí)行情況,不當?shù)膶嵺`可能會導致惡意軟件注入、代碼和軟件篡改以及冒充攻擊。

640 (1).png

本文來自微信公眾號“數(shù)世咨詢”,作者/茉泠。

01

實況報道

最近的新聞報道稱,遠程訪問解決方案公司AnyDesk遭到了黑客的入侵。這也引發(fā)了業(yè)界對于代碼簽名實踐以及軟件供應鏈安全的關注與重視。

代碼簽名的用途在于為軟件、固件或應用添加數(shù)字簽名,以確保用戶的代碼來自可信源并且在上次簽名后未被篡改。但代碼簽名的實際效用取決于其執(zhí)行情況,不當?shù)膶嵺`可能會導致惡意軟件注入、代碼和軟件篡改以及冒充攻擊。

雖說私鑰的安全保護至關重要,但許多開發(fā)者出于便利性考慮,經(jīng)常將其保存在本地電腦或構(gòu)建服務器中來進行自行管理。這使得私鑰更容易被盜用和誤用,同時也給安全團隊制造了盲點。

自2020年SolarWinds黑客攻擊事件之后,證書頒發(fā)機構(gòu)/瀏覽器論壇(CA/B Forum)發(fā)布了一套新的基線要求,用于維護代碼簽名證書,其中要求強制使用HSM(hardware security modules,硬件安全模塊),以及專門用于保護和管理加密密鑰的設備,并實施其他相關措施來保護私鑰。

雖說HSM提供了最高級別的安全性,但同時也帶來了更高的成本、更復雜的操作以及維護需求。除非它們能被集成到DevOps團隊使用的代碼簽名工具中,否則這種脫節(jié)很可能會使得代碼簽名過程變得更加復雜并造成一定的延遲。

隨著行業(yè)資產(chǎn)與服務向云端的遷移,安全性成為了更高的優(yōu)先級,同時云解決方案也為代碼簽名提供了新的可能。云端代碼簽名和HSM不僅加快了開發(fā)速度,增強了靈活性,同時還支持分布式開發(fā)團隊的集中控制,使得整個開發(fā)流程更加順暢,且更容易被安全團隊監(jiān)控。

02

集成代碼簽名之旅

隨著CA/B論壇最近的改革,各組織需要啟動他們的現(xiàn)代化代碼簽名之旅,引入集中控制機制以對開發(fā)團隊進行支持。目前,許多公司仍舊處于“臨時”階段——密鑰被本地管理,且開發(fā)者采用多樣化的代碼簽名工具和流程。然而,有些公司則已經(jīng)通過部署HSM來對密鑰進行保護,實現(xiàn)了集中控制,以便安全團隊可以實現(xiàn)更好的監(jiān)督和管理,但獨立的代碼簽名工具使用仍會對軟件開發(fā)速度造成影響。

一個理想且成熟的體系應該將密鑰安全、代碼簽名工具與開發(fā)工作流程進行集成,確保整個編碼、容器化、工件處理和執(zhí)行過程的無縫流暢與高效。安全團隊需要負責管理HSM,從而實現(xiàn)對代碼簽名過程的完全掌握,同時開發(fā)者也能享受到敏捷且靈活的開發(fā)通道。

以下幾項最佳實踐能夠有效地支持這一轉(zhuǎn)變過程:

密鑰保護:將代碼簽名密鑰存儲在安全的位置,例如符合CA/B論壇加密要求的HSM(FIPS 140-2第2級或共同標準EAL 4+)中。HSM具有防篡改功能,且可防止私鑰被導出。

訪問控制:通過基于角色的訪問控制來最小化未經(jīng)授權訪問和誤用私鑰的風險。定義審批工作流程并執(zhí)行安全策略,只允許必要的員工訪問,并保留審計日志,記錄誰觸發(fā)了簽名請求,誰訪問了密鑰,以及訪問理由。

密鑰輪換:一旦密鑰泄露,所有相關的簽名發(fā)布都可能會受到影響。定期更換代碼簽名密鑰,并為不同的發(fā)布使用不同的密鑰,覆蓋各個DevOps團隊。

給代碼加上時間戳:代碼簽名證書的有效期通常只有一到三年。在代碼簽名時添加時間戳可以在證書過期或被撤銷后,仍然證明簽名的有效性,延長代碼和軟件的信任期限。

代碼完整性核查:在簽名并發(fā)布最終版本前,進行徹底的代碼審查,對比構(gòu)建服務器中與源代碼庫中的代碼,驗證所有開發(fā)者的簽名以確保代碼未被篡改。

集中式管理:在全球化的商業(yè)環(huán)境中,實施集中式代碼簽名流程可以對整個企業(yè)的簽名活動以及證書狀態(tài)進行監(jiān)控,提高管理的透明度,確保責任分明并減少安全風險。

執(zhí)行政策:通過定義和應用一套詳細的政策來對代碼簽名流程進行標準化,包括管理密鑰使用權限、審批流程、密鑰過期時間、CA類型、密鑰大小以及簽名算法等。實現(xiàn)這些政策的自動化執(zhí)行,確保所有代碼、文件和軟件的簽名都符合政策要求以及行業(yè)標準。

簡化代碼簽名流程:通過將代碼簽名與CI/CD工具集成和自動化,簡化DevOps團隊的工作流程。不僅保證安全性,同時提高效率和靈活性。

在當今軟件開發(fā)的持續(xù)集成(CI)和持續(xù)部署(CD)環(huán)境中,實施強大的代碼簽名流程成為了提高安全性的關鍵策略。這種最佳實踐不僅為建立開發(fā)過程中的信任機制提供了可靠的方法,同時也還有助于確保軟件供應鏈的整體安全性得到加強。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論