楊子祺 ,楊淑棉,王連海
(1.山東師范大學(xué)信息科學(xué)與工程學(xué)院, 山東 濟(jì)南 250358;2. 齊魯工業(yè)大學(xué)(山東省科學(xué)院),山東省計(jì)算中心(國(guó)家超級(jí)計(jì)算濟(jì)南中心),山東省計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250014)
一種云取證中間件系統(tǒng)的設(shè)計(jì)
楊子祺1,楊淑棉2*,王連海2
(1.山東師范大學(xué)信息科學(xué)與工程學(xué)院, 山東 濟(jì)南 250358;2. 齊魯工業(yè)大學(xué)(山東省科學(xué)院),山東省計(jì)算中心(國(guó)家超級(jí)計(jì)算濟(jì)南中心),山東省計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250014)
摘要:云計(jì)算的快速發(fā)展在產(chǎn)生巨大的經(jīng)濟(jì)效益的同時(shí),也帶來(lái)了計(jì)算機(jī)犯罪問題。針對(duì)如何從云中全面、便利地獲取到可信、完整的數(shù)字證據(jù),提出了一種云取證中間件的設(shè)計(jì)方法。該方法主要包括遠(yuǎn)程控制端證據(jù)再現(xiàn)、服務(wù)端證據(jù)分析和監(jiān)控管理、客戶端內(nèi)存獲取和分析3個(gè)部分。該設(shè)計(jì)比傳統(tǒng)在線取證方法更符合傳統(tǒng)物證技術(shù)的要求,提高了取證人員的工作效率和證據(jù)的可信度。在Windows 10系統(tǒng)(客戶端)和Centos7.0(服務(wù)端)系統(tǒng)上的驗(yàn)證結(jié)果表明,該設(shè)計(jì)是有效和可靠的。
關(guān)鍵詞:云取證;中間件;物理內(nèi)存;遠(yuǎn)程控制
中圖分類號(hào):TP393
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1002-4026(2018)05-0115-06
DOI:10.3976/j.issn.1002-4026.2018.05.018
收稿日期:2018-05-17
基金項(xiàng)目:山東省自然科學(xué)基金(ZR2016YL011)
作者簡(jiǎn)介:楊子祺(1999—),女,研究方向?yàn)檐浖芯亢烷_發(fā)。
*通信作者。E-mail:yangshm@sdas.org
Designofacloudforensicsmiddlewaresystem
YANG Zi-qi1, YANG Shu-mian2*, WANG Lian-hai2
(1.School of Information Science &Engineering, Shandong Normal University, Jinan 250358, China; 2 Shandong Provincial Key Laboratory of Computer Networks,Shandong Computer Science Center ( National Supercomputer Center in Jinan ),Qilu University of Technology (Shandong Academy of Sciences) , Jinan 250014, China)
Abstract∶The rapid development of cloud computing not only has brought huge economic benefits, but also has brought the issue of computer related crimes. In this paper, a design method of cloud forensics middleware was proposed to obtain credible and complete digital evidence from the cloud in a comprehensive and convenient manner. The design method mainly included three parts: remote control end proofs, server-side evidence analysis and monitoring management, and client-side memory acquisition and analysis. Compared with the traditional online forensics methods, this method was more in line with the requirements of traditional physical evidence technology, greatly improving the efficiency of the forensic staff and the credibility of the evidence. The method has been verified on Windows 10 (the client) and Centos 7.0 (the server) and was proved to be effective and reliable.
Key words∶cloud forensics; middleware; physical memory; remote control
云計(jì)算、通訊技術(shù)和計(jì)算機(jī)技術(shù)快速的發(fā)展不僅產(chǎn)生了巨大的經(jīng)濟(jì)效益和更多的便利,同時(shí)也帶來(lái)了計(jì)算機(jī)犯罪問題,越來(lái)越多的惡意攻擊正在利用云計(jì)算、網(wǎng)絡(luò)實(shí)施,云取證是打擊網(wǎng)絡(luò)犯罪最主要的手段。由于云具有不同的部署和服務(wù)模式,增加了事件應(yīng)急響應(yīng)和數(shù)字取證的難度,因此如何從云中獲取完整可靠的證據(jù)數(shù)據(jù)是當(dāng)前云取證研究的難點(diǎn)問題[1]。
此外,隨著云計(jì)算用戶的增加,取證案件數(shù)量也逐年增加,但是取證人員的數(shù)量卻很有限,無(wú)法及時(shí)到現(xiàn)場(chǎng)進(jìn)行取證,而且每個(gè)案件會(huì)有不同的取證方法,甚至一個(gè)案件需要多種分析方法,取證人員緊靠自身的個(gè)人經(jīng)驗(yàn)進(jìn)行取證效率低下,很難進(jìn)行全方面的取證工作[2]。
基于以上問題,國(guó)內(nèi)外專家針對(duì)取出來(lái)的數(shù)據(jù)是否可信、完整,也給出了很多的解決辦法。謝亞龍等[3]提出了一種基礎(chǔ)設(shè)施即服務(wù)(IaaS)云模型下的取證框架ICFF,王連海[4]提出基于物理內(nèi)存分析的在線取證模型及方法研究,解決了傳統(tǒng)在線取證方式存在的問題,使在線證據(jù)的可信性成為可能;郭牧等[5]提出了基于KPCR結(jié)構(gòu)的Windows系統(tǒng)物理內(nèi)存分析方法;楊淑棉等[6]提出了一種基于物理內(nèi)存分析的遠(yuǎn)程取證系統(tǒng),這些都在證據(jù)的可信性方面提出了解決方案。
針對(duì)目前云計(jì)算中取證工具的缺失,鄧曄[7]研究了從視頻監(jiān)控中間件到云計(jì)算中間件,介紹了中間件的產(chǎn)生背景、中間件的作用;裴忠一[8]提出了基于云中間件的VPN系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn);羅高博[9]提出了健康管理云平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn);李光宇等[10]提出了基于C/S模型的OPC客戶端實(shí)現(xiàn)遠(yuǎn)程監(jiān)控;劉艷等[11]提出基于公有云平臺(tái)進(jìn)行信息交互的智能控制系統(tǒng);崔競(jìng)松等[12]提出基于KVM虛擬桌面的透明消息通道設(shè)計(jì)。以上這些都在云中間件設(shè)計(jì)方面提出了一定的解決方案,但是都是傳輸?shù)膫鹘y(tǒng)類型的數(shù)據(jù),并不能保證傳輸?shù)淖C據(jù)是可信的、完整的。
本文基于以上證據(jù)的可信、完整問題,設(shè)計(jì)了一種云取證中間件,能對(duì)云計(jì)算環(huán)境中的服務(wù)器、個(gè)人電腦和智能終端等大量計(jì)算設(shè)備的物理內(nèi)存進(jìn)行取證分析,一方面,對(duì)物理內(nèi)存進(jìn)行鏡像并對(duì)內(nèi)存鏡像文件進(jìn)行hash計(jì)算,保證證據(jù)的真實(shí)性;另一方面針對(duì)鏡像的內(nèi)存文件進(jìn)行分析,并應(yīng)用base64編碼后傳輸內(nèi)存分析結(jié)果及其鏡像的物理內(nèi)存文件。其核心組成包括客戶端內(nèi)存獲取與分析軟件、服務(wù)端證據(jù)分析與監(jiān)控管理、遠(yuǎn)程控制服務(wù)軟件。
本文設(shè)計(jì)的取證系統(tǒng)通過遠(yuǎn)程管理服務(wù)的模式收集客戶端信息,服務(wù)端能遠(yuǎn)程獲取客戶端的物理內(nèi)存鏡像文件、物理內(nèi)存分析結(jié)果和客戶端的日志信息,并提供檢索物理內(nèi)存分析結(jié)果和并行分析內(nèi)存的功能,從內(nèi)存分析結(jié)果中獲取到有價(jià)值的信息,能夠幫助司法人員在海量?jī)?nèi)存分析結(jié)果中發(fā)現(xiàn)所需要的證據(jù),大大提高工作效率。系統(tǒng)主要包括3部分:遠(yuǎn)程控制端、服務(wù)端和客戶端。
主要連接服務(wù)端,根據(jù)服務(wù)端的需求來(lái)獲取客戶端的信息,并對(duì)客戶端的日志信息進(jìn)行展示,日志信息主要包括客戶端的IP地址、端口、傳輸?shù)溺R像文件名、內(nèi)存分析文件結(jié)果和對(duì)應(yīng)的md5值。另外還有檢索的功能,用戶想搜索某個(gè)關(guān)鍵詞,則可以通過檢索獲取到客戶端的內(nèi)存鏡像分析結(jié)果。并且提供導(dǎo)出功能,可以把任何一條或者所有的檢索結(jié)果和內(nèi)存分析結(jié)果導(dǎo)出,便于取證人員進(jìn)一步分析。遠(yuǎn)程控制端功能如圖1所示。
圖1 遠(yuǎn)程控制端流程圖Fig.1 The flow chart of remote control terminal
遠(yuǎn)程控制端包括5大模塊:新建案例、通訊模塊、日志管理模塊、關(guān)鍵文件檢索模塊、 并行分析模塊。關(guān)鍵模塊主要設(shè)計(jì)如下:
通訊模塊使用TCP協(xié)議進(jìn)行連接,雙方開始認(rèn)證,認(rèn)證通過后,雙方建立連接,進(jìn)行通訊。日志管理模塊主要是通過分析Windows日志包括應(yīng)用程序日志、安全日志、系統(tǒng)日志,并對(duì)一條日志中的關(guān)鍵字進(jìn)行提取分析,主要關(guān)鍵字段是日志名稱、來(lái)源、記錄時(shí)間、時(shí)間ID、用戶、關(guān)鍵字、詳細(xì)信息等;內(nèi)存分析結(jié)果展示部分可以完成對(duì)hadoop hive中的結(jié)果進(jìn)行檢索,將符合條件的信息顯示在列表框中。如表table選項(xiàng),包括basicinfo,process,driver,net,registry,syslog,hookinfo,winlogon8個(gè)表格。其中每個(gè)表格對(duì)應(yīng)各自的主鍵,basicinfo表中關(guān)鍵字段ClientIP、MemoryTime、registerowner、productname、systemname;process表中關(guān)鍵字段:ClientIP、MemoryTime、name、pid;driver表中關(guān)鍵字段:ClientIP、MemoryTime、 name;net表:ClientIP、MemoryTime、remoteaddress;Registry表:ClientIP、MemoryTime、 name、 type;syslog表:ClientIP、MemoryTime、systemloginfo;hookinfo表:ClientIP、MemoryTime、processname、processPID;winlogon表:ClientIP、MemoryTime、username、rid。
服務(wù)端開啟多線程,同時(shí)偵聽多個(gè)客戶端,若有客戶端連接請(qǐng)求,則向客戶端發(fā)送不同的固定字符串“INF#PhysicalMemoryString#”,客戶端根據(jù)收到的字符串向服務(wù)端傳輸不同的信息,主要收集客戶端的物理內(nèi)存鏡像文件和對(duì)應(yīng)的鏡像文件分析結(jié)果,由于開啟了多線程,能同時(shí)收集若干個(gè)客戶端的物理內(nèi)存鏡像文件和內(nèi)存分析結(jié)果信息,并將內(nèi)存分析結(jié)果存儲(chǔ)到hadoop hive數(shù)據(jù)庫(kù);同時(shí)與遠(yuǎn)程建立連接,根據(jù)遠(yuǎn)程客戶端的需求,向遠(yuǎn)程發(fā)送客戶端的日志信息,并能根據(jù)遠(yuǎn)程控制端的檢索條件,從hadoop hive數(shù)據(jù)庫(kù)中查找符合條件的檢索信息,發(fā)送到遠(yuǎn)程控制端在列表中顯示。服務(wù)端功能如圖2所示:
圖2 服務(wù)端功能流程圖Fig.2 Functional flow chart of server side
服務(wù)端存儲(chǔ)到hive數(shù)據(jù)庫(kù):根據(jù)收到的不同字段,使用hive -e " load data local inpath ‘表名’into table 表名向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)。
并行分析:根據(jù)遠(yuǎn)程控制端的需要,服務(wù)端開啟多線程,同時(shí)處理多個(gè)物理內(nèi)存鏡像文件的分析。
與服務(wù)端建立連接,首先判斷系統(tǒng)版本,根據(jù)系統(tǒng)版本的不同選擇不同的鏡像物理內(nèi)存的方法,并把鏡像文件存儲(chǔ)到本地進(jìn)行分析,并做hash值計(jì)算,通過驗(yàn)證hash值驗(yàn)證發(fā)送的物理內(nèi)存鏡像文件沒有被篡改,然后調(diào)用基于KPCR的物理內(nèi)存分析行程序分析內(nèi)存鏡像文件,并將內(nèi)存分析結(jié)果和物理內(nèi)存鏡像文件一起傳送到服務(wù)端,內(nèi)存分析結(jié)果寫到hadoop數(shù)據(jù)倉(cāng)庫(kù)??蛻舳瞬糠?jǐn)?shù)據(jù)收集分析處理流程如圖3所示。
圖3 客戶端工作流程Fig.3 The flow chart of client
1.3.1 加載鏡像文件獲取的驅(qū)動(dòng)方法
系統(tǒng)若是64位操作系統(tǒng),加載驅(qū)動(dòng)的方法:SCMLoadDeviceDriver(str.GetBuffer(str.GetLength()),"64BitMemDump");否則:SCMLoadDeviceDriver(str.GetBuffer(str.GetLength()),"32BitMemDump"),64BitMemDump、32BitMemDump分別為不同版本系統(tǒng)下獲取物理內(nèi)存鏡像文件的驅(qū)動(dòng)程序。
1.3.2 內(nèi)存分析程序
主機(jī)若是Linux系統(tǒng),則使用VMCS結(jié)構(gòu)體分析方法;若是Windows操作系統(tǒng),則使用基于KPCR的物理內(nèi)存分析方法,基于KPCR物理內(nèi)存主要解決物理地址與虛擬地址轉(zhuǎn)換問題,只有獲取到物理內(nèi)存地址才可以對(duì)物理內(nèi)存進(jìn)行分析。
原型系統(tǒng)的開發(fā)遠(yuǎn)程控制端部分使用VS2010開發(fā),要求運(yùn)行于Windows操作系統(tǒng)中,支持Windows XP、Windows 7和Windows 10系統(tǒng)。遠(yuǎn)程控制端是界面程序,不需要安裝,直接打開.exe文件即可,包括日志文件獲取和解析程序。
服務(wù)端是命令行程序,在Centos 7.0下使用c語(yǔ)言開發(fā),要求安裝hadoop hive數(shù)據(jù)庫(kù)。服務(wù)端執(zhí)行./tcp 端口,端口可以任意設(shè)置,比如5000,服務(wù)開啟之后,服務(wù)端偵聽客戶端和遠(yuǎn)程控制端。一方面與客戶端建立連接,從客戶端接收物理內(nèi)存鏡像文件和物理內(nèi)存分析結(jié)果,并將內(nèi)存分析結(jié)果存儲(chǔ)到hadoop支持的mysql數(shù)據(jù)庫(kù),傳輸過程支持對(duì)文件進(jìn)行編碼解碼計(jì)算。另一方面與遠(yuǎn)程客戶端建立連接,提供客戶端的日志信息并展示,并根據(jù)檢索要求,提供符合條件的物理內(nèi)存分析結(jié)果。由于客戶端、服務(wù)端之間傳輸物理內(nèi)存鏡像文件,傳輸4G以上內(nèi)存需要在linux 內(nèi)核系統(tǒng)中增加參數(shù)-D_FILE_OFFSET_BITS=64,兩者之間才能正常傳輸。
客戶端程序是進(jìn)程式命令行程序,目錄下包含物理內(nèi)存鏡像程序和物理內(nèi)存分析程序,分別支持Windows XP、Windows 7系統(tǒng)和Windows 10系統(tǒng)??蛻舳耸荳indows下命令行程序,打開tcp_client_send.exe,則客戶端一方面獲取物理鏡像文件并存到本地,然后將調(diào)用內(nèi)存分析程序分析物理內(nèi)存鏡像文件,并將分析結(jié)果連同物理內(nèi)存鏡像文件傳輸?shù)椒?wù)端。鏡像界面如圖4所示。
圖4 物理內(nèi)存鏡像Fig. 4 The image of physical memory
遠(yuǎn)程控制和服務(wù)端、客戶端和服務(wù)端之間需要網(wǎng)絡(luò),互相ping通才可以進(jìn)行連接和傳輸。系統(tǒng)為保證證據(jù)的完整性和可信性,使用TCP協(xié)議作為通訊協(xié)議,以Windows 7系統(tǒng)為例,運(yùn)行遠(yuǎn)程控制端程序,打開remote_tcp_client.exe程序,啟動(dòng)界面如圖5所示。
圖5 遠(yuǎn)程控制端主界面Fig.5 The main interface of remote control
主要包括3部分:開啟服務(wù)、日志信息和檢索信息。上半部分左側(cè)樹狀控件顯示服務(wù)端的IP地址和客戶端的IP地址及其客戶端傳輸?shù)椒?wù)端的內(nèi)存鏡像文件,右側(cè)列表框是展示客戶端的日志信息,包括客戶端內(nèi)存鏡像文件生成時(shí)間、IP地址、端口、內(nèi)存鏡像文件的MD5值和文件名。主界面中間部分是服務(wù)端的IP地址和端口,與服務(wù)端進(jìn)行連接,開啟服務(wù)。主界面下半部分列表框主要顯示內(nèi)存分析結(jié)果和符合條件的內(nèi)存檢索結(jié)果。
選擇上半部分列表框中客戶端日志信息的任意一行或者若干行,右鍵點(diǎn)擊“發(fā)送”,則提取出內(nèi)存鏡像文件發(fā)送到服務(wù)端,根據(jù)鏡像的文件名,將對(duì)鏡像文件進(jìn)行內(nèi)存分析,內(nèi)存分析過程需要等待一段時(shí)間,分析完畢后,內(nèi)存分析結(jié)果將展示到主界面下半部分的列表框中如圖6所示。
圖6 客戶端的一條內(nèi)存分析結(jié)果Fig. 6 The memory analysis result of client
本設(shè)計(jì)方法提出并實(shí)現(xiàn)了云取證中間件,滿足了IT行業(yè)用戶在取證和安全審計(jì)方面的需求,擴(kuò)大了應(yīng)用領(lǐng)域,延長(zhǎng)了計(jì)算機(jī)取證的產(chǎn)業(yè)鏈。
本文針對(duì)目前傳統(tǒng)取證工具存在的在線取證工具缺乏等缺陷,設(shè)計(jì)了一種云取證中間件,該方法解決了證據(jù)可信性和取證人員難以及時(shí)處理大量案件的問題。利用此方法開發(fā)完成了云取證中間件系統(tǒng),該系統(tǒng)的客戶端軟件能根據(jù)遠(yuǎn)程服務(wù)器端的需求,實(shí)現(xiàn)本地證據(jù)的實(shí)時(shí)處理,包括證據(jù)的保存、證據(jù)的分析,可以遠(yuǎn)程控制取證工具和其他第三方應(yīng)用,實(shí)現(xiàn)證據(jù)的實(shí)時(shí)收集和處理,并將遠(yuǎn)程證據(jù)和分析結(jié)果發(fā)送到服務(wù)器端進(jìn)行證據(jù)保存、分析處理。遠(yuǎn)程控制端可以實(shí)現(xiàn)客戶端的安全審計(jì),實(shí)時(shí)收集客戶端操作系統(tǒng)的應(yīng)用程序日志、安全日志、系統(tǒng)日志等審計(jì)信息,同時(shí)還可以對(duì)取證人員進(jìn)行全程監(jiān)視和記錄,并發(fā)送到遠(yuǎn)程服務(wù)器端分析處理,做到對(duì)網(wǎng)絡(luò)安全隱患或違法犯罪活動(dòng)的及時(shí)發(fā)現(xiàn)。后續(xù)我們將進(jìn)一步擴(kuò)大版本的開發(fā),獲取并分析不同系統(tǒng)的物理內(nèi)存,為越來(lái)越多的云用戶服務(wù)。