1.痛點問題
原子上下文休眠是操作系統中一類非常危險并且難以發現的缺陷,可以導致偶發的系統死鎖和崩潰。實踐證明,現有的主流開源操作系統存在不少該類缺陷,會引起實際的安全問題。隨著系統軟件自主化和物聯網技術的發展,越來越多的國產操作系統誕生并被廣泛使用,而這些國產操作系統中也會存在原子上下文休眠的缺陷,嚴重影響系統可靠性和安全性。由于操作系統具有代碼量大、邏輯復雜和并發程度高等特點,對其進行代碼分析和缺陷檢測是比較困難的。
2.解決方案
本技術提出了一種檢測原子上下文休眠缺陷的方法,包含了兩個創新點:
1)自適應流敏感分析算法,能夠較為準確高效地找出在原子上下文中被調用的函數;
2)函數調用圖的檢查算法,能夠較為準確地判斷函數是否可以休眠。
本技術還綜合采用了流敏感分析、過程間分析、基于約束求解的路徑檢查和別名分析等,能夠有效降低誤報和漏報,并提升分析效率。
本技術的工作流程是自動的,不需要開發者和測試者手動分析和修改被測操作系統的源代碼。因此,本發明可以應用于原子上下文休眠缺陷的檢測,提高操作系統的安全性和可靠性。
合作需求
尋求對系統軟件缺陷檢測有需求的科技企業和科研單位,開展成果落地轉化,以及探索服務模式。
目前,國內各家大型科技公司紛紛加大力度研發自己的系統軟件;在航空航天、電子信息、國防軍工等關鍵領域上,國家科研單位也研發了自己的國產操作系統。這些操作系統在安全性和可靠性上有很高的要求,因此需要自動化工具對其進行準確高效的缺陷檢測。原子上下文休眠作為操作系統常見的一類嚴重缺陷,對其進行檢測是十分重要的。然而,主流商用靜態分析工具均缺少對該類缺陷的檢測功能。因此,本技術可提升靜態分析工具對操作系統的缺陷檢測效果,具有較好的實用意義和一定的盈利前景。
本項目的技術原型較為成熟,經過方案適配和二次開發后,可用于專門檢測操作系統中的原子上下文休眠缺陷。該技術可通過技術授權的形式,服務于對系統軟件缺陷檢測有需求的科技企業和科研單位。
主流的商用靜態分析框架均來自國外科技公司,其中著名的代表包括Coverity、PC-Lint和Klocwork等。這些公司的分析框架已經廣泛應用于航空航天、汽車電子、智能制造等多個領域,用戶包括美國宇航局、豐田汽車、英特爾、華為等。近些年來國內成立了若干從事靜態分析的公司,包括源傘科技、鑒釋科技和中科天齊等。一般來講,商用靜態分析框架可以自動掃描C、C++、Java和C#等常見語言編寫的程序代碼,包括數十個檢查器,能夠檢測上百種常見的缺陷類型(包括空指針解引用、釋放后使用和內存泄漏等)。這些分析框架主要面向應用程序,在操作系統分析能力方面支持具有一定的局限性。例如,這些分析框架缺少檢測原子上下文休眠缺陷的檢查器。
面向操作系統的開源靜態分析框架包括Smatch、Coccinelle和DR.Checker等。這些分析框架主要用于掃描C語言實現的Linux內核,具有較強的操作系統代碼分析能力,尤其可以檢測操作系統相關的多種缺陷,包括原子上下文休眠缺陷。這些分析框架在Linux內核中已經發現了上千個真實的內核缺陷,并成為Linux內核的標準測試工具。然而這些分析框架缺少有效的過程間分析和流敏感分析等技術,會存在較多的誤報和漏報情況。
本技術專注于操作系統代碼分析,并具備自適應流敏感分析算法和函數調用圖的檢查算法等創新技術,帶有準確的流敏感分析和過程間分析等,因此在原子上下文休眠缺陷的檢測方面,誤報和漏洞較少,且分析速度較快。
掃碼關注,查看更多科技成果