演講嘉賓 | 周慶國
回顧整理 | 廖 濤
排版校對 | 李萍萍
嘉賓簡介
周慶國,理學(xué)博士,教授,博士生導(dǎo)師,IET Fellow,教育部新世紀(jì)人才基金獲得者,現(xiàn)為蘭州大學(xué)開源軟件與實(shí)時(shí)系統(tǒng)教育部工程研究中心主任,蘭州大學(xué)分布式與嵌入式系統(tǒng)實(shí)驗(yàn)室主任,蘭州大學(xué)OpenHarmony技術(shù)俱樂部主任。目前主要從事安全關(guān)鍵系統(tǒng)、嵌入式系統(tǒng)、智能駕駛、虛擬化技術(shù)的研究,2018年榮獲甘肅省科技進(jìn)步獎(jiǎng)二等獎(jiǎng),榮獲2021年甘肅省教學(xué)成果特等獎(jiǎng)。
內(nèi)容來源
第一屆開放原子開源基金會(huì)OpenHarmony技術(shù)峰會(huì)——OpenHarmony高校技術(shù)俱樂部分論壇
視頻回顧
正 文 內(nèi) 容
現(xiàn)代操作系統(tǒng)在其技術(shù)復(fù)雜度、軟件規(guī)模、機(jī)電部件不斷增加的同時(shí),也引入了額外的系統(tǒng)性失效和硬件隨機(jī)失效風(fēng)險(xiǎn)。有什么理論和方法能夠?qū)④浖Ъ捌鋵?dǎo)致的風(fēng)險(xiǎn)控制在可接受的范圍內(nèi)呢?蘭州大學(xué)OpenHarmony技術(shù)俱樂部主任周慶國教授在第一屆OpenHarmony技術(shù)峰會(huì)上分享了幾點(diǎn)思路。
01?
安全與安全關(guān)鍵
“安全”對應(yīng)的英文釋義有Safety和Security,兩者存在很大的區(qū)別。Safety-IEC 61508 Part 2 中將Safety定義為:將能夠造成人員傷亡或財(cái)產(chǎn)損失以及嚴(yán)重破壞環(huán)境的危險(xiǎn)降低到可以接受范圍;Security-IEC17799 Part 1 中將Security定義為:保護(hù)外來傷害的能力,適用于脆弱和有價(jià)值的資產(chǎn),如人、組織、住房、國家等。Safety的關(guān)鍵因素在于:(1)可預(yù)測性(Predictability):系統(tǒng)中可能會(huì)出現(xiàn)的風(fēng)險(xiǎn)情況應(yīng)該均可以被考慮到;(2)確定性(Certainty):系統(tǒng)的行為可以被預(yù)測,且風(fēng)險(xiǎn)均在可控范圍內(nèi);(3)確信度(Degree of certainty):系統(tǒng)提供方對目標(biāo)系統(tǒng)的可預(yù)測性和功能確定性是有效的,并提供相關(guān)證明。
功能安全也稱為安全關(guān)鍵,關(guān)注的是系統(tǒng)發(fā)生故障之后的行為,通常應(yīng)用于系統(tǒng)失效會(huì)對人和財(cái)產(chǎn)及環(huán)境造成重大傷害和損失的場景,如核電站、航天航空、軍工、醫(yī)療等領(lǐng)域,乃至當(dāng)下熱度極高的自動(dòng)駕駛領(lǐng)域。在國際電工委員會(huì)發(fā)布的IEC61508功能安全標(biāo)準(zhǔn)中,以安全完整性 (Safety integrity)來評估安全相關(guān)系統(tǒng)成功實(shí)現(xiàn)所要求的安全功能的概率,并規(guī)定了四個(gè)安全完整性等級,第四級(SIL4)表示最高的完整性程度,第一級(SIL1)表示最低,不同的等級由每小時(shí)發(fā)生的危險(xiǎn)失效概率決定。
安全標(biāo)準(zhǔn)-IEC61508與安全完整性等級劃分
在IEC61508中定義了Type-A和Type-B兩種類型的系統(tǒng),其中Type-A系統(tǒng)的判定標(biāo)準(zhǔn)為:(1)所有組件的故障模式都已定義;(2)可以確定故障條件下的組件的行為模式;(3)對于系統(tǒng)聲稱的故障率有足夠可靠的故障數(shù)據(jù)。只要滿足以上任意一點(diǎn)的就是Type-A系統(tǒng);而Type-B系統(tǒng)則正好與之相反。
在傳統(tǒng)的安全系統(tǒng)設(shè)計(jì)中,人們更多處理的是Type-A系統(tǒng),因?yàn)閭鹘y(tǒng)的系統(tǒng)大都是低復(fù)雜度的系統(tǒng),人們對其的理解至少符合上述三種標(biāo)準(zhǔn)之一,因而可以處理系統(tǒng)中潛在的風(fēng)險(xiǎn)所導(dǎo)致的系統(tǒng)失效。而自動(dòng)駕駛為例的安全關(guān)鍵系統(tǒng)在要求系統(tǒng)高安全高可靠的同時(shí),還對系統(tǒng)的功能豐富度以及系統(tǒng)性能方面有較高的要求,因此在系統(tǒng)中將大量使用高度復(fù)雜的Type-B類型組件(如Linux內(nèi)核、人工智能模型等)。對于這類高度復(fù)雜的組件,傳統(tǒng)的安全分析與驗(yàn)證無法對其失效模式與失效行為進(jìn)行有效管理與緩解,為系統(tǒng)的安全關(guān)鍵驗(yàn)證帶來巨大的挑戰(zhàn)。
02?
Linux在安全關(guān)鍵領(lǐng)域應(yīng)用
Linux作為一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng),擁有幾大比較突出的優(yōu)點(diǎn):(1)迭代頻率高:擁有千萬行級別代碼和百萬行級別文檔;每個(gè)版本提交頻率達(dá)數(shù)百次/天;開發(fā)人員眾多,社區(qū)活躍;Linux已經(jīng)是現(xiàn)存最大、最活躍的開源開放軟件生態(tài)之一。(2)開發(fā)質(zhì)量高:Linux內(nèi)核采取開源社區(qū)開發(fā),開發(fā)過程高度透明,且具有嚴(yán)格的項(xiàng)目管理流程;它的開發(fā)過程使用規(guī)范的設(shè)計(jì)、測試和版本維護(hù)方法;每天都會(huì)有大量的修改提交以保證Linux內(nèi)核版本的穩(wěn)定。
Linux開源項(xiàng)目
然而,目前并沒有一套明確的方法對Linux進(jìn)行安全驗(yàn)證,Linux作為一個(gè)高度復(fù)雜、有著超兩千萬行代碼量的龐然大物,其驗(yàn)證的工作量更是巨大。一個(gè)面向安全關(guān)鍵場景的系統(tǒng)需要采取一些方法提供足夠的證據(jù)來驗(yàn)證系統(tǒng)是安全的、符合安全標(biāo)準(zhǔn)規(guī)范的,還需要滿足一系列的功能安全要求來提供當(dāng)系統(tǒng)遇到操作失誤、系統(tǒng)內(nèi)部故障時(shí)的應(yīng)對策略。Linux并沒有貫徹IEC 61508標(biāo)準(zhǔn)中要求的安全開發(fā)生命周期。目前,基于Linux的安全關(guān)鍵系統(tǒng)的安全認(rèn)證工作中,最大的挑戰(zhàn)在于缺乏完善的文檔和工具來證明基于Linux的Safety-critical系統(tǒng)的安全性。
2015年由寶馬、西門子以及德國開源軟件實(shí)驗(yàn)室OSADL等出資合作的SIL2LinuxMP項(xiàng)目,旨在為工業(yè)界提供一套驗(yàn)證基于Linux Kernel的Safety-critical系統(tǒng)安全性的方法。項(xiàng)目基于IEC61508標(biāo)準(zhǔn)的要求,提出對Linux內(nèi)核驗(yàn)證的關(guān)鍵是利用系統(tǒng)開發(fā)的上下文將龐大的Linux內(nèi)核限制在一個(gè)相對小的驗(yàn)證范圍,并嘗試?yán)肔inux內(nèi)核的復(fù)雜性與不確定性進(jìn)行系統(tǒng)的安全加固。
2019年Linux基金會(huì)啟動(dòng)了ELISA開源項(xiàng)目,該項(xiàng)目在SIL2LinuxMP項(xiàng)目的研究基礎(chǔ)上進(jìn)行。其目的是為了協(xié)助相關(guān)公司對基于Linux的Safety-critical系統(tǒng)實(shí)現(xiàn)一系列工具,以避免其系統(tǒng)運(yùn)行失敗造成的人身傷害,重大財(cái)產(chǎn)損失或環(huán)境污染。該項(xiàng)目定義和維護(hù)一組用于Linux安全關(guān)鍵驗(yàn)證工作的通用的元素、流程和工具,為期望將Linux應(yīng)用于安全關(guān)鍵系統(tǒng)的企業(yè)和機(jī)構(gòu)提供支持。
03?
SIL2LinuxMP項(xiàng)目
SIL2LinuxMP項(xiàng)目選擇內(nèi)核元素與非內(nèi)核元素作為預(yù)先存在的組件,提出對Linux開發(fā)過程持續(xù)的監(jiān)測,并通過相關(guān)工具的認(rèn)證、預(yù)先存在組件的認(rèn)證等一系列協(xié)同認(rèn)證等方法對Linux內(nèi)核評估認(rèn)證以滿足系統(tǒng)安全規(guī)范的要求,在這一過程中,Linux內(nèi)核的認(rèn)證數(shù)據(jù)和認(rèn)證方案為認(rèn)證評估提供重要依據(jù)。
SIL2LinuxMP項(xiàng)目總覽
在SIL2LinuxMP項(xiàng)目研究過程中發(fā)現(xiàn),Linux內(nèi)核的容器技術(shù)提供了足夠的隔離能力,避免了虛擬機(jī)監(jiān)控程序帶來的運(yùn)行開銷和驗(yàn)證成本以及對硬件虛擬化的依賴,因此基于Linux內(nèi)核容器技術(shù)提出了分區(qū)隔離架構(gòu):SIL2LinuxMP Architecture,簡稱SIL2Arch。SIL2Arch組合了Linux內(nèi)核原生提供的Namespace、Cgroup和Seccomp等容器技術(shù),將系統(tǒng)資源以容器的形式進(jìn)行分區(qū)與隔離,可以用于對Linux內(nèi)核中不同安全完整性等級的任務(wù)進(jìn)行分區(qū)隔離。
SIL2Arch的實(shí)現(xiàn)
目前,SIL2LinuxMP項(xiàng)目的研究缺少對動(dòng)態(tài)執(zhí)行路徑不確定性的原理討論,而且分區(qū)隔離架構(gòu)的部署也可能會(huì)對動(dòng)態(tài)執(zhí)行路徑造成影響。針對該情況,周慶國教授所在團(tuán)隊(duì)研究了以下3部分內(nèi)容:(1)部署對照實(shí)驗(yàn)環(huán)境,并設(shè)計(jì)開發(fā)了自動(dòng)化執(zhí)行路徑采集工具SIL2Trace;(2)構(gòu)建執(zhí)行路徑調(diào)用關(guān)系的有向圖,分析Linux內(nèi)核動(dòng)態(tài)執(zhí)行路徑不確定性的原理;(3)采用自相關(guān)檢驗(yàn)和泊松回歸模型,評估容器分區(qū)隔離架構(gòu)對于執(zhí)行路徑種類數(shù)量的影響。具體如下:
動(dòng)態(tài)執(zhí)行路徑測試范圍選擇:Linux內(nèi)核是一個(gè)龐大且復(fù)雜的軟件,進(jìn)行全面的測試覆蓋難度較大,可以選擇在固定輸入參數(shù)下,特定用戶應(yīng)用程序所主動(dòng)請求系統(tǒng)調(diào)用執(zhí)行的Linux內(nèi)核執(zhí)行路徑作為主要測試范圍。
自動(dòng)化采集工具SIL2Trace設(shè)計(jì):為了記錄實(shí)驗(yàn)中目標(biāo)測試程序的內(nèi)核函數(shù)執(zhí)行路徑,基于Ftrace內(nèi)核函數(shù)跟蹤框架設(shè)計(jì)實(shí)現(xiàn)了自動(dòng)化采集工具SIL2Trace。SIL2Trace分為客戶端程序和服務(wù)端程序,客戶端程序?qū)⒍啻沃貜?fù)觸發(fā)執(zhí)行目標(biāo)測試程序,借助Ftrace進(jìn)行執(zhí)行路徑采集,并將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸給服務(wù)端程序。由于Ftrace所采集的數(shù)據(jù)中會(huì)包含一些無關(guān)的執(zhí)行路徑, 因此服務(wù)端程序?qū)?zhí)行路徑中的無關(guān)路徑進(jìn)行過濾處理。
無關(guān)路徑過濾
動(dòng)態(tài)執(zhí)行路徑不確定性原理分析:導(dǎo)致路徑不確定性的主要原因是在執(zhí)行主干之外的函數(shù)調(diào)用時(shí)產(chǎn)生的調(diào)用分支。這些分支是由于與輸入?yún)?shù)無關(guān)的全局狀態(tài)變量引起的,它們會(huì)影響Linux內(nèi)核的全局運(yùn)行狀態(tài),從而導(dǎo)致動(dòng)態(tài)執(zhí)行路徑的不確定性。
動(dòng)態(tài)執(zhí)行路徑種類數(shù)量估計(jì):首先需要驗(yàn)證執(zhí)行路徑之間的相關(guān)性,若執(zhí)行路徑之間存在相關(guān)性,將影響對動(dòng)態(tài)執(zhí)行路徑種類數(shù)量的估計(jì)。利用統(tǒng)計(jì)學(xué)中的自相關(guān)檢驗(yàn)方法計(jì)算路徑之間的自相關(guān)系數(shù),檢驗(yàn)結(jié)果顯示執(zhí)行路徑之間具有獨(dú)立性。
04?
OpenHarmony與安全
OpenHarmony目前在活躍開發(fā)之中,廠商開發(fā)的產(chǎn)品不僅可能引入經(jīng)典的開源項(xiàng)目,還可能包含具有OpenHarmony特色的組件,這對廠商的軟件供應(yīng)鏈安全管理能力提出了更高的要求。
開源軟件供應(yīng)鏈
以安全漏洞為抓手,實(shí)現(xiàn)函數(shù)級跨架構(gòu)漏洞檢測驅(qū)動(dòng)的軟件成分分析,從而有效幫助社區(qū)中的企業(yè)構(gòu)建低成本的軟件供應(yīng)鏈安全管理方案。目前,周慶國教授所在團(tuán)隊(duì)已經(jīng)為基于Linux的物聯(lián)網(wǎng)設(shè)備設(shè)計(jì)了高精度的跨架構(gòu)函數(shù)級漏洞檢測技術(shù)方案。在實(shí)驗(yàn)室場景下,平均檢測準(zhǔn)確率已經(jīng)超過 99%,可以有效地為不具備精細(xì)三方件管理能力的中小型開發(fā)者提供面向最終產(chǎn)品的軟件供應(yīng)鏈漏洞檢測。
函數(shù)級漏洞檢測技術(shù)方案
此外,OpenHarmony在安全關(guān)鍵領(lǐng)域還有以下等方向可以進(jìn)一步討論和研究:
根據(jù)功能安全標(biāo)準(zhǔn)對OpenHarmony開發(fā)過程中的開發(fā)流程、技術(shù)文檔、風(fēng)險(xiǎn)管理、安全分析等方面進(jìn)分析與擴(kuò)展。
對OpenHarmony的開發(fā)生命周期進(jìn)行系統(tǒng)的和持續(xù)的研究,試圖建立度量開源軟件系統(tǒng)的穩(wěn)定性或發(fā)展趨勢的指標(biāo)體系。
嘗試應(yīng)用數(shù)學(xué)模型結(jié)合統(tǒng)計(jì)測試對OpenHarmony可靠性等進(jìn)行研究,試圖建立相關(guān)本質(zhì)特征反應(yīng)的可應(yīng)用評測體系。
針對風(fēng)險(xiǎn)空間中嚴(yán)重性等問題進(jìn)行深入研究,結(jié)合Machine Learning/Deep Learning等技術(shù)對其進(jìn)行分類,試圖結(jié)合具體功能安全標(biāo)準(zhǔn)進(jìn)行風(fēng)險(xiǎn)分段及風(fēng)險(xiǎn)緩解。
基于新型圖表示和圖學(xué)習(xí)技術(shù),研究面向OpenHarmony的跨架構(gòu)函數(shù)級漏洞檢測技術(shù),試圖為社區(qū)提供新型軟件供應(yīng)鏈安全管理方案。
目前,蘭州大學(xué)OpenHarmony技術(shù)俱樂部已經(jīng)正式成立。后續(xù),俱樂部將結(jié)合操作系統(tǒng)與軟件安全等研究內(nèi)容開展相關(guān)工作,歡迎大家的持續(xù)關(guān)注和監(jiān)督,也希望大家能夠共同為OpenHarmony技術(shù)生態(tài)的繁榮貢獻(xiàn)力量。
E N D
審核編輯 黃宇
-
Linux
+關(guān)注
關(guān)注
87文章
11310瀏覽量
209616 -
開源
+關(guān)注
關(guān)注
3文章
3358瀏覽量
42523 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3723瀏覽量
16343
發(fā)布評論請先 登錄
相關(guān)推薦
評論