欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

檢測計算機系統內隱藏的對象的制作方法

文檔序號:6355294閱讀:300來源:國知局
專利名稱:檢測計算機系統內隱藏的對象的制作方法
技術領域
本發(fā)明總體上涉及數據處理系統中的安全,且具體而言,涉及在此類系統中確定 隱藏的對象的存在,其相應地可被用于檢測惡意軟件的存在,例如惡意rootkit。
背景技術
當前,全世界的計算機用戶都被惡意軟件的傳播問題所困擾,其不僅影響運行MS windows版本的計算機,還影響其它并不普及的平臺。惡意軟件正愈來愈復雜化,迫使反惡 意軟件的開發(fā)商持續(xù)地尋找用于檢測和移除惡意軟件程序的新的途徑。除了常規(guī)的例如數字簽名檢查和使用仿真程序的檢測方法之外,其它被使用的技 術包括用于入侵檢測或入侵防御的系統,所述系統控制程序并維護由受信任的應用程序所 組成的白名單。特別令人關注的是被稱為rootkit的惡意軟件程序,到目前為止,利用傳統的安 全措施還無法對其進行有效的處理。這些程序能夠在計算機系統中使用例如劫持管理員 (或更高級別)權限的技術來隱藏它們存在的痕跡。這類程序很難通過使用已知的反病毒技 術來檢測,因為已知的技術已經限制了發(fā)現隱藏的對象的能力,所述隱藏的對象例如,隱藏 的文件、隱藏的進程或隱藏的注冊表項。為了隱藏他們的存在,rootkit使用各種攔截系統功能的方法,例如攔截也就是掛 載(hooking),和改變響應程序功能調用所返回的信息。例如,rootkit能夠發(fā)現請求某些 注冊表項的程序功能調用,并且取代返回那些實際的注冊表項,rootkit將修改或簡化后的 注冊表項列表返回給調用程序。值得注意的是,除了將rootkit作為惡意軟件的傳統觀念以外,一些rootkit可被 用于合法的應用程序,例如防拷貝技術。檢測rootkit的已知方法包含創(chuàng)建與單個rootkit 相應的特定過程(例如rootkit的操作可以被繞過,或干擾rootkit所使用的系統功能攔 截)。對安全程序開發(fā)者來說這些方法表現出密集型的負擔,開發(fā)者需要努力跟上惡意軟件 的不斷擴展的增長。另一個途徑,如在公開號為2007/0078915 (發(fā)明人為feissoway)的美國專利申 請中所披露的,包含在內核空間運行單獨的檢測器,所述單獨的檢測器能繞過某些可能已 被rootkit所損害的操作系統的核心代碼。如果通過受損的內核代碼以及通過單獨的檢 測器雙方來請求關于該計算機系統的信息,在兩個單獨的結果之間的任何差異都可能表明 rootkit的存在。這種途徑提供了一種用于在對特定的現有rootkit沒有龍邀知識的情況 下檢測rootkit的手段;但是,單獨的檢測器本身可能受到針對特定安全技術的類rootkit 的惡意軟件的損害。此外,不排除在不久的將來,rootkit或類rootkit的惡意軟件可能針對計算機系 統的不具備檢測這類惡意軟件的能力的其他部分。因此,需要克服上述或其它挑戰(zhàn)的用于有效檢測rootkit的改進技術。

發(fā)明內容
本發(fā)明一方面旨在提供一種計算機系統,所述計算機系統用于檢測可能被隱藏在 其中的對象。所述計算機系統具有計算機電路,所述計算機電路至少包括與存儲器配置 (arrangement)連接的處理器,所述計算機電路至少被配置為執(zhí)行操作系統和安全配置。所 述操作系統適合于幫助實現多個進程的執(zhí)行以及提供至少一個原生(native)服務模塊,所 述原生服務模塊響應由所述多個進程的至少其中之一做出的請求,返回與所述計算機系統 中至少一個對象有關的第一組所請求的信息。所述安全配置包括次級(secondary)服務模塊,所述次級服務模塊適合于響應由 所述多個進程中至少一個已授權的進程做出的請求,生成并返回與所述計算機系統中的所 述至少一個對象有關的第二組所請求的信息。在生成所述第二組所請求的信息的過程中, 所述次級服務模塊繞過所述至少一個原生服務模塊。進一步地,所述安全配置包括訪問限 制模塊,所述訪問限制模塊限制對所述次級服務模塊的訪問,從而僅僅允許所述至少一個 已授權的進程訪問所述次級服務模塊。此外,所述安全配置包括比較模塊,所述比較模塊適合于比較所述第一組所請求 的信息和所述第二組所請求的信息,并且基于比較結果,確定任一不在所述第一組所請求 的信息中的對象是否存在于所述第二組所請求的信息中。本發(fā)明的另一個方面旨在提供一種用于檢測運行于計算機系統上的操作系統的 服務模塊的安全損害的方法。根據本方法,至少一個原生服務模塊響應由至少一個線程做 出的請求,返回與所述計算機系統中的至少一個對象有關的第一組所請求的信息。次級服務模塊響應由至少一個已授權線程做出的請求,生成并返回與所述計算機 系統中的所述至少一個對象有關的第二組所請求的信息。在生成所述第二組所請求的信息 的過程中,所述次級服務模塊繞過所述至少一個原生服務模塊。限制線程到所述次級服務 模塊的訪問,從而僅僅允許預定的由受信任的安全應用程序所生成的線程訪問所述次級服 務模塊。比較所述第一組所請求的信息和所述第二組所請求的信息,并且基于比較結果, 確定任一不在所述第一組所請求的信息中的對象是否存在于所述第二組所請求的信息,由 此確定至少一個隱藏的對象。能夠分析所述隱藏的對象以確定所述原生服務模塊是否已經 被損害。本發(fā)明上述方面以及其他方面的一些優(yōu)點將通過以下對優(yōu)選實施例的具體描述 而凸顯。


通過下述結合附圖對本發(fā)明各實施例的具體描述,本發(fā)明將得到更為全面的理 解,其中
圖1示出了本發(fā)明一實施例的流程圖,該實施例通過繞過可能被rootkit所使用的掛 載(hooks)的方式,可用于檢測隱藏的系統對象。圖2示出了根據一實施例,用于通過計算機系統中應用程序來訪問內核操作的獨 立的序列。圖3示出了根據一實施例,用于在確定隱藏的系統對象時識別rootkit的示范性過程。圖4示出了根據本發(fā)明的一個實施例,用于初始化次級內核和其相關組件的示范 性過程。圖5示出了根據一個實施例,用于訪問硬盤驅動器的兩個序列,其中所述硬盤驅 動器包括次級驅動器組。圖6示出了根據一個實施例,計算機系統模塊的配置框圖。圖7示出了根據各實施例,能夠實施本發(fā)明的計算機系統的示意圖。同時,該發(fā)明是能夠以各種修改和替代形式來實現,其細節(jié)已通過附圖的示例方 式展現并將加以詳細描述。但是應予理解的是,其目的并非將本發(fā)明限制于所描述的具體 實施例。相反,在如隨附權利要求書所限定的本發(fā)明的精神和范圍內,本發(fā)明涵蓋所有修 改,等值和替代實施例。
具體實施例方式本發(fā)明的一個方面旨在通過檢測在計算機系統中對象已經被隱藏的事實來檢測 在系統中rootkit的存在。在本文語境中使用的術語“對象”是指文件、進程、驅動程序、寄 存器的內容、系統變量或該變量的值、系統注冊表項、動態(tài)庫的項目、存儲設備或通常指計 算機系統的數據或資源,所述計算機系統的數據或資源在系統中通常是可識別的,但是可 能被秘密地或無意地隱藏起來而無法由常規(guī)手段所檢測。根據本發(fā)明的這一方面,對于對象被隱藏的事實的檢測表明計算機系統可能已經 被隱藏了該對象的rootkit所損害。根據一類實施例,有可能通過次級(secondary)操作系統內核來檢測隱藏的對象, 所述次級操作系統內核與原生的(native)或初始的操作系統內核同時操作,幫助實現和 協調系統進程和用戶應用程序的操作。次級內核能夠執(zhí)行原生內核的大部分操作(并且事 實上,在一些實施例中,能夠被配置為執(zhí)行原生內核的全部操作)。這一功能的示例包含尋 址/訪問下列系統對象的一個或多個文件、驅動器、進程、注冊表、存儲器駐留動態(tài)鏈接庫 (memory-resident DLL)和其它計算機系統數據或資源。圖1示出了一個實施例的流程圖,該實施例通過繞過可能被rootkit所使用的掛 載的方式,可被用于檢測隱藏的系統對象。如圖所示,應用程序130以用戶的名義執(zhí)行操 作,通過發(fā)送一個或多個請求到操作系統內核來實際地獲得對特定系統對象的訪問。然而, 這些請求通常直接指向可能被rootkit 160所破壞的原生操作系統內核120,該rootkit 160能夠攔截應用程序接口(API)功能140a。這樣,如果用戶應用程序130試圖請求例如 文件列表,那么rootkit 160憑借對API功能的rootkit攔截或掛載,能通過干擾和修改被 返回到該請求應用程序130的文件列表來混淆該列表。同樣地,rootkit 160可以出于其 自身功能的需要而隱藏文件或注冊表項,從而隱藏其在系統中的存在。然而,使用次級內核110和其保持不變的API功能140,能夠完全繞過rootkit對 原生系統的API的攔截。為了這個目的,使用專門的驅動器一次級內核訪問驅動器150,在 一個實施例中該次級內核訪問驅動器150被配置為唯一的用于使用戶應用程序130與次級 內核110連接的手段。這種途徑使得避免rootkit的掛載和向該請求的應用程序返回數據 成為可能,所述數據包含已被rootkit 160所隱藏的對象。在不同的實現方式中,次級內核110能夠具有32位、64位或其它適合的架構。在一個示范性實施例中,相應于原生操作系 統內核120的架構來設置次級內核110的架構。在其他實施例中,次級內核110可以具有 與原生操作系統內核120不同的架構。在相關類型的實施例中,對次級內核110的訪問被限制到某些線程,例如那些由 反病毒引擎產生的線程。為此,在這種類型的實施例中,為意圖訪問次級內核訪問驅動器 150的系統或應用程序線程專門配置該能力。在一個實施例中,生成的那些線程具有通過由 次級內核訪問驅動器150強制的認證階段的能力。在各種實施例中,可以使用多種適合的 認證技術,該認證技術包括但不限于密鑰、數字簽名、數字資格證書等等。在一個實施例中,能夠訪問次級內核110的線程通過次級內核訪問驅動器150,采 用認證協議去訪問次級內核110。在認證協議這個實施例中,使用公共密鑰系統,此處已授 權的應用程序具有私鑰并且次級內核訪問驅動器150具有已授權應用程序的公鑰。已授權 的應用程序的線程通過發(fā)送請求消息到次級內核訪問驅動器150來請求來自次級內核110 的服務,至少一部分所述請求消息由已授權的應用程序的私鑰所加密。次級內核訪問驅動 器150使用已授權的應用程序的公鑰來試圖解密該請求的加密部分,并且如果能夠成功地 完成解密,那么提供服務的請求可被發(fā)送到次級內核110。對于偽裝成來自已授權的應用程 序線程的未經授權的線程,假定其缺少已授權的應用程序的私鑰并且將因此不能發(fā)送由次 級內核訪問驅動器150所持有的、已授權的應用程序的公鑰可解密的請求。在另一個示范性實施例中,還使用公共密鑰系統來實現質詢-響應方式。協議可 以先前的示例中所描述的形式開始,即,以由尋求訪問次級內核110的線程發(fā)送到次級內 核訪問驅動器150的請求開始。如上所述,該請求可以被或可以不被至少部分地加密。響 應該請求,次級內核訪問驅動器150產生將由請求進程來完成的質詢。所述質詢要求請求 進程使用其私鑰來解密代碼或消息(例如隨機生成的數字)。相應地,次級內核訪問驅動器 150產生該質詢代碼或消息,使用已授權的應用程序公鑰來對其進行加密并且發(fā)送已加密 的質詢到請求進程。該質詢代碼或消息可響應請求而被生成,并且對每個請求可以是不同 的,使得預先被竊聽的對話無法在將來被惡意進程所使用。作為對接收已加密的質詢代碼 或消息的響應,已授權的應用程序的進程使用其自身私鑰解密該代碼或消息,并且將解密 后的代碼或消息返回到次級內核訪問驅動器150。在發(fā)送解密后的代碼或消息之前,已授權 的進程可以用其私鑰來加密該代碼或消息,因此需要次級內核訪問驅動器150用已授權的 應用程序的公鑰來對其進行解密。根據這個示例,請求進程控制與已授權的應用程序相關 聯的私鑰的檢驗,構成了該請求進程的認證。如上所述,除非在特定的權利要求中清楚地加以排除,否則在本發(fā)明的范圍內,可 以使用其它已知的或者將在未來出現的認證方法。相應地,在給定的具有次級內核110的計算機系統中,可以有兩類線程一能夠訪 問次級內核訪問驅動器150的線程,和不能訪問次級內核訪問驅動器150的線程。那些不 能訪問次級內核訪問驅動器150的線程使用原生操作系統內核120進行操作,其通??砂l(fā) 生在未被保護的系統中。能夠訪問次級內核訪問驅動器150的線程通過次級內核訪問驅動 器150被重新定向到次級內核110。圖2示出了根據一個實施例,用于通過計算機系統中的應用程序訪問內核操作的 獨立的序列201和202。根據本發(fā)明的一個實施例,序列201具有檢測隱藏的系統對象的能力,而序列202以常規(guī)方式操作。在序列201中,反病毒(AV)應用進程210產生AV應用線 程220,為了得到認證,該AV應用線程與次級內核訪問驅動器150接口,如方框230所示。 當認證成功時,AV應用線程可訪問次級內核110以在240請求操作。在序列202中,其它進程250在260產生他們自身的線程,所述線程在270僅僅和 原生內核120接口,從而避免與和次級內核110接口相關的對整個系統性能的任何損害。圖3示出了根據一個實施例,用于在確定隱藏的系統對象時識別rootkit的示范 性過程。在310,AV應用程序的線程220的其中之一請求使用次級內核110和原生操作系 統內核120的進程列表。作為對所述請求的響應,次級內核110和原生操作系統內核120 各自返回進程列表。在320,AV應用程序比較所述兩個返回的列表。這樣,AV應用程序能 夠檢測并且分析列表之間的任何差別。例如,如果次級內核110返回的進程列表比原生內 核120所返回的更加完整,那么AV應用程序確定rootkit 160對原生操作系統內核120的 API功能140a的潛在的損害。在次級內核110返回的進程列表比原生操作系統內核120返回的列表包含更多項 目的情況下,在方框330,AV應用程序獲得那些隱藏的進程中每一個的程序代碼。例如,AV 應用程序能請求與隱藏的進程相關聯的文件。在方框340,AV應用程序檢查每一個隱藏的 進程的程序代碼。這類方式有利于實現用于規(guī)避掛載技術的安全配置,例如
1任何形式的拼接(其可能攔截任一 API功能一基本上是通過取代指令的函數的前幾 個字節(jié),該指令傳輸對攔截器代碼的控制);
1 SSDT (System Service Descriptor Table,系統服務描述符表)和 Shadow SSDT (陰 影系統服務描述符表)的掛載;
1對于Windows 2000,使用中斷INT 2E (通過為Zw-函數創(chuàng)建接口,Zw-函數是指,那 些在執(zhí)行諸如用戶證書的安全檢查之前被調用的函數,同時具有前綴Nt - net的函數)和 MSR(在x86處理器中存在的特殊寄存器,其可用性和名稱根據處理器的型號不同而不同)); 1任何回調和警報或通知,在次級內核110中調用那些函數時,都將停止操作。圖4示出了用于初始化次級內核110和其相關組件的示范性過程。在410,初始 化次級內核訪問驅動器。在420,加載到具有建立次級內核110的程序指令的文件的路徑。 在一個實施例中,從未公開的變量KeLoaderBlock中讀取該路徑。在內核初始化過程中,那 個特定的變量僅在短時間內存在,因此在一種方式中,初始化階段410盡早發(fā)生。在430,隨 著到次級內核文件的路徑的加載,從磁盤中讀取次級內核。在440,將次級內核加載到存儲 器中;調整頁面調度,設置全局變量來指向原生操作系統內核,并且必要時,將函數輸入到 相應的模塊。隨后,在450,將次級內核110配置如下創(chuàng)建其自身的SSDT表,為函數設置 必要接口,并且移除回調和通知。在另一個實施例中提供了用于檢測在計算機系統底層所隱藏的對象的技術,其中 已經插入了 rootkit來覆蓋系統驅動器。這個實施例舉例說明了本發(fā)明不但能應用到系統 內核中,還能應用到各種系統驅動器中,比如系統提供的存儲端口驅動器。例如,在Windows 操作系統中具有兩種類型的存儲端口驅動器
1 SCSI 端口驅動器(scsiport. sys), Storport 驅動器(storport. sys);以及 1 ATA 端口驅動器(ataport. sys / atapi. sys)0
參考圖5,描述了用于訪問硬盤驅動器的兩個序列。根據一個實施例,序列501使 用次級驅動器組用來檢測可能被隱藏起來且對系統驅動器有損害的系統對象,以及502是 常規(guī)的。在常規(guī)情況下,rootkit的掛載能夠位于管理層硬盤分區(qū)520 (例如,partmgr. sys),位于硬盤驅動器530(例如,disk, sys)甚至位于端口驅動器MO的層面(例如,atapi. sys)。如果預先不知道哪個層面被rootkit所掛載,那么檢測將不可能進行。典型地,系統設計者基于已經提供的系統驅動器創(chuàng)建端口驅動器。該端口驅動器 被包括在系統的驅動器堆棧中,并且提供系統的附加功能。通過訪問接口的統一,這些端口 驅動器幫助實現訪問物理介質上的數據的通用的機制。在所示的實施例中,采用和初始化次級內核以訪問硬盤510拓展功能的相同的方 式來初始化次級端口驅動器560。從而,次級端口驅動器560的使用能繞過rootkit的掛 載,除此以外,其將會禁止對磁盤某些部分的訪問或返回最底層內容的錯誤描述。在這個實 施例中,如上述結合有關圖2中次級內核訪問驅動器150所述,通過次級端口驅動器訪問驅 動器陽0的認證采用類似的協議。圖6示出了根據一個實施例,計算機系統模塊的配置框圖。本文使用的術語“模 塊”表示現實的設備、組件或使用硬件或者作為硬件和軟件結合所實現的組件配置,所述使 用硬件例如,通過專用集成電路(ASIC)或現場可編程門陣列(FPGA),所述使用作為硬件和 軟件結合例如,通過微處理器系統和一組指令來實現模塊功能,所述一組指令(當被執(zhí)行的 時候)將微處理器系統轉換成專用設備。模塊還可以通過上述兩者的組合來實現某些功能 由硬件單獨幫助實現,以及其他功能由硬件和軟件的結合幫助實現。在某些實現方式中,能 夠在通用計算機(如下面所詳細描述的)的處理其上執(zhí)行模塊的至少一部分,甚至在某些情 況下執(zhí)行模塊的全部,所述通用計算機執(zhí)行有操作系統、系統程序和應用程序,與此同時, 還能采用多任務、多線程或其他此類技術來實現該模塊。因此,每個模塊能夠以多種適合的 配置來實現,并且并不限于這里所示例的任何特定實現方式。在圖6所描述的示范性系統中,原生操作系統內核120處理來自系統或應用進程 的請求(例如,請求對象列表)。比較器模塊630獲得某些請求的結果,或者在一些實施例中 獲得所有此類請求的結果。比較器模塊630經由訪問模塊620連接到內核功能供應模塊 610上。訪問模塊620負責認證比較器模塊630,作為允許訪問內核功能供應模塊610的先 決條件。相應地,能夠阻止系統中其它應用程序或設備去訪問內核功能供應模塊610。內核功能供應模塊610實現原生操作系統內核120的一些或全部功能。在一個實 施例中,訪問模塊620通過次級內核訪問驅動器150 (在上述結合圖1所述)實現,并且內核 功能供應模塊610通過次級內核110 (圖1)實現。作為對獲得由原生操作系統內核120提 供的請求結果和由內核功能供應模塊610提供的相應的請求結果的響應,比較器模塊630 分析所述兩組結果,并且基于結果組之間的任何差異來確定是否存在已經被隱藏的任何系 統對象。在相關的實施例中,比較器模塊630包含決策邏輯,以進一步分析所述兩組結果 之間所發(fā)現的任何差異的類型或屬性,從而確定那些差異是否表示系統中存在rootkit。在圖6所示的示范性系統中,原生設備驅動器640幫助實現到例如硬盤驅動器的 硬件設備660的接口。驅動器功能供應模塊650也幫助實現到硬件設備660的接口,只不 過由驅動器功能供應模塊650提供的接口需要經由訪問模塊620以和確保內核功能供應模塊610安全的相同的方式來確保安全。作為對獲得經由原生設備驅動器640和驅動器功能供應模塊650做出的服務請求 的結果的響應,比較器模塊630比較兩組結果并且確定器件是否存在任何差異。在相關的 實施例中,比較器模塊630包括決策邏輯,以進一步分析這兩組結果之間所發(fā)現的任何差 異的類型或屬性,從而確定那些差異是否表示系統中存在rootkit。圖7更詳細地示出了根據各實施例,能夠實施本文所描述的發(fā)明的計算機系統 700的示意圖。計算機系統700可包括如個人計算機702的計算設備。個人計算機702包括 一個或多個處理單元704、系統存儲器706、視頻接口 708、輸出外圍接口 710、網絡接口 712、 用戶輸入接口 714、可移除存儲器接口 716和不可移除存儲器接口 718以及連接到各種組件 的系統總線或高速通信通道720。在各種實施例中,處理單元704可以具有多個邏輯核心, 所述邏輯核心能夠處理存儲在計算機可讀介質上的信息,所述計算機可讀介質例如系統存 儲器706或附加到可移動存儲器接口 716和附加到固定存儲器接口 718上的存儲器。計算 機702的系統存儲器706可以包括例如只讀存儲器(ROM) 722的非易失性存儲器或例如隨 機存取存儲器(RAM) 724的易失性存儲器。ROM 722可以包括基本輸入/輸出系統(BIOS) 726以幫助與計算機702的其它部分的通信。RAM 7 可以存儲各種軟件應用程序的某些 部分,所述軟件應用程序例如操作系統728、應用程序730和其它程序模塊732。進一步地, RAM 7 可以存儲例如程序或應用程序數據734的其他信息。在各種實施例中,RAM 7 存 儲要求低延遲和高效訪問的信息,例如正在被操控或操作的程序和數據。在各種實施例中, RAM 7 包括雙數據速率(Double Data Rate,DDR)存儲器、糾錯存儲器(Error Correcting memory, ECC)或其它具備不同延遲和配置的存儲技術,例如RAMBUS或者DDR2和DDR3。移動存儲器接口 716和固定存儲器接口 718可將計算機702連接到諸如固態(tài)驅動 器(solid-state drives,SSD)或轉動磁盤驅動器(rotational disk drives)的磁盤驅動 器736。所述磁盤驅動器736可為各種軟件應用程序提供進一步的存儲,所述各種軟件應用 程序例如操作系統738,應用程序740和其他程序模塊742。進一步地,磁盤驅動器736可存 儲例如程序或應用程序數據744的其他信息。在各種實施例中,磁盤驅動器736存儲信息, 所述信息不要求和在其它存儲介質中相同的低延遲。進一步地,在上述提到的各種實施例 中,操作系統738、應用程序740數據、程序模塊742和程序或應用程序數據744可以與RAM 724中存儲的信息相同,或者其可以是不同于RAM 724所存儲數據的潛在衍生物的數據。進一步地,移動存儲器接口 716可以將計算機702連接到磁性便攜式磁盤驅動 器746或光盤驅動器750,所述磁性便攜式磁盤驅動器746使用磁性介質例如軟盤748, Iomega Zip或Jazz,所述光盤驅動器750使用光學介質752,用以存儲計算機可讀介質例 如Blu-Ray ,DVD-R/RW,CD-R/RW和其他類似的格式。還有其他實施例使用置入便攜式的附 件中的SSD或轉動磁盤來增加移動存儲的能力。計算機702可以使用網絡接口 712,通過局域網(LAN)758或廣域網(WAN)760與一 個或多個遠程計算機756通信。網絡接口 712可以使用網卡(NIC)或例如調制解調器762 的其它接口來實現通信。調制解調器762可以通過電話線、同軸電纜、光纖、電力線或無線 來實現通信。遠程計算機756可以包含相似的硬件和軟件配置或者可以具有包含遠程應用 程序766的存儲器764,所述遠程應用程序766可以提供附加的計算機可讀指令給計算機 702。在各種實施例中,可以使用遠程計算機存儲器764來存儲信息,所述信息例如隨后可被下載到原生系統存儲器706中的已認證的文件信息。進一步地,在各種實施例中,遠程計 算機756可以是應用服務器、管理服務器、客戶端計算機或網絡設備。用戶可以使用連接到用戶輸入接口 714的輸入設備向計算機702輸入信息,所述 用戶輸入接口 714例如鼠標768和鍵盤770。此外,輸入設備可以是觸控板、指紋掃描器、 操縱桿、條形碼掃描器、介質掃描器或諸如此類。視頻接口 708可向例如監(jiān)視器722的顯示 器提供視覺信息。視頻接口 708可以是嵌入的接口或是分立的接口。進一步地,計算機可 以使用多個視頻接口 708、網絡接口 712以及可移動存儲器接口 716和固定存儲器接口 718 來增加操作計算機702的靈活性。進一步地,各種實施例使用多個監(jiān)視器772和多個視頻 接口 708來改變計算機702的性能和能力。計算機702中可包含其他計算機接口,例如輸 出外圍接口 710。這個輸出外圍接口可以被連接到打印機774或揚聲器776或其它外圍設 備來向計算機702提供額外的功能。計算機702的各種可選配置和實現方式都包括在本發(fā)明的精神之內。這些變化可 包括但不限于連接到系統總線720的附加接口,例如通用串行總線(USB)、打印機端口、游 戲端口、PCI總線、PCI Express或者在例如北橋或南橋的芯片集組件中的上述各種組件的 集成。例如,在各種實施例中,處理單元704可包括嵌入的存儲器控制器(未顯示),從而相 對于系統總線720所能提供的,能夠更有效率地傳輸來自系統存儲器706的數據。上述實施例旨在例舉而非限定。在權利要求范圍內存在更多的實施例。此外,雖 然已經參考特定實施例對本發(fā)明的各方面加以描述,但本領域技術人員應該認識到,在不 脫離本發(fā)明權利要求所定義的精神和范圍的情況下,可以在形式及細節(jié)上加以變化。相關領域的一般技術人員應該認識到,本發(fā)明可以包含少于上述任何單獨的實施 例所例舉的特征。本文所描述的實施例并未試圖對本發(fā)明各個特征的可能組合方式進行窮 舉。因此,并不排斥實施例之間特征的互相組合;當然,根據本領域一般技術人員的理解,本 發(fā)明可以由從不同獨立實施例中選取的不同獨立特征的組合構成。限制以引用方式對上述文檔進行的任何合并,因此,主題內容不應被引用,否則與 此處的明確披露相違背。進一步限制以引用方式對上述文檔進行的任何合并,因此,不應將 本發(fā)明文檔中所包括的權利要求以引用的方式進行合并。再進一步限制以引用方式對上述 文檔進行的任何合并,因此,除非本發(fā)明明確指出,否則不應對本發(fā)明文檔中所提供的任何 定義以引用的方式加以合并。出于解釋本發(fā)明權利要求的目的,明確指出,除非在權利要求中出現特定術語“裝 置”或者“方法”,否則并不援引美國專利法35 U. S. C.中第六段第112條的規(guī)定。
權利要求
1.一種用于檢測隱藏對象的計算機系統,所述系統包括計算機電路,至少具有連接到存儲器配置的處理器,所述計算機電路被配置為至少執(zhí) 行操作系統和安全配置;其中,所述操作系統適合于幫助實現多個進程的執(zhí)行以及提供至少一個原生服務模 塊,所述至少一個原生服務模塊響應由所述多個進程的至少其中之一做出的請求,返回與 所述計算機系統中至少一個對象有關的第一組所請求的信息;以及其中,所述安全配置包括次級服務模塊,所述次級服務模塊適合于響應由所述多個進程的至少一個已授權的進 程做出的請求,生成和返回與所述計算機系統中所述至少一個對象有關的第二組所請求的 信息,其中,在生成所述第二組所請求的信息的過程中,所述次級服務模塊繞過所述至少一 個原生服務模塊;訪問限制模塊,所述訪問限制模塊限制對所述次級服務模塊的訪問,從而僅僅允許所 述至少一個已授權的進程訪問所述次級服務模塊;和比較模塊,適合于比較所述第一組所請求的信息和所述第二組請求的信息以生成比較 結果,并且基于所述比較結果,確定任一不在所述第一組所請求的信息中的對象是否存在 于所述第二組所請求的信息中。
2.如權利要求1所述的計算機系統,其中所述至少一個原生服務模塊包含所述操作系 統的至少一部分內核。
3.如權利要求1所述的計算機系統,其中所述至少一個原生服務模塊包含所述操作 系統的至少一部分內核和至少一個驅動器,以及,其中所述安全配置包括第一類次級服務 模塊和第二類次級服務模塊,所述第一類次級服務模塊執(zhí)行所述操作系統的所述至少一部 分內核的至少一些功能,所述第二類次級服務模塊執(zhí)行所述至少一個驅動器的至少一些功 能。
4.如權利要求1所述的計算機系統,其中所述至少一個原生服務模塊包含設備驅動 器的至少一部分。
5.如權利要求1所述的計算機系統,其中所述次級服務模塊基本上包括所述原生服 務模塊的全部功能。
6.如權利要求1所述的計算機系統,其中所述次級服務模塊具有不同于所述原生服務 模塊的架構。
7.如權利要求1所述的計算機系統,其中所述至少一個對象選自至少一個文件、至少 一個驅動器、至少一個進程、至少一個寄存器、至少一個注冊表項、至少一個動態(tài)庫、至少一 個存儲設備或其任意組合。
8.如權利要求1所述的計算機系統,其中所述訪問限制模塊適合于對每個請求訪問所 述次級服務模塊的進程來施加認證檢查,以僅僅允許那些能夠通過所述認證檢查的進程來 訪問所述次級服務模塊。
9.如權利要求1所述的計算機系統,其中所述比較模塊進一步適合于分析被發(fā)現不在 所述第一組所請求的信息中但存在于所述第二組所請求的信息中的對象的屬性,以確定所 述對象不存在于所述第一組中是否表示在所述計算機系統中存在rootkit。
10.如權利要求1所述的計算機系統,其中所述訪問限制模塊適合于僅僅允許預定的與所述比較模塊相關的至少一個進程來訪問所述次級服務模塊。
11.如權利要求1所述的計算機系統,其中所述安全配置進一步地包含安全應用程序, 所述安全應用程序運行在用戶空間中,并且當被執(zhí)行時,在所述操作系統中生成特定安全 線程;以及其中在所述安全配置中,所述特定安全線程被送達所述次級服務模塊。
12.一種在至少具有處理器的計算機系統中用于檢測操作系統的服務模塊的安全性損 害的方法,所述處理器與存儲器配置連接并被配置為至少執(zhí)行所述操作系統和安全配置, 所述方法包括通過所述操作系統提供至少一個原生服務模塊,所述至少一個原生服務模塊響應由至 少一個線程做出的請求,返回與所述計算機系統中至少一個對象有關的第一組所請求的信 息;通過所述安全配置提供次級服務模塊,所述次級服務模塊適合于響應由至少一個已授 權的線程做出的請求,生成并返回與所述計算機系統中所述至少一個對象有關的第二組所 請求的信息,其中,在生成所述第二組所請求的信息的過程中,所述次級服務模塊繞過所述 至少一個原生服務模塊;限制線程對所述次級服務模塊的訪問,從而僅僅允許預定的由受信任的安全應用程序 生成的線程來訪問所述次級服務模塊;比較所述第一組所請求的信息和所述第二組所請求的信息以生成比較結果;基于所述比較結果,確定任一不在所述第一組所請求的信息中的對象是否存在于所述 第二組所請求的信息中,由此識別至少一個隱藏的對象;以及分析所述隱藏的對象以確定所述原生服務模塊是否已經被損害。
13.如權利要求12所述的方法,其中所述提供至少一個原生服務模塊包括提供所述操 作系統的一部分內核。
14.如權利要求12所述的方法,其中所述提供至少一個原生服務模塊包括提供所述操 作系統的至少一部分內核和至少一個驅動器;在所述安全配置中提供第一類次級服務模塊,所述第一類次級服務模塊至少執(zhí)行所述 操作系統的所述至少一部分內核的至少一些功能;以及在所述安全配置中,提供第二類次級服務模塊,所述第二類次級服務模塊執(zhí)行所述至 少一個驅動器的至少一些功能。
15.如權利要求12所述的方法,其中所述提供至少一個原生服務模塊包括提供設備驅 動器。
16.如權利要求12所述的方法,其中所述提供次級服務模塊包括提供基本上所述原生 服務模塊的所有功能。
17.如權利要求12所述的方法,其中所述提供次級服務模塊包括提供與所述原生服務 模塊的架構不同的架構。
18.如權利要求12所述的方法,其中所述至少一個對象選自至少一個文件、至少一個 驅動器、至少一個進程、至少一個線程、至少一個寄存器、至少一個注冊表項、至少一個動態(tài) 庫、至少一個存儲設備或其任意組合。
19.如權利要求12所述的方法,其中所述限制線程對所述次級服務模塊的訪問包括對每個請求訪問所述次級服務模塊的線程施加認證檢查,以僅僅允許那些能夠通過所述認證 檢查的線程來訪問所述次級服務模塊。
20. 一種改進的計算機系統,所述計算機系統至少具有處理器,所述處理器與存儲器配 置連接并被配置為至少執(zhí)行操作系統和安全配置,其中所述操作系統提供至少一個原生服 務模塊,所述原生服務模塊響應由至少一個線程做出的請求,返回與所述計算機系統中至 少一個對象有關的第一組所請求的信息,所述改進包括用于響應由至少一個已授權的線程做出的請求,生成并返回與所述計算機系統中所述 至少一個對象有關的第二組所請求的信息的裝置,其中在生成所述第二組所請求的信息的 過程中,所述用于生成并返回的裝置繞過所述至少一個原生服務模塊;用于限制線程對所述用于生成并返回的裝置的訪問的裝置,從而僅僅允許預定的由受 信任的安全應用程序生成的線程來訪問那些裝置;用于比較所述第一組所請求的信息和所述第二組所請求的信息以生成比較結果的裝 置;以及用于基于所述比較結果,確定任一不在所述第一組所請求的信息中的對象是否存在于 所述第二組所請求的信息中,由此識別至少一個隱藏的對象的裝置。
全文摘要
本發(fā)明提供一種用于檢測運行于計算機上的操作系統的服務模塊的安全損害的系統和方法。至少一個原生服務模塊響應由至少一個進程或線程做出的請求,返回與計算機系統中至少一個對象有關的第一組所請求的信息。次級服務模塊響應由至少一個已授權的進程或線程做出的請求,繞過該至少一個原生服務模塊,生成并且返回與計算機系統中至少一個對象有關的第二組所請求的信息。限制線程到次級服務模塊的訪問,從而僅僅允許預定的由受信任的安全應用程序生成的線程訪問次級服務模塊。
文檔編號G06F21/55GK102110213SQ20111004997
公開日2011年6月29日 申請日期2011年3月2日 優(yōu)先權日2010年5月18日
發(fā)明者盧薩科夫·E·維亞切斯拉夫 申請人:卡巴斯基實驗室封閉式股份公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
台州市| 子洲县| 庆云县| 林西县| 宁陵县| 五原县| 井研县| 涞水县| 丰台区| 新营市| 拜城县| 富民县| 秭归县| 汉川市| 临潭县| 温州市| 磐石市| 灵山县| 威远县| 永和县| 巩义市| 团风县| 长泰县| 蓬安县| 长宁县| 长顺县| 黄平县| 阳朔县| 永和县| 广安市| 循化| 江陵县| 德惠市| 威远县| 光泽县| 胶州市| 宁德市| 高陵县| 元阳县| 根河市| 天峻县|