肖仕僑
【摘 要】第三次工業(yè)革命帶來了信息技術(shù)的高速發(fā)展,掀起了新時代的革命的高潮。信息技術(shù)的發(fā)展給信息安全帶來了新的挑戰(zhàn),計算機(jī)安全監(jiān)控系統(tǒng)是一種保障信息安全的有效機(jī)制。它通過數(shù)據(jù)采集、分析處理、規(guī)則判別、違規(guī)阻止和全程記錄等手段,對本地或遠(yuǎn)程計算機(jī)中各類信息和用戶操作進(jìn)行保護(hù)和監(jiān)控。本文對文件、文本和用戶操作的監(jiān)控技術(shù)做出了簡要分析。
【關(guān)鍵詞】計算機(jī)安全 文件監(jiān)控 剪貼板監(jiān)控 用戶操作
【中圖分類號】TP309 【文獻(xiàn)標(biāo)識碼】A 【文章編號】1672-5158(2013)03-0163-01
隨著信息技術(shù)的發(fā)展,計算機(jī)在很多領(lǐng)域得到廣泛應(yīng)用,占有極其重要的地位,因此計算機(jī)的安全監(jiān)控問題越來越受到重視。如果計算機(jī)系統(tǒng)的安全監(jiān)控問題得不到解決勢必給各領(lǐng)域、各部門的生產(chǎn)生活帶來嚴(yán)重影響。
1.計算機(jī)安全監(jiān)控的對象
一般情況下,計算機(jī)安全監(jiān)控的對象可分成兩類:信息和操作。其中,信息主要是指系統(tǒng)的文件和文本信息,操作主要是指用戶人為產(chǎn)生的操作行為。監(jiān)控系統(tǒng)要對文件信息的變更,文本信息的復(fù)制傳播以及人為操作做到及時記錄和判別,必要時阻止有威脅的信息的傳播。
文件是信息的主要載體。在信息安全領(lǐng)域,計算機(jī)安全監(jiān)控系統(tǒng)會對涉密文件進(jìn)行保護(hù),對文件的新建、修改、刪除等操作進(jìn)行準(zhǔn)確的記錄,更有甚者會依據(jù)判別規(guī)則進(jìn)行操作干預(yù),防止受保護(hù)的文件被非法修改、刪除或復(fù)制傳播;文本是大部分信息的直接表現(xiàn)形式。文本的監(jiān)控保護(hù)主要體現(xiàn)在對文本內(nèi)容復(fù)制的監(jiān)控并且記錄復(fù)制的相關(guān)信息,阻止敏感信息的非法傳播;人為操作因為具有高度不確定性和破壞性等特點,因此可以在記錄鍵盤和鼠標(biāo)的操作基礎(chǔ)上,結(jié)合操作對象來判斷操作目的和生成信息,以阻止有威脅的操作和信息非法傳播。
2.文件變更的監(jiān)控技術(shù)研究
文件變更監(jiān)控是對目錄和文件的新建、修改、重命名和刪除等操作進(jìn)行記錄,保存發(fā)生變更的時間、位置、類型等信息。監(jiān)控可以針對整個文件系統(tǒng),也可以針對指定的存儲位置,這對于集中管理安全文件和減少系統(tǒng)開銷具有重要意義。
實現(xiàn)文件變更監(jiān)控的方法有很多,按照實現(xiàn)機(jī)制的不同可以分為3個層次:基于 Windows API 的方法,基于攔截系統(tǒng)調(diào)用的方法和基于中間層驅(qū)動程序的方法。
2.1 基于 Windows API 的方法
Windows 應(yīng)用程序接口(API)是 Windows 系統(tǒng)提供給用戶進(jìn)行系統(tǒng)編程和外設(shè)控制的函數(shù)庫。其中,與實現(xiàn)文件變更監(jiān)控相關(guān)的 API 函數(shù)為ReadDirectoryChangesW。ReadDirectoryChangesW 函數(shù)的主要特征是提供了同步和異步兩種監(jiān)控結(jié)果的處理方式,該方法最大的特點就是提供了比較完備的文件變更監(jiān)控處理,功能強(qiáng)大,可以滿足大部分文件的變更監(jiān)控功能。
2.2 基于攔截系統(tǒng)調(diào)用(API Hook)的方法
攔截系統(tǒng)調(diào)用也稱為 Windows應(yīng)用程序接口掛接技術(shù)。它的核心功能就是設(shè)法使一個活動進(jìn)程空間中的一塊代碼(API)在發(fā)生調(diào)用時,轉(zhuǎn)向到一段編程者提供的掛接代碼中,實現(xiàn)攔截調(diào)用的功能。在文件監(jiān)控系統(tǒng)中,當(dāng)應(yīng)用程序需要打開文件時,首先調(diào)用用戶空間態(tài)中的Kerne132.DLL 模塊提供的 API 函數(shù)CreateFileA,處理相關(guān)參數(shù)后調(diào)用Ntdll.DLL 模塊提供的 API函數(shù)NtCreateFile。隨后,Ntdll.DLL 模塊通過一個軟中斷 INT2Eh 指令進(jìn)入內(nèi)核態(tài)的處理程序,相應(yīng)系統(tǒng)調(diào)用NtCreateFile。所以,只要把包含監(jiān)控代碼的模塊MyAPI.DLL注入到Ntdll.DLL 中,并攔截其中的 NtCreateFile函數(shù),插入 MyAPI.DLL 提供的監(jiān)控代碼,就完成了文件打開操作的監(jiān)控。
2.3 基于中間層驅(qū)動程序的方法
中間層文件設(shè)備監(jiān)控驅(qū)動程序處在應(yīng)用程序和文件設(shè)備驅(qū)動程序之間,實現(xiàn)文件監(jiān)控功能。它攔截所有用戶程序向內(nèi)核驅(qū)動發(fā)出的文件I/O 請求,與監(jiān)控程序通信完成監(jiān)控功能。
3.文本復(fù)制的監(jiān)控技術(shù)研究
文本的復(fù)制在本質(zhì)上可以歸結(jié)為 Windows 剪貼板操作。Windows系統(tǒng)是消息驅(qū)動的,當(dāng)剪貼板內(nèi)容發(fā)生變化時,Windows 提供了剪貼板變化消息,因此要實時感知剪貼板內(nèi)容的變化,關(guān)鍵是監(jiān)控程序要能響應(yīng)和處理 Windows 觸發(fā)的剪貼板變化消息。剪貼板監(jiān)控的關(guān)鍵技術(shù)實現(xiàn)主要分為兩個部分:注冊/注銷剪貼板監(jiān)控鏈和響應(yīng)剪貼板變化消息。
3.1 注冊/注銷剪貼板監(jiān)控鏈
剪貼板監(jiān)控鏈(clipboard viewer chain)是一個由剪貼板監(jiān)控器(clipboard viewer)組成的鏈表結(jié)構(gòu),應(yīng)用程序通過SetClipboardViewer 函數(shù)將自己注冊成監(jiān)控器,系統(tǒng)自動將最新的監(jiān)控器掛接到監(jiān)控鏈上。當(dāng)發(fā)生剪貼板事件時,剪貼板消息將在監(jiān)控鏈上傳遞。當(dāng)應(yīng)用程序結(jié)束或不需要剪貼板消息時,應(yīng)調(diào)用ChangeClipboardChain 函數(shù)注銷自己的監(jiān)控器,并自行維護(hù)監(jiān)控鏈的完整性。
3.2 響應(yīng)剪貼板變化消息
在監(jiān)控程序接收到剪貼板變化消息后,進(jìn)行剪貼板內(nèi)容的讀取,主要通過 Windows 剪貼板 API 來實現(xiàn)。當(dāng)系統(tǒng)發(fā)生復(fù)制到剪貼板的操作時,剪貼板中的內(nèi)容是一組復(fù)合數(shù)據(jù)類型,只需從中提取操作者關(guān)心的文件類型和文本類型信息即可。
4.人為操作的監(jiān)控技術(shù)研究
操作者對計算機(jī)的操作主要通過鍵盤和鼠標(biāo)進(jìn)行,所以對鍵盤和鼠標(biāo)所有動作進(jìn)行監(jiān)控就基本上完成了對操作者的直接監(jiān)控。
4.1 鍵盤監(jiān)控
在注冊安裝 Hook 時,有 3 種類型的 Hook 都可以實現(xiàn)鍵盤監(jiān)控,分別是 WH_JOURNALRECORD、WH_KEYBOARD和WH_KEYBOARD_LL。WH_JOURNALRECORD 注冊系統(tǒng)日志鉤子,它只能對接收到的事件消息進(jìn)行拷貝處理,類似于快照的功能,并不能改變消息的傳遞或消息的內(nèi)容,不利于監(jiān)控。WH_KEYBOARD 注冊鍵盤鉤子,可以實現(xiàn)對鍵盤操作事件信息的監(jiān)控,但是它作為獨立進(jìn)程,不能做到全局監(jiān)控,若要實現(xiàn)全局監(jiān)控,必須以 DLL 的形式附屬于其他進(jìn)程。WH_KEYBOARD_LL 注冊底層鍵盤鉤子 Low Level,能夠作為獨立進(jìn)程實現(xiàn)全局鍵盤監(jiān)控,同時可以對鍵盤操作信息進(jìn)行修改或阻斷消息的傳遞,是一種理想的鍵盤監(jiān)控實現(xiàn)方式。
4.2 鼠標(biāo)監(jiān)控
鼠標(biāo)監(jiān)控與鍵盤監(jiān)控類似,使用 WH_MOUSE_LL 注冊底層鼠標(biāo)鉤子,在掛鉤函數(shù)中處理鼠標(biāo)操作,對鼠標(biāo)按鍵、位置等信息進(jìn)行處理、保存,實現(xiàn)對鼠標(biāo)操作的監(jiān)控。函數(shù)結(jié)束后,可調(diào)用 CallNextHookEx 函數(shù)繼續(xù)向后傳遞消息,或直接返回使消息阻斷,實現(xiàn)鼠標(biāo)的屏蔽功能。
5.結(jié)束語
計算機(jī)安全監(jiān)控系統(tǒng)作為保障信息安全的有效屏障,可以實現(xiàn)對本地甚至遠(yuǎn)程計算機(jī)中各類信息和用戶操作的保護(hù)與監(jiān)控。通過對文件、文本和用戶操作等監(jiān)控技術(shù)的深入研究,可以更好地根據(jù)系統(tǒng)需求選用適當(dāng)?shù)募夹g(shù)方式,提高監(jiān)控的針對性,確保系統(tǒng)的穩(wěn)定與高效。
參考文獻(xiàn)
[1] Power R. 2002 CSI/FBI Computer Crime and Security Survey[Z]. San Francisco: American Computer Security Institute,2002.
[2] 馮德旺,蘭建容,謝純珀. 基于 windows NT 主機(jī)入侵檢測系統(tǒng)的文件和進(jìn)程監(jiān)控[J]. 計算機(jī)系統(tǒng)應(yīng)用,2001,8(12): 19-22.
[3] 邱建雄,蔡 放,方 逵. Hook 技術(shù)及其在軟件研發(fā)中的應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2003,20(2): 1-3.