999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

遠程計算機固件攻擊系統研究

2017-09-05 16:47:04王冠康晉菊孫亮
軟件導刊 2017年7期

王冠+康晉菊+孫亮

摘 要:隨著計算機軟硬件及網絡的迅猛發展,互聯網用戶不斷增長,各類應用軟件在給廣大用戶帶來便利的同時,信息安全問題成為一個巨大隱患。目前,基于網絡漏洞的信息竊取技術已經被黑客利用,基于計算機固件漏洞的攻擊也時有發生。基于計算機固件的攻擊具有隱蔽性強、難以清除且先于操作系統被加載的特征,給計算機固件帶來致命性災難。從攻擊者角度出發,研究了攻擊計算機固件的方法,發現固件存在的安全漏洞,開發了一個計算機固件遠程攻擊系統,該系統可用于計算機固件被攻擊的漏洞研究,從而提升計算機固件的安全性能。

關鍵詞:固件;固件攻擊;遠程攻擊;信息安全

DOIDOI:10.11907/rjdk.171213

中圖分類號:TP319

文獻標識碼:A 文章編號:1672-7800(2017)007-0096-04

0 引言

計算機技術的飛速發展,尤其是Internet互聯網技術的發展,使得計算機用戶迅速增長,基于計算機網絡的各種應用軟件不斷推出。而網絡自身及應用軟件存在不可避免的安全漏洞,致使信息泄露、釣魚網站、木馬病毒等安全事件頻發。隨著統一可擴展固件接口(UEFI BIOS)的出現,對BIOS的編程相比之前更加簡潔規范,但卻給計算機帶來了新的安全問題。對計算機固件的攻擊成為一種新的攻擊方式,如CERT團隊已經證實蘋果和戴爾設備存在BIOS寫保護漏洞,還有聯想筆記本存在的流氓BIOS更新機制漏洞等。

針對底層計算機固件的攻擊是致命的,因為一旦BIOS被攻擊,一般用戶及殺毒軟件無法清除被植入到BIOS中的病毒,固化在flash rom中的BIOS程序是計算機加電后最先執行的代碼,而在引導操作系統加載后便進入休眠狀態。BIOS(Basic Input Output System)基本輸入輸出系統,是一組被固化到計算機主板上的一個ROM(現在基本都是NORFlash)芯片中的程序代碼,保存了計算機最重要的基本輸入輸出程序、開機后自檢程序和系統自啟動程序。計算機上電后,首先會加載BIOS程序,為計算機提供最底層、最直接的硬件設置和控制,是計算機系統不可或缺的部分[1]。

本文研究計算機固件攻擊方法以及如何通過遠程方式進行攻擊,同時對固件狀態進行監測,判斷固件是否被攻擊,并設計一個基于遠程的計算機固件攻擊演示系統,用于計算機固件遠程攻擊的研究分析。

1 總體設計

遠程計算機固件攻擊分為控制端(本地計算機)和被控端(被攻擊的遠程計算機)兩部分。控制端通過遠程控制軟件來操控被控端計算機,遠程控制軟件客戶端應安裝在控制端,而被控端需要安裝服務端程序。遠程計算機可以通過對客戶端軟件界面的操作,如簡單的選擇和單擊等控制目標計算機完成相應功能。圖1是該系統整體架構。

2 遠程控制客戶端程序設計

遠程控制中控制端和被控端的連接有主動型和被動型兩種方式。主動型是控制端主動發送連接請求與被控端建立連接,被動型是利用安裝在被控計算機上的服務器程序主動向控制端發送連接請求。遠程控制系統采用現在流行的被動型方式,可在不知道對方IP地址的情況下建立連接。

遠程控制的客戶端程序安裝在本地計算機,作為控制端對遠程計算機進行監測控制。客戶端主要提供界面操作,向被控端發送控制命令,控制端在收到命令后需要執行相應操作,同時客戶端程序需要顯示從被控端發送來的執行結果。客戶端程序工作流程如圖2所示。

客戶端程序類似于網絡通信的Server端,客戶端程序啟動后綁定自己的IP地址和端口號后就進入監聽狀態,等待被控端的連接請求。在監聽端口收到連接請求并建立連接后,本地計算機就可利用該連接控制遠程計算機。首先控制端需要獲取文件管理權限,將計算機固件攻擊工具傳送到遠程計算機(該攻擊工具是實現BIOS攻擊不可缺少的程序),攻擊工具發送到遠程計算機后,需要重命名與系統易混淆的文件名,并將文件隱藏使用戶不易發現。接下來控制端向被控端發送控制命令,本系統終端輸入的命令實際是在遠程計算機上執行。遠程計算機在執行相應任務后通過服務端程序將運行結果發送給本地計算機。客戶端程序要接收發送到監聽端口的數據,在控制端得到需要的數據。

3 遠程控制服務端程序設計

3.1 服務端程序功能

服務端程序是實現遠程控制的核心模塊,遠程控制軟件通過調用服務端程序功能模塊實現對計算機的遠程控制。服務端程序主要包括自啟動模塊、主動發送連接請求模塊、文件管理功能模塊、超級終端模塊、回傳數據模塊,如圖3所示。

(1)自動啟動模塊。服務端程序只有啟動后才能發揮作用,而對遠程計算機而言服務端程序是一個惡意程序,用戶不會手動運行該程序,服務端程序必須隱藏啟動,即所謂的自動啟動。本系統將服務端程序設置為一個系統服務程序,并在/etc/rc.d/init.d目錄下添加相應的Shell命令腳本實現開機時自動啟動。

(2)發送連接請求模塊。要進行遠程控制首先需要在雙方之間建立連接,本系統采用被動型遠程控制方式,服務端程序在運行后能主動向控制端發送連接請求。因此,服務端程序必須知道控制端的IP地址和端口號,如果控制端計算機的IP地址是固定的,可以將該固定的IP地址直接寫入服務端程序中。通常本地計算機(控制端)的IP地址是動態分配的,計算機每次開機后IP地址與上次不一定相同。解決IP地址動態變化問題有兩種方法:①給本地計算機申請一個域名,域名固定不變,根據域名不變原理可以將服務器程序中的地址設置為域名;②申請一塊免費的FTP空間,FTP空間有自己的空間地址而且固定不變,本地計算機在每次開機后將當前的IP地址和端口號更新到該FTP空間中,因此可以將服務器程序中的地址設置為固定的FTP空間地址。服務器程序啟動后,首先根據FTP地址讀取FTP空間內容,獲取控制端動態的IP地址和端口號,然后向該地址發送連接請求。endprint

(3)文件管理模塊。文件管理模塊用于對遠程計算機中的文件進行查看、修改、刪除以及上傳下載。通過文件管理模塊將攻擊計算機固件的程序傳送到被控端計算機的硬盤中。文件管理通常有兩種方法:①將被控端的硬盤進行共享便可對該硬盤中的文件進行任意操作;②將本地計算機配置成一個FTP服務器,控制端控制遠程計算機訪問該FTP服務器進行文件上傳和下載等操作。

(4)超級終端模塊。計算機固件攻擊工具的調用需要在終端執行命令,所以服務端程序還要具有超級終端功能。超級終端能夠使在本計算機上的操作實際是在被控端計算機上執行。超級終端的原理是將控制端輸入的信息及時發送給被控端,并且控制端將顯示被控端執行命令后發回給該控制端端口信息。

(5)回傳數據模塊。遠程控制不僅要向遠程計算機發送控制命令,還需要從被控端獲取信息以及監控被控端命令的執行情況。實現數據回傳方式有多種,可以利用FTP協議實現,還可以在被控端建立一個臨時文件來存放需要回傳的數據,設計一個時間戳,每隔一段時間就將臨時文件中的數據發送給控制端。

服務端程序工作流程見圖4。在啟動服務端程序后,將主動向控制端發送連接請求,在客戶端程序(控制端)接受該連接請求后進入連接狀態,等待控制端發送控制命令。一旦接收到控制端的執行命令,服務端程序便調用相應文件執行該命令。該命令執行后需要及時將結果發送給控制端程序以實現監控目的,即回傳執行結果。整個過程要接收和發送多次數據,為了避免數據混亂,每一過程都要建立一個新的線程。最后在客戶端斷開連接控制后,服務端程序也需要將連接斷開,釋放系統資源。

3.2 服務端程序植入和隱藏

服務端程序需要將自己偽裝來吸引用戶下載使用,可將該服務端程序隱藏到圖片、Word文檔中,或將其隱藏到使用頻率高的軟件中。本系統作為一個演示系統,選擇使用比較簡單的軟件捆綁方式實現服務端程序隱藏,從網絡站點下載一個使用頻率高的軟件,如Office軟件,將服務端的可執行程序捆綁到Office安裝軟件中,并將服務端程序設置為隱藏安裝,服務端程序捆綁到Office軟件并進行相關設置后,將新生成的可執行文件(文件名仍是Office安裝包)上傳到安全檢查不嚴格的網絡站點上,等待用戶下載安裝。為增加該軟件被下載的概率,可以在論壇上寫一篇有關軟件的文檔,并將該軟件地址附在文檔中。一旦有用戶下載并安裝該軟件則服務端程序也被安裝。

在服務端程序安裝過程中還需要完成自動啟動和進行隱藏兩個任務。服務端程序對計算機而言是惡意程序,不能依靠用戶啟動該服務,需要自己悄無聲息啟動,通過設置開機自啟動實現。服務端程序要想長期駐留在被控端計算機中,必須具有良好的隱蔽性,本系統將服務端程序設置為系統服務進行隱藏,即將文件名改為和系統文件容易混淆的名字,如將“I”替換為“1”,將“o”替換成“0”等相似字符,使用戶難以察覺,同時將某些文件設置為隱藏屬性。服務端程序的植入和隱藏是實現遠程控制的關鍵,高端的植入和隱藏手段可以使服務端程序在被控計算機中長時間駐留。

4 固件攻擊工具設計

計算機固件攻擊工具是本系統核心部分。計算機固件主要指BIOS芯片,它是計算機中最底層的軟件程序,與處于偏上層的操作系統和上層的應用程序不同,不能通過簡單的函數調用實現對相應資源的訪問,所以需要設計專門的工具來訪問計算機固件。圖5是固件攻擊工具整體架構。

從圖5可以看出,當控制端發送攻擊BIOS的命令后,調用被控端計算機硬盤中存放的固件攻擊工具,利用Kernel層中的flash.ko模塊觸發高級別的系統管理中斷SMI#,CPU對現場進行保護后進入SMM(系統管理模式),在該模式下可實現對BIOS芯片的讀寫操作。在刷寫BIOS芯片的過程中,被控端需要將執行進度傳送給控制端,并在控制端顯示攻擊過程。

攻擊工具包括獲取BIOS映像、將惡意代碼寫入BIOS映像、刷寫BIOS三個模塊,如圖6所示。要對BIOS進行攻擊植入惡意代碼,首先需要獲取計算機當前BIOS芯片中的BIOS映像文件,在現有BIOS文件的基礎上進行修改以保障計算機正常啟動,然后對BIOS芯片重新刷寫,將惡意代碼固化到BIOS芯片中。

攻擊工具的設計中需要對BIOS進行讀寫操作,計算機加電后會首先執行BIOS中的代碼,在操作系統啟動后BIOS就進入休眠狀態,在計算機啟動過程中會將BIOS文件映射到物理內存的高端地址。但在操作系統正常運行的保護模式下,物理內存地址對操作系統上層的應用程序是透明的,無法直接訪問BIOS文件被映射到的物理內存地址塊。不過在Intel 386SL之后的X86架構CUP中引入了一種特殊的SMM模式,在該模式下系統完全在自然環境下執行,沒有邏輯地址,所有地址都是物理地址,這個模式為OS實現平臺指定的功能(比如電源管理或系統安全)提供了一種透明機制,操作系統無法感知CPU什么時候進入系統管理模式,也不知道執行過SMM模式。該模式下可以對硬件進行I/O操作,可以執行一切特權指令,一切內存保護均失效。

為了實現SMM,Intel在其CPU上增加了一個SMI# PIN引腳。當外部的SMM interrupt pin(SMI#)被激活或從APIC(Advanced Programming Interrupt Controller)收到一個SMI時,處理器將進入SMM。在SMM下,可以對BIOS代碼進行操作,此時操作系統相關的執行流程將被掛起,轉而執行BIOS中注冊的ISR。SMM是一種特殊的工作模式,它不依賴于具體的操作系統,完全由固件來控制。SMM只能通過系統管理中斷SMI進入。SMI中斷的觸發有硬件方式和軟件方式。硬件方式是使中斷pin電平發生變化(一般是將電平拉低);軟件方式是通過向B2H寫入數值進入SMI中斷。

(1)獲取BIOS映像文件。由于是通過重新刷寫BIOS的方式來達到攻擊目的,所以先要取得廠商提供的無差錯BIOS鏡像文件。BIOS程序在計算機啟動過程中映射到了物理內存最高端的8M區域(本系統設計采用昆侖固件,其BIOS容量是8M),在SMM模式下,通過讀取物理內存最高端8M的地址空間獲取BIOS映像文件。endprint

(2)將惡意代碼封裝到BIOS文件。BIOS程序是按模塊來開發的,每個模塊都是一個獨立部分,受BIOS芯片存儲空間的限制,在將程序寫入BIOS的Flash ROM芯片時,先將各個模塊分別進行壓縮,然后將壓縮后的模塊再做一次整體壓縮,最終存儲到Flash ROM中。所以獲得的BIOS鏡像文件首先要對其進行解壓縮,并將各個模塊分離開,將惡意代碼隱藏到ISA模塊、ACPI模塊以及PCI模塊中,其中ISA、ACPI模塊中加載惡意代碼需要CMOS中沒有設置禁止加載模塊,PCI模塊中加載惡意代碼只在裝有TPM的計算機才能檢測到。現在使用的BIOS芯片程序只占芯片容量的60%~70%,剩余部分供UEFI BIOS功能擴展使用。本系統所使用的昆侖BIOS也預留了空白容量,所以該演示系統將惡意代碼存放到BIOS的空白區域,并將該地址鏈接到UEFI系統表中,再將BIOS文件進行各模塊和整體的壓縮打包。

(3)刷寫BIOS。在完成上述操作后就可用新生成的BIOS映像文件替換原來的BIOS映像,對BIOS芯片刷寫仍然需要在SMM下進行,只有在該模式下才能對硬件及芯片進行I/O操作。在SMM下直接對8M大小的整個BIOS Flash芯片進行重寫,攜帶惡意代碼的BIOS映像文件就寫入到BIOS芯片中。

5 結語

BIOS作為計算機主板的一部分,在計算機中占據著很重要的位置,BIOS程序是計算機加電后CPU最先執行的代碼,若BIOS已經不安全,則后續的一切操作都會使計算機處于更危險的狀態。BIOS安全是計算機安全的前提,所以研究計算機固件攻擊對加強計算機信息安全具有重大意義。

本文從攻擊者角度出發,對 UEFI 原理、BIOS技術及源代碼進行了深入研究,并且對BIOS攻擊機理和遠程攻擊技術進行了透徹分析,在此基礎上,設計并實現遠程計算機固件攻擊系統。本研究一方面能夠促進固件技術的發展,使其逐步完善,另一方面對完善固件層的安全性具有一定的研究價值與意義。本文提出了通過遠程操控技術對計算機固件進行攻擊,并具體闡述了實現思路和方法。基于遠程的計算機固件攻擊系統模擬了針對計算機BIOS攻擊的整個流程,便于發現BIOS存在的漏洞,進一步研究如何修補該漏洞,從而加強計算機固件的安全性能。

參考文獻:

[1]周振柳.計算機固件安全技術[M]. 北京:清華大學出版社,2012.

[2]池亞平,許盛偉,方勇. BIOS木馬機理分析與防護[J].計算機工程,2011(13):122-125.

[3]高飛.基于木馬的計算機遠程控制及隱藏技術分析[J].信息通信,2014(12):150-152.

[4]張智,袁慶霓. BIOS安全檢查系統設計與實現[J].計算機技術與發展,2012(22):172-178.

[5]王曉箴,劉寶,旭潘林.BIOS惡意代碼實現及其檢測系統設計[J].計算機工程,2010(36):17-20.

[6]劉博.BIOS安全等級劃分建議[J].信息技術與標準化,2013(3):47-50.

[7]王吉發.基于UEFI的病毒掃描引擎的設計與實現[D].哈爾濱:哈爾濱工程大學,2011.

[8]張德平.基于BOOTKIT原理惡意代碼控制技術研究[J].柳州職業技術學院學報,2011(11):28-35.

[9]JOHN BUTTERWORTH, COREY KALLENBERG, XENO KOVAH, et al. BIOS chronomancy: fixing the core root of trust for measurement[J].ACM,2013(13):25-36.

[10]YANLIN LI, JONATHAN M MCCUNE, ADRIAN PERRIG. VIPER: verifying the integrity of PERipherals' firmware [J]. ACM,2011(11):3-16.

[11]SUNHA AHN, SHARAD MALIK. Automated firmware testing using firmware-hardware interaction patterns [J]. ACM,2014(14):1-10.

[12]DAVID HAUWEELE. Tracking inefficient power usages in WSN by monitoring the network firmware: Ph.D. forum abstract [J]. IEEE Press,2016(16):5-6.

[13]PETRA R MAIER, VEIT KLEEBERGER, DANIEL MUELLER-GRITSCHNEDER,et al. Fault injection at host-compiled level with static fault set reduction for SoC firmware robustness testing [J].ACM,2016(16):25-27.endprint

主站蜘蛛池模板: 国产99视频在线| 91免费国产高清观看| 色综合激情网| 青草视频久久| 亚洲激情区| 谁有在线观看日韩亚洲最新视频| 一级毛片视频免费| 国产成人久久综合一区| 小13箩利洗澡无码视频免费网站| 久久久久久久97| 日韩亚洲综合在线| 四虎永久在线| 亚洲第一成人在线| 亚洲一区网站| 国产欧美日韩资源在线观看| 亚洲经典在线中文字幕| 亚洲天堂日韩在线| 国产网友愉拍精品| 黄片一区二区三区| 久久亚洲精少妇毛片午夜无码| a天堂视频在线| 国产国产人成免费视频77777| 97视频在线精品国自产拍| 爆乳熟妇一区二区三区| 制服丝袜 91视频| 第九色区aⅴ天堂久久香| a级毛片免费看| 日韩av无码精品专区| 亚洲 成人国产| 在线观看欧美国产| 激情综合网址| 精品视频在线一区| 九九视频免费在线观看| 日韩欧美国产另类| 免费国产小视频在线观看| 亚洲天堂777| 精品视频在线观看你懂的一区| 福利视频99| 福利一区三区| 色噜噜狠狠色综合网图区| 亚洲精品中文字幕无乱码| AV老司机AV天堂| 伊人久久大线影院首页| 久久国产精品国产自线拍| 美女被操91视频| 日韩国产黄色网站| 国产精品视频公开费视频| 亚洲日本一本dvd高清| 人人妻人人澡人人爽欧美一区| 亚洲一级无毛片无码在线免费视频 | 亚洲黄色激情网站| 日本免费新一区视频| 国产玖玖视频| 国产一区二区色淫影院| 欧美黄网站免费观看| 一级毛片无毒不卡直接观看| 精品自拍视频在线观看| 久久99国产视频| 不卡午夜视频| 午夜综合网| 亚洲天堂2014| 精品一区二区三区波多野结衣 | 97超爽成人免费视频在线播放| 好吊日免费视频| 99精品视频在线观看免费播放 | 极品国产一区二区三区| 亚洲成a∧人片在线观看无码| 一级毛片在线播放| 国产成人福利在线| 全部无卡免费的毛片在线看| 国产午夜无码专区喷水| 亚洲三级视频在线观看| 波多野结衣一区二区三区四区视频| 国产亚洲一区二区三区在线| 精品综合久久久久久97| 欧美一区二区三区欧美日韩亚洲 | 欧美综合成人| 伊人久综合| 亚洲人成成无码网WWW| 久久久久久午夜精品| 亚洲精品高清视频| 夜夜操狠狠操|