摘要:主機日志在入侵檢測和計算機犯罪取證中有不可替代的作用,通過深入分析主機日志可以發(fā)現(xiàn)系統(tǒng)的異常行為和犯罪者留下的蹤跡。而計算機入侵者和計算機犯罪者通過刪除、篡改等方式來銷毀或破壞被攻擊系統(tǒng)上的其操作所留下來的日志記錄,最終躲避系統(tǒng)管理員和專業(yè)人員的追蹤、安全審計和犯罪取證。因此,對主機日志的安全保護直接關(guān)系到計算機系統(tǒng)的安全。本文對現(xiàn)有的日志安全保護技術(shù)進行了研究,并在此基礎上提出了一種新的方法。
關(guān)鍵詞:系統(tǒng)日志;日志格式;安全保護;實時備份
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2009)14-3817-03
Research on Safety Protection Technology of System Log File
LU You-min
(1.Department of Computer Science and Technology, Huaihua University,Huaihua 418008,China;2.College of Computer and Communication Hunan university,Changsha 410082,China)
Abstract: Log in host intrusion detection and evidence of computer crime in the irreplaceable role, through in-depth analysis of the host system log can be found the abnormal behavior and the traces of the perpetrators left behind.But, computer intruders and offenders by removing or tampering to damage the log records of their operation.,to avoid the follow-up、Safety Audit and criminal evidence by system administrators and professionals.So, Log’s security on host is directly related to the security of computer systems.In this paper, researched the existing log's safety protection technology,and give a new method.
Key words: system log; log format; security protection; real-time backup
1 引言
所謂日志[1](Log)是指系統(tǒng)所指定對象的某些操作和其操作結(jié)果按時間有序的集合。每個日志文件由一條一條的日志記錄組成,每條日志記錄描述了一次單獨的系統(tǒng)事件。通常情況下,系統(tǒng)日志是用戶可以直接閱讀的文本文件,其中包含了一個時間戳和一個信息或者子系統(tǒng)所特有的其他信息。日志文件為服務器、工作站、防火墻和應用軟件等IT資源相關(guān)活動記錄必要的、有價值的信息,這對系統(tǒng)監(jiān)控、查詢、報告和安全審計是十分重要的。日志文件中的記錄可提供以下用途:監(jiān)控系統(tǒng)資源;審計用戶行為;對可疑行為進行告警;確定入侵行為的范圍;為恢復崩潰的系統(tǒng)提供幫助;生成調(diào)查報告;為打擊計算機犯罪提供證據(jù)來源。
日志對于系統(tǒng)安全來說如此重要,它記錄了系統(tǒng)每天發(fā)生的各種各樣的事情,為了維護系統(tǒng)自身資源的運行狀況,計算機系統(tǒng)一般都會有相應的日志來記錄系統(tǒng)有關(guān)日常事件或者誤操作警報的相關(guān)信息。通過日志可以來檢查系統(tǒng)錯誤發(fā)生的原因,受到攻擊時追蹤攻擊者留下的痕跡,系統(tǒng)崩潰時可以用日志技術(shù)進行恢復文件。而計算機入侵者和計算機犯罪者通過刪除、篡改等方式來銷毀或破壞被攻擊系統(tǒng)上的其操作所留下來的日志記錄,最終躲避系統(tǒng)管理員和專業(yè)人員的追蹤、審計和犯罪取證。因此,系統(tǒng)日志對于保護計算機系統(tǒng)軟硬件資源具有不可替代的作用,系統(tǒng)日志的安全直接關(guān)系到計算機系統(tǒng)的安全。
2 日志的分類
日志的種類各式各樣,日志數(shù)據(jù)存放所采用的格式并沒有得到統(tǒng)一,要想對日志進行統(tǒng)一的安全保護,必須得先要解決日志的格式問題。下面先來看看日志的分類。
日志就是記錄的事件或統(tǒng)計數(shù)據(jù),這些事件或統(tǒng)計數(shù)據(jù)能提供關(guān)于系統(tǒng)使用及性能方面的信息。審計就是對日志記錄的分析并以清晰的、能理解的方式表述系統(tǒng)信息[2]。利用日志對系統(tǒng)進行安全審計是日志被使用的一個重要方面,日志數(shù)據(jù)是安全審計系統(tǒng)的重要數(shù)據(jù)來源。而安全審計系統(tǒng)可以利用的日志大致分為以下四類[3][4]:操作系統(tǒng)日志、安全設備日志、 網(wǎng)絡設備日志、 應用系統(tǒng)日志。
1) 操作系統(tǒng)日志
操作系統(tǒng)日志可以分成兩大類:Windows 系統(tǒng)日志和Linux/Unix 系統(tǒng)日志。Windows NT/2K/XP 的系統(tǒng)日志文件有應用程序日志、安全日志和系統(tǒng)日志等。在Linux/Unix 系統(tǒng)中, 有三個主要的日志子系統(tǒng): 連接時間日志、進程統(tǒng)計日志和錯誤日志。
2) 安全設備日志
安全設備日志是指網(wǎng)絡安全設備產(chǎn)生的日志,網(wǎng)絡安全設備有防火墻, 入侵檢測系統(tǒng)等,各設備產(chǎn)生的日志格式各不相同。
3) 網(wǎng)絡設備日志
網(wǎng)絡設備日志是指網(wǎng)絡中交換機、路由器等網(wǎng)絡設備產(chǎn)生的日志。
4) 應用系統(tǒng)日志
應用系統(tǒng)日志包含由各種應用程序記錄的事件。有Apache 日志、IIS 日志等。
由上可見,要想進行安全審計,或是利用日志進行計算機犯罪取證,必須先對各種不同格式的日志進行整合,統(tǒng)一它們的格式,然后在統(tǒng)一格式的基礎上,對這些日志進行統(tǒng)一的安全保護,才能確保安全審計和計算機犯罪取證的正確進行。
3 統(tǒng)一日志格式的方法
日志保護技術(shù)在對這些日志數(shù)據(jù)采取保護措施之前,必須先做好日志格式的整合工作,統(tǒng)一日志記錄的格式,在統(tǒng)一格式的基礎上,對日志文件進行統(tǒng)一的保護處理。對日志格式的統(tǒng)一往往使用以下方法:
1) 對各種不同格式的日志,取用各種日志記錄中共有的公共屬性值,即取各種日志記錄中屬性的“交集”, 把這些公共屬性值作為統(tǒng)一格式的日志記錄所包含的信息。但這種方法把原有的各種日志記錄中的一些屬性值忽略去掉了, 使得審計的粒度變大變粗了。
2) 使用某種語言(如XML語言),把各種不同格式的日志記錄翻譯成統(tǒng)一格式。這種方法主要是通過先定義一種結(jié)構(gòu)體類型的數(shù)據(jù)結(jié)構(gòu),把各種日志記錄中所包含的數(shù)據(jù)項映射成這種數(shù)據(jù)結(jié)構(gòu)中對應的數(shù)據(jù)類型。用這種方法,構(gòu)造出來的數(shù)據(jù)結(jié)構(gòu)應能把各種日志記錄中的屬性項都考慮進來,使得任何日志記錄的屬性項都能轉(zhuǎn)換成該數(shù)據(jù)結(jié)構(gòu)中對應的數(shù)據(jù)類型,所以,使用這種方法,往往把通過格式轉(zhuǎn)換后的日志記錄都會變大,自然會給存儲空間和存取時間帶來大的開銷。
4 現(xiàn)有的日志安全保護技術(shù)
所有的日志文件都有默認位置,如在Windows系統(tǒng)中,系統(tǒng)日志文件有應用程序日志、安全日志和系統(tǒng)日志、DNS日志等,日志文件的默認位置在%systemroot%\\system32\\config 目錄下。入侵者和計算機犯罪分子很容易對其中的日志文件進行瀏覽閱讀和更改甚至刪除。日志文件有默認的大小,如Windows系統(tǒng)中,默認的日志文件大小為512KB,當然,系統(tǒng)管理員可以改變這個默認大小,但是并不是所有日志所對應的系統(tǒng)的使用者特別是普通用戶都會去更改這個大小,這使得入侵者和計算機犯罪分子有機可乘,他們可以進行很多無用的操作,而這些操作所對應的審計記錄被大量的寫入日志文件所對應的空間,當日志文件空間不夠時,因系統(tǒng)或設置的不同,這時要么采取覆蓋以前的日志記錄、要么采取不記錄后面的日志信息的方法來處理。用這樣的方法,最終使得入侵和犯罪的痕跡無法保存在日志文件里面。不管是用哪種方式來破壞日志,最終都導致日志信息變得無效,使得依賴于日志進行的安全審計、入侵檢測和計算機犯罪取證都無法正確得出結(jié)果,因此日志的安全保護勢在必然?,F(xiàn)有的日志安全保護技術(shù)和措施有[1]:
1) 系統(tǒng)日志讀寫權(quán)限的安全設計
現(xiàn)在的操作系統(tǒng),在root權(quán)限下可以進行任何操作。因此入侵者一旦拿到root權(quán)限,就可以對日志文件進行隨意的操作,從而可以破壞日志。從這個角度出發(fā),設計一種新的安全認證機制來提升系統(tǒng)日志的安全讀寫權(quán)限,確保日志信息即使在入侵者拿到root權(quán)限的情況下也無法對日志文件進行修改、刪除操作。
因此,可以通過修改操作系統(tǒng)的內(nèi)核來改變文件系統(tǒng),增加文件系統(tǒng)的讀寫權(quán)限;或者使用一種特殊的系統(tǒng)進程對日志文件進行安全保護。
但修改操作系統(tǒng)內(nèi)核在實現(xiàn)上具有較大難度不易推廣,而使用特殊的日志守護進程來保護日志安全,又存在守護進程本身的安全問題,一旦守護進程被殺死,那么對日志的守護工作也就結(jié)束。
2) 系統(tǒng)日志文件的實時備份
系統(tǒng)日志的實時備份,是出于即使在日志文件被破壞后,還有備份好的完整、有效的日志供使用。該方法與系統(tǒng)日志讀寫權(quán)限的安全設計的方法不同,系統(tǒng)日志讀寫權(quán)限的安全設計的方法是盡量保護日志不被破壞(該方法對現(xiàn)有的操作系統(tǒng)實現(xiàn)起來比較困難不太現(xiàn)實),而系統(tǒng)日志文件的實時備份的方法并不能保證日志不被破壞,而它往往是在日志被破壞的時候起作用(對已有的操作系統(tǒng),日志保護使用這種方法比較普遍)。使用這個方法,必須確保備份的日志原始、完整、真實和有效,所以在備份時一定要實時,在日志記錄一產(chǎn)生還沒被破壞前,就進行了備份并且轉(zhuǎn)移到別的地方進行安全存儲。
根據(jù)備份后的日志轉(zhuǎn)移存放的位置不同,系統(tǒng)日志文件的實時備份又可以分成本地備份存儲和異地備份存儲。
本地備份存儲就是把產(chǎn)生的備份文件放到不同的目錄下面,而且每次放的目錄都不一樣,在別人看來,這個目錄的位置是隨機不確定的。這種方法在恢復備份的時候就比較困難些,并且,如果是使用這種方法來保護日志的話,即使入侵者和計算機犯罪分子不知道備份文件具體放到哪個目錄下,但卻一定能確定備份文件就在本機器上,他可以使用其他的方法破壞系統(tǒng)使系統(tǒng)崩潰和格式化磁盤的方法,刪除掉備份文件。
異地備份存儲,都要使用網(wǎng)絡技術(shù),把備份好的日志文件要轉(zhuǎn)移到其他機器或?qū)iT的存儲設備上去。用這種方法存在的缺點有,一、會增加網(wǎng)絡數(shù)據(jù)傳輸?shù)呢摀?二、數(shù)據(jù)在傳輸過程中的安全性問題,備份數(shù)據(jù)在網(wǎng)絡的傳輸?shù)倪^程中,可能會遭到攻擊,要么使得傳輸?shù)臄?shù)據(jù)無法正確的到達目的地,要么使得數(shù)據(jù)在途中可能遭到篡改而變得無效;三、備份數(shù)據(jù)在異地的安全存放同樣是個不可忽視的安全問題;四、使用異地存儲,自然會多開銷:網(wǎng)絡帶寬的開銷、存儲備份文件的硬件開銷和管理開銷,之所以提到這一點,是因為普通的用戶和一般的單位負擔不起這樣的開銷,他們遭到攻擊和計算機犯罪竊取資料的情況是很普遍的,這樣的用戶和公司大有存在,但因開銷不起,從而導致異地存儲實時備份日志文件的保護方案無法實施和推廣。
5 新的解決方案
對日志的保護,只有兩種:一種是保護其不受破壞;一種是保護其破壞后能恢復原樣。而上面提到的兩種方案就是對應著這兩種情況來進行的。但其都存在著一定的局限性,針對現(xiàn)有保護技術(shù)的缺陷,在這里提出一種新的方法,有待探討。
因現(xiàn)在的用戶普遍使用windows和Linux/Unix類的操作系統(tǒng),前面提到,對操作系統(tǒng)再做更改的工程量比較大,還可能對操作系統(tǒng)的穩(wěn)定性和運行效率帶來影響,所以系統(tǒng)日志讀寫權(quán)限的安全設計保護措施難以實現(xiàn)和推廣,因此往往使用實時備份的方案來解決日志的保護問題,但是用異地轉(zhuǎn)移存放備份日志的局限性也比較大,在本文提出的方案中,考慮用本地存儲備份文件的方式來解決。
前面提到本地存儲備份文件的缺點是:一、難以從“隨機”選取的存放備份的目錄中收集備份,二、入侵者和計算機犯罪分子可以對本地磁盤進行格式化操作從而把數(shù)據(jù)銷毀掉,這是本地存儲備份文件碰到的最大難題。針對著這一難題,我們可以在計算機主機上開發(fā)一個接口,類似于USB一樣的存儲接口?,F(xiàn)在的存儲磁盤(不管是固定的還是可移動的)存儲容量越來越大而且也越來越便宜,普通用戶哪怕是個人都能消費得起,并且對于需要大空間日志的存儲是一個福音,這是考慮用本地存儲備份文件的一個重要原因。在主機上把這個接口做成類似于USB一樣的接口,但是在該存儲體上要有兩個接口,一個接口用于數(shù)據(jù)的寫入,另一個接口用于數(shù)據(jù)的讀出,存儲體上的兩個接口都共用主機上的同一個接口,在數(shù)據(jù)寫入狀態(tài)下,把寫入接口端插到主機上,在讀取查看或刪除時,讀出接口端插到主機上。與USB接口不同的是,該接口要有認證機制,只有通過認證才可以使用該接口來對數(shù)據(jù)進行寫入、修改和刪除操作,確保把無效數(shù)據(jù)寫入對應的存儲空間,也保證對該空間的數(shù)據(jù)進行非法的修改和刪除。當然在備份數(shù)據(jù)寫入之前,要先驗證備份數(shù)據(jù)的原始性、完整性和有效性,并可對備份數(shù)據(jù)進行壓縮,來提高存儲空間的使用率,確保該空間里存放的數(shù)據(jù)是合法、可用和有效的。除此之外,在設計這個接口和存儲體時,可以設計成附帶鎖和鑰匙的功能,做到專門的設備有專門保管,防止公司內(nèi)部人員使用計算機犯罪竊取資料或搞報復搞破壞的情況,在這種情況下,如果該存儲體不帶鎖具和鑰匙,內(nèi)部人員在現(xiàn)場使用自己的計算機對本機進行了非法操作后,可以把存儲體的讀出接口端調(diào)過來插到主機上,自然能夠容易通過認證,從而可以達到破壞主機日志和備份日志的目的,使得對其從法律角度上犯罪取證造成困難。
6 總結(jié)
日志的安全存放確實存在很大問題,特別是對已有的操作系統(tǒng)和產(chǎn)品因設計時在此方面考慮不周而更是突出。但現(xiàn)在卻沒有一個好的解決方案,如何確保日志安全是一個值得我們?nèi)ズ煤蒙钊胙芯康膯栴}。
參考文獻:
[1] 林輝,竇旻.系統(tǒng)日志的安全保護[J].計算機工程,2003(17).
[2] Matt Bishop.計算機安全學導論[M].王立斌,黃征,譯.北京:電子工業(yè)出版社,2005,284-303.
[3] 石彪,胡華平,劉利枚.網(wǎng)絡環(huán)境下的日志監(jiān)控與安全審計系統(tǒng)設計與實現(xiàn)[J].福建電腦,2004,(12).
[4] 黃旭鵬.安全審計系統(tǒng)中日志數(shù)據(jù)整合的研究[J].電腦知識與技術(shù),2008(14).