一、引言
隨著信息技術(shù)的不斷發(fā)展與演進(jìn),互聯(lián)網(wǎng)逐漸由日常消費(fèi)擴(kuò)展到工業(yè)生產(chǎn)領(lǐng)域,從實(shí)現(xiàn)人與人的連接逐漸擴(kuò)展到人與物、物與物的連接,全球正在迎來產(chǎn)業(yè)變革和科技革命的浪潮;ヂ(lián)網(wǎng)與制造業(yè)相融合形成的工業(yè)互聯(lián)網(wǎng)成為競(jìng)相爭(zhēng)奪的產(chǎn)業(yè)制高點(diǎn)。
從2011年起,德國(guó)、美國(guó)、日本相繼推出了各自的智能制造業(yè)國(guó)家戰(zhàn)略。在現(xiàn)有的工業(yè)機(jī)械化、自動(dòng)化和信息化基礎(chǔ)上,利用互聯(lián)網(wǎng)技術(shù)與工業(yè)相融合,以信息物理系CPS (Cyber-Physical Systems)為核心提高制造業(yè)的智能化水平,建立具有靈活性、敏捷性和資源節(jié)約型的智慧工廠。
美國(guó)通用電器(GE)公司在其白皮書中指出,工業(yè)物聯(lián)網(wǎng)與數(shù)據(jù)分析平臺(tái)相結(jié)合而形成的工業(yè)互聯(lián)網(wǎng),是提升工廠工業(yè)生產(chǎn)各環(huán)節(jié)的傳感器和其他設(shè)備收集海量運(yùn)行數(shù)據(jù),而數(shù)據(jù)分析平臺(tái)則通過數(shù)據(jù)分析與挖掘技術(shù)對(duì)現(xiàn)有資源、網(wǎng)絡(luò)和生產(chǎn)流程等進(jìn)行改進(jìn)來提高生產(chǎn)效率。
數(shù)字孿生作為集成工業(yè)互聯(lián)網(wǎng)中數(shù)據(jù)采集、實(shí)體模型、數(shù)據(jù)分析和云計(jì)算能力的新興應(yīng)用,成為信息化與工業(yè)化兩化融合的關(guān)鍵研究領(lǐng)域。數(shù)字孿生是在數(shù)字空間內(nèi)綜合各學(xué)科知識(shí)對(duì)物理實(shí)體建立起多維度的動(dòng)態(tài)虛擬模型,構(gòu)建與物理實(shí)體具有相同屬性、行為和規(guī)則的數(shù)字實(shí)體。數(shù)字實(shí)體通過物理反饋獲取外部數(shù)據(jù),在數(shù)字空間實(shí)時(shí)反映物理實(shí)體的真實(shí)狀況。采用人工智能、機(jī)器學(xué)習(xí)和軟件分析等技術(shù),利用數(shù)字孿生體進(jìn)行模擬仿真,實(shí)現(xiàn)制造過程、制造系統(tǒng)與制造裝備的知識(shí)推理、動(dòng)態(tài)傳感與自主決策。數(shù)字孿生具有豐富的應(yīng)用領(lǐng)域和場(chǎng)景,IDC數(shù)據(jù)顯示,世界上40%的大型制造商都會(huì)用到數(shù)字孿生系統(tǒng)來建立虛擬模型,數(shù)字孿生技術(shù)被廣泛運(yùn)用于制造業(yè),成為企業(yè)邁向工業(yè)4.0的核心解決方案。
隨著數(shù)字孿生等工業(yè)智能化系統(tǒng)的普及,針對(duì)聯(lián)網(wǎng)工業(yè)設(shè)備和軟件的攻擊與日倶增。根云、航天云網(wǎng)、COSMOPlat、OneNET、OceanConnect等我國(guó)知名的工業(yè)互聯(lián)網(wǎng)平臺(tái)受到持續(xù)的網(wǎng)絡(luò)攻擊。工業(yè)互聯(lián)網(wǎng)平臺(tái)和數(shù)字孿生系統(tǒng)已經(jīng)成為惡意入侵的重點(diǎn)目標(biāo)。而數(shù)字孿生系統(tǒng)的開源供應(yīng)鏈則成為安全防護(hù)工作中的薄弱環(huán)節(jié)。
二、數(shù)字孿生開演軟件供應(yīng)鏈概念及特點(diǎn)
數(shù)字孿生在促進(jìn)工業(yè)生產(chǎn)的數(shù)字化轉(zhuǎn)型上需要豐富的軟件生態(tài)進(jìn)行支撐。這一軟件體系需要從認(rèn)知傳感、物聯(lián)網(wǎng)平臺(tái)、軟件工具、企業(yè)應(yīng)用和可視化輔助工具等不同層面對(duì)產(chǎn)品設(shè)計(jì)、制造裝配、故障預(yù)測(cè)與健康管理以及整體管控的智能輔助和自動(dòng)化決策進(jìn)行支持。
為了實(shí)現(xiàn)上述目標(biāo),數(shù)字孿生需要構(gòu)建豐富且完整的軟件生態(tài)將物聯(lián)網(wǎng)平臺(tái)、傳感引擎、數(shù)字孿生、數(shù)字建模工具和數(shù)字主線、內(nèi)部和第三方軟件、企業(yè)應(yīng)用、虛擬化工具和儀表板集成起來,并在它們之間進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)生產(chǎn)流程中各環(huán)節(jié)之間的互聯(lián)互通。
由于數(shù)字孿生貫穿于工業(yè)生產(chǎn)的全部生命周期,軟件支撐分布在設(shè)備與數(shù)據(jù)交互的各個(gè)環(huán)節(jié)之中,這種分布式特性極大地提高了軟件復(fù)雜性,從而使得單一組織已經(jīng)無法依靠?jī)?nèi)部力量完成所有功能。為了應(yīng)對(duì)這種復(fù)雜性,大多數(shù)公司和開發(fā)團(tuán)隊(duì)利用免費(fèi)提供的高質(zhì)量開源軟件去構(gòu)建自己的定制功能軟件。這種“定制”本質(zhì)上就是將各種開源軟件黏合在一起,從而提供能夠?qū)崿F(xiàn)特定功能的軟件服務(wù)。西門子、通用電氣公司、美國(guó)參數(shù)技術(shù)公司(PTC)等國(guó)外知名廠商都是通過培植開源社區(qū)形成自身數(shù)字孿生平臺(tái)的軟件供應(yīng)鏈。
在數(shù)字孿生的開源軟件供應(yīng)鏈中,集成團(tuán)隊(duì)交付給用戶的“定制”軟件更應(yīng)視為構(gòu)成該軟件所有軟件包的集合,這種集合關(guān)系已經(jīng)超越了傳統(tǒng)的供應(yīng)商與采購(gòu)商之間的關(guān)系,而是按照開源軟件組織的流程形成了新的模型。
在數(shù)字孿生的開源軟件供應(yīng)鏈中,開發(fā)者、鏡像倉(cāng)庫(kù)、集成團(tuán)隊(duì)和最終用戶在開發(fā)、存儲(chǔ)、分發(fā)、集成和使用軟件并進(jìn)行反饋的過程中形成了緊密的連接。
三、數(shù)字孿生開演軟件供應(yīng)鏈面臨的安全風(fēng)險(xiǎn)
數(shù)字孿生的岀現(xiàn)雖然在信息物理系統(tǒng)層面為企業(yè)生產(chǎn)的全流程數(shù)字化打通了渠道,但是也為惡意攻擊打開了方便之門。針對(duì)數(shù)字孿生系統(tǒng)的攻擊行為會(huì)嚴(yán)重?cái)_亂經(jīng)濟(jì)和社會(huì)的運(yùn)行秩序。美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究院(NIST )專門制定了供應(yīng)鏈風(fēng)險(xiǎn)管理實(shí)踐清單來應(yīng)對(duì)傳統(tǒng)ICT系統(tǒng)的惡意攻擊。然而,數(shù)字孿生系統(tǒng)具有其獨(dú)特的系統(tǒng)特征,數(shù)字孿生體與現(xiàn)實(shí)世界物理實(shí)體具備映射關(guān)系,由于建立在物聯(lián)網(wǎng)基礎(chǔ)上的物理實(shí)體呈現(xiàn)高度的連通性,原本能夠阻斷惡意攻擊的物理隔離和數(shù)據(jù)隔離在數(shù)字孿生領(lǐng)域全部消失,這使得其與傳統(tǒng)的ICT安全性在經(jīng)濟(jì)、社會(huì)、法律和技術(shù)方法等層面具有差異性。
(1)數(shù)字孿生系統(tǒng)建立在物聯(lián)網(wǎng)的傳感器網(wǎng)絡(luò)之上,其與現(xiàn)實(shí)世界存在密切的交互行為。傳統(tǒng)的ICT攻擊通常只停留在信息和數(shù)據(jù)層面,而針對(duì)數(shù)據(jù)孿生系統(tǒng)的攻擊會(huì)威脅到物理世界中的人身安全、設(shè)備安全和業(yè)務(wù)安全。
(2)開源軟件的供應(yīng)鏈同樣會(huì)受到政治風(fēng)險(xiǎn)的影響,開源軟件的開發(fā)團(tuán)隊(duì)很可能因?yàn)樾姓疃荒芟蚣缮袒蛘哂脩籼峁┓⻊?wù)或者分發(fā)安全補(bǔ)丁。
(3)開源軟件的開發(fā)團(tuán)隊(duì)更關(guān)注功能的實(shí)現(xiàn),在進(jìn)行軟件設(shè)計(jì)時(shí)為了功能的便捷性而忽視安全性問題。同時(shí),開源軟件開發(fā)者通常免除了自己的法律責(zé)任,而集成團(tuán)隊(duì)在安全驗(yàn)證方面通常過分信任開源軟件包,這使得厘清供應(yīng)鏈參與者與漏洞產(chǎn)生之間的法律責(zé)任非常困難。
(4)開源軟件開發(fā)過程中,依賴包關(guān)系復(fù)雜,大部分開發(fā)團(tuán)隊(duì)僅能厘清所遵循的開源協(xié)議,而無法提供依賴包關(guān)系的清單等開源代碼的準(zhǔn)確使用狀況。
(5)傳統(tǒng)的安全驗(yàn)證可以依賴于對(duì)軟件的完備測(cè)試,然而面對(duì)數(shù)字孿生這種無法通過構(gòu)建完備測(cè)試集進(jìn)行安全性驗(yàn)證的高階協(xié)同復(fù)雜軟件系統(tǒng),現(xiàn)階段缺乏針對(duì)安全性進(jìn)行模型檢測(cè)和模型驗(yàn)證的方法。
正是由于存在這些差異性,數(shù)字孿生的開源軟件供應(yīng)鏈體系在開發(fā)、集成、交付和使用環(huán)節(jié)面臨著數(shù)據(jù)風(fēng)險(xiǎn)和業(yè)務(wù)風(fēng)險(xiǎn),惡意攻擊可能從以下幾個(gè)層面展開。
(1)攻擊開發(fā)環(huán)境。該種攻擊是針對(duì)開源軟件供應(yīng)鏈中的開發(fā)者環(huán)節(jié)。攻擊者可以通過向開發(fā)環(huán)境中植入惡意程序,通過污染編譯器等方式,在每次代碼編譯過程中將惡意代碼放入編譯完成的可執(zhí)行文件中,從而躲過代碼審查。
(2)攻擊開發(fā)工具。2015年的XcodeGhost事件為此類攻擊的代表,攻擊者通過修改開發(fā)工具的配置,利用開發(fā)工具作為跳板對(duì)軟件開發(fā)過程中使用的自動(dòng)生成代碼和編譯環(huán)境進(jìn)行污染,從而實(shí)現(xiàn)將惡意代碼混入軟件的目的。
(3)攻擊鏡像倉(cāng)庫(kù)。開發(fā)者在開發(fā)過程中通常關(guān)注第三方包是否能夠?qū)崿F(xiàn)功能,而不會(huì)對(duì)第三方包的安全性加以關(guān)注。攻擊者可以通過對(duì)鏡像倉(cāng)庫(kù)進(jìn)行網(wǎng)絡(luò)劫持或者采用名稱混淆的方式,誘使開發(fā)者下載植入惡意代碼的第三方軟件包從而實(shí)現(xiàn)攻擊目的。
(4)攻擊軟件運(yùn)行環(huán)境。數(shù)字孿生系統(tǒng)軟件有很大一部分需要運(yùn)行在物聯(lián)網(wǎng)環(huán)境中,需要集成嵌入式系統(tǒng)進(jìn)行支持。由于嵌入式系統(tǒng)安全驗(yàn)證機(jī)制薄弱、物理暴露和部署復(fù)雜、網(wǎng)絡(luò)接入多樣的特點(diǎn),攻擊者可以通過直接攻擊物聯(lián)網(wǎng)對(duì)整個(gè)數(shù)字孿生系統(tǒng)進(jìn)行入侵,從而執(zhí)行信息竊取和業(yè)務(wù)破壞行為。
四、數(shù)字孿生開源軟件供應(yīng)鏈安全防護(hù)
正是由于惡意攻擊帶來的破壞性,數(shù)字孿生開源軟件供應(yīng)鏈的安全防護(hù)工作值得我們高度重視。從多個(gè)角度分析供應(yīng)鏈中存在的不同風(fēng)險(xiǎn),建設(shè)有針對(duì)性的安全流程和技術(shù)方案對(duì)供應(yīng)鏈進(jìn)行風(fēng)險(xiǎn)管理,維護(hù)數(shù)字孿生系統(tǒng)的安全運(yùn)行。
(1)建立開源軟件供應(yīng)鏈攻擊的分析與防范機(jī)制。有針對(duì)性地研究和分析數(shù)字孿生開源軟件供應(yīng)鏈中的威脅情況,給出攻擊源及其對(duì)應(yīng)潛在影響的清單,按照風(fēng)險(xiǎn)暴露的可能性與攻擊危害的嚴(yán)重程度對(duì)風(fēng)險(xiǎn)進(jìn)行全面和綜合衡量。通過清單列出軟件供應(yīng)鏈中的全部風(fēng)險(xiǎn)點(diǎn)與威脅信息后,制訂出規(guī)避開源軟件供應(yīng)鏈風(fēng)險(xiǎn)的最佳方案。
(2)提高開發(fā)人員安全意識(shí)。軟件開發(fā)人員是整個(gè)開源軟件供應(yīng)鏈中的第一個(gè)節(jié)點(diǎn),也是作為每一個(gè)環(huán)節(jié)中的重要參與者貫穿于數(shù)字孿生系統(tǒng)建設(shè)過程中。開發(fā)團(tuán)隊(duì)?wèi)?yīng)在開發(fā)過程中的每一個(gè)環(huán)節(jié)和每一個(gè)關(guān)鍵點(diǎn)進(jìn)行安全與風(fēng)險(xiǎn)的評(píng)估。在開源軟件開發(fā)過程中,開發(fā)人員不應(yīng)過分注重功能實(shí)現(xiàn)和版本迭代的速度,更不應(yīng)該認(rèn)為安全開發(fā)的規(guī)范流程是拖慢開發(fā)進(jìn)度的阻礙。
(3 )建立可信的開發(fā)環(huán)境。利用軟件過程可信模型對(duì)軟件開發(fā)環(huán)境的可信性進(jìn)行評(píng)估,通過形式化驗(yàn)證的方法,在開發(fā)環(huán)境中建立起規(guī)約和驗(yàn)證模型。針對(duì)開發(fā)環(huán)境中的風(fēng)險(xiǎn)點(diǎn),制作風(fēng)險(xiǎn)控制清單,并定期對(duì)開發(fā)環(huán)境進(jìn)行安全評(píng)測(cè)。
(4)建立開源軟件漏洞信息數(shù)據(jù)庫(kù),針對(duì)開源軟件包,建立起標(biāo)準(zhǔn)化的漏洞信息庫(kù)用以命名、描述和跟蹤漏洞。
(5)開源軟件供應(yīng)鏈安全分析報(bào)告。系統(tǒng)集成團(tuán)隊(duì)在將產(chǎn)品交付用戶之前,需要對(duì)開源軟件的供應(yīng)鏈安全進(jìn)行分析與研究,形成開源軟件供應(yīng)鏈安全分析報(bào)告。報(bào)告內(nèi)容應(yīng)包括:
①系統(tǒng)軟件中開源軟件包占比分析,即給岀軟件供應(yīng)鏈中所涉及的源代碼種類及對(duì)應(yīng)的文件數(shù)量;
②開源軟件包依賴關(guān)系,報(bào)告中應(yīng)對(duì)軟件所使用的開源軟件包之間的依賴關(guān)系進(jìn)行詳細(xì)描述;
③開源軟件歸屬分析,報(bào)告應(yīng)針對(duì)開源軟件權(quán)益歸屬地和開發(fā)團(tuán)隊(duì)的地理分布信息進(jìn)行分析,給出供應(yīng)鏈政策風(fēng)險(xiǎn)評(píng)估,同時(shí)應(yīng)給出高斷供風(fēng)險(xiǎn)的軟件包的替代方案并盡可能消除高政治風(fēng)險(xiǎn)開源軟件包的使用;
④開源組件漏洞分析,利用漏洞信息庫(kù)對(duì)開源軟件包的漏洞進(jìn)行掃描來完成安全等級(jí)評(píng)估。
五、結(jié)語(yǔ)
由于數(shù)字孿生領(lǐng)域剛剛興起,相應(yīng)的技術(shù)標(biāo)準(zhǔn)、安全規(guī)范和生產(chǎn)實(shí)踐都處于摸索前進(jìn)的過程中,目前尚無法形成理論完備、安全有效的開源軟件供應(yīng)鏈風(fēng)險(xiǎn)控制方法。因此需要我們?cè)诶碚搶用嫔蠈?duì)其進(jìn)行深入探討和研究,以應(yīng)對(duì)未來可能出現(xiàn)的安全風(fēng)險(xiǎn)。
(1)加強(qiáng)高階協(xié)同系統(tǒng)可信性驗(yàn)證方法的研究工作。數(shù)字孿生系統(tǒng)中物理實(shí)體與數(shù)據(jù)模型之間不僅僅存在一階的數(shù)據(jù)交互,兩者之間還存在激勵(lì)、反饋、控制等多種協(xié)同方式,屬于典型的高階協(xié)同系統(tǒng),F(xiàn)有的高階CCS演算、高階n演算、高階并發(fā)通信模型等都是基于進(jìn)程形式,然而數(shù)字孿生這樣的安全苛刻系統(tǒng)中,設(shè)備與軟件存在相互的獨(dú)立性,內(nèi)部同時(shí)存在數(shù)據(jù)交互與業(yè)務(wù)維護(hù)工作;同時(shí)各個(gè)子系統(tǒng)之間對(duì)外接口存在不同的協(xié)議約束,使得現(xiàn)有的模型工具很難對(duì)其進(jìn)行準(zhǔn)確描述。
(2)加強(qiáng)開源軟件供應(yīng)鏈的掌控力度,完善供應(yīng)鏈安全評(píng)價(jià)。利用重點(diǎn)實(shí)驗(yàn)室、行業(yè)協(xié)會(huì)和業(yè)內(nèi)龍頭企業(yè)的技術(shù)、政策和業(yè)務(wù)能力,對(duì)開源軟件供應(yīng)鏈的上下游合作伙伴進(jìn)行管控。推動(dòng)開發(fā)人員的安全開發(fā)能力度量標(biāo)準(zhǔn)和基于企業(yè)能力評(píng)價(jià)的供應(yīng)鏈安全標(biāo)準(zhǔn)的建設(shè)和實(shí)施。
(3)加強(qiáng)開源軟件社區(qū)管理,建設(shè)可信軟件資源鏡像倉(cāng)庫(kù)。開源軟件發(fā)布的隨意性是導(dǎo)致其被惡意代碼植入的最主要原因,通過建設(shè)可信的軟件資源鏡像倉(cāng)庫(kù),能夠在很大程度上避免惡意代碼因軟件包被二次打包、網(wǎng)絡(luò)劫持、相似命名等方式進(jìn)入到軟件開發(fā)環(huán)境中。因此從國(guó)家層面上,推動(dòng)行業(yè)主管單位、網(wǎng)絡(luò)安全相關(guān)科研單位、互聯(lián)網(wǎng)龍頭企業(yè)等組織共同建設(shè)和推廣可信軟件資源鏡像倉(cāng)庫(kù),能夠最大程度地避免引入惡意代碼,保護(hù)開源軟件供應(yīng)鏈的安全。
(原載于《保密科學(xué)技術(shù)》雜志2020年7月刊)