[發明專利]一種實現沙箱智能檢測文件的方法及其沙箱智能檢測系統有效
| 申請號: | 201410381591.1 | 申請日: | 2014-08-05 |
| 公開(公告)號: | CN104200161B | 公開(公告)日: | 2017-01-25 |
| 發明(設計)人: | 李凱;李海彬;范淵 | 申請(專利權)人: | 杭州安恒信息技術有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F21/53 |
| 代理公司: | 杭州中成專利事務所有限公司33212 | 代理人: | 周世駿 |
| 地址: | 310051 浙江省杭*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 實現 智能 檢測 文件 方法 及其 系統 | ||
1.一種實現沙箱智能檢測文件的方法,用于對文件進行文件執行行為檢測,其特征在于,具體包括下述步驟:
步驟一:沙箱模塊接收待檢測文件,根據規則生成檢測任務,并將檢測任務寫入數據庫中,檢測任務狀態標記為待檢測;
所述檢測任務包括自增類型的任務ID、檢測文件的文件保存路徑和文件類型、檢測文件的校驗值、指定當次檢測文件的檢測時間;步驟一重復執行;
步驟二:沙箱模塊連接并查詢數據庫,查詢數據庫中是否存在檢測任務狀態為待檢測的任務,若無該狀態的檢測任務,則沙箱模塊等待特定時間后重新進行查詢操作;
若沙箱模塊查詢到檢測任務狀態為待檢測的任務,沙箱模塊調用虛擬主機公開接口函數查詢當前是否存在可用于執行檢測任務的虛擬主機:若當前虛擬主機均無法進行任務檢測,則沙箱模塊等待特定時間重新獲取虛擬主機狀態,若當前存在能用于進行任務檢測的虛擬主機,則調用虛擬主機公開接口啟動虛擬主機;
虛擬主機啟動后,隨虛擬主機一同啟動的檢測模塊啟動指定端口的監聽工作;沙箱模塊連接虛擬主機的監聽端口,沙箱模塊通過網絡方式,將待檢測任務提交給用于本次任務檢測的虛擬主機中的檢測模塊;沙箱模塊將當前提交的任務狀態標記為已提交,并保持連接等待檢測模塊數據返回;
檢測模塊接收到檢測任務,讀取任務中的文件類型,并查詢當前系統中是否存在對應的執行程序可用于執行該待檢測文件,若存在則返回初始化成功,否則返回初始化失敗;
步驟三:沙箱模塊接收步驟二中檢測模塊返回的初始化信息,根據初始化是否成功來判斷該虛擬主機是否可以進行當前檢測任務,若初始化成功則表示可以檢測當前文件,繼續步驟四的處理;若初始化失敗則表示不能執行當前檢測任務,檢測任務結束;沙箱模塊將數據庫中的當前檢測任務狀態標記為不可檢測;
步驟四:沙箱模塊通過網絡方式上傳待檢測文件給檢測模塊,待檢測文件傳輸完畢,沙箱模塊保存與虛擬主機的連接,用來接收檢測結果信息;沙箱模塊標記當前任務狀態為檢測中;
步驟五:虛擬主機中的檢測模塊接收待檢測文件,計算待檢測文件的效驗值,并與檢測任務中的效驗值進行比較,確認待檢測文件是否完整;若待檢測文件傳輸不完整,則檢測模塊與沙箱模塊通信,要求沙箱模塊重傳待檢測文件;若待檢測文件傳輸完整,檢測模塊啟動待檢測文件,并使用suspend參數暫停該文件進程,同時啟動定時器來記錄該文件已經執行的時間;文件被暫停運行后,檢測模塊調用API?HOOK模塊注入到被檢測文件的運行空間中,API?HOOK模塊注入成功后,檢測模塊恢復被檢測文件運行,APIHOOK模塊記錄被檢測文件的相關行為信息并將檢測結果返回給檢測模塊;API?HOOK模塊在特定時間內未檢測到被檢測文件調用API?HOOK模塊中HOOK的系統函數,返回“特定時間無操作”給檢測模塊,檢測模塊根據該特征判斷文件檢測完成,跳轉到步驟七執行;檢測模塊將接收到的API?HOOK模塊返回的文件行為信息通過網絡方式傳輸給沙箱模塊;若待檢測文件啟動失敗或API?HOOK模塊注入失敗則檢測結束,同時返回檢測異常指令給沙箱模塊;沙箱模塊在接受到檢測失敗的信息后,標記數據庫中當前檢測任務狀態為檢測失敗,并跳到步驟七執行;
步驟六:檢測模塊啟動智能模擬模塊,智能模擬模塊指通過程序方式識別被檢測文件的運行窗口,并通過獲取窗口內按鈕及按鈕標題,對比獲取到的窗口標題與程序中預先設置的標題是否一致,用于判斷是否需要對被檢測文件施行人工模擬干預,來達到還原文件運行環境的目的,嘗試獲取被檢測文件運行窗口、子窗口及窗口按鈕;
若智能模擬模塊獲取被檢測文件運行窗口、子窗口及窗口按鈕成功,則匹配獲取到的窗口按鈕標題與預先設置的標題進行匹配:若匹配成功,智能模擬模塊移動鼠標至匹配上標題的按鈕上,執行鼠標左鍵單擊操作,然后重復執行步驟六;若匹配不成功,則以當次檢測任務中設置的檢測時間來判斷被檢測文件運行是否結束,若在檢測時間范圍內,程序正常退出,則執行步驟八,若被檢測文件運行時間達到檢測任務中設置的檢測時間,被檢測文件依然在運行,執行步驟七;
步驟七:檢測模塊調用Processkill函數結束被檢測文件;
步驟八:檢測模塊返回檢測完成指令給沙箱模塊;
步驟九:若沙箱模塊接收到檢測模塊返回的檢測異常指令,則標記當次檢測任務為檢測異常;
若沙箱模塊在接收到檢測完成指令前未接收到檢測異常指令,則沙箱模塊標記當次檢測任務為檢測完成,保存文件檢測結果到文件,并將檢測結果文件路徑附加至當前檢測任務中,以供其他程序使用;
沙箱模塊在接收到檢測完成的指令后,調用虛擬主機公開接口函數關閉執行當前檢測任務的虛擬主機;
虛擬主機關閉完成后,沙箱模塊調用鏡像恢復函數恢復虛擬主機鏡像,當次檢測任務完成,重復執行步驟二。
2.基于權利要求1所述的一種實現沙箱智能檢測文件的方法的沙箱智能檢測系統,其特征在于,包括沙箱模塊、虛擬主機;沙箱模塊與虛擬主機構成了沙箱的主體;數據庫包含于沙箱模塊中,檢測模塊及其附屬的智能模擬模塊、API?HOOK模塊運行于虛擬主機中;
所述沙箱模塊是沙箱智能檢測系統的主體模塊,負責接收待檢測文件并生成檢測任務、管理檢測任務、發起文件檢測、調度并管理虛擬主機、接收并保存檢測結果;
所述數據庫能采用任意類型的數據庫,用于存儲檢測任務,供沙箱模塊生成檢測任務并管理檢測任務使用;
所述檢測模塊是運行在虛擬主機上的檢測執行程序,用于與沙箱模塊通信,獲取檢測任務與被檢測文件、執行文件檢測并通過API?HOOK模塊監控文件執行過程、以網絡方式回傳被檢測文件運行行為數據給沙箱模塊;檢測模塊內置于虛擬主機中,隨虛擬主機系統一同啟動;其中,待檢測文件是指檢測任務中沒有被提交檢測的文件,該文件被提交至虛擬主機中進行檢測時,則被稱為被檢測文件;
所述虛擬主機是運行在沙箱環境下的虛擬化程序以及在虛擬化程序下運行的操作系統,虛擬主機將啟動后的狀態保存為還原點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州安恒信息技術有限公司,未經杭州安恒信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410381591.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于腳本的網站漏洞掃描方法和系統
- 下一篇:一種網頁異常處理方法和設備





