軟件公司如何快速有效地識(shí)別軟件漏洞_北京軟件開發(fā)公司
發(fā)表日期:2023-06-14 15:47:03 ?? 文章編輯:北京軟件開發(fā) ?? 瀏覽次數(shù):
對(duì)于軟件開發(fā)公司來說幾乎每個(gè)新程序代碼都有錯(cuò)誤,在最壞的情況下,這些錯(cuò)誤可能會(huì)危及安全性。為了快速有效地檢測(cè)它們,德國波鴻魯爾大學(xué) Horst Görtz IT 安全研究所的研究人員開發(fā)了一種名為 Fuzzware 的軟件開發(fā)檢測(cè)系統(tǒng)。它專門分析嵌入式系統(tǒng),即可以在智能燈泡、智能恒溫器和工業(yè)控制系統(tǒng)中找到的微型計(jì)算機(jī),僅舉幾例。魯爾大學(xué)的科學(xué)雜志《 魯賓》發(fā)表了一篇關(guān)于他們工作的文章。
波鴻博士 學(xué)生 Tobias Scharnowski 在 Thorsten Holz 教授的指導(dǎo)下于 2022 年 8 月在美國舉行的第 31 屆 Usenix 安全研討會(huì)上介紹了研究結(jié)果。他與加州大學(xué)圣巴巴拉分校和阿姆斯特丹自由大學(xué)的同事合作開展了這項(xiàng)研究。
故意讓軟件崩潰
該小組使用所謂的模糊測(cè)試來檢測(cè)軟件開發(fā)代碼中的錯(cuò)誤。Fuzzers 是一種算法,它向被測(cè)試的軟件提供隨機(jī)輸入,并檢查它們是否會(huì)使應(yīng)用程序崩潰。這種崩潰表明編程錯(cuò)誤。模糊器不斷改變輸入,以便逐步探索盡可能多的程序組件。
某些應(yīng)用領(lǐng)域已經(jīng)建立了模糊測(cè)試,例如測(cè)試 Windows 或 Linux 等操作系統(tǒng)。然而,它尚未被廣泛用于測(cè)試嵌入式系統(tǒng),因?yàn)樗鼈儙砹嗽S多挑戰(zhàn):軟件(即所謂的固件)嵌入到與其交互的硬件中。系統(tǒng)通常具有相對(duì)較少的內(nèi)存和較慢的處理器。如果研究人員想直接在系統(tǒng)上進(jìn)行模糊測(cè)試,這就是一個(gè)問題。嘗試所有可能的輸入并等待系統(tǒng)響應(yīng)將花費(fèi)太長時(shí)間。
硬件虛擬仿真
這就是團(tuán)隊(duì)不直接在工業(yè)控制單元或燈泡中分析固件的原因。相反,他們虛擬地重新創(chuàng)建硬件——這個(gè)過程稱為仿真。仿真器使固件相信它在真實(shí)設(shè)備中。為此,它必須以與真實(shí)硬件完全相同的方式與程序交互。
為了加速該過程,研究人員通過縮小可能的輸入范圍,在模糊測(cè)試過程中增加了另一個(gè)步驟。首先,它們對(duì)輸入必須位于其中的框架進(jìn)行建模,以便對(duì)固件具有邏輯性。例如:如果硬件是帶有溫度傳感器的冰箱,則冰箱硬件可以將測(cè)量到的溫度報(bào)告給冰箱的軟件,即它的固件。實(shí)際上,任何給定的溫度都不可能發(fā)生,它必須落在某個(gè)范圍內(nèi)。因此,固件僅針對(duì)特定溫度范圍進(jìn)行編程。它根本無法處理其他值,因此無需對(duì)它們進(jìn)行模糊測(cè)試。
有限的輸入有助于高效分析
波鴻團(tuán)隊(duì)與來自圣巴巴拉和阿姆斯特丹的同事一起,使用 Fuzzware 測(cè)試了 77 個(gè)固件。與傳統(tǒng)的模糊測(cè)試方法相比,他們篩選出了高達(dá) 95.5% 的所有可能輸入。
這使得 Fuzzware 能夠在相同時(shí)間內(nèi)檢查比傳統(tǒng)方法多三倍的程序代碼。在此過程中,該小組還發(fā)現(xiàn)了其他模糊測(cè)試方法未檢測(cè)到的其他漏洞。
波鴻博士 學(xué)生 Tobias Scharnowski 在 Thorsten Holz 教授的指導(dǎo)下于 2022 年 8 月在美國舉行的第 31 屆 Usenix 安全研討會(huì)上介紹了研究結(jié)果。他與加州大學(xué)圣巴巴拉分校和阿姆斯特丹自由大學(xué)的同事合作開展了這項(xiàng)研究。
故意讓軟件崩潰
該小組使用所謂的模糊測(cè)試來檢測(cè)軟件開發(fā)代碼中的錯(cuò)誤。Fuzzers 是一種算法,它向被測(cè)試的軟件提供隨機(jī)輸入,并檢查它們是否會(huì)使應(yīng)用程序崩潰。這種崩潰表明編程錯(cuò)誤。模糊器不斷改變輸入,以便逐步探索盡可能多的程序組件。
某些應(yīng)用領(lǐng)域已經(jīng)建立了模糊測(cè)試,例如測(cè)試 Windows 或 Linux 等操作系統(tǒng)。然而,它尚未被廣泛用于測(cè)試嵌入式系統(tǒng),因?yàn)樗鼈儙砹嗽S多挑戰(zhàn):軟件(即所謂的固件)嵌入到與其交互的硬件中。系統(tǒng)通常具有相對(duì)較少的內(nèi)存和較慢的處理器。如果研究人員想直接在系統(tǒng)上進(jìn)行模糊測(cè)試,這就是一個(gè)問題。嘗試所有可能的輸入并等待系統(tǒng)響應(yīng)將花費(fèi)太長時(shí)間。
硬件虛擬仿真
這就是團(tuán)隊(duì)不直接在工業(yè)控制單元或燈泡中分析固件的原因。相反,他們虛擬地重新創(chuàng)建硬件——這個(gè)過程稱為仿真。仿真器使固件相信它在真實(shí)設(shè)備中。為此,它必須以與真實(shí)硬件完全相同的方式與程序交互。
為了加速該過程,研究人員通過縮小可能的輸入范圍,在模糊測(cè)試過程中增加了另一個(gè)步驟。首先,它們對(duì)輸入必須位于其中的框架進(jìn)行建模,以便對(duì)固件具有邏輯性。例如:如果硬件是帶有溫度傳感器的冰箱,則冰箱硬件可以將測(cè)量到的溫度報(bào)告給冰箱的軟件,即它的固件。實(shí)際上,任何給定的溫度都不可能發(fā)生,它必須落在某個(gè)范圍內(nèi)。因此,固件僅針對(duì)特定溫度范圍進(jìn)行編程。它根本無法處理其他值,因此無需對(duì)它們進(jìn)行模糊測(cè)試。
有限的輸入有助于高效分析
波鴻團(tuán)隊(duì)與來自圣巴巴拉和阿姆斯特丹的同事一起,使用 Fuzzware 測(cè)試了 77 個(gè)固件。與傳統(tǒng)的模糊測(cè)試方法相比,他們篩選出了高達(dá) 95.5% 的所有可能輸入。
這使得 Fuzzware 能夠在相同時(shí)間內(nèi)檢查比傳統(tǒng)方法多三倍的程序代碼。在此過程中,該小組還發(fā)現(xiàn)了其他模糊測(cè)試方法未檢測(cè)到的其他漏洞。