国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Windows環(huán)境下線程安全防護與管控技術研究

2014-09-01 21:49:14喬娜
新媒體研究 2014年11期

喬娜

摘要分析了Windows操作系統(tǒng)多線程計算環(huán)境下存在的安全威脅和安全需求,研究了針對遠程線程注入的線程“白名單”防護技術和保證應用軟件可靠運行的線程安全監(jiān)控技術。能夠防止木馬程序利用遠程線程注入技術對應用軟件進行破壞和竊密,建立“主動防御”的管控系統(tǒng),具備計算資源自保護、自恢復的能力,使系統(tǒng)可靠有效運行。實驗表明,這種技術實現的線程安全防護與管控效果明顯。

關鍵詞線程安全;線程管控;線程注入;計算資源管控

中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2014)11-0049-02

受國家信息產業(yè)基礎薄弱的制約,大部分服務器和終端操作系統(tǒng)均使用國外商用產品,各類“漏洞”和“后門”帶來了隱患,安全防護不得不依靠外圍打補丁的方式,無法從根本上消除操作系統(tǒng)的不安全因素,國家頒布的計算機信息系統(tǒng)安全保護條例已把計算機操作系統(tǒng)的安全列為核心要求。目前終端和服務器使用采用的操作系統(tǒng)都支持多任務操作,多線程技術已經在軟件系統(tǒng)開發(fā)中得到了相當廣泛的應用,尤其是隨著多處理器計算機的大規(guī)模部署,并發(fā)多進程之間的并行通信和同步,都需要多線程來解決。

在這種情況下,線程作為操作系統(tǒng)獨立調度和分配的最小單位,有必要對其存在的安全隱患進行深入分析,明確安全防護需求,并研究相關安全防護技術手段,為計算環(huán)境安全可靠提供支撐,保障應用軟件的安全穩(wěn)定運行和業(yè)務處理的正常開展。

1安全需求分析

計算環(huán)境線程級的安全防護需求體現在兩個方面,一是安全防護,二是安全管控。包括以下幾點內容。

1)對應用軟件系統(tǒng)進行加固,形成線程“白名單”,防止木馬程序利用遠程線程注入技術對應用軟件進行破壞和竊密。

木馬是危害計算機安全并導致嚴重破壞的惡意程序,其重要特點就是隱身,采用偽裝方法欺騙用戶。隱藏技術一直是木馬設計者研究的重要技術,目前最新的隱身技術就是利用遠程線程注入技術,通過特殊的內核編程手段,將自身注入到目標進程的內存地址空間。這樣,一方面實現了自身代碼的隱藏,另一方面擁有了目標進程的權限,可以任意實施對進程的破壞,如盜取密碼、刪除并破壞文件、獲取機密信息等。木馬使用的這種遠程線程注入[4]技術不會生成一個新的進程,也不形成服務,用查看進程的方式無法找出木馬的蹤跡,現有的安全防護軟件也很難對其進行查殺。鑒于以上安全威脅,應該建立針對遠程線程注入技術的防護手段,對應用軟件系統(tǒng)進行加固,形成線程“白名單”,只允許指定進程執(zhí)行合法的線程,阻斷非法線程訪問,防止對應用軟件的破壞和竊密。

2)對操作系統(tǒng)中各線程的運行狀況進行實時監(jiān)控,防止因木馬等惡意軟件產生大規(guī)模多線程訪問耗盡計算資源,而導致應用系統(tǒng)和操作系統(tǒng)崩潰,并對異常進程采取相應的管控措施,使系統(tǒng)可靠有效運行。

目前軟件系統(tǒng)開發(fā)已經廣泛使用了多線程技術[1],能夠實現在單個進程的執(zhí)行中使用多個線程,同一個進程可以在不同的處理器上同時執(zhí)行,服務器進程可以使用多個線程處理多個用戶同時發(fā)出的請求。在這種情況下,軟件系統(tǒng)的復雜性也增加了用戶程序的不可靠性。應該建立“主動防御”的管控系統(tǒng),具備計算資源自保護、自恢復的能力。重點解決當計算資源瀕臨耗盡時,啟動自保護機制,限制應用對資源的占用;當應用程序運行異常時,啟動自恢復機制,重新分配計算資源,確保應用運行可靠。

目前有一些工具也提供了安全監(jiān)控的功能,如微軟操作系統(tǒng)自帶的性能監(jiān)視器和任務管理器,但這些工具僅提供操作系統(tǒng)的相關性能信息,是系統(tǒng)級的監(jiān)視工具,只能監(jiān)控某個具體的應用程序進程級使用的系統(tǒng)資源情況,如CPU時間、內存使用和包含的線程數等。但對于監(jiān)控某一個具體應用軟件系統(tǒng)的運行狀態(tài)來說,這點信息是遠遠不夠的,很多數據并不能支撐對應用軟件的性能分析。應該深入到應用軟件系統(tǒng)中,實現軟件線程級的細粒度監(jiān)控,提供滿足需要的監(jiān)控數據。同時還要考慮監(jiān)控手段既不影響軟件系統(tǒng)的性能和效率,又能獲取所需的信息。

2線程“白名單”防護技術方案

防護木馬程序利用遠程線程注入的思想是建立應用軟件系統(tǒng)線程“白名單”,明確軟件系統(tǒng)正常運行時的可信線程列表,通過實時檢測,確保軟件運行時只允許軟件進程執(zhí)行“白名單”內的線程,并攔截非法遠程線程的注入執(zhí)行。其技術方案示意圖如圖1所示。

圖1軟件線程“白名單”防護示意圖

在各類應用軟件進程正常運行的情況下,也就是沒有被非法遠程線程注入的情況下,枚舉出當前進程運行時所加載的所有可信線程列表,稱為線程“白名單”。線程“白名單”的建立是一個長期學習訓練的過程,大部分軟件所產生的線程是相對穩(wěn)定的,但是隨著運行環(huán)境的變化,進程中所加載的線程也會發(fā)生一定的變化,如軟件運行了以前沒有使用過的新功能,這些新功能所起的線程也屬于可信線程的范疇,也應該添加到線程“白名單”中去。應用軟件最終線程“白名單”的確立需要一定時間的學習和實驗。

在指定應用軟件運行時,通過對軟件進程加載線程“白名單”實施加固,實時監(jiān)測該進程當前所執(zhí)行的所有線程,當發(fā)現“白名單”之外的非法線程企圖啟動時,使用線程阻斷技術對其進行攔截,同時記錄日志并立即向安全管理員告警。相當于為每個指定的應用軟件安裝了一個粒度到最小單位的線程級“防火墻”。

線程“白名單”安全防護方案中的主要技術難點是遠程線程注入攔截技術[4]。通過研究分析,遠程線程注入使用的最關鍵技術是利用Windows操作系統(tǒng)提供的一套公開API函數(包括CreateRemoteThread()[1]、WriteProcessMemory()等)[1]在目標進程中通過插入特定的代碼來實現注入的功能。安全防護可行的方法是使用API攔截技術,自定義一系列偽函數用于替換Windows提供的API函數,一旦監(jiān)視到指定API被調用,就強制轉入到所注入的DLL中執(zhí)行自定義偽函數,從而使得木馬和攻擊程序無法注入,無法隱藏。遠程線程注入攔截系統(tǒng)框架如圖2所示。

圖2遠程線程注入攔截系統(tǒng)框架示意圖

3線程安全管控技術方案

應用軟件線程安全管控主要實現三個功能。一是能夠采集線程監(jiān)控數據,如線程的創(chuàng)建事件、線程的狀態(tài)、線程的存儲區(qū)信息和線程的資源占用情況等;二是能夠對監(jiān)控數據進行分析和統(tǒng)計,對采集到的原始數據進行加工和分析,如排序、求最大值、最小值、平均值以及生成各種圖表和報告等,發(fā)現不可靠因素所在;三是能夠對進程占用的資源進行管控,在個別線程的CPU、內存利用率超過一定限值時立即向安全管理員告警,并在必要時根據系統(tǒng)資源占用率和軟件的運行需要動態(tài)調整指定進程的資源占用率上限,保障重要應用軟件的資源分配和可靠運行[3]。線程安全管控技術方案示意圖如圖3所示。

線程安全管控方案中的主要技術難點是計算資源控制技術,包括控制應用軟件對計算機的CPU占用和對內存的占用。

內存占用控制層面的研究分析表明,在Windows操作平臺上,一個進程占用的內存,可以根據類型區(qū)分為分頁內存和非分頁內存。在進程的內核態(tài),兩類內存同時存在;而在用戶態(tài),則只有分頁內存,這意味著用戶態(tài)的內存是可以交換出去的。這個機制為我們實現進程的內存控制提供了可行性。在i386體系中,內存可以分為物理內存和虛擬內存,正在運行的代碼和使用的數據必須位于物理內存中,但是當它們“長期”不被運行或使用時,將會被操作系統(tǒng)自動交換到虛擬內存中(通常是硬盤),并在需要時將其重新交換進物理內存中,這個過程稱為“壓縮內存”。基于上述原理,應用軟件內存占用控制可行的技術方案是強制將進程占用的一部分內存交換到虛擬內存(即硬盤)中,達到壓縮內存的目的。然而,由于要保持進程的運行狀態(tài),進程內存中的部分數據仍需要使用,因此被交換的內存必然受到一定限制,只能交換出有限數量,根據當前測試數據約為當前應用軟件進程占用總內存的50%。另外,被交換出去的內存在一段時間內將逐漸恢復到實際占用的數據,所以需要定時反復地壓縮內存。需要注意的是:交換的內存越多,進程產生的缺頁中斷(即頁面錯誤)次數也會越多,所以內存控制應該限定為合理的水平。

endprint

圖3線程安全管控技術方案示意圖

CPU占用控制層面的研究分析表明,在Windows的運行調度中,線程是基本單位,進程的CPU占用實際上是所有線程的CPU占用之和。Windows對進程的CPU占用量采取了百分比的表示方式,以下公式表示了在一個時間段內進程的CPU占用情況:

(內核態(tài)時間 + 用戶態(tài)時間) / 時間段 / CPU數量

因此,要控制進程的CPU占用,必須要減少內核態(tài)和(或)用戶態(tài)的執(zhí)行時間,而要減少這些時間,標準的方法是調整線程優(yōu)先級。優(yōu)先級是線程調度的重要參數,優(yōu)先級越低,線程越不容易被調度系統(tǒng)選中,占用的執(zhí)行時間自然就會減少。但是線程優(yōu)先級調整的控制效果是有限的,在很多情況下,即使最低的線程優(yōu)先級仍然占用大量的CPU時間,不能滿足實際的需要。應用軟件CPU占用控制可行的技術方案是采用強制閃斷線程技術,使指定進程的所有線程定時產生一次閃斷,即在一個極短的瞬間暫停,然后迅速繼續(xù)執(zhí)行。該技術可以有效降低CPU占用,并能根據實際情況控制進程的CPU占用率減少到可容許的范圍。根據試驗數據(取樣時間60分鐘,CPU占用率控制目標為25%),指定進程CPU占用率控制誤差范圍在10%,如下表所示。

進程名 用途 原始CPU平均占用率(取樣時間60分鐘) 設置為低優(yōu)先級后CPU平均占用率(取樣時間60分鐘) 強制線程閃斷后CPU平均占用率(取樣時間60分鐘) CPU控制誤差

AVScan.exe 病毒

掃描 53% 51% 27% 8%

Winrar.exe 文件

壓縮 38% 38% 26% 4%

FileManager.exe 文件

加密 47% 45% 27% 8%

Wireshark.exe 網絡

抓包 28% 27% 25% 0%

需要考慮的是,由于要不斷地控制目標進程的CPU占用,那么控制者本身也將占用一定的CPU,如何均衡二者的關系,會是該技術的一個難點,需要在實現中觀察并獲取大量測試數據作為參考。

4結束語

本文提出了基于線程“白名單”防護技術和線程安全管控技術的線程級安全防護系統(tǒng),能夠對應用軟件系統(tǒng)進行加固,防止木馬程序利用遠程線程注入技術對應用軟件進行破壞和竊密;對終端和服務器應用軟件系統(tǒng)中各線程的運行狀況進行監(jiān)視,建立“主動防御”的管控系統(tǒng),具備計算資源自保護、自恢復的能力,使系統(tǒng)可靠有效運行,在實際應用中有著較為理想的效果。此外,在對計算資源的控制時,如何保證被控制軟件系統(tǒng)的正常工作和穩(wěn)定運行,是下一步重點研究的內容。

參考文獻

[1]王險峰,劉寶宏.Windows環(huán)境下的多線程編譯原理與應用[M].清華大學出版社,2002.

[2]張慧成,謝余強,王華.一種并行調試與監(jiān)測分析軟件的體系結構設計[J].計算機工程,2003,29(8):5-7.

[3]寇雅楠,李增智,王建國.計算機軟件測試研究[J].計算機工程與應用,2002,38(10):103-105.

[4]雷校勇,黃小平.Windows RootKit技術原理及防御策略[D].開發(fā)研究與設計技術,2007(12):428-429.

[5]GREG H,JAMES B.RootKit:Subverting the Windows kernel[D].Boston:Addison Wesley,2005.

endprint

圖3線程安全管控技術方案示意圖

CPU占用控制層面的研究分析表明,在Windows的運行調度中,線程是基本單位,進程的CPU占用實際上是所有線程的CPU占用之和。Windows對進程的CPU占用量采取了百分比的表示方式,以下公式表示了在一個時間段內進程的CPU占用情況:

(內核態(tài)時間 + 用戶態(tài)時間) / 時間段 / CPU數量

因此,要控制進程的CPU占用,必須要減少內核態(tài)和(或)用戶態(tài)的執(zhí)行時間,而要減少這些時間,標準的方法是調整線程優(yōu)先級。優(yōu)先級是線程調度的重要參數,優(yōu)先級越低,線程越不容易被調度系統(tǒng)選中,占用的執(zhí)行時間自然就會減少。但是線程優(yōu)先級調整的控制效果是有限的,在很多情況下,即使最低的線程優(yōu)先級仍然占用大量的CPU時間,不能滿足實際的需要。應用軟件CPU占用控制可行的技術方案是采用強制閃斷線程技術,使指定進程的所有線程定時產生一次閃斷,即在一個極短的瞬間暫停,然后迅速繼續(xù)執(zhí)行。該技術可以有效降低CPU占用,并能根據實際情況控制進程的CPU占用率減少到可容許的范圍。根據試驗數據(取樣時間60分鐘,CPU占用率控制目標為25%),指定進程CPU占用率控制誤差范圍在10%,如下表所示。

進程名 用途 原始CPU平均占用率(取樣時間60分鐘) 設置為低優(yōu)先級后CPU平均占用率(取樣時間60分鐘) 強制線程閃斷后CPU平均占用率(取樣時間60分鐘) CPU控制誤差

AVScan.exe 病毒

掃描 53% 51% 27% 8%

Winrar.exe 文件

壓縮 38% 38% 26% 4%

FileManager.exe 文件

加密 47% 45% 27% 8%

Wireshark.exe 網絡

抓包 28% 27% 25% 0%

需要考慮的是,由于要不斷地控制目標進程的CPU占用,那么控制者本身也將占用一定的CPU,如何均衡二者的關系,會是該技術的一個難點,需要在實現中觀察并獲取大量測試數據作為參考。

4結束語

本文提出了基于線程“白名單”防護技術和線程安全管控技術的線程級安全防護系統(tǒng),能夠對應用軟件系統(tǒng)進行加固,防止木馬程序利用遠程線程注入技術對應用軟件進行破壞和竊密;對終端和服務器應用軟件系統(tǒng)中各線程的運行狀況進行監(jiān)視,建立“主動防御”的管控系統(tǒng),具備計算資源自保護、自恢復的能力,使系統(tǒng)可靠有效運行,在實際應用中有著較為理想的效果。此外,在對計算資源的控制時,如何保證被控制軟件系統(tǒng)的正常工作和穩(wěn)定運行,是下一步重點研究的內容。

參考文獻

[1]王險峰,劉寶宏.Windows環(huán)境下的多線程編譯原理與應用[M].清華大學出版社,2002.

[2]張慧成,謝余強,王華.一種并行調試與監(jiān)測分析軟件的體系結構設計[J].計算機工程,2003,29(8):5-7.

[3]寇雅楠,李增智,王建國.計算機軟件測試研究[J].計算機工程與應用,2002,38(10):103-105.

[4]雷校勇,黃小平.Windows RootKit技術原理及防御策略[D].開發(fā)研究與設計技術,2007(12):428-429.

[5]GREG H,JAMES B.RootKit:Subverting the Windows kernel[D].Boston:Addison Wesley,2005.

endprint

圖3線程安全管控技術方案示意圖

CPU占用控制層面的研究分析表明,在Windows的運行調度中,線程是基本單位,進程的CPU占用實際上是所有線程的CPU占用之和。Windows對進程的CPU占用量采取了百分比的表示方式,以下公式表示了在一個時間段內進程的CPU占用情況:

(內核態(tài)時間 + 用戶態(tài)時間) / 時間段 / CPU數量

因此,要控制進程的CPU占用,必須要減少內核態(tài)和(或)用戶態(tài)的執(zhí)行時間,而要減少這些時間,標準的方法是調整線程優(yōu)先級。優(yōu)先級是線程調度的重要參數,優(yōu)先級越低,線程越不容易被調度系統(tǒng)選中,占用的執(zhí)行時間自然就會減少。但是線程優(yōu)先級調整的控制效果是有限的,在很多情況下,即使最低的線程優(yōu)先級仍然占用大量的CPU時間,不能滿足實際的需要。應用軟件CPU占用控制可行的技術方案是采用強制閃斷線程技術,使指定進程的所有線程定時產生一次閃斷,即在一個極短的瞬間暫停,然后迅速繼續(xù)執(zhí)行。該技術可以有效降低CPU占用,并能根據實際情況控制進程的CPU占用率減少到可容許的范圍。根據試驗數據(取樣時間60分鐘,CPU占用率控制目標為25%),指定進程CPU占用率控制誤差范圍在10%,如下表所示。

進程名 用途 原始CPU平均占用率(取樣時間60分鐘) 設置為低優(yōu)先級后CPU平均占用率(取樣時間60分鐘) 強制線程閃斷后CPU平均占用率(取樣時間60分鐘) CPU控制誤差

AVScan.exe 病毒

掃描 53% 51% 27% 8%

Winrar.exe 文件

壓縮 38% 38% 26% 4%

FileManager.exe 文件

加密 47% 45% 27% 8%

Wireshark.exe 網絡

抓包 28% 27% 25% 0%

需要考慮的是,由于要不斷地控制目標進程的CPU占用,那么控制者本身也將占用一定的CPU,如何均衡二者的關系,會是該技術的一個難點,需要在實現中觀察并獲取大量測試數據作為參考。

4結束語

本文提出了基于線程“白名單”防護技術和線程安全管控技術的線程級安全防護系統(tǒng),能夠對應用軟件系統(tǒng)進行加固,防止木馬程序利用遠程線程注入技術對應用軟件進行破壞和竊密;對終端和服務器應用軟件系統(tǒng)中各線程的運行狀況進行監(jiān)視,建立“主動防御”的管控系統(tǒng),具備計算資源自保護、自恢復的能力,使系統(tǒng)可靠有效運行,在實際應用中有著較為理想的效果。此外,在對計算資源的控制時,如何保證被控制軟件系統(tǒng)的正常工作和穩(wěn)定運行,是下一步重點研究的內容。

參考文獻

[1]王險峰,劉寶宏.Windows環(huán)境下的多線程編譯原理與應用[M].清華大學出版社,2002.

[2]張慧成,謝余強,王華.一種并行調試與監(jiān)測分析軟件的體系結構設計[J].計算機工程,2003,29(8):5-7.

[3]寇雅楠,李增智,王建國.計算機軟件測試研究[J].計算機工程與應用,2002,38(10):103-105.

[4]雷校勇,黃小平.Windows RootKit技術原理及防御策略[D].開發(fā)研究與設計技術,2007(12):428-429.

[5]GREG H,JAMES B.RootKit:Subverting the Windows kernel[D].Boston:Addison Wesley,2005.

endprint

井研县| 扎兰屯市| 临澧县| 南宁市| 横峰县| 新晃| 绍兴县| 连州市| 宝坻区| 巴彦淖尔市| 岐山县| 临夏市| 赞皇县| 扎兰屯市| 南投县| 陆丰市| 东山县| 二连浩特市| 临清市| 灌南县| 漯河市| 屏南县| 阿图什市| 五华县| 东丰县| 湟中县| 临颍县| 阿坝| 胶南市| 新营市| 庐江县| 乐山市| 台东市| 常熟市| 南宁市| 纳雍县| 丁青县| 大方县| 边坝县| 宜春市| 锡林郭勒盟|