本發(fā)明屬于數(shù)字取證領(lǐng)域,涉及針對linux操作系統(tǒng)下進(jìn)行的計(jì)算機(jī)犯罪取證,具體涉及一種基于linux環(huán)境的數(shù)字取證系統(tǒng)。
技術(shù)背景
數(shù)字取證(計(jì)算機(jī)犯罪取證)也被稱為計(jì)算機(jī)法醫(yī)學(xué),是指把計(jì)算機(jī)看做犯罪現(xiàn)場,運(yùn)用先進(jìn)的辨析技術(shù),對電腦犯罪行為進(jìn)行法醫(yī)式的解剖,搜尋確認(rèn)罪犯及其犯罪證據(jù),并據(jù)此提起訴訟。主要是對電子證據(jù)識別、保存、收集、分析和呈堂,從而揭示與數(shù)字產(chǎn)品相關(guān)的犯罪行為或過失。數(shù)字取證技術(shù)將計(jì)算機(jī)調(diào)查和分析技術(shù)應(yīng)用于對潛在的、有法律效力的電子證據(jù)的確定與獲取,同樣它們都是針對黑客和入侵的,目的都是保障網(wǎng)絡(luò)的安全。近些年來,數(shù)字化證據(jù)的司法效應(yīng)也已經(jīng)逐步被各個(gè)國家所承認(rèn),并漸漸開始作為主要的呈堂證物出現(xiàn)在計(jì)算機(jī)相關(guān)的司法審判中。目前,windows平臺下的數(shù)字取證技術(shù)已趨于成熟和完善,并產(chǎn)生了一整套的取證流程規(guī)范和方法論,但是針對廣泛使用的linux操作系統(tǒng)的取證卻因?yàn)樵诖蟊娭衅占岸炔桓呋蚣夹g(shù)尚不成熟而進(jìn)展緩慢。
linux操作系統(tǒng)是一套免費(fèi)使用和自由傳播的類unix操作系統(tǒng),由于其性能穩(wěn)定,目前廣泛用于各種大中型服務(wù)器,交換機(jī),路由器;隨著目前圖形化操作系統(tǒng)的日益普及,linux操作系統(tǒng)也開始搭載圖形化界面,開始向傳統(tǒng)的桌面端操作系統(tǒng)發(fā)展;linux操作系統(tǒng)的內(nèi)核短小精悍,現(xiàn)在部分廠商也通過對內(nèi)核的修改使其運(yùn)行與嵌入式平臺,例如手機(jī),智能家居,物聯(lián)網(wǎng)等設(shè)備。linux系統(tǒng)操作簡單,只需要一個(gè)命令行終端就可以完整操作整個(gè)系統(tǒng)的運(yùn)行,且基于其開源特性,任何人都可以對其修改,打造出符合個(gè)人使用習(xí)慣的專屬系統(tǒng),因而linux操作系統(tǒng)深受程序員和黑客的喜歡,尤其成為黑客手中的攻擊利器。近些年來,通過使用linux系統(tǒng)進(jìn)行攻擊和針對你基于linux操作系統(tǒng)的服務(wù)器攻擊事件頻頻發(fā)生,并隨著一些基于linux系統(tǒng)的滲透攻擊平臺,如:kali,parrot等的誕生而愈演愈烈。
目前市場上有少量的可用于linux的取證工具,如ftk,volatility等,但大都移植自windows系統(tǒng),無法完全勝任linux環(huán)境下的取證工作,且針對取證內(nèi)容的不同,功能單一,如:ftk僅能用于對磁盤進(jìn)行鏡像和解析,volatility又僅能用于內(nèi)存鏡像的解析。而現(xiàn)實(shí)生活中,對單一方向的證據(jù)提取往往不能滿足司法可用性的支撐,同時(shí),也這些工具使用起來對操作人員的技能要求相對較高,因此造成在取證過程,取證調(diào)查人員不僅要攜帶大量的取證工具包,同時(shí)還無法保證所提取的證據(jù)同步、有效,導(dǎo)致在針對linux操作系統(tǒng)出現(xiàn)的計(jì)算機(jī)犯罪活動時(shí),取證工作往往無法有效進(jìn)行,造成取證工作滯后或有效證據(jù)流失嚴(yán)重的情況。目前,針對linux操作系統(tǒng)進(jìn)行數(shù)字取證的最大難點(diǎn)在于:(1)操作系統(tǒng)本身是否提供可讀數(shù)字化證據(jù);(2)linux操作系統(tǒng)可以被獲取的數(shù)字化證據(jù)有哪些;(3)從系統(tǒng)什么位置獲取數(shù)字化證據(jù);(4)如何使得獲取的數(shù)字化證據(jù)被法律所承認(rèn),即保證數(shù)字證據(jù)的司法可用性;(5)如何保證提取到數(shù)字化證據(jù)不被取證人員惡意修改;(6)如何降低取證調(diào)查人員的操作難度,又能進(jìn)行有效的取證工作。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對上述現(xiàn)有技術(shù)的缺點(diǎn)提供一套完整的基于linux環(huán)境下的數(shù)字取證系統(tǒng),以整合現(xiàn)有的各種功能單一的取證工具,提供用于磁盤、網(wǎng)絡(luò)、日志和內(nèi)存的證據(jù)收集與分析功能。
為此目的,本發(fā)明采用的技術(shù)方案為基于linux環(huán)境的數(shù)字取證系統(tǒng),該系統(tǒng)由主機(jī)操作痕跡調(diào)查模塊、網(wǎng)絡(luò)操作痕跡調(diào)查模塊、日志信息調(diào)查模塊、內(nèi)存信息調(diào)查模塊和證據(jù)固定模塊組成,其中,所述主機(jī)操作痕跡調(diào)查模塊包括基本操作調(diào)查功能和應(yīng)用信息調(diào)查功能,后者通過提取系統(tǒng)包管理程序數(shù)據(jù)庫實(shí)現(xiàn);所述網(wǎng)絡(luò)操作痕跡調(diào)查模塊包括基本操作信息調(diào)查功能、網(wǎng)絡(luò)緩存調(diào)查功能和網(wǎng)絡(luò)應(yīng)用狀態(tài)調(diào)查功能;所述日志信息調(diào)查模塊包括日志文件分析入庫功能和關(guān)鍵字檢索模塊;所述內(nèi)存信息調(diào)查模塊采用一個(gè)第三方開源的工具fmem來對內(nèi)存進(jìn)行轉(zhuǎn)儲,并結(jié)合系統(tǒng)dd工具實(shí)現(xiàn)內(nèi)存信息調(diào)查;所述證據(jù)固定模塊對證據(jù)原文件和經(jīng)過處理的數(shù)據(jù)庫文件進(jìn)行hash處理,并記錄有關(guān)信息,確保證據(jù)文件損壞或有被修改嫌疑時(shí)能被監(jiān)管部門及時(shí)發(fā)現(xiàn)。
進(jìn)一步,上述基本操作調(diào)查功能包括:
(1)獲取系統(tǒng)的登錄時(shí)間列表,通過解析系統(tǒng)實(shí)時(shí)文件wtmp和btmp文件以調(diào)查是否存在非法訪問或敏感時(shí)期的異常訪問等信息;
(2)系統(tǒng)在登錄過程中啟動服務(wù)列表,以調(diào)查系統(tǒng)中是否存在攻擊者安裝的rootkit或其他自啟動后門程序;
(3)基本用戶信息,用于判斷當(dāng)前系統(tǒng)是否存在非法、可疑用戶。
進(jìn)一步,上述應(yīng)用信息調(diào)查功能包括:
(1)獲取系統(tǒng)中已安裝程序列表,判斷是否存在rootkit及其他非法應(yīng)用和惡意應(yīng)用;
(2)獲取系統(tǒng)中殘留的安裝包,結(jié)合已安裝程序列表,判斷當(dāng)前系統(tǒng)中是否安裝或安裝過相應(yīng)的非法應(yīng)用程序,以便調(diào)查人員判斷當(dāng)前系統(tǒng)或系統(tǒng)所處網(wǎng)絡(luò)的受攻擊程度及影響范圍,還可以通過這部分信息,對攻擊進(jìn)行溯源分析。
進(jìn)一步,上述基本操作信息調(diào)查功能,通過解析netstat程序結(jié)果產(chǎn)生,包括:
(1)提取當(dāng)前網(wǎng)絡(luò)連接狀態(tài),判斷是否有異常連接進(jìn)入或發(fā)出;
(2)如果發(fā)現(xiàn)有異常網(wǎng)絡(luò)連接,則針對這些信息進(jìn)行篩選,可以快速定位攻擊源,方便調(diào)查人員進(jìn)行溯源分析和攻擊路徑復(fù)現(xiàn)。
進(jìn)一步,上述網(wǎng)絡(luò)緩存調(diào)查功能包括:
(1)arp緩存信息,通過查閱arp緩存,可以判斷該系統(tǒng)是否收到arp欺騙攻擊,從而便于調(diào)查人員分析攻擊源和攻擊方法;
(2)dns緩存信息,通過dns緩存信息,可以判斷出當(dāng)前系統(tǒng)是否受到dns污染,或被導(dǎo)向了什么位置,便于調(diào)查人員溯源和確定攻擊入口。
進(jìn)一步,上述網(wǎng)絡(luò)應(yīng)用狀態(tài)調(diào)查功能,通過解析netstat程序結(jié)果產(chǎn)生,獲取網(wǎng)絡(luò)應(yīng)用與ip、監(jiān)聽端口的對應(yīng)關(guān)系及連接存活狀態(tài),進(jìn)而通過這種關(guān)系可以判別系統(tǒng)中是否存在惡意的網(wǎng)絡(luò)應(yīng)用及其監(jiān)聽端口,從而方便調(diào)查人員對攻擊進(jìn)行溯源和在內(nèi)存數(shù)據(jù)中截獲惡意應(yīng)用程序傳輸內(nèi)容。
進(jìn)一步,上述日志文件分析入庫功能是對所有必要的日志進(jìn)行分析,按照不同字段的屬性存入不同數(shù)據(jù)結(jié)構(gòu)組成的數(shù)據(jù)庫中,使得取證調(diào)查人員查看時(shí)明確知曉各個(gè)字段表示的含義,形成一種思路清晰,界面友好的結(jié)果反饋形式。
進(jìn)一步,上述關(guān)鍵字檢索模塊是通過取證調(diào)查人員輸入的關(guān)鍵字,自動在數(shù)據(jù)庫中匹配出所有相關(guān)記錄并予以顯示,為取證調(diào)查人員提供信息篩選和整理的功能。
進(jìn)一步,本發(fā)明的系統(tǒng)還可以包含圖形化運(yùn)行界面。
進(jìn)一步,上述證據(jù)固定模塊具體為:通過將取證調(diào)查人員姓名、身份id、聯(lián)系方式、取證時(shí)間信息寫入證據(jù)工程文件中,并對所取得的數(shù)字化證據(jù)文件進(jìn)行hash處理,形成基本的文件校驗(yàn),以實(shí)現(xiàn)證據(jù)固定防止惡意的取證人員修改證據(jù)文件的目的。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
1,本發(fā)明提出的系統(tǒng)降低了取證人員對linux取證的知識儲備方面的要求,經(jīng)過簡單培訓(xùn)即可使用。
2,本系統(tǒng)減少了取證調(diào)查人員的工作量,調(diào)查人員無需再攜帶大量linux取證工具。
3,本系統(tǒng)首次引入了取證工具“工程”的概念,對取得的數(shù)據(jù)文件打包,方便管理。
4,本系統(tǒng)還首次引入“證據(jù)固定”的概念,避免取證人員自身非法修改證據(jù)文件。
附圖說明
圖1為本發(fā)明的系統(tǒng)架構(gòu)圖。
具體實(shí)施方式
現(xiàn)結(jié)合附圖對本發(fā)明做進(jìn)一步詳細(xì)的說明。
如圖1所示,本發(fā)明提出的基于linux環(huán)境的數(shù)字取證系統(tǒng),包含主機(jī)操作痕跡調(diào)查模塊、網(wǎng)絡(luò)操作痕跡調(diào)查模塊、日志信息調(diào)查模塊、內(nèi)存信息調(diào)查模塊和證據(jù)固定模塊。
主機(jī)操作痕跡調(diào)查模塊主要用于提取系統(tǒng)基本信息及操作記錄,通過為取證調(diào)查分析人提供該信息,既可以使得取證調(diào)查人員憑借自身經(jīng)驗(yàn)建立對該系統(tǒng)的“安全基線”,也可以提供一些敏感的異常信息,如:是否包含非法用戶,不建議的操作與訪問等。該模塊具體提供以下功能
1、基本操作調(diào)查功能:
(1)獲取系統(tǒng)的登錄時(shí)間列表,用于調(diào)查是否存在非法訪問或敏感時(shí)期的異常訪問等信息。主要通過解析wtmp,btmp等系統(tǒng)實(shí)時(shí)文件。
(2)系統(tǒng)在登錄過程中所啟動的服務(wù)列表,用于調(diào)查系統(tǒng)中是否存在攻擊者安裝的rootkit或其他自啟動后門程序等。主要通過解析wtmp中的相關(guān)信息
(3)基本用戶信息,用于判斷當(dāng)前系統(tǒng)是否存在非法、可疑用戶。主要提取解析自passwd,shadow等文件。
2、應(yīng)用信息調(diào)查功能
(1)獲取系統(tǒng)中已安裝程序列表,判斷是否存在rootkit及其他非法應(yīng)用,包括端口轉(zhuǎn)發(fā),掃描工具等惡意應(yīng)用。主要通過提取操作系統(tǒng)的包管理器數(shù)據(jù)庫實(shí)現(xiàn)。
(2)獲取系統(tǒng)中殘留的安裝包,結(jié)合已安裝程序列表,判斷當(dāng)前系統(tǒng)中是否安裝或安裝過相應(yīng)的非法應(yīng)用程序。以便調(diào)查人員判斷當(dāng)前系統(tǒng)或系統(tǒng)所處網(wǎng)絡(luò)的受攻擊程度及影響范圍,亦可能通過這部分信息,對攻擊進(jìn)行溯源分析。實(shí)現(xiàn)方法同上。
網(wǎng)絡(luò)操作痕跡調(diào)查模塊主要用于提取操作系統(tǒng)中網(wǎng)絡(luò)運(yùn)行狀態(tài),為取證調(diào)查人員提供當(dāng)前系統(tǒng)中網(wǎng)絡(luò)的詳細(xì)信息,包括網(wǎng)絡(luò)應(yīng)用,基本的網(wǎng)絡(luò)等。具體連接細(xì)化為三部分:基本操作信息調(diào)查功能、網(wǎng)絡(luò)緩存調(diào)查功能、網(wǎng)絡(luò)應(yīng)用狀態(tài)調(diào)查功能
1、基本操作信息調(diào)查功能,主要通過解析netstat程序結(jié)果產(chǎn)生。
(1)提取當(dāng)前網(wǎng)絡(luò)連接狀態(tài),判斷是否有異常連接進(jìn)入或發(fā)出。
(2)每一網(wǎng)絡(luò)連接所對應(yīng)的ip地址,子網(wǎng)掩碼、網(wǎng)關(guān)地址,網(wǎng)卡信息等。如果發(fā)現(xiàn)有異常網(wǎng)絡(luò)連接,則針對這些信息進(jìn)行篩選,可以快速定位攻擊源,方便調(diào)查人員進(jìn)行溯源分析和攻擊路徑復(fù)現(xiàn)。
2、網(wǎng)絡(luò)緩存調(diào)查功能(該功能主要以操作系統(tǒng)的網(wǎng)絡(luò)緩存為主,通過解析操作系統(tǒng)緩存文件獲得)
(1)arp緩存信息,通過查閱arp緩存,可以判斷該系統(tǒng)是否收到arp欺騙攻擊,從而便于調(diào)查人員分析攻擊源和攻擊方法。
(2)dns緩存信息,通過dns緩存信息,可以判斷出當(dāng)前系統(tǒng)是否受到dns污染,或被導(dǎo)向了什么位置,便于調(diào)查人員溯源和確定攻擊入口。
3、網(wǎng)絡(luò)應(yīng)用狀態(tài)調(diào)查功能,主要通過解析netstat程序結(jié)果產(chǎn)生。
獲取網(wǎng)絡(luò)應(yīng)用與ip、監(jiān)聽端口的對應(yīng)關(guān)系及連接存活狀態(tài):通過這樣的關(guān)系可以判別系統(tǒng)中是否存在惡意的網(wǎng)絡(luò)應(yīng)用及其監(jiān)聽端口,從而方便調(diào)查人員對攻擊進(jìn)行溯源和在內(nèi)存數(shù)據(jù)中截獲惡意應(yīng)用程序傳輸內(nèi)容。
由于linux系統(tǒng)會對系統(tǒng)中所有應(yīng)用及自身的日志進(jìn)行統(tǒng)一管理,所以日志信息調(diào)查模塊的主要工作在于提取這些系統(tǒng)日志,并對這些日志進(jìn)行一個(gè)分類,統(tǒng)計(jì),歸檔工作,同時(shí)提供一個(gè)關(guān)鍵字檢索功能,方便調(diào)查人員根據(jù)相應(yīng)的關(guān)鍵字,搜索特定的日志內(nèi)容,如:系統(tǒng)登錄異常,應(yīng)用運(yùn)行異常等信息,方便調(diào)查人員在一種友好的模式下查看,分析日志內(nèi)容。主要提取位于/var/log下的部分日志文件。
主要有兩個(gè)功能支撐該模塊的實(shí)現(xiàn):
1、日志文件分析入庫:對所有必要的日志進(jìn)行分析,按照不同字段,屬性存入不同數(shù)據(jù)結(jié)構(gòu)組成的數(shù)據(jù)庫中,使得取證調(diào)查人員查看時(shí)明確知曉各個(gè)字段表示的含義,形成一種思路清晰,界面友好的結(jié)果反饋形式。
2、關(guān)鍵字檢索模塊:通過取證調(diào)查人員輸入的關(guān)鍵字,自動在數(shù)據(jù)庫中匹配出所有相關(guān)記錄并予以顯示,為取證調(diào)查人員提供信息篩選和整理的功能。
關(guān)于內(nèi)存信息調(diào)查模塊,由于內(nèi)存中存在當(dāng)前系統(tǒng)的大量駐留信息,涵蓋文件、日志、網(wǎng)絡(luò)、用戶等多種信息,因此對內(nèi)存取證的意義在于:(1)在司法效應(yīng)上提供支撐其他幾大調(diào)查模塊的調(diào)查結(jié)果的物理數(shù)據(jù),便于對該系統(tǒng)提取到的所有數(shù)字化證據(jù)進(jìn)行審查和復(fù)檢,確保其司法可用性;(2)內(nèi)存中還存有其他未被前面幾大模塊所涵蓋的敏感信息,可以對提取到的內(nèi)存數(shù)據(jù)進(jìn)行更加詳細(xì)的分析和挖掘,便于提取非常規(guī)計(jì)算機(jī)犯罪技術(shù)所遺留的司法可用的數(shù)字化證據(jù)。
本發(fā)明中,因?yàn)楝F(xiàn)代linux系統(tǒng)中的安全機(jī)制不允許用戶程序直接對內(nèi)存數(shù)據(jù)進(jìn)行dump,所以這里我們采用了一個(gè)第三方開源的工具fmem,來對內(nèi)存就行轉(zhuǎn)儲,結(jié)合系統(tǒng)dd工具實(shí)現(xiàn)了內(nèi)存信息調(diào)查模塊。由于該工具需要在被取證系統(tǒng)上加載內(nèi)核模塊,為了避免因?yàn)楦淖兿到y(tǒng)環(huán)境而可能引發(fā)的數(shù)據(jù)文件不可信,我們把內(nèi)存取證模塊作為取證流程的最后環(huán)節(jié),從而有效的規(guī)避了因?yàn)閮?nèi)存鏡像而帶來的其他數(shù)字化證據(jù)不可靠的問題。
證據(jù)固定模塊主要用于對所有提取到的證據(jù)進(jìn)行固定,涵蓋內(nèi)容有所有數(shù)據(jù)文件的md5值,證據(jù)提取時(shí)間,調(diào)查人員姓名,調(diào)查人員id,調(diào)查人員聯(lián)系方式等,確保所提取的證據(jù)不被參與調(diào)查的人員惡意修改,影響其司法效應(yīng)
在真正的取證調(diào)查過程中,由于數(shù)字化證據(jù)存在易修改,易損壞的特性,亦有可能存在部分取證人員惡意修改證據(jù)文件,從而為他人規(guī)避法律風(fēng)險(xiǎn)謀取私利的情況,本系統(tǒng)在進(jìn)入數(shù)據(jù)提取后的運(yùn)行階段,對于取證人員采用了“不可信”原則,即不信任取證取證人員不會修改證據(jù)文件。故程序會對每一個(gè)提取到的證據(jù)原文件、經(jīng)過處理的數(shù)據(jù)庫文件進(jìn)行hash處理(本系統(tǒng)采用了md5算法來進(jìn)行這一操作),并在最后的“工程”文件中,詳細(xì)記錄證據(jù)提取時(shí)間,取證人員姓名,取證人員身份id,取證人員聯(lián)系方式等,確保證據(jù)文件損壞或有被修改嫌疑時(shí),能被監(jiān)管部門及時(shí)發(fā)現(xiàn),進(jìn)行問責(zé)處理。
本發(fā)明還提供了一個(gè)圖形化運(yùn)行界面,該界面通過qt程序編寫,由于在程序架構(gòu)上實(shí)現(xiàn)了功能代碼與界面代碼相互分離的原則,故該界面只提供基本的操作和顯示功能,通過合理的使用標(biāo)簽頁,把各個(gè)模塊的細(xì)節(jié)功能在界面上予以分類展示,位取證調(diào)查人員提供一個(gè)思路明確,清晰直觀的取證結(jié)果,一方面方便取證調(diào)查人員操作,另一方面方便證據(jù)分析人員對所獲取的證據(jù)文件進(jìn)行分析。