01?實(shí)況報(bào)道
最近的新聞報(bào)道稱, 遠(yuǎn)程訪問(wèn)解決方案公司AnyDesk遭到了黑客的入侵。這也引發(fā)了業(yè)界對(duì)于代碼簽名實(shí)踐以及軟件供應(yīng)鏈安全的關(guān)注與重視。
代碼簽名的用途在于為軟件、固件或應(yīng)用添加數(shù)字簽名,以確保用戶的代碼來(lái)自可信源并且在上次簽名后未被篡改。但代碼簽名的實(shí)際效用取決于其執(zhí)行情況,不當(dāng)?shù)膶?shí)踐可能會(huì)導(dǎo)致惡意軟件注入、代碼和軟件篡改以及冒充攻擊。
雖說(shuō)私鑰的安全保護(hù)至關(guān)重要,但許多開(kāi)發(fā)者出于便利性考慮,經(jīng)常將其保存在本地電腦或構(gòu)建服務(wù)器中來(lái)進(jìn)行自行管理。這使得私鑰更容易被盜用和誤用,同時(shí)也給安全團(tuán)隊(duì)制造了盲點(diǎn)。
自2020年SolarWinds黑客攻擊事件之后,證書(shū)頒發(fā)機(jī)構(gòu)/瀏覽器論壇(CA/B Forum)發(fā)布了一套新的基線要求,用于維護(hù)代碼簽名證書(shū),其中要求強(qiáng)制使用HSM(hardware security modules,硬件安全模塊),以及專門(mén)用于保護(hù)和管理加密密鑰的設(shè)備,并實(shí)施其他相關(guān)措施來(lái)保護(hù)私鑰。
雖說(shuō)HSM提供了最高級(jí)別的安全性,但同時(shí)也帶來(lái)了更高的成本、更復(fù)雜的操作以及維護(hù)需求。除非它們能被集成到DevOps團(tuán)隊(duì)使用的代碼簽名工具中,否則這種脫節(jié)很可能會(huì)使得代碼簽名過(guò)程變得更加復(fù)雜并造成一定的延遲。
隨著行業(yè)資產(chǎn)與服務(wù)向云端的遷移,安全性成為了更高的優(yōu)先級(jí),同時(shí)云解決方案也為代碼簽名提供了新的可能。云端代碼簽名和HSM不僅加快了開(kāi)發(fā)速度,增強(qiáng)了靈活性,同時(shí)還支持分布式開(kāi)發(fā)團(tuán)隊(duì)的集中控制,使得整個(gè)開(kāi)發(fā)流程更加順暢,且更容易被安全團(tuán)隊(duì)監(jiān)控。
02?集成代碼簽名之旅
隨著CA/B論壇最近的改革,各組織需要啟動(dòng)他們的現(xiàn)代化代碼簽名之旅,引入集中控制機(jī)制以對(duì)開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行支持。目前,許多公司仍舊處于“臨時(shí)”階段——密鑰被本地管理,且開(kāi)發(fā)者采用多樣化的代碼簽名工具和流程。然而,有些公司則已經(jīng)通過(guò)部署HSM來(lái)對(duì)密鑰進(jìn)行保護(hù),實(shí)現(xiàn)了集中控制,以便安全團(tuán)隊(duì)可以實(shí)現(xiàn)更好的監(jiān)督和管理,但獨(dú)立的代碼簽名工具使用仍會(huì)對(duì)軟件開(kāi)發(fā)速度造成影響。
一個(gè)理想且成熟的體系應(yīng)該將密鑰安全、代碼簽名工具與開(kāi)發(fā)工作流程進(jìn)行集成,確保整個(gè)編碼、容器化、工件處理和執(zhí)行過(guò)程的無(wú)縫流暢與高效。安全團(tuán)隊(duì)需要負(fù)責(zé)管理HSM,從而實(shí)現(xiàn)對(duì)代碼簽名過(guò)程的完全掌握,同時(shí)開(kāi)發(fā)者也能享受到敏捷且靈活的開(kāi)發(fā)通道。
以下幾項(xiàng)最佳實(shí)踐能夠有效地支持這一轉(zhuǎn)變過(guò)程:
密鑰保護(hù):將代碼簽名密鑰存儲(chǔ)在安全的位置,例如符合CA/B論壇加密要求的HSM(FIPS 140-2第2級(jí)或共同標(biāo)準(zhǔn)EAL 4+)中。HSM具有防篡改功能,且可防止私鑰被導(dǎo)出。
訪問(wèn)控制:通過(guò)基于角色的訪問(wèn)控制來(lái)最小化未經(jīng)授權(quán)訪問(wèn)和誤用私鑰的風(fēng)險(xiǎn)。定義審批工作流程并執(zhí)行安全策略,只允許必要的員工訪問(wèn),并保留審計(jì)日志,記錄誰(shuí)觸發(fā)了簽名請(qǐng)求,誰(shuí)訪問(wèn)了密鑰,以及訪問(wèn)理由。
密鑰輪換:一旦密鑰泄露,所有相關(guān)的簽名發(fā)布都可能會(huì)受到影響。定期更換代碼簽名密鑰,并為不同的發(fā)布使用不同的密鑰,覆蓋各個(gè)DevOps團(tuán)隊(duì)。
給代碼加上時(shí)間戳:代碼簽名證書(shū)的有效期通常只有一到三年。在代碼簽名時(shí)添加時(shí)間戳可以在證書(shū)過(guò)期或被撤銷后,仍然證明簽名的有效性,延長(zhǎng)代碼和軟件的信任期限。
代碼完整性核查:在簽名并發(fā)布最終版本前,進(jìn)行徹底的代碼審查,對(duì)比構(gòu)建服務(wù)器中與源代碼庫(kù)中的代碼,驗(yàn)證所有開(kāi)發(fā)者的簽名以確保代碼未被篡改。
集中式管理:在全球化的商業(yè)環(huán)境中,實(shí)施集中式代碼簽名流程可以對(duì)整個(gè)企業(yè)的簽名活動(dòng)以及證書(shū)狀態(tài)進(jìn)行監(jiān)控,提高管理的透明度,確保責(zé)任分明并減少安全風(fēng)險(xiǎn)。
執(zhí)行政策:通過(guò)定義和應(yīng)用一套詳細(xì)的政策來(lái)對(duì)代碼簽名流程進(jìn)行標(biāo)準(zhǔn)化,包括管理密鑰使用權(quán)限、審批流程、密鑰過(guò)期時(shí)間、CA類型、密鑰大小以及簽名算法等。實(shí)現(xiàn)這些政策的自動(dòng)化執(zhí)行,確保所有代碼、文件和軟件的簽名都符合政策要求以及行業(yè)標(biāo)準(zhǔn)。
簡(jiǎn)化代碼簽名流程:通過(guò)將代碼簽名與CI/CD工具集成和自動(dòng)化,簡(jiǎn)化DevOps團(tuán)隊(duì)的工作流程。不僅保證安全性,同時(shí)提高效率和靈活性。
在當(dāng)今軟件開(kāi)發(fā)的持續(xù)集成(CI)和持續(xù)部署(CD)環(huán)境中,實(shí)施強(qiáng)大的代碼簽名流程成為了提高安全性的關(guān)鍵策略。這種最佳實(shí)踐不僅為建立開(kāi)發(fā)過(guò)程中的信任機(jī)制提供了可靠的方法,同時(shí)也還有助于確保軟件供應(yīng)鏈的整體安全性得到加強(qiáng)。
數(shù)世點(diǎn)評(píng)
代碼簽名是軟件開(kāi)發(fā)過(guò)程中保障安全性和增強(qiáng)用戶信任的核心機(jī)制,同時(shí)也是建立健全數(shù)字生態(tài)系統(tǒng)的關(guān)鍵步驟。它通過(guò)數(shù)字證書(shū)確認(rèn)軟件的出處和完整性,確保用戶在下載和安裝時(shí),軟件未被篡改或損害。
對(duì)于開(kāi)發(fā)者,采用代碼簽名不僅有助于構(gòu)建和維護(hù)其品牌的正面形象,還能有效抵御惡意軟件的侵害,保護(hù)其成果不受未授權(quán)的篡改。此外,代碼簽名還使得消費(fèi)者可以驗(yàn)證軟件的來(lái)源,增加了對(duì)產(chǎn)品的信任。
在今天網(wǎng)絡(luò)安全日益重要的背景下,代碼簽名的作用變得尤為顯著,成為連接開(kāi)發(fā)者與用戶之間信任橋梁的重要工具。
來(lái)源:數(shù)世咨詢