摘要:主機日志在入侵檢測和計算機犯罪取證中有不可替代的作用,通過深入分析主機日志可以發現系統的異常行為和犯罪者留下的蹤跡。而計算機入侵者和計算機犯罪者通過刪除、篡改等方式來銷毀或破壞被攻擊系統上的其操作所留下來的日志記錄,最終躲避系統管理員和專業人員的追蹤、安全審計和犯罪取證。因此,對主機日志的安全保護直接關系到計算機系統的安全。本文對現有的日志安全保護技術進行了研究,并在此基礎上提出了一種新的方法。
關鍵詞:系統日志;日志格式;安全保護;實時備份
中圖分類號: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)是指系統所指定對象的某些操作和其操作結果按時間有序的集合。每個日志文件由一條一條的日志記錄組成,每條日志記錄描述了一次單獨的系統事件。通常情況下,系統日志是用戶可以直接閱讀的文本文件,其中包含了一個時間戳和一個信息或者子系統所特有的其他信息。日志文件為服務器、工作站、防火墻和應用軟件等IT資源相關活動記錄必要的、有價值的信息,這對系統監控、查詢、報告和安全審計是十分重要的。日志文件中的記錄可提供以下用途:監控系統資源;審計用戶行為;對可疑行為進行告警;確定入侵行為的范圍;為恢復崩潰的系統提供幫助;生成調查報告;為打擊計算機犯罪提供證據來源。
日志對于系統安全來說如此重要,它記錄了系統每天發生的各種各樣的事情,為了維護系統自身資源的運行狀況,計算機系統一般都會有相應的日志來記錄系統有關日常事件或者誤操作警報的相關信息。通過日志可以來檢查系統錯誤發生的原因,受到攻擊時追蹤攻擊者留下的痕跡,系統崩潰時可以用日志技術進行恢復文件。而計算機入侵者和計算機犯罪者通過刪除、篡改等方式來銷毀或破壞被攻擊系統上的其操作所留下來的日志記錄,最終躲避系統管理員和專業人員的追蹤、審計和犯罪取證。因此,系統日志對于保護計算機系統軟硬件資源具有不可替代的作用,系統日志的安全直接關系到計算機系統的安全。
2 日志的分類
日志的種類各式各樣,日志數據存放所采用的格式并沒有得到統一,要想對日志進行統一的安全保護,必須得先要解決日志的格式問題。下面先來看看日志的分類。
日志就是記錄的事件或統計數據,這些事件或統計數據能提供關于系統使用及性能方面的信息。審計就是對日志記錄的分析并以清晰的、能理解的方式表述系統信息[2]。利用日志對系統進行安全審計是日志被使用的一個重要方面,日志數據是安全審計系統的重要數據來源。而安全審計系統可以利用的日志大致分為以下四類[3][4]:操作系統日志、安全設備日志、 網絡設備日志、 應用系統日志。
1) 操作系統日志
操作系統日志可以分成兩大類:Windows 系統日志和Linux/Unix 系統日志。Windows NT/2K/XP 的系統日志文件有應用程序日志、安全日志和系統日志等。在Linux/Unix 系統中, 有三個主要的日志子系統: 連接時間日志、進程統計日志和錯誤日志。
2) 安全設備日志
安全設備日志是指網絡安全設備產生的日志,網絡安全設備有防火墻, 入侵檢測系統等,各設備產生的日志格式各不相同。
3) 網絡設備日志
網絡設備日志是指網絡中交換機、路由器等網絡設備產生的日志。
4) 應用系統日志
應用系統日志包含由各種應用程序記錄的事件。有Apache 日志、IIS 日志等。
由上可見,要想進行安全審計,或是利用日志進行計算機犯罪取證,必須先對各種不同格式的日志進行整合,統一它們的格式,然后在統一格式的基礎上,對這些日志進行統一的安全保護,才能確保安全審計和計算機犯罪取證的正確進行。
3 統一日志格式的方法
日志保護技術在對這些日志數據采取保護措施之前,必須先做好日志格式的整合工作,統一日志記錄的格式,在統一格式的基礎上,對日志文件進行統一的保護處理。對日志格式的統一往往使用以下方法:
1) 對各種不同格式的日志,取用各種日志記錄中共有的公共屬性值,即取各種日志記錄中屬性的“交集”, 把這些公共屬性值作為統一格式的日志記錄所包含的信息。但這種方法把原有的各種日志記錄中的一些屬性值忽略去掉了, 使得審計的粒度變大變粗了。
2) 使用某種語言(如XML語言),把各種不同格式的日志記錄翻譯成統一格式。這種方法主要是通過先定義一種結構體類型的數據結構,把各種日志記錄中所包含的數據項映射成這種數據結構中對應的數據類型。用這種方法,構造出來的數據結構應能把各種日志記錄中的屬性項都考慮進來,使得任何日志記錄的屬性項都能轉換成該數據結構中對應的數據類型,所以,使用這種方法,往往把通過格式轉換后的日志記錄都會變大,自然會給存儲空間和存取時間帶來大的開銷。
4 現有的日志安全保護技術
所有的日志文件都有默認位置,如在Windows系統中,系統日志文件有應用程序日志、安全日志和系統日志、DNS日志等,日志文件的默認位置在%systemroot%\\system32\\config 目錄下。入侵者和計算機犯罪分子很容易對其中的日志文件進行瀏覽閱讀和更改甚至刪除。日志文件有默認的大小,如Windows系統中,默認的日志文件大小為512KB,當然,系統管理員可以改變這個默認大小,但是并不是所有日志所對應的系統的使用者特別是普通用戶都會去更改這個大小,這使得入侵者和計算機犯罪分子有機可乘,他們可以進行很多無用的操作,而這些操作所對應的審計記錄被大量的寫入日志文件所對應的空間,當日志文件空間不夠時,因系統或設置的不同,這時要么采取覆蓋以前的日志記錄、要么采取不記錄后面的日志信息的方法來處理。用這樣的方法,最終使得入侵和犯罪的痕跡無法保存在日志文件里面。不管是用哪種方式來破壞日志,最終都導致日志信息變得無效,使得依賴于日志進行的安全審計、入侵檢測和計算機犯罪取證都無法正確得出結果,因此日志的安全保護勢在必然。現有的日志安全保護技術和措施有[1]:
1) 系統日志讀寫權限的安全設計
現在的操作系統,在root權限下可以進行任何操作。因此入侵者一旦拿到root權限,就可以對日志文件進行隨意的操作,從而可以破壞日志。從這個角度出發,設計一種新的安全認證機制來提升系統日志的安全讀寫權限,確保日志信息即使在入侵者拿到root權限的情況下也無法對日志文件進行修改、刪除操作。
因此,可以通過修改操作系統的內核來改變文件系統,增加文件系統的讀寫權限;或者使用一種特殊的系統進程對日志文件進行安全保護。
但修改操作系統內核在實現上具有較大難度不易推廣,而使用特殊的日志守護進程來保護日志安全,又存在守護進程本身的安全問題,一旦守護進程被殺死,那么對日志的守護工作也就結束。
2) 系統日志文件的實時備份
系統日志的實時備份,是出于即使在日志文件被破壞后,還有備份好的完整、有效的日志供使用。該方法與系統日志讀寫權限的安全設計的方法不同,系統日志讀寫權限的安全設計的方法是盡量保護日志不被破壞(該方法對現有的操作系統實現起來比較困難不太現實),而系統日志文件的實時備份的方法并不能保證日志不被破壞,而它往往是在日志被破壞的時候起作用(對已有的操作系統,日志保護使用這種方法比較普遍)。使用這個方法,必須確保備份的日志原始、完整、真實和有效,所以在備份時一定要實時,在日志記錄一產生還沒被破壞前,就進行了備份并且轉移到別的地方進行安全存儲。
根據備份后的日志轉移存放的位置不同,系統日志文件的實時備份又可以分成本地備份存儲和異地備份存儲。
本地備份存儲就是把產生的備份文件放到不同的目錄下面,而且每次放的目錄都不一樣,在別人看來,這個目錄的位置是隨機不確定的。這種方法在恢復備份的時候就比較困難些,并且,如果是使用這種方法來保護日志的話,即使入侵者和計算機犯罪分子不知道備份文件具體放到哪個目錄下,但卻一定能確定備份文件就在本機器上,他可以使用其他的方法破壞系統使系統崩潰和格式化磁盤的方法,刪除掉備份文件。
異地備份存儲,都要使用網絡技術,把備份好的日志文件要轉移到其他機器或專門的存儲設備上去。用這種方法存在的缺點有,一、會增加網絡數據傳輸的負擔;二、數據在傳輸過程中的安全性問題,備份數據在網絡的傳輸的過程中,可能會遭到攻擊,要么使得傳輸的數據無法正確的到達目的地,要么使得數據在途中可能遭到篡改而變得無效;三、備份數據在異地的安全存放同樣是個不可忽視的安全問題;四、使用異地存儲,自然會多開銷:網絡帶寬的開銷、存儲備份文件的硬件開銷和管理開銷,之所以提到這一點,是因為普通的用戶和一般的單位負擔不起這樣的開銷,他們遭到攻擊和計算機犯罪竊取資料的情況是很普遍的,這樣的用戶和公司大有存在,但因開銷不起,從而導致異地存儲實時備份日志文件的保護方案無法實施和推廣。
5 新的解決方案
對日志的保護,只有兩種:一種是保護其不受破壞;一種是保護其破壞后能恢復原樣。而上面提到的兩種方案就是對應著這兩種情況來進行的。但其都存在著一定的局限性,針對現有保護技術的缺陷,在這里提出一種新的方法,有待探討。
因現在的用戶普遍使用windows和Linux/Unix類的操作系統,前面提到,對操作系統再做更改的工程量比較大,還可能對操作系統的穩定性和運行效率帶來影響,所以系統日志讀寫權限的安全設計保護措施難以實現和推廣,因此往往使用實時備份的方案來解決日志的保護問題,但是用異地轉移存放備份日志的局限性也比較大,在本文提出的方案中,考慮用本地存儲備份文件的方式來解決。
前面提到本地存儲備份文件的缺點是:一、難以從“隨機”選取的存放備份的目錄中收集備份,二、入侵者和計算機犯罪分子可以對本地磁盤進行格式化操作從而把數據銷毀掉,這是本地存儲備份文件碰到的最大難題。針對著這一難題,我們可以在計算機主機上開發一個接口,類似于USB一樣的存儲接口。現在的存儲磁盤(不管是固定的還是可移動的)存儲容量越來越大而且也越來越便宜,普通用戶哪怕是個人都能消費得起,并且對于需要大空間日志的存儲是一個福音,這是考慮用本地存儲備份文件的一個重要原因。在主機上把這個接口做成類似于USB一樣的接口,但是在該存儲體上要有兩個接口,一個接口用于數據的寫入,另一個接口用于數據的讀出,存儲體上的兩個接口都共用主機上的同一個接口,在數據寫入狀態下,把寫入接口端插到主機上,在讀取查看或刪除時,讀出接口端插到主機上。與USB接口不同的是,該接口要有認證機制,只有通過認證才可以使用該接口來對數據進行寫入、修改和刪除操作,確保把無效數據寫入對應的存儲空間,也保證對該空間的數據進行非法的修改和刪除。當然在備份數據寫入之前,要先驗證備份數據的原始性、完整性和有效性,并可對備份數據進行壓縮,來提高存儲空間的使用率,確保該空間里存放的數據是合法、可用和有效的。除此之外,在設計這個接口和存儲體時,可以設計成附帶鎖和鑰匙的功能,做到專門的設備有專門保管,防止公司內部人員使用計算機犯罪竊取資料或搞報復搞破壞的情況,在這種情況下,如果該存儲體不帶鎖具和鑰匙,內部人員在現場使用自己的計算機對本機進行了非法操作后,可以把存儲體的讀出接口端調過來插到主機上,自然能夠容易通過認證,從而可以達到破壞主機日志和備份日志的目的,使得對其從法律角度上犯罪取證造成困難。
6 總結
日志的安全存放確實存在很大問題,特別是對已有的操作系統和產品因設計時在此方面考慮不周而更是突出。但現在卻沒有一個好的解決方案,如何確保日志安全是一個值得我們去好好深入研究的問題。
參考文獻:
[1] 林輝,竇旻.系統日志的安全保護[J].計算機工程,2003(17).
[2] Matt Bishop.計算機安全學導論[M].王立斌,黃征,譯.北京:電子工業出版社,2005,284-303.
[3] 石彪,胡華平,劉利枚.網絡環境下的日志監控與安全審計系統設計與實現[J].福建電腦,2004,(12).
[4] 黃旭鵬.安全審計系統中日志數據整合的研究[J].電腦知識與技術,2008(14).