密碼在軟件供應鏈安全應用
為進一步推動產業發展,更好地匯聚產學研用各方力量,聚焦關鍵軟件領域密碼應用核心問題,不斷夯實軟件產業發展基礎,共同推動軟件產業和密碼技術融合發展,12月18日,“2021年商用密碼應用創新高端研討會”在經開區國家信創園成功召開。在會上,中關村網絡安全與信息化產業聯盟EMCG工作組組長王克帶來題為《密碼在軟件供應鏈安全中的應用》的演講。

一、軟件供應鏈基本概念
背景:
2021年5月12日,拜登簽署國家執行指令(EO-14028)《改進國家網絡安全》提出24條“加強軟件供應鏈安全”。至此,美國政府對網絡空間軟件供應鏈安全治理拉開序幕。

關鍵詞:
軟件供應鏈安全(software supply chain security)
關鍵軟件(critical software)
軟件物料清單(software bill of materials,SBOM)
軟件透明度/可見性/可追溯性(transparency/visibility/traceability)
軟件標簽(software tag,label)
- 執行指令(EO-14028)“加強軟件供應鏈安全”涉及機構

- 執行指令(EO-14028)“加強軟件供應鏈安全”任務、期限及完成情況

- 軟件供應鏈框架形成(ISO、NIST、政府)

- 網絡安全事件:
1、2020年SolarWinds(太陽風)
2、2021年
3月Exchange郵件系統軟件漏洞
5月Colonial管道公司勒索軟件攻擊
12月Apache開源項目Log4j2漏洞
- 早期事件:
1、2010年伊朗核電站震網病毒
2、2016烏克蘭發電廠遭軟件攻擊
3、2017年勒索軟件WannaCry(美國國家安全局(NSA)泄露)
- 軟件代碼安全
開源代碼。甚至政務、金融、能源等重要行業使用的軟件有十八年前的開源代碼,軟件責任不可追溯,存在極大安全隱患。

- 軟件資產
另一方面,由于軟件沒有作為組織機構、企業的資產,軟件處于無臺賬狀態,pc、服務器、云計算、移動App不審核、不檢測、不簽名的現象比較普遍,軟件安全風險不能有效控制;檢測版本與實際系統運行版本存在差異,使得大量實際系統運行軟件存在來源不明,版本不一致,漏檢代碼運行帶來軟件安全隱患。
網絡空間處于“誰進來了不知道、是敵是友不知道、干了什么不知道。”的不可知、不可控狀態。
1、基本概念
- 供應鏈(Supply Chain)
《網絡供應鏈風險管理》(NIST.SP800-161 Rev.1 2021):指各級企業之間鏈接的資源和流程,每個企業都是從產品和服務的采購開始,延伸到產品生命周期的收購方。
《防范軟件供應鏈攻擊》(CISA&NIST 2021.4):是由參與硬件、軟件和管理服務的銷售、交付和生產的零售商、分銷商和供應商組成的網絡。
——一個產品所涉及的不同實體構成的資源、過程的鏈接。——一種關系
多實體:最少兩個實體
有向性:上游和下游,提供和接受
?軟件供應鏈(Software Supply Chain)
——一個軟件所涉及的不同實體構成的代碼、服務的鏈接。——一種關系
多實體:最少兩個實體
有向性:上游和下游,提供和接受
《防范軟件供應鏈攻擊》(CISA&NIST2021.4):ICT供應鏈生命周期有六個階段:設計、開發和生產、分配、獲得和部署、維護,軟件也有這六個階段。
- 軟件供應鏈安全(Software Supply Chain Security)
在供應鏈生命周期每個階段,軟件被有意或無意引入惡意代碼和漏洞,給系統帶來的安全風險。(聚焦惡意代碼和漏洞,非可靠性、斷貨風險)
- 軟件供應鏈安全治理Software Supply Chain Security Governance
處理實體之間的關系,不只解決軟件自身問題(如漏洞挖掘)。
三個關系:信任關系、責任關系、技術關系。
處理軟件供應鏈全過程關系,不只解決某一環節的問題(如DevSecOps)。
解決軟件可見性、可追溯性問題:軟件是誰編制的?軟件安全性能如何?代碼是否被破壞?
處理多個實體關系依靠統一規范、標準。

- 軟件資產管理(Software Asset Management,SWAM)
一個計算機中的軟件包括固件、基本輸入/輸出系統(BIOS)、操作系統、應用程序、惡意軟件,如工具包、木馬、病毒和蠕蟲。
?軟件資產Software Asset:一行源代碼,或一個由多個產品、數千個可執行文件以及無數行代碼組成的軟件套件。軟件資產兩種形式存在:一是軟件產品,二是可執行文件。
- 軟件資產目錄(Inventory of Software):
為企業每個計算設備安裝/執行的軟件產品和可執行文件建立管理臺賬(軟件注冊表SRL)。
- 解決的問題:
軟件授權
軟件從可信供應商獲得
減少軟件攻擊
- 技術方法:
白名單—只運行“已知的好的”或可信的軟件
黑名單—禁止運行“已知的壞軟件”或不可受信任的軟件
灰名單—目前不知是好還是壞的軟件,暫時可運行。
- 軟件數字簽名(Code Digital Signature)
白名單軟件產品可執行文件具備軟件數字簽名(或數字指紋),以識別軟件是否被非法修改,加入惡意代碼。對于自研軟件,應進行軟件數字簽名。
- 軟件物料清單(Software Bill of Materials,SBOM)
ED-14028指示商務部國家電信和信息管理局(NTIA),發布軟件物料清單(SBOM)的“最小要素”。美國政府已將SBOM確定為推動軟件供應鏈風險管理的優先事項。
一個格式化記錄,包含在構建軟件使用的各種組件細節和供應鏈關系。軟件供應鏈安全治理手段。

SBOM的概念源自制造業,其中物料清單是詳細說明產品中包含的所有項目的清單。例如:每輛車有一份詳細的材料清單,列出了原始設備制造商自己制造和第三方供應商的零件。發現有缺陷的部件時,汽車制造商可以準確地知道哪些車輛受到影響,并通知車主維修或更換。SBOM為生產、購買和操作軟件提供信息,以增強對供應鏈的理解,跟蹤已知或新漏洞、風險。在此基礎上構建安全工具,作為提高軟件透明度的方法基礎。
- 軟件標識(SWID)標簽(Software Identification Tag)
ISO-IEC19770-2-2015_軟件資產管理—軟件標識標簽:一種標準化的數據結構,XML語言描述,支持軟件資產管理自動化。SWID標簽定義了三種標簽:軟件身份標簽、軟件補丁和補充標簽。
例子:軟件身份標簽

- 軟件標簽(Software label)
EO-14028要求國家標準與技術研究所(NIST)與聯邦貿易委員會(FTC)和其他機構協調,啟動網絡安全標簽(Software label)的試點項目。2021.11.1,NIST發布《消費者軟件網絡安全標簽的基線標準草案》。

二、密碼在軟件供應鏈安全中的應用
軟件供應鏈安全重點:提高軟件可視化、代碼完整性和可追溯性。
軟件可視化主要采用軟件物料清單(SBOM)技術;軟件完整性、可追溯性采用數字簽名/驗證密碼技術。
1、國際互聯網頭部企業合作
Google2017年與7家技術公司在聯合推出Grafeas開源計劃,為企業定義統一的審計、管理使用開源項目方法。
Linux基金會在軟件物料清單(SBOM)管理方面,建立了SPDX(The Software Package Data Exchange,軟件包數據交換),為組織共享軟件數據提供通用規范格式。7月29日全球開展《SBOM準備情況調查》。
ISO國際標準化組織,2015年發布SWID(Software Identification,軟件標識)標簽標準ISO/IEC 19770-2:2015,為組織跟蹤設備商安裝的軟件提供一種透明方式。

2、國際互聯網頭部企業合作開展軟件簽名
2021年3月10日,谷歌、Linux基金會、Red Hat以及普渡大學共同推出開源軟件簽名服務sigstore項目,提高軟件供應鏈安全。
——sigstore
提供免費證書和自動化工具,所有的證書和認證都是全球可見的、可發現的和可審計的。
讓開發人員能夠更輕松地簽名軟件發布,讓用戶更容易進行驗證。
——Grafeas開源計劃
提供一種統一審計和管理軟件供應鏈方式。同時,推出Kritis,對容器鏡像進行簽名驗證,確保只部署經過可信授權方簽名的容器鏡像,降低運行惡意代碼風險。
——TagVault.org
軟件標簽注冊和認證機構(社區),為軟件發布商提供生成滿足CPE及SWID標準的軟件認證標簽工具,并對認證標簽進行數字簽名,確保數據權威性,任何查看標簽數據的人均可驗證數據的來源,以滿足ISO/IEC19770-2:2015標準要求。
3、國內情況——標準
GB/T 36637-2018《信息安全技術ICT供應鏈安全風險管理指南》,中國電子技術標準化研究院、中科院軟件所、聯想、華為、螞蟻金服、阿里、京東、浪潮等單位起草。
GB/T 22239-2019《信息安全技術信息系統安全等級保護基本要求》對軟件采購、供應商選擇、資產管理、外包軟件開發、漏洞與風險管理、移動app來源及開發者實名簽名等提出要求。
GB/T 39786-2021《信息安全技術信息系統密碼應用基本要求》宜采用密碼技術對重要可執行程序進行完整性保護,并對其來源進行真實性驗證。
T/ZSA 3001.01-2016《企業移動智能終端應用開發、安裝、運行管控機制指南》規范企業App開發者審核、軟件開發、軟件審核與檢測、軟件簽名及驗證、軟件發布、軟件安裝及運行監管等過程。
T/ZSA 37-2020《移動智能終端密碼技術政企應用指南》提出移動App雙簽名與驗證機制。
中關村網絡安全與信息化產業聯盟、中關村標準化協會2016年發布T/ZSA 3001.01-2016《企業移動智能終端應用開發、安裝、運行管控機制指南》。
標準規定了企業移動應用軟件(App)開發者審核、軟件開發、軟件審核與檢測、軟件簽名及驗證、軟件發布、軟件安裝及運行監管等過程,為移動智能終端廠商、應用開發者、企業應用軟件服務商實施企業移動應用軟件(App)資產生命期管理提供指南。

中關村網絡安全與信息化產業聯盟、中關村標準化協會發布T/ZSA 37-2020《移動智能終端密碼技術政企應用指南》。標準提供了移動智能終端App雙簽名與驗證機制,為政府、企事業單位開展移動應用軟件管控提供代碼簽名指導。
App開發者簽名:App開發者使用其在官方機構(App分發渠道)登記的私鑰對其開發的App進行數字簽名。由于數字簽名可保證簽名數據完整性,數字簽名不可抵賴性保證了App軟件責任可溯源。
官方機構(App分發渠道)簽名:官方機構(App分發渠道)使用自己的私鑰對開發者簽名的App進行二次簽名,仍保持App開發者簽名的有效性,即“雙簽名”。采用雙簽名機制保證App是經過官方機構安全審核、檢測的,防止惡意App傳播,進一步降低App安全風險。

4、實名計算(Real-Named Computing)理論
2010年清華大學研究提出哲學指導:網絡空間與現實空間是映射的、趨同的。現實空間主體——人的社會活動需要實名,網絡空間主體——軟件運行也一定需要實名。
網絡安全事實:軟件定義一切,軟件破壞一切。軟件不管控,網絡無寧日。
定義:計算機系統運行軟件時要確認軟件的真實責任者。這樣的計算稱實名計算(Real-Named Computing)。
形式化:
定義1:P表示一個軟件,S表示數字簽名函數,S(P)A為軟件制造者A對軟件P的數字簽名,稱P‖S(P)A為實名軟件(Real-Named Software),用Pˊ表示。
定義2:P表示一個軟件,當P運行時,計算系統須確認S(P)的簽名者。稱這種計算為實名計算(Real-Named Computing)。
——實名計算模型
圖靈實名計算
- 帶標簽圖靈機(Identified Turing Machine,ITM)
定義4 ITM=(Q,Σ,Γ,δ,q0,β,F,IM)
其中Q,Σ,Γ,δ,q0,β,F與經典圖靈機定義相同,IM表示圖靈機ITM的標簽,是ITM的唯一標識,且S(M)A滿足定義4,為圖靈機制造者A的簽名。
- 選擇模擬通用圖靈機(Selected Simulating Universal Turing Machine,SSUTM)
設M1,M2,…Mn為n個定義5的帶標簽圖靈機,為Mi,以及輸入wi的0-1編碼。先構造一個選擇模擬圖靈機SSTM,SSTM有3條帶。

由圖靈機理論可知,對于定義5的3帶圖靈機SSMT,存在一個單帶圖靈機ITMU與之等價,稱ITMU為選擇模擬通用圖靈機(Selected Simulating Universal Turing Machine,SSUTM)。顯然SSUTM和原始圖靈機等價。
- 安全的選擇模擬通用圖靈機(S-SSUTM)
定義6一個通用圖靈機,它可確定ITM M1,M2,…Mn編碼被修改,且非ITM不能在其上模擬,稱這個通用圖靈機是安全的。
定理1一個通用圖靈機是安全的,當且僅當其等價的3帶圖靈機轉換規則是SSTM轉換規則。
基于SSUTM的馮·諾依曼計算模型

可信Cyber空間軟件控制模型TCSCM

5、實名計算技術

6、實名計算工程體系

7、實名計算應用研究實踐——“軟件入伍”模型(Software-Enrollment Machine)

- 基本功能:
1)軟件注冊;
2)軟件發布;
3)軟件下載;
4)軟件遠程認證;
5)軟件本地驗證;
6)注冊軟件刪除;
7)增加注冊軟件;
- 密碼管理:
軟件簽名證書體系
軟件簽名證書發放
接受SRC、SAC、SEU用戶的證書申請、審核、簽發、發布、證書撤消申請以及CRL的簽發和發布。
密鑰管理

8、實名計算與SE、CS、TC的關系,如下圖所示:

9、政企軟件管理平臺(Government Enterprise Application Platform)
作用:
(1)依據網絡安全等級保護2.0、信息系統密碼應用國家標準;
(2)為企事業單位提供APP開發者審核、安全開發、安全檢測、數字簽名、運行管理APP資產全生命期管理服務;
(3)保證政企APP合規、安全、高品質、責任可追溯
APP國密簽名:
對APP進行國密算法多重代碼簽名與驗證的功能模塊,包含提供給開發者的簽名工具、平臺使用的自動簽名服務和SDK、平臺和手機系統可用的驗證簽名SDK和DEMO、文檔等。APP國密簽名。


GEAP安全移動終端:GEAP移動終端只運行GEAP平臺安全審核及簽名的App。



發展方向:
