騰金輝,光焱,舒輝,張冰
基于流量分析的軟件升級漏洞自動檢測方法
騰金輝,光焱,舒輝,張冰
(戰略支援部隊信息工程大學,河南 鄭州 450001)
軟件升級過程中,缺乏對升級信息或升級包的認證可能會導致基于中間人攻擊的遠程代碼執行漏洞。為此,提出一種升級漏洞自動檢測方法。該方法通過提取升級過程中的網絡流量,對升級機制自動畫像,將其與漏洞特征向量匹配,預判升級漏洞;在模擬驗證環境中,利用畫像信息實施中間人攻擊,驗證檢測結果。基于該方法設計了升級漏洞自動分析與驗證系統,對184個Windows應用軟件樣本進行測試,檢測出117個樣本的升級漏洞,證明了本方法的有效性。
軟件升級;流量分析;漏洞檢測;自動化分析與驗證
在整個軟件生命周期中,軟件的維護升級工作是最重要的環節[1],通過升級至新版本,可以達到增添軟件功能、修復已知錯誤與漏洞、提升用戶體驗等目的。然而,從軟件安全性角度考慮,一方面,升級過程通常包括可執行文件的下載與自動執行;另一方面,用戶對升級過程中下載的可執行文件,往往有著遠超一般可執行文件的信任程度。因此,若升級過程存在漏洞,由此引發的升級文件被篡改或替換,極易導致用戶遭受遠程代碼自動執行攻擊,對用戶系統的安全性造成嚴重損害。此外,基于軟件升級的攻擊方法是多種攻擊手段的綜合利用,如中間人攻擊、流量劫持、軟件逆向等,因而單一的防御方法不能有效對抗這種攻擊,較之平常的攻擊手段,其成功率更高,更隱蔽[2]。升級過程產生的流量也能更順利地通過基于流量檢測方法的防火墻、殺毒軟件、IDS等的防御監控體系,即使用戶終端建立了較為完善的邊界安全防護機制、用戶具備較高的安全意識水平,也依然難以填補這一缺陷。
基于軟件升級漏洞的攻擊有較多案例。2017年7月,中國山東、山西、浙江、福建等省爆發大規模軟件升級劫持事件,大量計算機在升級過程中感染木馬病毒;2017年8月,攻擊者通過劫持烏克蘭流行專用會計軟件M.E.Doc的升級服務器,向用戶推送包含NotPetya病毒的升級包,對政府、銀行、電力系統、通信系統等實施攻擊;2018年12月,一款木馬通過“驅動人生”的升級通道,利用“永恒之藍”漏洞攻擊了超過10萬用戶;2019年3月,卡巴斯基實驗室曝光華碩(ASUS)的軟件升級服務器遭到入侵,攻擊者通過軟件升級,在用戶電腦中安裝惡意程序。上述安全事件都反映出軟件升級機制漏洞會導致巨大安全風險。
目前,已有的針對軟件升級漏洞的相關研究主要圍繞升級漏洞利用、檢測以及安全防御展開。在升級漏洞利用方面,2017年,360天擎團隊發布關于國內政企類軟件安全性的分析報告,其中包含了針對軟件升級的相關漏洞的案例以及攻擊原理分析;2015年,彭先覺等[2]提出一種HTTP協議通信校驗值誤用類型軟件升級漏洞的攻擊方法,并對某團購網站的舊版軟件進行了實際攻擊測試,驗證了該攻擊的可行性。在升級漏洞檢測方面,2015年,傅建明等[3]提出一種靜態分析與動態分析相結合的針對殺毒軟件升級流程安全性分析方法。2017年,Adam K提出了一種基于特征信息匹配的升級漏洞自動檢測方法,能夠捕獲針對軟件升級過程的攻擊。在安全防御方面,2018年,周振飛[4]從機理與防御兩個方面,對軟件供應鏈污染攻擊進行研究,并提出了針對特定種類攻擊的解決方案;2015年,Catuogno等[5]提出一種升級框架,不同于已有的升級框架(如WinGup)使用SSL協議保證升級過程的安全性,該框架基于非交互式密鑰進行升級,同時依賴于靜態屬性策略的軟件安裝與升級框架,并對該方案進行了性能分析。
上述工作從多個方面揭示了軟件升級漏洞的原理以及相應的檢測方法。然而,這些工作存在兩方面問題:一是缺乏清晰明確的升級漏洞分類特征描述模型,影響漏洞檢測的范圍和準確性;二是漏洞分析與檢測的自動化程度較低,難以滿足大批量樣本條件下的檢測要求。
為解決上述問題,本文提出一種基于流量分析的軟件升級漏洞自動檢測方法。該方法通過對軟件升級過程中網絡通信流量特征的分析,建立面向流量特征的升級漏洞特征分類模型;綜合使用字符串模糊匹配和頻率加權比對等方法,實現對升級過程網絡數據流特征的提取與分析,實現對升級過程的自動畫像,進而通過特征向量匹配,實現對多種類型升級漏洞的自動化檢測。同時,設計漏洞自動化驗證平臺,通過模擬攻擊的方法,對漏洞檢測的結果進行自動驗證,提高檢測結果的準確性。
軟件在線升級的內容本身,無論是程序組件還是完整的升級包,都可視為公開的數據和資源,無須進行保密。軟件升級過程的漏洞,主要體現為對升級服務器和升級包的認證機制漏洞,主要包括對升級服務器身份認證缺失,以及對升級包的真實性、完整性與新鮮性認證的缺失等。從升級漏洞的具體形式來看,主要體現在升級過程的3個不同階段。分別是發起階段,客戶端與服務器交互,獲取相關配置信息與升級包URL;下載階段,客戶端根據URL下載升級包;安裝階段,安裝升級包。涉及網絡數據的主要為前兩個階段,根據這兩個階段網絡數據特征,對升級漏洞進行分類,如表1所示。
(1) HTTP協議通信類漏洞
對于無防護,在流量側可直接通過中間人的方式劫持并篡改發起階段的數據包中的升級包下載鏈接,將其替換為惡意代碼的下載鏈接從而實現惡意代碼的下載,并在安裝階段實現遠程代碼與程序的自動執行,具體實例如CNTV央視影音客戶端(測試版本4.4.0.0,受影響版本4.6.2.1及以下,CNNVD=201903-1283)。
對于校驗誤用,在流量側可直接通過中間人的方式劫持并篡改發起階段的數據包中的新版本下載鏈接以及對應的校驗值,將其替換為惡意代碼的下載鏈接以及對應的校驗值,從而實現惡意代碼的下載并在安裝階段實現遠程代碼與程序的自動執行,具體實例如優酷視頻播放器(測試版本7.2.6.8110,受影響版本7.7.7.4191及以下,CNVD-2018-06299)。
(2) HTTPS協議通信類漏洞
對于HTTPS保護缺失,在流量側可通過中間人的方式劫持篡改完成。對于發起階段使用HTTP協議的,可劫持該階段的配置信息并進行篡改。對于下載階段可通過強制返回虛假重定向數據包,完成發起階段或下載階段的HTTPS協議繞過,實現惡意代碼的下載,從而在安裝階段實現遠程代碼與程序的自動執行,具體實例如5K Player(加密傳輸配置信息,下載階段使用HTTP協議,測試版本5.0,受影響版本5.7及以下),GOM AUDIO(HTTP協議傳輸HTTPS鏈接以及配置信息,測試版本2.3.35.5296,受影響版本2.3.38.5300及以下)。
對于HTTP重定向誤用,在流量側可分別劫持下載階段或發起階段的重定向的返回數據包并對重定向鏈接進行篡改,完成HTTPS協議繞過,實現惡意代碼的下載,從而在安裝階段實現遠程代碼與程序的自動執行,具體實例如SweetHome3D(下載過程使用重定向,測試版本5.5,受影響版本5.7及以下),TunesKit Audiobook Converter (發起階段使用重定向,測試版本3.0.3,受影響版本3.0.8及以下)。

表1 漏洞分類特征描述
為實現軟件升級漏洞的自動化檢測,首先需要對升級漏洞特征進行定義和描述。然后通過對實例分析總結,從升級過程的網絡流量數據中,篩選出與升級漏洞檢測相關的22種關鍵信息要素,將其取值對應的向量。作為升級漏洞的檢測依據,即升級漏洞特征向量,信息要素按照升級的發起和下載兩個階段劃分如表2所示。
將表1中的漏洞分類與表2中信息要素相結合,得到不同類型的升級漏洞特征向量,如表3所示。
基于漏洞特征向量,本節給出一種軟件升級漏洞自動化檢測方法,以關鍵信息要素的提取與分析為基礎,按照“升級畫像—漏洞檢測—漏洞驗證—結果確認”的方法,實現升級漏洞自動分析與檢測,流程如圖1所示。
漏洞流程分為4步。
Step1 升級畫像。結合文件操作記錄與升級流量記錄,對升級過程中與漏洞檢測相關的關鍵數據包進行定位,提取其中的關鍵信息要素,構建描述升級過程與機制的“升級畫像”。
Step2 漏洞檢測。根據升級畫像的向量描述,結合漏洞特征向量,進行基于向量匹配的漏洞檢測,得到漏洞檢測預結果。
Step3 漏洞驗證。在模擬攻擊環境下,根據檢測結果進行驗證形成最終的檢測結論。該方法綜合了理論分析與實際驗證,有效確保了分析的準確性。
Step4 結果確認。根據模擬攻擊結果對檢測結論進行確認,并輸出畫像、檢測結果、漏洞驗證配置文件。

表2 升級關鍵信息要素
【注】*項目實際情況可為空,括號中內容為表3中漏洞特征向量的對應值。

表3 升級漏洞特征向量
【注】*項目根據實際情況可選(具體值可為空/0/1),空白為使用HTTPS協議無法提取具體值,值的說明參見表2括號中內容。

圖1 漏洞檢測流程
Figure 1 The flow of vulnerability detection
下面按照流程分別介紹各個步驟所使用的具體方法。
升級過程中軟件客戶端與升級服務器之間的網絡通信數據中,包含關于升級方式、升級流程、升級安裝包格式等一系列關鍵信息。為了對升級過程網絡數據進行提取與分析,本文使用tshark進行實現。為便于對網絡流量數據包的自動化分析,將流量記錄以json格式保存,單個json格式流量包結構示例如圖2所示。

圖2 json數據包結構
Figure 2 The structure diagram of json data packet
升級畫像所需的信息提取關鍵在于對發起階段和下載階段的相關數據包進行準確定位。根據目標軟件升級模式的不同,采用分別基于下載階段信息和發起階段信息兩種信息定位和提取方法。
3.2.1 基于下載階段信息的升級畫像
該方法首先在流量記錄的同時,通過文件監控,獲取升級包文件名,并計算該文件對應的各種可能校驗值(校驗值類型見表2 發起階段prog_verify信息欄)。在此基礎上,按照4個步驟實現基于下載階段的升級畫像,流程如圖3所示。
Step1 通信協議掃描記錄
對所有的通信數據包進行掃描,判斷通信協議并記錄,如果存在HTTP協議,進行Step2,否則結束。
Step2 下載階段數據包定位
采用兩種算法對下載階段數據包進行定位
算法1 基于升級包文件名的精確搜索定位
輸入 升級包文件名,升級流量數據包
輸出 下載階段數據包信息
算法步驟:
1) 對所有HTTP協議的流量數據包進行“GET”關鍵字匹配,提取下載請求及其對應的URL;
2) 在1)提取的所有下載請求及其對應的URL中,搜索文件監控到的升級包文件名,提取該文件下載請求的URL及其所在數據包的通信五元組并輸出。
算法結束
算法2 基于文件類型的模糊匹配定位
輸入 軟件名,升級流量數據包
輸出 下載階段數據包信息

圖3 基于下載階段信息的升級畫像流程
算法步驟:
1) 對所有HTTP協議的流量數據包進行“GET”關鍵字匹配,提取下載請求及其對應的URL;
2) 在1)提取的所有下載請求及其對應的URL中,篩選exe、msi、rar、zip等類型的可執行文件的下載請求及其URL;
3) 根據Levenshtein Distance算法[6]分別計算所有下載請求URL中的文件名和測試軟件名之間的相似度為:


4) 選取與舊版本程序文件名相似度最大的新下載程序文件名,提取對應下載請求中的升級包URL及通信五元組,并輸出。
算法結束
Step3 發起階段數據包定位
根據Step2提取到的升級包URL,采用基于加權向量的配置信息數據包定位算法對數據包進行定位。
算法3 基于加權向量的發起階段數據包定位
輸入 升級包URL,升級流量數據包
輸出 發起階段數據包信息
算法步驟:
1) 對算法2提取的升級包URL按照協議名稱://服務器名稱(IP地址)/路徑/文件名進行拆分,形成搜索字典;
2) 對1)中的搜索字典,在所有HTTP協議的流量數據包的http_file_data數據段內容中進行搜索匹配,統計搜索字典中各個字符串在該數據段中出現的次數,形成各個數據包相應的字典統計向量;
3) 分別計算各個數據包對應的字典統計向量加權和,權重及計算公式如表4所示。

表4 權重信息

4) 在所有HTTP協議的流量數據包的http_file_data數據段內容中,對以http://或https://開頭,以.ini/.dat/.xml/.cfg等配置文件類型擴展名結尾的URL進行搜索匹配,匹配成功,則截取其URL,通信五元組并輸出,轉至5);
5)根據3)、4)定位數據包對應的通信五元組進行發起階段數據包定位,提取發起升級請求的內容及對應的升級請求URL并輸出。
算法結束
Step4 重定向掃描
算法4 重定向掃描
輸入 發起階段和下載階段通信五元組,升級流量數據包
輸出 升級過程重定向信息
算法步驟:
1) 對所有HTTP協議的流量數據包進行“301/302/303 Found”匹配,記錄所有的重定向請求包以及回應包;
2) 在1)提取的所有重定向數據包中,對Step2中發起階段請求URL和Step3中下載階段升級包URL進行掃描匹配,記錄匹配結果中重定向請求包以及響應包中的URL、協議類型以及對應的升級階段并輸出。
算法結束
Step5 畫像信息輸出
將Step1~Step4輸出的信息進行整理,填充到表2升級畫像的對應位置,輸出畫像。
3.2.2 基于發起階段信息的升級畫像
該方法首先在流量記錄的同時,通過文件監控,獲取升級包文件名,并計算該文件對應的各種可能校驗值(校驗值類型見表2 發起階段prog_verify信息欄)。在此基礎上,按照4個步驟實現基于下載階段的升級畫像,流程如圖4所示。

圖4 基于發起階段信息的升級畫像流程
Figure 4 The flow of upgrade process based on request stage information
Step1 通信協議判別
對所有的通信數據包進行掃描,判斷通信協議并記錄,如果存在HTTP協議,則進行Step2,否則結束。
Step2 發起階段數據包定位
采用兩種算法對新版本程序下載數據包進行定位。
算法5 基于升級包文件名的精確搜索定位
輸入 升級包文件名,升級流量數據包
輸出 發起階段數據包信息
算法步驟:
1) 在所有HTTP協議的流量數據包的http_file_data數據段內容中進行搜索匹配,截取所有以http://或https://開頭,以.exe/.msi/.zip/.rar等可執行文件后綴名結尾的URL字符串,并記錄;
2) 在1)提取的結果中,對文件監控獲得的升級包文件名進行匹配,如果匹配成功,記錄該URL及其所在數據包的通信五元組,并在該數據段中搜索相關的校驗信息,記錄使用的相關校驗方法以及校驗值并輸出,轉至4),如果URL提取失敗,轉至3);
3) 在所有HTTP協議的流量數據包的http_file_data數據段內容中對以http://或https://開頭,以.ini/.dat/.xml/.cfg等配置文件類型擴展名結尾的URL進行搜索匹配,若匹配成功,則將其URL進行截取,提取其通信五元組并輸出;
4) 根據2)3)定位數據包對應的通信五元組進行發起階段數據包定位,提取發起升級請求的內容及對應的升級請求URL并輸出。
算法結束
算法6 基于文件類型的模糊匹配定位
輸入 程序名,升級流量數據包
輸出 發起階段數據包信息
算法步驟:
1) 在所有HTTP協議的流量數據包的http_file_data數據段內容中進行搜索匹配,截取數據包中所有以http://或https://開頭,以.exe/.msi/.zip/.rar等可執行文件后綴名結尾的字符串,并記錄;
2) 在1)提取的結果中,提取所有URL中文件名部分,根據Levenshtein Distance算法分別計算每個URL中文件名與舊版本程序文件名的相似度,選取超過閾值且最大的即為升級包URL,并在該數據段中搜索相關的校驗信息,記錄使用的相關校驗方法以及校驗值,提取其所在數據包的通信五元組并輸出,轉至4),如果URL提取失敗,轉至3);
3) 在所有HTTP協議的流量數據包的http_file_data數據段內容中對以http://或https://開頭,以.ini/.dat/.xml/.cfg等配置文件類型擴展名結尾的URL進行搜索匹配,匹配成功,則截取其URL,提取其通信五元組并輸出,轉至4);
4) 根據2)、3)定位數據包對應的通信五元組進行發起階段數據包定位,提取發起升級請求的內容及對應的升級請求URL并輸出。
算法結束
Step3 下載階段數據包定位
算法7 基于搜索匹配的下載階段數據包定位
輸入 升級包URL,升級流量數據包
輸出 下載階段數據包信息
算法步驟:
1) 對所有HTTP協議的包進行“GET”關鍵字匹配,提取下載請求及其對應的URL
2) 在1)提取的所有下載請求及其對應的URL中,搜索匹配Step2中提取的升級包URL,記錄匹配成功的下載請求數據包及其信五元組并輸出。
算法結束
Step4 重定向掃描
方法同基于下載階段信息的升級畫像中對應部分。
Step5 畫像信息輸出
將Step1—Step4輸出的信息進行整理,填充到表2升級畫像的對應位置,輸出畫像。
以上兩種算法相結合可針對表1中包含的四大類升級漏洞完成信息提取,對比如表5所示。
兩種升級畫像算法的核心都是獲取升級包的URL,并以此為線索完成對發起階段和下載階段數據包的定位,基于發起階段信息的升級畫像算法是先通過對HTTP協議數據包http_file_data數據段掃描獲取升級包的URL及其配置信息,然后根據該URL完成對下載階段數據包的定位,基于下載階段信息的升級畫像算法是先通過對HTTP 協議數據包中所有的“GET”請求掃描獲取升級包URL,然后根據該升級包URL完成對發起階段數據包的定位。
以央視影音客戶端(無防護類,漏洞編號:CNNVD=201903-1283)為示例,升級畫像算法在分析過程中提取的關鍵信息如紅框所示,升級畫像如圖5所示。

表5 算法能力分析
【注】“√”表示算法可提取該情況下畫像信息,“×”表示算法不可提取該情況下畫像信息。

圖5 央視影音客戶端升級發起階段數據包
Figure 5 The data packet of request stage during CNTV client upgrade process
發起階段:程序使用HTTP協議請求新版本的配置信息(編號178),隨后服務器使用HTTP協議對請求進行了回應(編號181)。
回應的配置信息以明文方式傳輸,其中包含了新版本程序的下載鏈接以及相關校驗值如圖6所示。
下載階段:程序根據配置信息中的URL使用HTTP協議進行升級包的下載(編號2256)。央視影音客戶端升級下載階段數據包如圖7所示。
央視影音客戶端升級畫像如圖8所示。

圖6 央視影音客戶端升級發起階段信息
Figure 6 The infomation of request stage during CNTV client upgrade process

圖7 央視影音客戶端升級下載階段數據包
Figure 7 The data packet of download stage during CNTV client upgrade process

圖8 央視影音客戶端升級畫像
Figure 8 The portrait of CNTV client upgrade process
本節采用基于自動驗證的漏洞檢測模式并提出基于畫像信息升級向量匹配算法進行升級流程漏洞的自動化檢測,其中漏洞檢測算法具體實現如下。
算法8 漏洞檢測算法
輸入 升級流程預畫像,漏洞檢測規則集
輸出 升級流程漏洞檢測預結果
算法步驟:
1) 讀入升級流程預畫像,用于漏洞檢測;
2) 對升級流程預畫像各個階段信息數據進行處理,形成升級流程向量形式的描述;
3) 根據漏洞檢測規則集中的向量特征進行匹配,如果匹配成功,輸出對應的匹配結果。
算法結束
以央視影音客戶端為例,如圖9所示,根據其畫像,得到的升級流程向量為[0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1],將該向量與表3中的漏洞特征向量進行匹配,可判定其漏洞類型為無防護漏洞。

圖9 央視影音漏洞檢測向量
Figure 9 The vulnerability detection vectors of CNTV client
為提高檢測結果的準確性,防止漏報、誤報,構建模擬驗證環境,對漏洞檢測結果進行驗證,整體思路如圖10所示。

圖10 漏洞驗證思路
Figure 10 The method of vulnerability validation
(1) 目標載荷預處理
對目標載荷進行預處理,處理內容如下。
1) 根據畫像檢查升級包是否有壓縮,是否特殊格式,若有則在不影響載荷功效的情況下將載荷調整為相同格式。
2) 根據畫像檢查升級包是否有校驗,且讀取出是哪一類校驗,調用openssl庫函數的對應校驗函數對步驟1)處理后的載荷計算校驗值,將計算出的校驗值替換原升級包的散列值。
3) 根據畫像檢查升級包是否有文件大小校驗,計算經過步驟2)處理后的載荷大小,將結果替換原有畫像的數值。
4) 根據畫像信息更改惡意載荷名稱與原升級包名稱一致。
5) 惡意載荷上傳至惡意程序服務器等待目標主機下載。
(2) 漏洞驗證配置文件生成
驗證配置信息中包含幾項內容。
1) 升級關鍵數據包定位信息
依據畫像信息中的發起階段和下載階段相關的協議類型以及關鍵信息如URL、檢驗信息等進行實時流量的劫持與定位。
2) 中間人攻擊待篡改信息
根據漏洞檢測預結論,針對不同類型的漏洞,結合畫像信息和惡意載荷信息將實時升級過程中的配置文件數據包,重定向數據包中的URL、相關校驗信息等關鍵字段信息篡改為惡意載荷的信息。
漏洞驗證配置文件生成如圖11所示。
(3) 模擬攻擊目標主機
將漏洞驗證配置文件輸入到監聽執行模塊,惡意程序服務器啟動,目標主機進行軟件升級時進行關鍵數據劫持與篡改,促使目標主機下載惡意載荷,完成攻擊。
以央視影音客戶端為例,漏洞驗證過程如圖12所示。
根據漏洞檢測預結論,指導提取畫像中升級流量定位信息與待篡改關鍵信息,同時將惡意載荷上傳至服務器并獲取URL,將以上信息整理形成漏洞驗證配置文件并上傳至中間人攻擊監聽執行模塊,實施中間人攻擊。

圖11 漏洞驗證配置文件生成
Figure 11 The generation of configuration files for vulnerability validation

圖12 漏洞驗證過程
Figure 12 The vulnerability validation process
驗證過程中,若模擬環境監測到目標主機完成了惡意載荷的下載,校驗與自動執行則判定預檢測結果正確,輸出最終的升級漏洞檢測結果。
為了驗證上述檢測方法的有效性,本文設計并實現了一個基于該方法的升級漏洞自動分析與驗證系統。系統包含數據分析模塊、漏洞檢測模塊與漏洞驗證模塊,分別實現升級流量記錄與畫像生成、升級過程漏洞檢測,以及對檢測結果驗證的功能。利用該系統,對184個Windows應用軟件樣本進行了分析測試,證明了方法的有效性。
設計升級漏洞自動分析與驗證系統,系統架構如圖13所示。
數據分析模塊:由升級流量記錄模塊和升級流程畫像生成模塊兩部分組成,該部分負責升級流程的網絡數據信息的記錄與分析,系統使用tshark(wireshark的命令行工具)對升級流程的所有網絡數據流量進行記錄,并將記錄的pcapng格式數據包轉為json格式數據包后,進行流量數據分析,形成升級流程畫像。
漏洞檢測模塊:根據輸入的畫像信息,結合升級流程漏洞檢測規則集,依據升級漏洞檢測算法對升級漏洞進行檢測并生成檢測結論。
漏洞驗證模塊:驗證檢測結果的正確性,模塊基于Kali Ettercap中間人攻擊框架[7]實現,根據畫像信息和漏洞檢測預結論生成指導中間人攻擊的Ettercap配置文件,在攻擊配置文件的指導下,在模擬環境中對軟件升級過程進行攻擊,根據驗證結果,得到最終的漏洞檢測結論。

圖13 升級漏洞自動分析與驗證系統架構
Figure 13 The structure of automatic vulnerability analysis and verification system
升級漏洞自動化檢測系統分為宿主機和虛擬機兩部分,主程序Updanalyze.exe運行在宿主機上,負責將待測程序安裝包、自動化分析腳本上傳至虛擬機與從虛擬機回傳結果。由VMware Workstation構建的虛擬化Windows操作系統負責安裝待測程序、自動化分析升級過程與自動化驗證。測試環境網絡拓撲如圖14所示。

圖14 測試環境網絡拓撲
Figure 14 The network topology diagram of testing environment
(1) 軟件樣本測試結果
對12類184款國內外的Windows應用軟件進行測試,包含有升級漏洞的樣本數量為117個,所占比例超過60%,涵蓋了瀏覽器、輸入法等12個軟件功能類別,根據漏洞類型和目標類別,對測試結果進行統計。漏洞分布統計如圖15所示,不同軟件類別含漏洞占比如圖16所示。

圖15 漏洞分布統計
Figure 15 The statistics of vulnerability distribution

圖16 不同軟件類別含漏洞占比
Figure 16 The proportion of vulnerabilities in different software types
從圖15可以看出,目前主要的漏洞形式是無防護與校驗誤用兩個類型,占全部已分析樣本總數的58%,而重定向誤用和HTTPS防護缺失的情況相對較少,合計僅占全部樣本的12%。
從圖16可以看出,在目前已分析的12類軟件樣本中,瀏覽器類中漏洞樣本占比相對較少,僅為20%,下載工具類中漏洞的樣本占比例最高,達到100%,其余類別中,含漏洞軟件的比例從40%到80%不等。
(2) 系統性能測試結果
系統性能測試分析如表6所示。
經過實際測試,系統誤報率為7%,系統漏報率為10%,原因分析如下。

表6 系統性能測試分析
系統誤報的樣本共8個,其中3個樣本在校驗過程中使用了非標準密碼算法,如截短MD5,系統未能有效檢測,誤報為“無防護”,實際應為“校驗誤用”;5個樣本由于發起階段使用HTTPS協議傳輸配置信息時,其中包含了校驗信息,由于使用加密傳輸,僅根據流量數據無法檢測,導致在下載階段使用了HTTP協議情況下誤報為“HTTPS保護缺失”,實際應為“無漏洞”。針對以上問題,可在后續的工作中,通過動態二進制插樁監控軟件升級過程中的關鍵函數調用并提取其參數[8]的方法對其加解密并在校驗過程進行詳細分析。
系統漏報的漏洞共7個,其中3個樣本在軟件安裝結束后,立刻自動完成了升級的發起階段,系統未能記錄到該階段的流量數據,實際2個樣本應為“無防護”,1個樣本應為“散列誤用”,針對此問題,可在軟件安裝前即開始網絡流量記錄,確保升級流量記錄的完整性;4個樣本在升級過程中未進行發起階段,直接通過HTTP協議訪問固定域名下載升級包,實際應為“無防護”,針對此問題,可通過人工進行輔助判斷以提高準確性。
軟件升級是應用軟件的必備模塊,如果在線升級的流程設計或代碼實現中存在漏洞,將對用戶主機的安全性構成嚴重威脅。然而現有的升級漏洞檢測方法和手段,缺乏統一的方法和標準,效率低下、嚴重依賴人工,難以滿足對大批量高效分析和檢測的要求。
為解決這一問題,對大量軟件樣本升級流程和機制進行分析與研究,本文提出了一種基于網絡流量的升級漏洞檢測方法。首先記錄和分析流量,生成畫像,并根據畫像通過特征匹配進行漏洞檢測,最后對檢測結果進行驗證得出最終結論。本文還設計并實現基于此方法的面向Windows應用軟件的升級漏洞自動檢測與驗證系統,系統由數據提取與分析、漏洞檢測與漏洞自動驗證3個子系統組成,實現了升級流程信息的自動提取和分析,以及基于此的漏洞檢測與驗證功能。通過對184個軟件樣本的分析測試,檢測出117個樣本的升級漏洞,證明了該方法和系統能夠高效準確地發現軟件升級機制中存在的漏洞。
[1] 張海藩. 軟件工程導論[M]. 北京: 清華大學出版社, 1998.
ZHANG H F. Introduction to software engineering[M]. Beijing: Tsinghua University Press, 1998.
[2] 彭先覺, 胡勇. 利用軟件在線升級的攻擊[J]. 通信技術, 2015(10): 1183-1186.
PENG X J, HU Y. Attacks using online software upgrade[J]. Communications Technology, 2015 (10): 1183-1186.
[3] 傅建明, 劉高, 李鵬偉. 一種殺毒軟件升級流程的安全性分析方法[J]. 武漢大學學報(理學版). 2015(6): 509-516.
FU J M, LIU G, LI P W. A security analysis method of antivirus software upgrade process[J] .Journal of Wuhan University (Natrual Science Edition). 2015 (6): 509-516.
[4] 周振飛. 軟件供應鏈污染機理與防御研究[D]. 北京: 北京郵電大學, 2018.
ZHOU Z F. Research on software supply chain pollution mechanism and defense[D] .Beijing: Beijing University of Posts and Telecommunications, 2018.
[5] CATUOGNO L, GALDI C, PERSIANO G. Guaranteeing dependency enforcement in software updates[M]. Secure IT Systems. Springer International Publishing, 2015.
[6] 趙作鵬, 尹志民, 王潛平, 等. 一種改進的編輯距離算法及其在數據處理中的應用[J]. 計算機應用, 2009, 29(2): 424-426.
ZHAO Z P, YIN Z M, WANG Q P, et al. An improved edit distance algorithm and its application in data processing [J]. Journal of Computer Applications, 2009, 29 (2): 424-426.
[7] 劉倩. 基于Kali Linux的網絡安全技術探討與研究[D]. 長春: 吉林大學, 2018.
LIU Q. Discussion and research on network security technology based on Kali Linux [D]. Changchun: Jilin University, 2018.
[8] 王乾. 基于動態二進制分析的關鍵函數定位技術研究[D]. 鄭州: 信息工程大學, 2012.
WANG Q. Research on key function location technology based on dynamic binary analysis [D]. Zhengzhou: Information Engineering University, 2012.
Automatic detection method of software upgrade vulnerabilitybased on network traffic analysis
TENG Jinhui, GUANG Yan, SHU Hui, ZHANG Bing
Strategic Support Force Information Engineering University, Zhengzhou 450001, China
During the software upgrade process, the lack of authentication for upgrade information or packages can lead to remote code execution vulnerabilities based on man-in-the-middle attack. An automatic detection method for upgrading vulnerabilities was proposed. The method described the upgrade mechanism by extracting the network traffic during the upgrade process, then matched it with the vulnerability feature vector to anticipate upgrading vulnerabilities. In a validation environment, the man-in-the-middle attack using the portrait information was carried out to verify the detection results. In addition, an automatic vulnerability analysis and verification system based on this method was designed. 184 Windows applications samples was test and 117 upgrade vulnerabilities were detected in these samples, which proved validity of the method.
software upgrade, network traffic analysis, vulnerability detection, automated analysis and validation
TheNational Key R & D Program of China(No.2018YFB08011601)
TP309.5
A
10.11959/j.issn.2096?109x.2020004

騰金輝(1996? ),男,河南洛陽人,戰略支援部隊信息工程大學助理研究員,主要研究方向為基于大數據的安全機制分析以及漏洞利用。
光焱(1983? ),男,安徽樅陽人,博士,戰略支援部隊信息工程大學講師,主要研究方向為安全機制分析與漏洞挖掘。

舒輝(1974? ),男,江蘇鹽城人,戰略支援部隊信息工程大學教授、博士生導師,主要研究方向為網絡安全、漏洞檢測。
張冰(1989? ),男,河南鄭州人,碩士,主要研究方向為軟件工程。
論文引用格式:騰金輝, 光焱, 舒輝, 等. 基于流量分析的軟件升級漏洞自動檢測方法[J]. 網絡與信息安全學報, 2020, 6(1): 94-108.
TENG J H, GUANG Y, SHU H, et al. Automatic detection method of software upgrade vulnerability based on network traffic analysis [J]. Chinese Journal of Network and Information Security, 2020, 6(1): 94-108.
2019?05?14;
2019?08?12
騰金輝,1013787991@qq.com
國家重點研發計劃基金資助項目(No.2018YFB08011601)