System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及網絡安全領域的監控和安全軟件所檢測方法,特別涉及基于行為離群及統計特征的rootkit威脅檢測方法和系統。
技術介紹
1、目前,為了獲取和跟蹤系統api的調用堆棧,在windows上可以采用etw,在linux上可以采用ftrace機制:
2、目前采用的etw(全稱為eventtracing?for?windows)是windows操作系統中的一種高速跟蹤設施。etw提供了一種機制,用于跟蹤和記錄由用戶模式應用程序和內核模式驅動程序引發的事件。etw可用于系統和應用診斷、故障排除和性能監視。
3、目前采用的ftrace(全稱是function?tracer)是linux內核性能調試工具之一,可以用于跟蹤內核函數的調用情況,幫助開發者和設計者弄清內核正在發生的行為,用于調試或分析用戶空間之外的延遲和性能問題。
4、目前采用的堆棧追溯是在x86_64架構下,esp、ebp、rsp、rbp是棧指針寄存器。其中esp和rsp都是棧指針寄存器,用于指向棧頂;ebp和rbp都是基址寄存器,用于指向當前棧幀的底部。在函數調用過程中,ebp/rbp用于保存上一個函數的基址,而esp/rsp則用于保存當前函數的棧頂。通過ebp/rbp和esp/rsp可以實現棧追溯。
5、目前,為了獲取特定函數詳細的子調用,可采用計時器采樣或intel的pt技術:
6、intel高精度計時器(high?precision?event?timer,縮寫hpet)是個人計算機中使用的一種硬件計時
7、intel?pt(processor?trace)是intel?cpu提供的一種硬件級別的跟蹤機制,可以記錄cpu執行的指令流,包括分支、函數調用、返回等信息,用于調試和性能分析。這個機制可以記錄cpu執行的指令流,包括分支、函數調用、返回等信息。
8、而上述現有技術對rootkit檢測存在一定的困難,這是因為rootkit這種特殊的惡意軟件,它的功能是在安裝目標上隱藏自身及指定的文件、進程和網絡鏈接等信息,比較多見到的是rootkit一般都和木馬、后門等其他惡意程序結合使用。rootkit是一種通過修改操作系統內核、加載驅動從而更改指令執行路徑,來隱藏系統對象(包括文件、進程、驅動、注冊表項、開放端口和網絡連接等),以逃避或者規避標準系統機制的程序。
9、它們可以隱藏自己,從而使得其行為和存在不會被標準的系統監控和安全軟件所檢測到。rootkit可以通過修改操作系統內核或更改指令執行路徑來隱藏系統對象,以逃避或規避標準系統機制的程序發現。
10、rootkit檢測存在一定的困難,這是因為它們可以隱藏自己,從而使得其行為和存在不會被標準的系統監控和安全軟件所檢測到。rootkit可以通過修改操作系統內核或更改指令執行路徑來隱藏系統對象,以逃避或規避標準系統機制的程序發現。與此同時,apt攻擊存在高度定制化的,針對性強,且攻擊者通常會使用一些新的難以防御的技術來規避檢測的特點。apt攻擊常常利用rootkit隱藏自身,從而導致對apt攻擊的檢測存在一定的難點。
11、有鑒于上述現有的技術存在的缺陷,本專利技術人基于經過不斷的研究、設計,并經反復試作及改進后,終于創設出確具實用價值的本專利技術。
技術實現思路
1、本專利技術的主要目的在于,克服現有的技術存在的缺陷,而提供一種新的基于行為離群及統計特征的rootkit威脅檢測方法和系統,使其有效地解決對未知惡意代碼和具備自我隱藏行為情況下的rootkit檢測問題,非常適于實用。
2、本專利技術的構思是:由于在windows和linux系統中,rootkit通常使用驅動程序進行實現,包括修改現有系統自帶驅動和以易于混淆的名稱和文件系統路徑注冊新驅動。其主要目標是用于隱藏特定系統對象如文件、進程、驅動、注冊表項、開放端口和網絡連接等。其通常的實現措施,為在系統api訪問時,通過修改系統api的返回數據進行。
3、專利技術提出一種基于行為離群及統計特征的rootkit威脅檢測方法和系統,通過在系統api調用時,獲取該系統api的調用棧及系統api處理過程中涉及的各項已加載的驅動庫的路徑和導出函數名稱,并使用這些路徑和函數名稱字符串進行聚類相似性判斷,從而獲取分類(如顯卡驅動、網絡驅動、pci設備等),判斷在同一類的驅動中,行為是否較為一致,從而找到異常離群行為。
4、本專利技術的目的及解決其技術問題是采用以下技術方案來實現的。依據本專利技術提出的一種基于行為離群及統計特征的rootkit威脅檢測方法,使用行為離群及統計特征來對rootkit進行檢測,該方法的主要步驟包括:步驟1:系統驅動識別及聚類劃分階段和步驟2:rootkit離群點檢測階段,在系統驅動識別及聚類劃分階段,通過對大量正常操作系統的提取,獲取正常操作系統的驅動劃分及執行模式,形成驅動劃分庫,并在待檢測操作系統上進行步驟2:rootkit離群點檢測階段,獲取待檢測操作系統的驅動劃分,通過與驅動劃分庫的對比判別,獲取離群異常驅動情況。
5、進一步,所述的步驟1:系統驅動識別及聚類劃分階段包括如下步驟:
6、步驟1.1已加載系統的驅動識別
7、能采用多種方式進行已加載系統的驅動識別,主要包括:基于操作系統的api識別已加載系統的驅動;或通過讀取系統的相關數據結構識別已加載系統的驅動;或通過定時器和高精度定時器,在中斷時記錄系統的相關正在執行的cpu的指令指針即ip/eip/rip,根據指針和調用棧進行檢查,在獲取數據后進行綜合提取和消重;
8、步驟1.2驅動所在的磁盤路徑提取
9、在獲取驅動的內存地址后,通過內核中的映射數據結構進行排查:
10、在windows上,通過_driver_object進行,數據結構中的driverstart和driversize包括了已加載到內存中的數據結構;
11、在linux上,通過struct?module結構體中的core_layout和init_layout成員來獲取模塊的基地址,其中,core_layout成員指向模塊的核心代碼段,init_layout成員指向模塊的初始化代碼段,這兩個成員都是struct?vm_area_struct類型的指針,通過vm_area_struct結構體中的vm_start成員來獲取模塊的基地址;
12、優選的,通過對獲取數據結構建立線段樹查找數據結構,根據獲取的eip等內存地址,獲取其內容,從而加快其訪問效率;
13、步驟1.3驅動函數表提取
14、通過對磁盤上的pe驅動文件和elf驅動文件分別進行解析進行獲取;或通過讀取系統中已加載的驅動函數表進行獲取;
...【技術保護點】
1.一種基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:使用行為離群及統計特征來對rootkit進行檢測,該方法的主要步驟包括:步驟1:系統驅動識別及聚類劃分階段和步驟2:rootkit離群點檢測階段,在系統驅動識別及聚類劃分階段,通過對大量正常操作系統的提取,獲取正常操作系統的驅動劃分及執行模式,形成驅動劃分庫,并在待檢測操作系統上進行步驟2:rootkit離群點檢測階段,獲取待檢測操作系統的驅動劃分,通過與驅動劃分庫的對比判別,獲取離群異常驅動情況。
2.根據權利要求1所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的步驟1:系統驅動識別及聚類劃分階段包括如下步驟:
3.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于操作系統的API識別已加載系統的驅動:Windows使用Windows?API函數EnumDeviceDrivers來枚舉已加載的驅動程序,該函數EnumDeviceDrivers返回一個指向驅動程序基地址的指針數組,其中包含已加載的驅動
4.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的通過讀取系統的相關數據結構識別已加載系統的驅動,是在windows系統上,通過解析內核中的_LDR_DATA_TABLE_ENTRY結構體,該_LDR_DATA_TABLE_ENTRY結構體是用于表示已加載的模塊的結構體,該_LDR_DATA_TABLE_ENTRY結構體包含有關已加載模塊的信息,包括模塊名稱、基地址、大小和其他詳細信息;使用Windows?API函數ZwQuerySystemInformation來枚舉已加載的驅動程序,并使用_LDR_DATA_TABLE_ENTRY結構體來檢索有關驅動程序的信息;在Linux系統上,使用struct?module數據結構來獲取已加載驅動的情況;struct?module數據結構體定義在<linux/module.h>頭文件中,包含了已加載模塊的信息,包括模塊名、模塊的狀態、模塊的引用計數。
5.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的通過定時器或高精度定時器,是在中斷時記錄系統的相關正在執行的指令情況時,設置系統中斷或高精度定時器中斷,在間隔固定時間時在CPU上的每個核心上產生一個中斷,在中斷處理函數中獲取當前的進程的指令指針IP/EIP/RIP,并在內核態下通過相關內核數據結構將該指令指針指向的指令的地址轉換為實際的物理地址,獲取該物理地址的內核內存映射,并通過ESP、EBP、RSP、RBP寄存器進行堆棧追溯,對每個堆棧的返回地址項,通過系統機制識別為系統內存或用戶內存,并通過系統內核中的相關加載映射數據結構,識別該內存地址到磁盤空間的關系,記錄下這些內核態調用棧的模塊名稱、大小和偏移量信息。
6.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于劃分的聚類算法:該算法需要事先指定簇的個數,然后通過迭代優化目標函數,使得同一個簇內的數據對象盡可能相似,不同簇之間的數據對象不同。
7.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于層次的聚類算法:不需要指定簇的個數,而是通過構建一個層次結構,從而得到不同層次的聚類結果,層次聚類分為凝聚式和分裂式兩種;其中,
8.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于密度的聚類算法:是根據數據對象在空間中的密度分布來進行聚類,即將密度高且連續的區域劃分為一個簇,而將密度低或者稀疏的區域劃分為噪聲或者異常點,該算法能發現任意形狀的簇,并且對噪聲和異常點具有魯棒性;包括DBSCAN算法和它的改進版本:OPTICS和HDBSCAN。
9.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于網格的聚類算法是將數據空間劃分為有限個單元格或者網格,并且對每個網格進行統計和分析,從而得到聚類結果,包括STING算法和CLIQ...
【技術特征摘要】
1.一種基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:使用行為離群及統計特征來對rootkit進行檢測,該方法的主要步驟包括:步驟1:系統驅動識別及聚類劃分階段和步驟2:rootkit離群點檢測階段,在系統驅動識別及聚類劃分階段,通過對大量正常操作系統的提取,獲取正常操作系統的驅動劃分及執行模式,形成驅動劃分庫,并在待檢測操作系統上進行步驟2:rootkit離群點檢測階段,獲取待檢測操作系統的驅動劃分,通過與驅動劃分庫的對比判別,獲取離群異常驅動情況。
2.根據權利要求1所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的步驟1:系統驅動識別及聚類劃分階段包括如下步驟:
3.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于操作系統的api識別已加載系統的驅動:windows使用windows?api函數enumdevicedrivers來枚舉已加載的驅動程序,該函數enumdevicedrivers返回一個指向驅動程序基地址的指針數組,其中包含已加載的驅動程序的基地址,使用這些基地址來檢索有關驅動程序的信息,包括名稱和路徑;linux參考lsmod系統工具實現,或通過/proc/modules文件來獲取有關已加載模塊的信息,/proc/modules文件包含有關每個已加載模塊的名稱、大小、使用計數和其他詳細信息。
4.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的通過讀取系統的相關數據結構識別已加載系統的驅動,是在windows系統上,通過解析內核中的_ldr_data_table_entry結構體,該_ldr_data_table_entry結構體是用于表示已加載的模塊的結構體,該_ldr_data_table_entry結構體包含有關已加載模塊的信息,包括模塊名稱、基地址、大小和其他詳細信息;使用windows?api函數zwquerysysteminformation來枚舉已加載的驅動程序,并使用_ldr_data_table_entry結構體來檢索有關驅動程序的信息;在linux系統上,使用struct?module數據結構來獲取已加載驅動的情況;struct?module數據結構體定義在<linux/module.h>頭文件中,包含了已加載模塊的信息,包括模塊名、模塊的狀態、模塊的引用計數。
5.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的通過定時器或高精度定時器,是在中斷時記錄系統的相關正在執行的指令情況時,設置系統中斷或高精度定時器中斷,在間隔固定時間時在cpu上的每個核心上產生一個中斷,在中斷處理函數中獲取當前的進程的指令指針ip/eip/rip,并在內核態下通過相關內核數據結構將該指令指針指向的指令的地址轉換為實際的物理地址,獲取該物理地址的內核內存映射,并通過esp、ebp、rsp、rbp寄存器進行堆棧追溯,對每個堆棧的返回地址項,通過系統機制識別為系統內存或用戶內存,并通過系統內核中的相關加載映射數據結構,識別該內存地址到磁盤空間的關系,記錄下這些內核態調用棧的模塊名稱、大小和偏移量信息。
6.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于劃分的聚類算法:該算法需要事先指定簇的個數,然后通過迭代優化目標函數,使得同一個簇內的數據對象盡可能相似,不同簇之間的數據對象不同。
7.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于層次的聚類算法:不需要指定簇的個數,而是通過構建一個層次結構,從而得到不同層次的聚類結果,層次聚類分為凝聚式和分裂式兩種;其中,
8.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于密度的聚類算法:是根據數據對象在空間中的密度分布來進行聚類,即將密度高且連續的區域劃分為一個簇,而將密度低或者稀疏的區域劃分為噪聲或者異常點,該算法能發現任意形狀的簇,并且對噪聲和異常點具有魯棒性;包括dbscan算法和它的改進版本:optics和hdbscan。
9.根據權利要求1-2中任意一項所述的基于行為離群及統計特征的rootkit威脅檢測方法,其特征在于:所述的基于網格的...
【專利技術屬性】
技術研發人員:呂志泉,王宏宇,嚴定宇,韓志輝,賀錚,周彧,
申請(專利權)人:國家計算機網絡與信息安全管理中心,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。