• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      面向嵌入式CGI的命令注入漏洞挖掘研究

      2023-04-13 01:59:02常天佑朱濤宋健谷廣宇
      計(jì)算機(jī)時(shí)代 2023年4期
      關(guān)鍵詞:嵌入式

      常天佑 朱濤 宋健 谷廣宇

      摘? 要: 嵌入式IoT設(shè)備系統(tǒng)種類多差別大,系統(tǒng)存在危險(xiǎn)數(shù)據(jù)過濾不嚴(yán)格的風(fēng)險(xiǎn)大,攻擊者可通過精心構(gòu)造的惡意數(shù)據(jù)包獲取系統(tǒng)的控制權(quán)。嵌入式系統(tǒng)的安全性已逐漸成為設(shè)備被廣泛采納的最大障礙。針對命令注入型漏洞與程序接收數(shù)據(jù)密切相關(guān)這一特征,本文通過對嵌入式通用網(wǎng)關(guān)接口(Common Gateway Interface,CGI)程序接收的數(shù)據(jù)進(jìn)行數(shù)據(jù)流分析,使用污點(diǎn)分析技術(shù)研判程序接收的數(shù)據(jù)是否能夠不經(jīng)無害處理而到達(dá)系統(tǒng)敏感函數(shù),達(dá)到檢測CGI程序是否存在命令注入漏洞的目的。

      關(guān)鍵詞: CGI; 嵌入式; 污點(diǎn)分析; 漏洞挖掘

      中圖分類號:TP313.3? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2023)04-01-04

      Abstract: Embedded IoT devices have many different kinds of systems, and there is a high risk that the system is not strictly filtered with dangerous data. Attackers can gain control of the system through carefully constructed malicious data packets. Security of embedded systems is emerging as the biggest barrier to widespread adoption. In view of the feature that the command injection vulnerability is closely related to the data received by the program, the data flow received by the embedded common gateway interface (CGI) program is analyzed, and the taint analysis technique is used to determine whether the data received by the program can reach the system sensitive function without harmless processing. The purpose of detecting whether the CGI program has command injection vulnerability is achieved.

      Key words: CGI; embedded; taint analysis; vulnerability mining

      0 引言

      近年來,智能制造,智能家居,智慧醫(yī)療等智能化應(yīng)用推動了越來越多的智能化設(shè)備接入互聯(lián)網(wǎng),在IoT Analytics研究報(bào)告中預(yù)計(jì),到2025年,將有大約270億臺物聯(lián)網(wǎng)設(shè)備通過網(wǎng)絡(luò)互聯(lián),這些網(wǎng)絡(luò)互聯(lián)的物聯(lián)網(wǎng)設(shè)備大部分都采用嵌入式系統(tǒng)。未來物聯(lián)網(wǎng)嵌入式設(shè)備的應(yīng)用范圍將不斷被拓寬,隨之而來的是大規(guī)模安全漏洞[1-4]的出現(xiàn),這一趨勢給物聯(lián)網(wǎng)的發(fā)展帶來極大的挑戰(zhàn)。

      據(jù)360公開安全研究報(bào)告顯示,與IoT設(shè)備相關(guān)的漏洞增長率比漏洞整體增長率高出14.7%[5]。相關(guān)研究發(fā)現(xiàn),小而精、低功耗是IoT嵌入式設(shè)備追求的目標(biāo),因而導(dǎo)致缺少完善的安全機(jī)制和防護(hù)手段,IoT嵌入式設(shè)備的安全隱患逐漸成為其被廣泛采納的最大障礙。在物聯(lián)網(wǎng)設(shè)備入網(wǎng)前和入網(wǎng)后,發(fā)現(xiàn)漏洞并及時(shí)修復(fù)漏洞,可以保障物聯(lián)網(wǎng)設(shè)備的安全性。因此,研究IoT嵌入式系統(tǒng)的漏洞挖掘具有極為重要的學(xué)術(shù)意義和實(shí)際應(yīng)用價(jià)值。

      針對嵌入式設(shè)備的漏洞挖掘是當(dāng)前網(wǎng)絡(luò)安全的研究熱點(diǎn)之一。已有的研究如基于源代碼相似性檢測,是根據(jù)已知漏洞代碼特征匹配進(jìn)行大規(guī)模漏洞挖掘[6-8],但這種漏洞挖掘需要提供程序源代碼。COSTIN等在文獻(xiàn)[9]中提出使用靜態(tài)分析方法,根據(jù)已知漏洞特征對大規(guī)模固件進(jìn)行漏洞挖掘,該方法對已知漏洞的檢測有一定的效果,但是無法檢測到未知的漏洞。學(xué)術(shù)界比較推崇的是符號執(zhí)行[10],符號執(zhí)行分為動態(tài)符號執(zhí)行和靜態(tài)符號執(zhí)行,它能夠以盡可能少的測試用例達(dá)到一定的代碼覆蓋率,但符號執(zhí)行面臨路徑空間爆炸和狀態(tài)空間爆炸問題[11],它的開銷非常大。工程界比較推崇基于fuzzing的模糊測試技術(shù),由于嵌入式系統(tǒng)無論在帶寬處理還是計(jì)算資源上都遠(yuǎn)低于傳統(tǒng)PC系統(tǒng),F(xiàn)uzzing這種在傳統(tǒng)PC領(lǐng)域非常成熟的技術(shù)對帶寬資源和計(jì)算資源要求都非常高,而仿真嵌入式系統(tǒng)是一件具有挑戰(zhàn)的事情,仿真環(huán)境通常對系統(tǒng)配置的依賴較多,嵌入式設(shè)備的多樣性使得仿真難以具備通用的配置。CHEN等在文獻(xiàn)[12]提出基于已知特征進(jìn)行系統(tǒng)級仿真環(huán)境漏洞檢測的方法。由于仿真環(huán)境對系統(tǒng)配置的依賴較多,因而該實(shí)驗(yàn)證明了嵌入式設(shè)備的多樣性會使得仿真難以具備通用的配置。在NDSS 2016上推出一個開源工具Firmdyne[13],其在虛擬嵌入式系統(tǒng)方面做出較大的貢獻(xiàn),但該工具僅適用部分品牌路由器系統(tǒng)的虛擬復(fù)現(xiàn)。

      本文提出了基于污點(diǎn)分析的嵌入式CGI程序命令注入漏洞挖掘方法,采用污點(diǎn)分析技術(shù)研判程序接收的數(shù)據(jù)是否能夠不經(jīng)無害處理而到達(dá)系統(tǒng)敏感函數(shù),以此檢測出CGI程序是否存在命令注入式漏洞。實(shí)驗(yàn)結(jié)果表明本文提出的方法能夠有效挖掘嵌入式CGI程序的命令注入式漏洞。

      1 CGI程序的污點(diǎn)分析技術(shù)

      1.1 CGI程序運(yùn)行原理

      CGI是Web服務(wù)器運(yùn)行時(shí)外部程序的規(guī)范,按照CGI編寫的程序可擴(kuò)展服務(wù)器功能。CGI程序運(yùn)行在HTTP服務(wù)器中,為HTTP服務(wù)器與其他第三方應(yīng)用程序之間提供數(shù)據(jù)交換手段。程序的大部分采用C語言編寫,通過系統(tǒng)函數(shù)調(diào)用來控制設(shè)備,以此達(dá)到靈活高效又能操控設(shè)備的目的。

      如圖1所示,Web服務(wù)器發(fā)送HTTP請求Request到CGI進(jìn)程,CGI進(jìn)程把HTTP請求的Header設(shè)置為進(jìn)程的環(huán)境變量。HTTP請求的Body正文設(shè)置為進(jìn)程的標(biāo)準(zhǔn)輸入,CGI進(jìn)程的標(biāo)準(zhǔn)輸出作為HTTP數(shù)據(jù)包響應(yīng)Web服務(wù)器的請求,這樣CGI程序獲取瀏覽器參數(shù)在完成業(yè)務(wù)邏輯運(yùn)算或執(zhí)行相關(guān)動作后返回瀏覽器。其中環(huán)境變量是指 CGI 程序定義的一組環(huán)境變量,通過環(huán)境變量可傳遞數(shù)據(jù)。常用CGI程序環(huán)境變量如表1所示。

      根據(jù)REQUEST_METHOD變量值可判斷CGI請求所采用的請求方法,以決定是通過Stdin還是通過環(huán)境變量QUERY_STRING獲取客戶端傳輸數(shù)據(jù)。當(dāng)使用ISINDEX查詢或FORM表使用GET方法時(shí),可以通過QUERY_STRING環(huán)境變量獲取CGI程序URL中″?″之后的數(shù)據(jù);當(dāng)環(huán)境變量METHOD為POST時(shí),CGI 程序通過標(biāo)準(zhǔn)輸入STDIN 讀取數(shù)據(jù)獲取POST表單信息。通過CONTENT_LENGTH環(huán)境變量獲取獲取傳輸數(shù)據(jù)的字節(jié)數(shù),通過CONTENT_TYPE環(huán)境變量獲取傳輸數(shù)據(jù)的編碼類型。CGI程序通過函數(shù)environ可以獲得所有的環(huán)境變量及其值,通過函數(shù)getenv可以獲得指定環(huán)境變量的對應(yīng)值。

      1.2 CGI程序的污點(diǎn)分析思路

      污點(diǎn)分析作為數(shù)據(jù)流分析的實(shí)踐,是漏洞挖掘的一種有效方法[14],它標(biāo)記不可信數(shù)據(jù)為污點(diǎn)數(shù)據(jù),通過數(shù)據(jù)流分析的方法,監(jiān)控污點(diǎn)數(shù)據(jù)在程序中的傳播以判斷是否存在命令執(zhí)行、信息泄露等違反安全的操作。本文采用污點(diǎn)分析的方法,通過分析CGI程序接收的HTTP請求數(shù)據(jù)包能否以不受限制的方式傳播到系統(tǒng)敏感函數(shù),來研判CGI程序是否存在命令注入漏洞。污點(diǎn)分析可以抽象成三元組的形式,其中,sources作為污點(diǎn)源,代表直接引入不受信任的數(shù)據(jù)到程序中;sinks為污點(diǎn)匯聚點(diǎn),代表直接產(chǎn)生安全敏感操作;sanitizers作為無害處理,代表通過數(shù)據(jù)變形或過濾操作等手段使污點(diǎn)數(shù)據(jù)傳播不到系統(tǒng)敏感函數(shù)中。有效識別污點(diǎn)源和匯聚點(diǎn)是污點(diǎn)分析的前提和保障。圖2為某路由器固件的CGI程序反編譯代碼。

      如圖2所示,CGI程序通過getenv函數(shù)獲取環(huán)境變量的值,該數(shù)據(jù)值作為程序接收的數(shù)據(jù)是數(shù)據(jù)流分析的關(guān)鍵。另外Body內(nèi)容作為程序標(biāo)準(zhǔn)輸入的數(shù)據(jù)也是數(shù)據(jù)流分析的重點(diǎn)對象。這些數(shù)據(jù)作為污點(diǎn)分析抽象三元組的source污染源部分,被視為外部引入的不信任數(shù)據(jù)。sink污點(diǎn)匯聚點(diǎn)代表直接產(chǎn)生危險(xiǎn)的敏感操作,對于嵌入式CGI程序,重點(diǎn)關(guān)注system-like此類系統(tǒng)敏感函數(shù)。

      如圖3所示,system-like系統(tǒng)調(diào)用函數(shù)的參數(shù)作為污點(diǎn)匯聚點(diǎn)是污點(diǎn)分析的最終節(jié)點(diǎn)。接下來CGI程序的污點(diǎn)分析就是分析程序中環(huán)境變量值和標(biāo)準(zhǔn)輸入值是否能夠不經(jīng)無害處理傳播到污點(diǎn)匯聚點(diǎn),即system-like函數(shù)參數(shù)。如果能,說明程序能夠產(chǎn)生命令注入式安全問題,否則不存在命令注入式安全問題。

      1.3 CGI程序的污點(diǎn)分析算法

      污點(diǎn)分析算法作為系統(tǒng)的核心,通過解析環(huán)境變量和輸入數(shù)據(jù)進(jìn)行污染源的識別;通過污染源更新和標(biāo)記更新進(jìn)行污點(diǎn)標(biāo)記的傳播;通過解析系統(tǒng)函數(shù)參數(shù)進(jìn)行匯聚點(diǎn)的識別。最后以匯聚結(jié)點(diǎn)是否檢測到污點(diǎn)標(biāo)記來判斷程序是否存在命令注入式安全問題,算法如下。

      污點(diǎn)分析算法以CGI程序作為輸入,利用IDA分析引擎反匯編出程序指令集,識別污點(diǎn)輸入源函數(shù),匯聚結(jié)點(diǎn)函數(shù),然后針對每一條指令進(jìn)行污點(diǎn)標(biāo)記和污點(diǎn)更新,最后以匯聚結(jié)點(diǎn)是否檢測到污點(diǎn)標(biāo)記來判斷程序是否存在命令注入式安全問題。

      2 實(shí)驗(yàn)分析

      為驗(yàn)證本文提出方法的有效性,本文在angr工具的基礎(chǔ)上實(shí)現(xiàn)原型系統(tǒng),使用IDA Pro腳本反編譯解析CGI程序。

      2.1 實(shí)驗(yàn)環(huán)境設(shè)置

      實(shí)驗(yàn)采用Linux虛擬機(jī),配置intel I7 CPU,內(nèi)存16G,磁盤64G,操作系統(tǒng)為Ubuntu18.04,完成CGI程序污點(diǎn)源識別、污點(diǎn)標(biāo)記傳播,匯聚點(diǎn)識別等實(shí)驗(yàn)。

      2.2 實(shí)驗(yàn)對象選擇

      通過固件下載和硬件讀取的方式收集多個廠家共38個嵌入式設(shè)備的CGI程序,詳見表2。選取以下CGI程序作為測試集來進(jìn)行實(shí)驗(yàn)分析,以此驗(yàn)證本文方法的可行性和有效性。

      2.3 實(shí)驗(yàn)可行性測試

      本文選取DIR-815_A1_FW:v1.02b06固件的CGIBIN程序作為測試對象進(jìn)行分析,該程序存在CNVD-2018-01084遠(yuǎn)程命令注入式漏洞。利用binwalk提取固件中的CGIBIN程序,在IDA pro7.5中反編譯結(jié)果如圖4所示。

      原型系統(tǒng)每執(zhí)行一條程序指令均進(jìn)行污點(diǎn)傳播標(biāo)記,部分污點(diǎn)傳播記錄如圖5所示。

      最終原型系統(tǒng)發(fā)出了警告,經(jīng)分析可以看到程序在0x40DF78處引發(fā)了漏洞,如圖6所示。

      通過上述實(shí)驗(yàn)結(jié)果,能夠發(fā)現(xiàn)DIR-815_A1_FW:v1.02b06固件中的CGI程序存在命令注入式漏洞,同時(shí)在測試其他的CGI程序時(shí)具有類似的結(jié)果,驗(yàn)證了本文提出的方法是可行的和有效的。

      3 結(jié)束語

      針對IoT嵌入式系統(tǒng)漏洞突出,人工手段難以應(yīng)對大量的、類型多樣IoT嵌入式系統(tǒng)的漏洞挖掘,本文針對嵌入式CGI程序命令注入此類典型漏洞,首先對CGI程序的工作原理和環(huán)境變量進(jìn)行分析,然后重點(diǎn)介紹了CGI程序污點(diǎn)分析的思路并設(shè)計(jì)污點(diǎn)分析的算法,最后通過實(shí)驗(yàn)驗(yàn)證本文提出的方法能夠有效挖掘嵌入式CGI程序的命令注入漏洞。

      參考文獻(xiàn)(References):

      [1] HO G, LEUNG D, MISHRA P, et al. Smart locks: Lessons for securing commodity internet of things devices[C]//Proceedings of the 11th ACM Asia Conference on Computer and Communications Security. New York: ACM,2016:461-472

      [2] GARTNER. Internet of things (IoT) market[EB/OL].[2017-07-10].https://www.gartner.com/newsroom/id/3598917.

      [3] CONSTANTIN L. Hackers found 47 new vulnerabilities in 23 IoT devices at DEFCON [EB/OL]. [2017-05-23].http://www.Csoonline.com/article/3119765/security/hackers-found-47-new-vulnerabilities-in-23-iot-devices-at-defcon.html.

      [4] NAWIR M, AMIR A, YAAKOB N, et al. Internet of things(IoT): Taxonomy of security attacks[C]//2016 3rd International Conference on Electronic Design.Piscataway:IEEE,2016:321-326

      [5] 360,典型IoT設(shè)備網(wǎng)絡(luò)安全分析報(bào)告,2021

      [6] LI H, KWON H, KWON J, et al. CLORIFI: software vulnerability discovery using code clone verification[J]. Concurrency and Computation Practice and Experience,2016,28(6):1900-1917

      [7] 甘水滔,秦曉軍,陳左寧,等.一種基于特征矩陣的軟件脆弱性代碼克隆檢測方法[J].軟件學(xué)報(bào),2015,26(2):348-363

      [8] LI Z, ZOU D, XU S, et al. VulPecker: an automated vulnerability detection system based on code similarity analysis[C]//Conference on Computer Security Applications. Los Angeles: ACM,2016:201-213

      [9] COSTIN A, ZADDACH J, FRANCILLON A, et al. Alarge-scale analysis of the security of embedded firmwares[C]//Proceedings of the 23rd USENIX conference on Security Symposium. Berkeley: USENIX Association,2014:95-110

      [10] Libo C, Quanpu C, Zhi X.Sharing More and Checking Less: Leveraging Common Input Keywords to Detect Bugs in Embedded Systems[C]//USENIX Security,2021

      [11] 葉志斌,嚴(yán)波.符號執(zhí)行研究綜述[J].計(jì)算機(jī)科學(xué),2018

      [12] CHEN D D, WOO M, BRUMLEY D, et al. Towards?automated dynamic analysis for linux-based embedded firmware[C]//Proceedings of Network and Distributed Systems Security Symposium.Reston:ISOC,2016:1-16

      [13] Chen D D, Woo M, Brumley D, et al. Towards Automated Dynamic Analysis for Linux-based Embedded Firmware[C]//NDSS,2016

      [14] 王蕾,李豐,李煉,等.污點(diǎn)分析技術(shù)的原理和實(shí)踐應(yīng)用[J].軟件學(xué)報(bào),2017,28(4):860-882

      作者簡介:常天佑(1992-),男,河南遂平人,研究生,助理工程師,主要研究方向:網(wǎng)絡(luò)安全。

      猜你喜歡
      嵌入式
      Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
      TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
      電子制作(2019年7期)2019-04-25 13:17:14
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
      電子制作(2018年18期)2018-11-14 01:48:16
      嵌入式PLC的設(shè)計(jì)與研究
      電子制作(2018年16期)2018-09-26 03:27:18
      搭建基于Qt的嵌入式開發(fā)平臺
      基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
      嵌入式單片機(jī)在電機(jī)控制系統(tǒng)中的應(yīng)用探討
      電子制作(2017年8期)2017-06-05 09:36:15
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
      Altera加入嵌入式視覺聯(lián)盟
      茌平县| 安吉县| 法库县| 齐齐哈尔市| 海晏县| 塔城市| 杭锦后旗| 清流县| 商水县| 阳曲县| 信丰县| 巴东县| 昌吉市| 泾源县| 乐都县| 樟树市| 芜湖县| 诸暨市| 芷江| 剑河县| 宝应县| 报价| 墨脱县| 三台县| 林州市| 衡山县| 仪陇县| 许昌市| 太和县| 弋阳县| 灵石县| 临夏市| 绥宁县| 南城县| 宣化县| 百色市| 拉萨市| 光泽县| 普定县| 巴林左旗| 简阳市|