行政命令 (EO) 14028 第 4e 節(jié)
軟件供應(yīng)鏈安全指南
2022 年 2 月 4 日
翻譯 樊山
介紹
2021 年 5 月 12 日關(guān)于改善國家網(wǎng)絡(luò)安全的第 14028 號行政命令 (EO) 指示美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 發(fā)布軟件供應(yīng)鏈安全實踐指南。第 4e 節(jié)以以下文本開頭,其后為十個編號項目,為簡潔起見此處省略。
(第 4e 節(jié))在根據(jù)本節(jié) (c) 小節(jié)發(fā)布初步指南后的 90 天內(nèi),商務(wù)部長通過 NIST 主任與 NIST 主任認為適當(dāng)?shù)拇祟悪C構(gòu)的負責(zé)人協(xié)商,應(yīng)發(fā)布指南,確定增強軟件供應(yīng)鏈安全性的實踐。此類指南可能包含根據(jù)本節(jié) (c) 和 (i) 小節(jié)發(fā)布的指南。
EO 還指示管理和預(yù)算辦公室 (OMB) 要求各機構(gòu)遵守已發(fā)布的指南。
(第 4k 節(jié))在本節(jié) (e) 小節(jié)所述指南發(fā)布后 30 天內(nèi),OMB 主任通過 OMB 內(nèi)的電子政府辦公室管理員行事,應(yīng)采取適當(dāng)措施,要求各機構(gòu)遵守此類指南對于在本訂單日期之后采購的軟件。
為了收集有關(guān)指南可能實踐的意見,NIST 從社區(qū)征集立場文件,于 6 月舉辦了一次虛擬研討會,并于 11 月舉辦了第二次虛擬研討會,與其他聯(lián)邦機構(gòu)協(xié)商,并審查了現(xiàn)有的聯(lián)邦指南。
本文檔首先解釋 NIST 處理第 4e 節(jié)的方法。接下來,它為承擔(dān)軟件采購相關(guān)職責(zé)的聯(lián)邦機構(gòu)工作人員(例如,采購和采購官員、專業(yè)技術(shù)人員)定義了指導(dǎo)方針。這些指南旨在幫助聯(lián)邦機構(gòu)工作人員了解軟件生產(chǎn)商需要哪些信息來了解他們的安全軟件開發(fā)實踐。本文檔以提供更多信息的常見問題 (FAQ) 結(jié)尾。
指導(dǎo)目的和范圍
EO 14028 強調(diào)“聯(lián)邦政府使用的軟件的安全性對于聯(lián)邦政府執(zhí)行其關(guān)鍵職能的能力至關(guān)重要”,并且“迫切需要實施更嚴格和可預(yù)測的機制以確保產(chǎn)品安全運行,以及如預(yù)期。”因此,出于三個原因,應(yīng)在整個軟件生命周期中集成安全軟件開發(fā)實踐:1) 減少已發(fā)布軟件中漏洞的數(shù)量,2) 減少利用未檢測到或未解決的漏洞的潛在影響,以及 3) 解決防止漏洞再次發(fā)生的根本原因。 [SP 800-218]
EO 14028 第 4e 節(jié)包含 10 個小節(jié)或項目。它們中的每一個都為軟件生產(chǎn)商指定了行動或結(jié)果,例如商業(yè)現(xiàn)貨 (COTS) 產(chǎn)品供應(yīng)商、政府現(xiàn)貨 (GOTS) 軟件開發(fā)商、承包商和其他定制軟件開發(fā)商。在 EO 14028 發(fā)布之前,NIST 已經(jīng)發(fā)布了最初的安全軟件開發(fā)框架 (SSDF),它定義了基于結(jié)果的安全軟件開發(fā)實踐和軟件生產(chǎn)商要遵循的任務(wù)。
最初的 SSDF 已經(jīng)解決了第 4e 節(jié)中的大部分項目。NIST 此后修訂了 SSDF 以解決第 4e 節(jié)的所有項目,從而產(chǎn)生了 SP 800-218,安全軟件開發(fā)框架 (SSDF) 版本 1.1:降低軟件漏洞風(fēng)險的建議。常見問題解答 #7 包含每個第 4e 節(jié)項目與幫助解決它的 SSDF 實踐和任務(wù)的映射。
SP 800-218 從軟件生產(chǎn)者的角度解決了第 4e 節(jié)。軟件生產(chǎn)者是實施 SSDF 實踐的人。第 4k 節(jié)解釋說,聯(lián)邦機構(gòu)將需要遵守針對第 4e 節(jié)的 NIST 指南。在這種情況下,聯(lián)邦機構(gòu)是軟件購買者,而不是軟件生產(chǎn)者,因此需要額外的指導(dǎo)來從軟件購買者的角度來處理第 4e 節(jié)。本文檔定義了該指南。
本文檔向聯(lián)邦機構(gòu)提供建議,以確保他們采購的軟件生產(chǎn)商在整個軟件生命周期中一直遵循基于風(fēng)險的安全軟件開發(fā)方法。這些建議旨在幫助聯(lián)邦機構(gòu)從軟件生產(chǎn)商那里獲得他們需要的信息,這些信息可以用來做出基于風(fēng)險的軟件采購決策。這些建議從軟件購買者(聯(lián)邦機構(gòu))的角度解決了第 4e 節(jié)中的所有項目。它們涉及軟件生產(chǎn)商,通過向聯(lián)邦機構(gòu)購買者提供工件和/或證明符合性,將其與安全軟件開發(fā)實踐的符合性作為其內(nèi)部流程的一部分。
本指南的范圍僅限于聯(lián)邦機構(gòu)采購軟件,包括固件、操作系統(tǒng)、應(yīng)用程序和應(yīng)用程序服務(wù)(例如,基于云的軟件)以及包含軟件的產(chǎn)品。已實施軟件的位置(例如本地或云托管)無關(guān)緊要。聯(lián)邦機構(gòu)開發(fā)的軟件超出范圍,聯(lián)邦機構(gòu)免費直接獲得的開源軟件也是如此。由聯(lián)邦機構(gòu)購買的軟件捆綁、集成或以其他方式使用的開源軟件在范圍內(nèi)。
術(shù)語
第 4e 節(jié)使用了幾個術(shù)語,包括“符合性”、“證明”和“人工制品”。由于 EO 14028 沒有定義這些術(shù)語,因此本指南提供了現(xiàn)有標(biāo)準(zhǔn)和指南中的以下定義:
? 合格評定(Conformity assessment)是“滿足特定要求的證明”。 [ISO/IEC 17000] 在第 4e 節(jié)的上下文中,要求是安全的軟件開發(fā)實踐,因此合格評定表明軟件生產(chǎn)商已經(jīng)為其軟件遵循了安全的軟件開發(fā)實踐。
? 證明(Attestation)是“根據(jù)決定發(fā)表聲明,表明已證明滿足特定要求”。 [ISO/IEC 17000]
? 如果軟件生產(chǎn)商自己證明它符合安全軟件開發(fā)實踐,這可以通過幾個術(shù)語來了解,包括第一方證明、自我證明、聲明和供應(yīng)商的符合性聲明 (SDoC)。
? 如果軟件購買者證明軟件生產(chǎn)者符合安全軟件開發(fā)實踐,這稱為第二方證明。
? 如果獨立第三方證明軟件生產(chǎn)商符合安全軟件開發(fā)實踐,這稱為第三方證明或認證。
? 人工制品是“證據(jù)”。 [改編自 NISTIR 7692] 證據(jù)是“是否相信的理由;數(shù)據(jù)作為證明或確定真假的依據(jù)?!?[NIST SP 800-160 卷.1] 工件提供安全軟件開發(fā)實踐的記錄。
? 在軟件開發(fā)過程中將生成低級工件,例如威脅模型、日志條目、源代碼文件、源代碼漏洞掃描報告、測試結(jié)果、遙測或特定軟件的基于風(fēng)險的緩解決策。這些工件可以手動或通過自動方式生成,并由軟件生產(chǎn)者維護。
? 可以通過總結(jié)源自低級工件的安全軟件開發(fā)實踐來生成高級工件。高級工件的一個示例是可公開訪問的文檔,該文檔描述了軟件生產(chǎn)者用于軟件開發(fā)的安全實踐的方法、過程和流程。
EO 14028 第 4e 節(jié)的以下小節(jié)使用這些術(shù)語:
(ii) 生成并在購買者要求時提供證明符合本節(jié) (e)(i) 小節(jié)所述流程的工件;
(v) 當(dāng)買方要求時,提供執(zhí)行本節(jié) (e)(iii) 和 (iv) 小節(jié)中描述的工具和過程的工件,并公開完成這些操作的摘要信息,以包括對評估和減輕的風(fēng)險的簡要描述;
(ix) 證明符合安全軟件開發(fā)實踐;
換言之,當(dāng)聯(lián)邦機構(gòu)(購買者)購買軟件或包含軟件的產(chǎn)品時,該機構(gòu)應(yīng)從軟件生產(chǎn)商處獲得軟件開發(fā)符合政府規(guī)定的安全軟件開發(fā)實踐的證明。聯(lián)邦機構(gòu)還可能要求軟件生產(chǎn)商提供工件,以支持其證明符合第 4e 節(jié) (i)、(iii) 和 (iv) 小節(jié)中描述的安全軟件開發(fā)實踐,這些小節(jié)在此處列出:
(i) 安全的軟件開發(fā)環(huán)境,包括以下行動:
A. 使用管理上獨立的構(gòu)建環(huán)境;
B. 審計信任關(guān)系;
C. 在整個企業(yè)范圍內(nèi)建立多因素、基于風(fēng)險的身份驗證和條件訪問;
D. 記錄并最大限度地減少對企業(yè)產(chǎn)品的依賴,這些產(chǎn)品是用于開發(fā)、構(gòu)建和編輯軟件的環(huán)境的一部分;
E. 對數(shù)據(jù)進行加密;和
F. 監(jiān)控操作和警報,并對嘗試的和實際的網(wǎng)絡(luò)事件做出響應(yīng);
(iii) 采用自動化工具或類似流程來維護受信任的源代碼供應(yīng)鏈,從而確保代碼的完整性;
(iv) 使用自動化工具或類似流程來檢查已知和潛在漏洞并進行修復(fù),這些工具應(yīng)定期運行,或至少在產(chǎn)品、版本或更新發(fā)布之前運行;
證明符合安全軟件開發(fā)實踐
NIST 為聯(lián)邦機構(gòu)在獲取軟件或包含軟件的產(chǎn)品時定義了以下最低建議。這些建議旨在幫助聯(lián)邦機構(gòu)和軟件生產(chǎn)商就安全的軟件開發(fā)工件、證明和一致性進行清晰的溝通。
使用 SSDF 的術(shù)語和結(jié)構(gòu)來組織有關(guān)安全軟件開發(fā)要求的交流。這使得所有軟件生產(chǎn)商在為聯(lián)邦機構(gòu)證明符合性時都可以使用相同的詞典。軟件生產(chǎn)商可以將他們的安全開發(fā)方法映射到 SSDF 的安全軟件開發(fā)實踐或相關(guān)的信息參考。
要求證明涵蓋作為整個軟件生命周期過程和程序的一部分執(zhí)行的安全軟件開發(fā)實踐。由于當(dāng)今軟件的高度動態(tài)性,證明事情是如何在持續(xù)的基礎(chǔ)上完成的(流程和程序)通常比證明這些流程的一個實例生成的特定軟件版本的事情是如何完成的更有價值。對于諸如漏洞披露和響應(yīng)之類的發(fā)布后實踐尤其如此,其中可能尚未針對最新版本執(zhí)行流程。
接受符合 SSDF 實踐的第一方證明,除非基于風(fēng)險的方法確定需要第二方或第三方證明。建議使用第一方證明來滿足 EO 14028 的要求。這與 NIST SP 800-161 Rev. 1(第二稿)中的指南一致,該指南在第 3.1.2 節(jié)中指出:“有多種可接受的驗證和重新驗證方法,例如必要的認證、現(xiàn)場訪問、第三方黨的評估,或自我證明。所需方法的類型和嚴格程度應(yīng)與所獲得的服務(wù)或產(chǎn)品的重要性以及相應(yīng)的保證要求相稱?!?/p>
當(dāng)請求一致性工件時,請求高級工件。軟件生產(chǎn)者應(yīng)該能夠?qū)⒏呒壒ぜ锌偨Y(jié)的實踐跟蹤到由這些實踐生成的相應(yīng)低級工件。不建議為特定軟件版本要求低級工件以滿足 EO 14028 的要求,但可能需要滿足其他機構(gòu)的要求。避免低級工件的原因包括:
? 低級工件僅提供安全軟件開發(fā)的一小部分的時間快照,而高級工件可以提供有關(guān)如何執(zhí)行安全軟件開發(fā)的全局視圖。
? 人工制品應(yīng)滿足接收它們的受眾的需求,從而以可用的格式為該受眾提供必要的信息。了解低級工件需要機構(gòu)花費大量技術(shù)資源和專業(yè)知識來分析它們并確定如何在更廣泛的安全軟件開發(fā)實踐的背景下考慮它們。
? 低級工件通常包含知識產(chǎn)權(quán)或其他專有信息,或攻擊者可用于惡意目的的詳細信息,因此接受低級工件可為機構(gòu)提供額外的敏感信息以保護。
這些最低建議適用于聯(lián)邦機構(gòu)采購的本指南范圍內(nèi)的所有軟件的證明,它們應(yīng)該是每個機構(gòu)流程的一部分。這些建議并非旨在取代聯(lián)邦機構(gòu)可能對安全軟件開發(fā)提出的更嚴格的要求。
在某些情況下,這些最低限度的做法是不夠的。例如,一個機構(gòu)可能需要更深入地了解特定產(chǎn)品的實踐,以便更好地了解該產(chǎn)品將如何影響該機構(gòu)的網(wǎng)絡(luò)安全風(fēng)險。正如 SP 800-161 Rev. 1(第二稿)第 1.4.2 節(jié)中所討論的,要求對實踐有更高可見度的機構(gòu)可能會增加軟件生產(chǎn)商的成本,從而可能會增加產(chǎn)品價格。有關(guān)這些注意事項的更多信息,請參見 SP 800-161 Rev. 1。
常見問題
以下常見問題解答提供了有關(guān)該指南的更多信息。我在哪里可以了解更多關(guān)于合格評定的信息?
有關(guān)合格評定的更多詳細信息,請參閱 NIST SP 2000-01,ABC's of Conformity Assessment; NIST SP 2000-02,聯(lián)邦機構(gòu)的合格評定注意事項;和 ISO/IEC 17000:2020 – 合格評定 – 詞匯和一般原則。 NIST SP 2000-01 和 SP 2000-02 參考了 ISO/IEC 17000 并引用了其中的幾個定義,包括“合格評定”。我在哪里可以了解更多關(guān)于第一方認證和供應(yīng)商符合性聲明的信息?
更多信息可從 NIST SP 2000-01、ABC 的合格評定和 ISO/IEC 17050-1:2004、合格評定 - 供應(yīng)商的合格聲明 - 第 1 部分:一般要求中獲得。NIST 是否有關(guān)于網(wǎng)絡(luò)安全供應(yīng)鏈風(fēng)險管理 (C-SCRM) 的額外資源?
是的,請參閱 NIST 的 C-SCRM 項目網(wǎng)站以獲取所有資源的鏈接。 NIST 主持的聯(lián)邦 C-SCRM 論壇就是一個例子。該論壇促進聯(lián)邦機構(gòu)之間的協(xié)作和 C-SCRM 信息交換,以提高聯(lián)邦供應(yīng)鏈的安全性。 NIST C-SCRM 指南的示例包括 SP 800-161,聯(lián)邦信息系統(tǒng)和組織的供應(yīng)鏈風(fēng)險管理實踐和 SP 800-161 Rev. 1(第二稿),系統(tǒng)和組織的網(wǎng)絡(luò)安全供應(yīng)鏈風(fēng)險管理實踐。EO 14028 的任何其他部分是否與本指南相關(guān)?
是的。第 4n 節(jié)引用了第 4k 節(jié),這在本指南的介紹中進行了討論。以下是第 4n 條的文本:(第 4n 條)在本命令發(fā)出之日起 1 年內(nèi),國土安全部部長與國防部長、司法部長、OMB 主任和行政長官協(xié)商OMB 內(nèi)的電子政府辦公室應(yīng)向 FAR 委員會推薦合同語言,要求可供機構(gòu)購買的軟件供應(yīng)商遵守并證明遵守根據(jù)本節(jié) (g) 至 (k) 小節(jié)發(fā)布的任何要求.機構(gòu)可以將此指南應(yīng)用于聯(lián)邦機構(gòu)開發(fā)的軟件嗎?
是的,機構(gòu)可以選擇與基于機構(gòu)的軟件開發(fā)人員一起實施這些建議,以幫助評估與其軟件相關(guān)的安全風(fēng)險,并就其實施和使用做出基于風(fēng)險的決策。代理機構(gòu)能否將本指南應(yīng)用于他們免費直接獲得的開源軟件?
是的,機構(gòu)可以選擇使用來自提供此類內(nèi)容的開源軟件生產(chǎn)商的證明和工件。這可以幫助機構(gòu)評估與軟件相關(guān)的安全風(fēng)險,并就其實施和使用做出基于風(fēng)險的決策。-
SSDF 如何幫助解決 EO 14028 的第 4e 節(jié)?
下表將每個第 4e 小節(jié)映射到有助于解決每個小節(jié)的 SSDF 實踐和任務(wù)。有關(guān)每個 SSDF 實踐和任務(wù)的更多信息,請參閱 SP 800-218。
與 EO 14028 小節(jié)相對應(yīng)的 SSDF 實踐
image.png
image.png 我為我的機構(gòu)承擔(dān)與軟件采購相關(guān)的職責(zé)(例如,采購和采購官員、技術(shù)專業(yè)人員)。為了符合 EO 14028 的第 4e 節(jié),我應(yīng)該向軟件生產(chǎn)商提出哪些關(guān)于其安全軟件開發(fā)實踐的要求?
來自聯(lián)邦機構(gòu)的軟件購買者應(yīng)要求軟件生產(chǎn)商提供一致性聲明,證明他們的軟件開發(fā)過程遵循 SSDF 實踐,包括常見問題解答 #7 中第 4e 節(jié)中特別提到的那些。一致性聲明應(yīng)包括:
? 軟件生產(chǎn)商的名稱
? 對聲明所指產(chǎn)品的描述。 (注意:最好在公司或產(chǎn)品線級別而不是按產(chǎn)品來解決這個問題。)
? 一份聲明,證明軟件生產(chǎn)者遵循常見問題解答 #7 中適當(dāng)且適用的安全開發(fā)實踐和任務(wù)
? 作為主要聯(lián)系人的個人的姓名和職務(wù),如果購買者要求,可以提供與 EO 14028 第 4e(i)、4e(iii) 和 4e 節(jié)相關(guān)的安全軟件開發(fā)活動生成的工件( iv)我是一名軟件生產(chǎn)者,我想將我的產(chǎn)品賣給聯(lián)邦機構(gòu)。我需要向他們提供哪些有關(guān)安全軟件開發(fā)的信息?
您應(yīng)該提供一致性聲明,F(xiàn)AQ #8 中對此進行了描述。此外,您可以選擇超過 EO 14028 第 4e 節(jié)的要求,方法是提供與 SSDF 實踐和任務(wù)相關(guān)的安全軟件開發(fā)活動摘要的參考或 URL,包括基于風(fēng)險的和緩解措施。此處發(fā)布了一個示例模板,以便在記錄活動時重復(fù)使用。我是一名軟件經(jīng)銷商。我如何向購買者表明我轉(zhuǎn)售的軟件符合 EO 14028 第 4e 節(jié)的要求?
對于您轉(zhuǎn)售給軟件購買者的每個軟件,您應(yīng)確保您可以提供對軟件生產(chǎn)商一致性聲明的參考,如常見問題解答 #8 中所述。

