專利名稱:網(wǎng)頁安全檢測方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)安全技術,尤其涉及一種網(wǎng)頁安全檢測方法和系統(tǒng)。
背景技術:
隨著互聯(lián)網(wǎng)的日益發(fā)展,互聯(lián)網(wǎng)的市場價值越來越大,針對互聯(lián)網(wǎng)用戶的病毒傳播和入侵現(xiàn)象越來越嚴重。有資料顯示,我國各大網(wǎng)站木馬數(shù)量急劇增加,2009年新增木馬高達246萬多個,是2008年的5. 5倍,利用網(wǎng)頁掛馬已經(jīng)成為互聯(lián)網(wǎng)病毒傳播的主要途徑。所謂網(wǎng)頁掛馬是指把一個木馬程序上傳到某個網(wǎng)頁,然后用木馬生成器生成一個網(wǎng)馬,之后在網(wǎng)頁上加代碼使得木馬在打開網(wǎng)頁時運行。惡意木馬通過網(wǎng)頁掛馬的方式將惡意特征代碼強行嵌入到受攻擊入侵的網(wǎng)頁代碼中,使得計算機用戶很難識別這些已經(jīng)被掛馬的網(wǎng)頁。一旦計算機用戶訪問這個含有惡意特征代碼的網(wǎng)頁,操作系統(tǒng)就會在后臺按照這段惡意特征代碼的指令進行一系列的破壞行為,諸如跳轉(zhuǎn)到指定的網(wǎng)絡服務器下載木馬、病毒等惡意程序等。當一個網(wǎng)站被掛馬后,對這個網(wǎng)站的聲譽影響是巨大的,可能造成網(wǎng)民對該網(wǎng)站的不信任,使客戶大量流失。防御網(wǎng)頁掛馬一方面需要網(wǎng)民加強自身計算機的安全防護,另一方面,也需要網(wǎng)站管理者加強網(wǎng)站監(jiān)督管理。為此,可信網(wǎng)站服務推出了網(wǎng)頁木馬安全掃描服務,定期對客戶網(wǎng)站進行安全掃描,如果發(fā)現(xiàn)網(wǎng)頁掛馬,通過短信和郵件在第一時間通知到用戶,避免木馬對用戶網(wǎng)站產(chǎn)生不利影響。現(xiàn)有網(wǎng)頁安全檢測技術進行網(wǎng)頁木馬掃描時,通常是采用將待測網(wǎng)頁抓取到本地,然后利用木馬特征庫進行特征值比對,從而判斷該網(wǎng)頁是否掛馬。發(fā)明人在實踐現(xiàn)有技術的過程中發(fā)現(xiàn),采用現(xiàn)有網(wǎng)頁安全檢測技術進行網(wǎng)頁木馬掃描,存在成本高、檢測完整性不足等缺陷。例如現(xiàn)有網(wǎng)頁安全檢測技術需要開發(fā)和維護木馬特征庫,當發(fā)現(xiàn)木馬特征庫中沒有記錄的新木馬時,需要將新木馬的特征及時添加到木馬特征庫中,否則檢測系統(tǒng)可能無法識別;而開發(fā)和維護這樣一個全面準確的木馬特征庫是需要耗費巨大的人力和物力,提供可信網(wǎng)站服務的普通廠商通常無法做到。又例如某些嵌入網(wǎng)頁的惡意特征代碼通常需要結(jié)合瀏覽器的解析引擎或腳本(javascript)引擎才能發(fā)揮作用,而現(xiàn)有網(wǎng)頁安全檢測技術是將抓取頁面下載到本地進行掃描檢測,因此無法識別這些惡意特征代碼。
發(fā)明內(nèi)容
本發(fā)明提供一種網(wǎng)頁安全檢測方法和系統(tǒng),用以降低網(wǎng)頁安全檢測成本,提高網(wǎng)頁安全檢測的完整性。本發(fā)明提供一種網(wǎng)頁安全檢測方法,包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁;通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志;根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。本發(fā)明還提供一種網(wǎng)頁安全檢測系統(tǒng),包括瀏覽器,用于訪問網(wǎng)頁;插件控制器,用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁;殺毒軟件模塊,用于通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志;監(jiān)控分析模塊,用于根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。本發(fā)明提供的網(wǎng)頁安全檢測方法和系統(tǒng),充分利用了現(xiàn)有殺毒軟件的病毒/木馬特征庫,無需單獨開發(fā)相應特征庫,因此降低了網(wǎng)頁安全檢測的成本;由于常用殺毒軟件通常都支持病毒/木馬特征庫的實時更新,因此,基于實時更新的病毒/木馬特征庫進行網(wǎng)頁安全檢測,還有利于提高網(wǎng)頁安全檢測的準確性。此外,本發(fā)明將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部,通過瀏覽器嵌入插件從底層直接控制瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁,用以模擬用戶通過瀏覽器訪問網(wǎng)頁的行為,這有利于殺毒軟件捕獲待測網(wǎng)頁中嵌入的惡性特征代碼,相對于現(xiàn)有技術而言安全檢測更為全面,提高了網(wǎng)頁安全檢測的完整性。再者,由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一提供的網(wǎng)頁安全檢測方法的流程圖2為本發(fā)明實施例二提供的BHO插件獲取IE瀏覽器行為的方法示意圖
圖3為圖2中BHO插件的內(nèi)容示意圖4為圖2中IE瀏覽器嵌入BHO插件的示意圖5a為本發(fā)明實施例三提供的網(wǎng)頁安全檢測系統(tǒng)的結(jié)構(gòu)示意圖5b為本發(fā)明實施例三中模擬訪問控制模塊的結(jié)構(gòu)示意圖6為本發(fā)明實施例四提供的網(wǎng)頁安全檢測方法的流程圖7為本發(fā)明實施例五提供的網(wǎng)頁內(nèi)容加載完成的確定方法流程圖8為本發(fā)明實施例五中網(wǎng)頁元素之間存在嵌套關系示例;
圖9為本發(fā)明實施例五中句柄比較示例;
圖10為本發(fā)明實施例六提供的網(wǎng)頁地址獲取方法流程圖11為本發(fā)明實施例六中網(wǎng)絡地址遞歸調(diào)用的示例。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明以下實施例的序號僅僅為了描述,不代表實施例的優(yōu)劣。圖1為本發(fā)明實施例一提供的網(wǎng)頁安全檢測方法的流程圖。如圖1所示的方法包括步驟11 在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件。瀏覽器啟動時會檢查該瀏覽器注冊表中是否包括瀏覽器嵌入插件,并在瀏覽器注冊表中包括瀏覽器嵌入插件時,瀏覽器會自動啟動該瀏覽器嵌入插件,瀏覽器插件啟動后進行初始化;初始化后的瀏覽器插件可監(jiān)控瀏覽器的行為。步驟12 通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁??蛇x的,可通過所述瀏覽器打開所述待測網(wǎng)頁地址集中首個待測的網(wǎng)頁地址對應的網(wǎng)頁;在確定所述瀏覽器完成關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載、或者強制結(jié)束所述瀏覽器關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入下一個待測的網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的待測的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。其中,網(wǎng)頁地址集包括了待測的各網(wǎng)頁地址。如果實際需要對某一網(wǎng)站進行全面安全檢測,本步驟中的網(wǎng)頁地址集可包括但不限于某一網(wǎng)站下各網(wǎng)頁地址以及每個網(wǎng)頁包括的鏈接地址等。在瀏覽器初始化完成之后,通過瀏覽器打開網(wǎng)頁地址集中的任一待測的網(wǎng)頁地址的方法不受限制,例如可向瀏覽器的地址欄中直接輸入該待測網(wǎng)頁地址,或者,可采用命令行的方式控制瀏覽器打開該待測網(wǎng)頁地址,或者,可通過瀏覽器嵌入插件在該瀏覽器對外開放的接口函數(shù)中寫入該待測網(wǎng)頁地址;等等。其中,可根據(jù)預設策略確定網(wǎng)頁地址集中的哪個待測的網(wǎng)頁地址作為第一個被瀏覽器打開的網(wǎng)頁地址。瀏覽器打開某一網(wǎng)頁地址對應的網(wǎng)頁之后,會加載該網(wǎng)頁的網(wǎng)頁內(nèi)容。如果瀏覽器完成該網(wǎng)頁所有網(wǎng)頁內(nèi)容的加載,則表示瀏覽器正常結(jié)束該網(wǎng)頁的網(wǎng)頁內(nèi)容的加載;如果某些網(wǎng)頁內(nèi)容復雜或存在錯誤,則瀏覽器可能耗費較長時間也不能完全加載該網(wǎng)頁內(nèi)容,則可強制結(jié)束瀏覽器對該網(wǎng)頁剩余內(nèi)容的記載。瀏覽器正常結(jié)束或被強制結(jié)束當前網(wǎng)頁內(nèi)容的加載時,可通過瀏覽器嵌入插件將網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址寫入該瀏覽器對外開放的接口函數(shù),以控制瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁。采用上述方法,即可通過瀏覽器嵌入插件按順序逐一將網(wǎng)頁地址集中的待測網(wǎng)頁地址寫入瀏覽器,并控制瀏覽器按順序逐一打開相應網(wǎng)頁。上述技術方案中,可在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針。為了有效判斷網(wǎng)頁內(nèi)容是否加載完畢,可選的,上述確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,可包括通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);在所述瀏覽器每次觸發(fā)與瀏覽器完成任一網(wǎng)頁元素加載相關的第二操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、 并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器插件解析所述回調(diào)函數(shù)以獲取當前記錄的所述第二句柄與所述第一句柄,且在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。采用該方法,瀏覽器嵌入插件就可自動判斷瀏覽器是否完成當前網(wǎng)頁內(nèi)容的加載,有利于待測網(wǎng)頁內(nèi)容的全面檢測;此外在瀏覽器完成當前網(wǎng)頁內(nèi)容的加載時,本發(fā)明還可及時控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。為了減少不必要等待時間,在上述技術方案的基礎上,本發(fā)明提供了加載超時控制機制,例如在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器;如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器。該情形下,所述強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,可具體包括如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。由于引入了加載超時控制機制,對于網(wǎng)頁內(nèi)容復雜或網(wǎng)頁錯誤等原因?qū)е聻g覽器長時間不能完成相應網(wǎng)頁內(nèi)容的加載時,可取消剩余網(wǎng)頁內(nèi)容部分的加載,并控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而避免了用戶不必要的等待,整體上節(jié)省瀏覽器打開網(wǎng)頁地址集中各待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。為了獲取待測網(wǎng)站或待測網(wǎng)頁的各個鏈接地址,以提高檢測的完整性和全面性, 上述技術方案可在在所述瀏覽器每次觸發(fā)與打開網(wǎng)頁相應的第三操作事件時,通過所述瀏覽器調(diào)用所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、將所述第三操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址寫入所述回調(diào)函數(shù)的相應參數(shù)中,以及通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)并記錄解析結(jié)果,直至所述解析結(jié)果滿足預設結(jié)束條件;所述解析結(jié)果包括每次觸發(fā)的與打開網(wǎng)頁相應的操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,以及多次記錄的網(wǎng)頁地址之間的遞歸調(diào)用關系;根據(jù)所述解析結(jié)果更新所述待測網(wǎng)頁地址集。步驟13 通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志。目前市面上主流的殺毒軟件都具有主動監(jiān)控、主動防御和實時更新的功能,這類殺毒軟件均可應用到本發(fā)明中。某些殺毒軟件還具有云安全功能,可以更準確的分析待測網(wǎng)頁或能判斷出一些變種的木馬或病毒,將這些殺毒軟件應用到本發(fā)明中,有利于提高網(wǎng)頁檢測的完整性和準確性。步驟14 根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。檢測報告可包括但不限于以下內(nèi)容之一或任意組合病毒類型、木馬類型、報警時間、感染病毒的網(wǎng)頁地址、掛有木馬的網(wǎng)頁地址等。通過上述分析可知,本實施例充分利用了現(xiàn)有殺毒軟件的病毒/木馬特征庫,無需單獨開發(fā)相應特征庫,因此降低了網(wǎng)頁安全檢測的成本;由于常用殺毒軟件通常都支持病毒/木馬特征庫的實時更新,因此,基于實時更新的病毒/木馬特征庫進行網(wǎng)頁安全檢測,還有利于提高網(wǎng)頁安全檢測的準確性。此外,本實施例將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部,通過瀏覽器嵌入插件從底層直接控制瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁,用以模擬用戶通過瀏覽器訪問網(wǎng)頁的行為,這有利于殺毒軟件捕獲待測網(wǎng)頁中嵌入的惡性特征代碼,相對于現(xiàn)有技術而言安全檢測更為全面,提高了網(wǎng)頁安全檢測的完整性。再者,由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。圖2為本發(fā)明實施例二提供的BHO插件獲取IE瀏覽器行為的方法示意圖。本實施例是以IE為瀏覽器,以瀏覽器輔助對象(Browser Helper Object)插件為瀏覽器嵌入插件為例,詳細說明本發(fā)明的技術方案。BHO是微軟推出的作為瀏覽器對第三方程序員開放交互接口的業(yè)界標準,通過簡單的代碼就可以進入瀏覽器領域的“交互接口”(INTERACTIVED Interface) 0通過這個接口,程序員可以編寫代碼獲取瀏覽器的行為,比如“后退”、“前進”、“當前頁面”等,利用BHO 的交互特性,程序員還可以用代碼控制瀏覽器行為,比如修改替換瀏覽器工具欄,添加自己的程序按鈕等。BHO的目的是為了更好的幫助程序員打造個性化瀏覽器,以及為程序提供更簡潔的交互功能,現(xiàn)在很多IE個性化工具就是利用BHO的來實現(xiàn)。本實施例將BHO插件嵌入到IE瀏覽器內(nèi)部,并在IE瀏覽器啟動時將BHO插件的回調(diào)函數(shù)指針注冊到IE瀏覽器中;當IE瀏覽器觸發(fā)預設操作事件時,會調(diào)用回調(diào)函數(shù)指針指向的回調(diào)函數(shù);BHO插件通過解析回調(diào)函數(shù)即可從底層直接獲取瀏覽器需要訪問的網(wǎng)頁地址,從而建立正確的網(wǎng)頁地址鏈。具體的如圖2所示,本實施例BHO獲取IE瀏覽器行為的方法包括步驟21 創(chuàng)建BHO插件,并將創(chuàng)建好的BHO插件嵌入到IE瀏覽器中。圖3為圖2中BHO插件的內(nèi)容示意圖。如圖3所示,BHO插件包括ΒΗ0初始化函數(shù)、BHO回調(diào)函數(shù)和BHO寫入注冊表。其中,初始化函數(shù)用于在被嵌入的IE瀏覽器啟動時自動啟動BHO插件并進行初始化處理;BHO回調(diào)函數(shù)用于控制IE瀏覽器在觸發(fā)預設的操作事件時作出預設響應;BHO寫入注冊表包括了幫助BHO控制IE瀏覽器所需的數(shù)據(jù)文件。圖4為圖2中IE瀏覽器嵌入BHO插件的示意圖??蓪?chuàng)建的BHO插件添加到IE 瀏覽器的注冊表中,如將BHO插件添加到IE瀏覽器的如下位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ffindows\CurrentV ersion\ Explorer\Browser Helper Objects。步驟22 =IE瀏覽器啟動。步驟23 =IE瀏覽器啟動過程中發(fā)現(xiàn)IE瀏覽器注冊表中包括BHO插件,執(zhí)行步驟 24。6/12 頁
插件還可以獲取IE瀏覽器當前觸發(fā)的操作事件中包括的參數(shù)。步驟25 =IE瀏覽器根據(jù)外部指令執(zhí)行具體操作,如訪問某個網(wǎng)頁等。步驟沈當IE瀏覽器觸發(fā)預設的操作事件時,IE瀏覽器調(diào)用BHO回調(diào)函數(shù)。步驟27 =BHO插件根據(jù)被調(diào)用的BHO回調(diào)函數(shù)捕獲IE瀏覽器觸發(fā)的操作事件,并根據(jù)BHO回調(diào)函數(shù)的設置執(zhí)行相應操作。步驟28 =BHO回調(diào)函數(shù)執(zhí)行完畢,返回步驟25,BHO插件繼續(xù)監(jiān)控IE瀏覽器的行為。本實施例將BHO插件嵌入到IE瀏覽器內(nèi)部,并在IE瀏覽器啟動時將BHO插件的回調(diào)函數(shù)指針注冊到IE瀏覽器中;當IE瀏覽器觸發(fā)預設操作事件時,會調(diào)用回調(diào)函數(shù)指針指向的回調(diào)函數(shù);BHO插件通過解析回調(diào)函數(shù),即可從底層直接獲取與瀏覽器訪問行為相關的參數(shù)(如網(wǎng)頁地址),控制瀏覽器打開所需的網(wǎng)頁;本實施例再結(jié)合使用現(xiàn)有的殺毒軟件進行病毒捕獲,即可實現(xiàn)低成本的網(wǎng)頁在線安全檢測。圖fe為本發(fā)明實施例三提供的網(wǎng)頁安全檢測系統(tǒng)的結(jié)構(gòu)示意圖。本實施例所示的網(wǎng)頁安全檢測系統(tǒng)可運行在某一服務器或某一虛擬服務器上。如圖如所示的網(wǎng)頁安全檢測系統(tǒng)包括瀏覽器51、插件控制器52、殺毒軟件模塊53和監(jiān)控分析模塊M。瀏覽器51用于訪問網(wǎng)頁。插件控制器52可用于在瀏覽器51啟動時,初始化所述瀏覽器51預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器51逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。在一種可選的應用示例中,待測網(wǎng)頁地址集與待測網(wǎng)站相關, 通過插件控制器52可控制瀏覽器51逐一訪問某一待測網(wǎng)站的部分或各級網(wǎng)頁。殺毒軟件模塊53可用于通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志。監(jiān)控分析模塊M可用于根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。監(jiān)控分析模塊M可將檢測報告通知相應用戶,以便用戶對相應網(wǎng)頁的病毒、木馬或惡意特征代碼進行清除等處理,從而盡可能減少這些病毒、木馬或惡意特征代碼對相應網(wǎng)頁帶來的不利影響??蛇x的,插件控制器52可包括初始化處理模塊521和模擬訪問控制模塊522。初始化處理模塊521可于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件; 模擬訪問控制模塊522可用于通過瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。在上述技術方案的基礎上,所述初始化處理模塊521還可用于在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針。可選的,模擬訪問控制模塊522的具體結(jié)構(gòu)可如圖恥所示,包括第一控制模塊 5222和第二控制模塊5223。第一控制模塊5222可用于通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址。第二控制模塊5223可用于在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以觸發(fā)所述第一控制模塊控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復運行本模塊,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁??蛇x的,模擬訪問控制模塊522還可包括第一捕獲處理模塊52M、第二捕獲處理模塊5225和加載完成確定模塊52 。第一捕獲處理模塊52M可用于在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第一句柄。第二捕獲處理模塊5225可用于通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第二句柄。加載完成確定模塊52 可用于在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載??蛇x的,模擬訪問控制模塊522還可包括定時模塊5227、定時取消模塊52 和加載取消模塊52 。定時模塊5227可用于在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時
ο定時取消模塊52 可用于如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器。加載取消模塊52 可用于如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。本實施例可將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部,瀏覽器嵌入插件可從底層直接控制瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉瀏覽器,并且由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。本實施例還可通過瀏覽器嵌入插件對捕獲的兩類操作事件包括的句柄進行比較,能夠有效判斷網(wǎng)頁內(nèi)容是否加載完畢,有利于待測網(wǎng)頁內(nèi)容的全面檢測;本實施例還引入了超時控制機制來減少用戶不必要的等待時間,因此可及時控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。進一步的,插件控制器52還可包括鏈接捕獲模塊523。鏈接捕獲模塊523可用于在所述瀏覽器每次觸發(fā)與打開網(wǎng)頁相應的第三操作事件時,通過所述瀏覽器調(diào)用所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、將所述第三操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址寫入所述回調(diào)函數(shù)的相應參數(shù)中,以及通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)并記錄解析結(jié)果,直至所述解析結(jié)果滿足預設結(jié)束條件;根據(jù)所述解析結(jié)果更新所述待測網(wǎng)頁地址集,所述解析結(jié)果包括每次觸發(fā)的與打開網(wǎng)頁相應的操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,以及多次記錄的網(wǎng)頁地址之間的遞歸調(diào)用關系。本實施例提供的鏈接捕獲模塊,可通過瀏覽器嵌入插件從底層直接獲取瀏覽器需要訪問的網(wǎng)頁地址,從而不需要識別采用各種網(wǎng)頁引入技術編寫的程序,因此可降低程序開發(fā)和維護成本,并提高了獲取網(wǎng)頁地址的成功率和完整性。此外,由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,因此運行速度較快,從而提高了網(wǎng)頁地址獲取的效率,并提高了網(wǎng)頁檢測效率和檢測完整性。上述技術方案中,可選的,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象BHO插件;不同版本的IE瀏覽器標準操作事件的名稱可能不同。此外,瀏覽器及其支持嵌入的瀏覽器嵌入插件,還可包括但不限于火狐瀏覽器及其支持的嵌入插件, "Opera瀏覽器及其支持的嵌入插件,“Chrome”瀏覽器及其支持的嵌入插件,“Mfari”瀏覽器及其支持的嵌入插件等。下面不妨以瀏覽器為IE瀏覽器(如IE6或IE7或IE8或IE9),插件控制器為BHO 插件為例,結(jié)合具體附圖詳細說明本發(fā)明的技術方案。圖6為本發(fā)明實施例四提供的網(wǎng)頁安全檢測方法的流程圖。參見圖5a_圖6,本實施例提供的網(wǎng)頁安全檢測方法包括步驟61 確定首個待測的網(wǎng)頁地址。該待測的網(wǎng)頁地址可為但不限于某待測網(wǎng)站的首頁地址,或者,某待測網(wǎng)站下的某一級網(wǎng)頁的地址。步驟62 =BHO插件控制IE瀏覽器打開待測的網(wǎng)頁地址對應的網(wǎng)頁。BHO插件可將當前待測的網(wǎng)頁地址寫入IE瀏覽器對外開放的接口函數(shù),從而控制 IE瀏覽器打開與寫入的待測的網(wǎng)頁地址對應的網(wǎng)頁。步驟63 :IE瀏覽器加載當前待測的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容,在IE瀏覽器加載網(wǎng)頁內(nèi)容時,并行執(zhí)行步驟64和步驟69。步驟64 :ΒΗ0插件監(jiān)控IE瀏覽器網(wǎng)頁內(nèi)容的加載情況,執(zhí)行步驟65。步驟65 :ΒΗ0插件根據(jù)IE瀏覽器網(wǎng)頁內(nèi)容加載的監(jiān)控結(jié)果,判斷IE瀏覽器是否結(jié)束當前待測的網(wǎng)頁地址對應網(wǎng)頁的內(nèi)容加載;如果是,則執(zhí)行步驟66 ;否則,執(zhí)行步驟64。本步驟的具體實現(xiàn)方式,詳見下文圖7-圖9對應實施例的記載。步驟66 如果BHO插件在監(jiān)控IE瀏覽器網(wǎng)頁內(nèi)容加載的過程中,捕獲有當前待測的網(wǎng)頁地址對應網(wǎng)頁包括的各級鏈接地址,則并將這些鏈接地址作為新增的待測的網(wǎng)頁地址添加到待測網(wǎng)頁地址集。本步驟的具體實現(xiàn)方式,詳見下文圖10-圖11對應實施例的記載。步驟67 :ΒΗ0插件判斷待測網(wǎng)頁地址集是否包括未檢測的待測的網(wǎng)頁地址,如果是,則執(zhí)行步驟68 ;否則,執(zhí)行步驟612。步驟68 =BHO插件根據(jù)預設策略從待測網(wǎng)頁地址集中選取一個未檢測的待測的網(wǎng)頁地址,并將選出的地址作為即將檢測的下一待測的網(wǎng)頁地址;執(zhí)行步驟62。步驟69 殺毒軟件模塊監(jiān)控IE瀏覽器網(wǎng)頁內(nèi)容的加載情況。步驟610 殺毒軟件模塊判斷當前待測的網(wǎng)頁地址對應的網(wǎng)頁是否包含病毒、木馬或惡意特征代碼,如果是,則執(zhí)行步驟611 ;否則,執(zhí)行步驟69。步驟611 殺毒軟件模塊觸發(fā)報警,并記錄報警日志。步驟612 監(jiān)控分析模塊啟動,對殺毒軟件記錄的報警日志進行分析,生成相應網(wǎng)頁的檢測報告。
步驟613 監(jiān)控分析模塊將檢測報告通知給相應用戶。圖7為本發(fā)明實施例五提供的網(wǎng)頁內(nèi)容加載完成的確定方法流程圖。如圖7所示的方法包括步驟71 =IE瀏覽器打開網(wǎng)頁地址集中的某個網(wǎng)頁地址對應的網(wǎng)頁;并行執(zhí)行步驟 72和步驟73。步驟72 =BHO插件啟動定時器;執(zhí)行步驟78。步驟73 =IE瀏覽器觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,調(diào)用BHO插件的回調(diào)函數(shù),并將該事件包括的與IE當前打開的網(wǎng)頁地址對應的第一句柄,寫入回調(diào)函數(shù)的相應參數(shù)。本實施例中,假設第一操作事件為DISPID_NAVIGATEC0MPLETE2事件,該事件是IE 瀏覽器如IE6、IE7、IE8和IE9中與即將加載網(wǎng)頁相關的標準操作事件。當IE瀏覽器每次打開任一網(wǎng)頁時,會觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,該事件表示IE瀏覽器即將加載當前打開該網(wǎng)頁的網(wǎng)頁內(nèi)容,該事件包括有操作系統(tǒng)如WINDOWS操作系統(tǒng)分配的用于標識當前網(wǎng)頁地址的第一句柄。步驟74 :IE瀏覽器加載當前網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容。IE瀏覽器是以網(wǎng)頁元素為單元加載網(wǎng)頁內(nèi)容的,網(wǎng)頁元素的加載示例如圖8所示。例如網(wǎng)頁元素也稱為頁面元素,可為網(wǎng)頁中使用到的一切用于組織結(jié)構(gòu)和表達內(nèi)容的對象,其中,網(wǎng)頁元素可包括組織結(jié)構(gòu)中的表格(布局),層,導航條,鏈接等等;網(wǎng)頁元素還可包括表達內(nèi)容的文字,圖像,flash等等。每項網(wǎng)頁元素的具體內(nèi)容,根據(jù)不同瀏覽器的設置有所不同。步驟75 在IE瀏覽器每完成一項網(wǎng)頁元素的加載時,觸發(fā)DISPID_ D0CUMENTC0MPLETE事件,調(diào)用BHO插件的回調(diào)函數(shù),并將該事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入回調(diào)函數(shù)的相應參數(shù)。本實施例中,假設第二操作事件為DISPID_DOCUMENTCOMPLETE事件,該事件是IE 瀏覽器如IE6、IE7、IE8和IE9中完成任一網(wǎng)頁元素加載相關的標準操作事件。如圖8所示,網(wǎng)頁元素之間存在嵌套關系。IE瀏覽器每次完成一項網(wǎng)頁元素的加載,都會觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,該事件表示IE瀏覽器完成某一網(wǎng)頁元素加載,該事件包括有操作系統(tǒng)如WINDOWS操作系統(tǒng)分配的用于標識相應網(wǎng)頁元素加載完畢的第二句柄。步驟76 :ΒΗ0插件對回調(diào)函數(shù)進行解析,獲取回調(diào)函數(shù)相應參數(shù)記錄的第一句柄和第二句柄;將當前獲取的第二句柄與第一句柄進行比較,如果二者一致,BHO插件確定IE 瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,執(zhí)行步驟77;否則,執(zhí)行步馬聚75 ο如果IE瀏覽器完成該網(wǎng)頁所有網(wǎng)頁元素的加載,其觸發(fā)的DISPID_ NAVIGATEC0MPLETE2 事件包括的第二句柄,就與 DISPID_NAVIGATEC0MPLETE2 事件包括的第一句柄相同;否則,二者不同?;诖嗽?,本實施例IE瀏覽器在觸發(fā)DISPID_ NAVIGATEC0MPLETE2事件時,將該事件包括的第二句柄寫入其調(diào)用的回調(diào)函數(shù)相應參數(shù); BHO插件在IE瀏覽器每次執(zhí)行回調(diào)函數(shù)的過程中,對回調(diào)函數(shù)進行解析,得到回調(diào)函數(shù)當前記錄的第一句柄和第二句柄,將首個第二句柄與第一句柄進行比較,根據(jù)比較結(jié)果確定當前網(wǎng)頁的網(wǎng)頁內(nèi)容是否加載完畢,其句柄比較示例如圖9所示。BHO插件可采用但不限于預設變量并對該變量賦值的方式,記錄第一句柄和第二句柄。在進行句柄比較時,相當于對該變量的不同參數(shù)進行比較。步驟77 :ΒΗ0插件取消定時器,并向IE瀏覽器的接口函數(shù)中寫入網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以控制IE瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁,執(zhí)行步驟 71。步驟78 在定時器沒有取消時,BHO插件以預設時長為間隔,定期將當前時刻與定時器設置的超時時刻進行比較如果當前時刻與定時器設置的超時時刻相同,BHO插件確定定時器超時,則執(zhí)行步驟79 ;否則重復執(zhí)行本步驟。步驟79 :ΒΗ0插件強制結(jié)束IE瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載;執(zhí)行步驟77??蛇x的,BHO插件可通過向IE瀏覽器發(fā)出結(jié)束網(wǎng)頁內(nèi)容加載的控制指令的方式, 強制結(jié)束IE瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。本實施例可將BHO插件嵌入到IE瀏覽器內(nèi)部,BHO插件可從底層直接控制IE瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉IE瀏覽器,并且由于嵌入IE瀏覽器的BHO 插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了 IE瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制IE瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。本實施例還可通過BHO插件對捕獲的兩類操作事件包括的句柄進行比較,能夠有效判斷網(wǎng)頁內(nèi)容是否加載完畢,有利于待測網(wǎng)頁內(nèi)容的全面檢測;本實施例還引入了超時控制機制來減少用戶不必要的等待時間,因此可及時控制IE瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。圖10為本發(fā)明實施例六提供的網(wǎng)頁地址獲取方法流程圖。如圖10所示的方法包括步驟101 :IE瀏覽器在網(wǎng)頁加載過程中發(fā)現(xiàn)該網(wǎng)頁有引用網(wǎng)頁時,執(zhí)行步驟102。步驟102 =IE瀏覽器觸發(fā)“DISPID_BEF0RENAVIGATE2”事件,將打開該事件引用或跳轉(zhuǎn)的網(wǎng)頁地址對應的網(wǎng)頁。本實施例假設第三操作事件為“DISPID_BEF0RENAVIGATE2”事件,該事件是IE瀏覽器如IE6、IE7、IE8和IE9中與打開網(wǎng)頁相應的標準操作事件。步驟103 =IE瀏覽器在觸發(fā)“DISPID_BEF0RENAVIGATE2”事件時,調(diào)用BHO插件回調(diào)函數(shù)指針指向的回調(diào)函數(shù),并將“DISPID_BEF0RENAVIGATE2”事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,寫入到回調(diào)函數(shù)的相應參數(shù)中。步驟104 =BHO插件解析回調(diào)函數(shù)中關于“DISPID_BEF0RENAVIGATE2”事件相關的參數(shù)。當IE瀏覽器觸發(fā)“DISPID_BEF0RENAVIGATE2”事件時,IE會調(diào)用回調(diào)函數(shù),將當前觸發(fā)的“DISPID_BEF0RENAVIGATE2”事件引用或跳轉(zhuǎn)的網(wǎng)頁地,寫入BHO插件的回調(diào)函數(shù)。 BHO插件對回調(diào)函數(shù)進行解析并記錄解析結(jié)果。步驟105 :ΒΗ0插件記錄解析結(jié)果,該解析結(jié)果包括IE瀏覽器每次觸發(fā)的 “DISPID_BEF0RENAVIGATE2”事件引用或跳轉(zhuǎn)的網(wǎng)頁地址、以及當前記錄網(wǎng)頁地址與在先記錄網(wǎng)頁地址之間的遞歸調(diào)用關系。
圖11為本發(fā)明實施例六中網(wǎng)絡地址遞歸調(diào)用的示例。如圖11所示的示例中,網(wǎng)頁地址之間采用遞歸嵌套引用,如在“1. html”中引用“2. html”,在2. html”中引用“3. html”, 在“3. html”中引用“4. html”。IE瀏覽器在訪問網(wǎng)頁過程中根據(jù)網(wǎng)頁地址之間的引用關系,可自動引用相應的網(wǎng)頁地址,這個過程不需要程序進行特別處理。這些引用的網(wǎng)頁地址攜帶在與打開網(wǎng)頁相應的操作事件“DISPID_BEF0RENAVIGATE2”的消息參數(shù)中。IE瀏覽器將I “DISPID_BEF0RENAVIGATE2”事件的消息參數(shù),如該事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,寫入BHO回調(diào)函數(shù)的相應參數(shù)。也就是說,當IE瀏覽器打開“l(fā).html”時,IE瀏覽器會自動引用“2.html”,IE瀏覽器將“2.html”地址寫入BHO插件的回調(diào)函數(shù);當IE瀏覽器打開 “2. html”后,IE瀏覽器又會自動引用“3. html”,IE瀏覽器將“3. html”地址寫入BHO插件的回調(diào)函數(shù);以此類推,當IE瀏覽器最后打開“4. html”地址時,IE瀏覽器將“4. html”地址寫入BHO插件的回調(diào)函數(shù),BHO插件每次都對回調(diào)函數(shù)進行解析,由此可捕獲從“1. html” 到“4. html”之間遞歸調(diào)用的各網(wǎng)絡地址“2. html”和“3. html”。步驟106 :ΒΗ0插件判斷是否滿足預設結(jié)束條件,如果滿足,則執(zhí)行步驟107 ;否則, 在IE瀏覽器打開下一個待測的網(wǎng)頁地址對應的網(wǎng)頁時,執(zhí)行步驟101。在實際應用中,可根據(jù)實際需要在BHO插件中預先結(jié)束條件。例如在一種可選的實施方式中,結(jié)束條件為當前捕獲的網(wǎng)頁地址與預先確定的目的網(wǎng)頁地址相符。該情形對應的應用場景例如在已知源網(wǎng)頁地址和目的網(wǎng)頁地址時,獲取源網(wǎng)頁地址和目的網(wǎng)頁地址之間串接的所有網(wǎng)頁地址以及這些網(wǎng)絡地址之間的遞歸調(diào)用關系。具體的,如在發(fā)現(xiàn)某一網(wǎng)站某一級鏈接的網(wǎng)頁被植入木馬或感染病毒時,需要找到從該網(wǎng)站的首頁到被植入木馬或感染病毒的網(wǎng)頁之間的遞歸調(diào)用的各網(wǎng)頁地址,以便用戶或管理人員進行木馬或病毒的清除。在另一種可選的實施方式中,結(jié)束條件為當前捕獲的操作事件沒有引用和跳轉(zhuǎn)的網(wǎng)頁地址。該情形對應的應用場景例如需要獲取某網(wǎng)站或某網(wǎng)站的某一網(wǎng)頁包括的所有鏈接,根據(jù)獲取所有鏈接可進行木馬或病毒進行全面掃描以提高網(wǎng)站或網(wǎng)頁的安全性, 或者,根據(jù)獲取所有鏈接可生成該網(wǎng)站或網(wǎng)頁的地圖,或者,根據(jù)獲取所有鏈接可對該網(wǎng)站或網(wǎng)頁進行鏡像復制等。此外,結(jié)束條件還可包括但不限于以下條件捕獲的網(wǎng)頁地址的數(shù)量等于預設的最大收集數(shù)量,從而滿足多樣化應用的實際需求。步驟107 =BHO插件輸出用于表示結(jié)束網(wǎng)頁地址捕獲的提示信息。本實施例將BHO插件嵌入到IE瀏覽器內(nèi)部,并在IE瀏覽器啟動時將BHO插件的回調(diào)函數(shù)指針注冊到IE瀏覽器中;當IE瀏覽器觸發(fā)預設操作事件時,會調(diào)用回調(diào)函數(shù)指針指向的回調(diào)函數(shù);BHO插件通過解析回調(diào)函數(shù)即可從底層直接獲取瀏覽器需要訪問的網(wǎng)頁地址。本實施例可將BHO插件嵌入到IE瀏覽器內(nèi)部。無論采用何種技術實現(xiàn)網(wǎng)頁引用和網(wǎng)頁跳轉(zhuǎn),歸根結(jié)底需要瀏覽器來執(zhí)行頁面引用和跳轉(zhuǎn)行為。本實施例通過嵌入IE瀏覽器的BHO插件直接捕獲IE瀏覽器訪問網(wǎng)頁的行為,得到IE瀏覽器將要打開的網(wǎng)頁地址;只要IE瀏覽器能不斷引用遞歸調(diào)用的網(wǎng)頁,BHO插件即可不斷捕獲IE瀏覽器引用的網(wǎng)頁地址。這使得BHO插件可從底層直接獲取IE瀏覽器需要訪問的網(wǎng)頁地址,從而不需要識別采用各種網(wǎng)頁引入技術編寫的程序,因此可降低程序開發(fā)和維護成本,并提高了獲取網(wǎng)頁地址的成功率。此外,由于嵌入IE瀏覽器的BHO插件占用的內(nèi)存小,因此運行速度較快,從而提高了網(wǎng)頁地址獲取的效率。雖然本發(fā)明是以IE瀏覽器和BHO插件為應用實例詳細說明本發(fā)明的技術方案, 但需要說明的是,本發(fā)明的技術方案還可應用于其他瀏覽器及其支持嵌入的瀏覽器嵌入插件,例如火狐瀏覽器及其支持的嵌入插件,“Opera”瀏覽器及其支持的嵌入插件,“Chrome” 瀏覽器及其支持的嵌入插件,"Safari瀏覽器及其支持的嵌入插件等。通過上述技術方案的分析可知,本發(fā)明提供的網(wǎng)頁安全檢測方法和系統(tǒng)具有如下技術效果(1)本發(fā)明可利用普通瀏覽器和現(xiàn)有殺毒軟件實現(xiàn)對網(wǎng)站的網(wǎng)頁木馬掃描,不需要開發(fā)和維護木馬特征庫,降低了網(wǎng)頁安全檢測所需的成本;而且由于通過瀏覽器模擬用戶訪問,效果比傳統(tǒng)安全掃描效果更準確;(2)由于惡意代碼最終必須在瀏覽器引擎中運行才能發(fā)揮作用,因此只有將其放在瀏覽器中運行才能檢測出來;傳統(tǒng)方法即使將惡意代碼下載到本地,也不能掃描識別出來。本發(fā)明采用瀏覽器模擬用戶訪問的方式,可以處理傳統(tǒng)方法中無法檢測網(wǎng)頁惡意代碼的問題,提供了檢測的完整性;(3)本發(fā)明利用瀏覽器模擬用戶訪問的方式,通過瀏覽器嵌入插件從底層直接獲取待測網(wǎng)頁或目標網(wǎng)站的各鏈接地址,相對現(xiàn)有使用網(wǎng)站爬蟲抓取網(wǎng)頁地址具有更好效果,可以再現(xiàn)用戶在瀏覽器訪問時的情況,處理普通爬蟲無法處理的“iframe”循環(huán)嵌套、各種頁面跳轉(zhuǎn)等問題,從而有利于遍歷目標網(wǎng)站或網(wǎng)頁的各層鏈接地址,將這些地址均作為待測地址,有利于提高網(wǎng)頁安全檢測的完整性。本領域普通技術人員可以理解附圖只是一個實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領域普通技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。
權利要求
1.一種網(wǎng)頁安全檢測方法,其特征在于,包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁;通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志;根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。
2.根據(jù)權利要求1所述的方法,其特征在于,通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁,包括通過所述瀏覽器打開所述待測網(wǎng)頁地址集中首個待測的網(wǎng)頁地址對應的網(wǎng)頁;在確定所述瀏覽器完成關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載、或者強制結(jié)束所述瀏覽器關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入下一個待測的網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的待測的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。
3.根據(jù)權利要求1或2所述的方法,其特征在于,還包括在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針。
4.根據(jù)權利要求3所述的方法,其特征在于,確定所述瀏覽器完成關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載,包括在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);在所述瀏覽器每次觸發(fā)與瀏覽器完成任一網(wǎng)頁元素加載相關的第二操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器插件解析所述回調(diào)函數(shù)以獲取當前記錄的所述第二句柄,且在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
5.根據(jù)權利要求4所述的方法,其特征在于,所述方法還包括在所述瀏覽器打開任一待測的網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器; 如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器;所述強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,包括如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結(jié)束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
6.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括在所述瀏覽器每次觸發(fā)與打開網(wǎng)頁相應的第三操作事件時,通過所述瀏覽器調(diào)用所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、將所述第三操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址寫入所述回調(diào)函數(shù)的相應參數(shù)中,以及通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)并記錄解析結(jié)果,直至所述解析結(jié)果滿足預設結(jié)束條件;所述解析結(jié)果包括每次觸發(fā)的與打開網(wǎng)頁相應的操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,以及多次記錄的網(wǎng)頁地址之間的遞歸調(diào)用關系;根據(jù)所述解析結(jié)果更新所述待測網(wǎng)頁地址集。
7.根據(jù)權利要求6所述的方法,其特征在于,所述預設結(jié)束條件包括以下條件之一當前解析得到的網(wǎng)頁地址與預先確定的目的網(wǎng)頁地址相符;當前所述第三操作事件沒有引用和跳轉(zhuǎn)的網(wǎng)頁地址;解析得到的網(wǎng)頁地址的數(shù)量等于預設的最大收集數(shù)量。
8.根據(jù)權利要求1或2所述的方法,其特征在于,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象插件。
9.根據(jù)權利要求8所述的方法,其特征在于,所述第一操作事件為“DISPID_ NAVIGATEC0MPLETE2”事件,所述第二操作事件為“DISPID_DOCUMENTCOMPLETE”事件,所述第三操作事件為 “DISPID_BEF0RENAVIGATE2” 事件。
10.一種網(wǎng)頁安全檢測系統(tǒng),其特征在于,包括瀏覽器,用于訪問網(wǎng)頁;插件控制器,用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁;殺毒軟件模塊,用于通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志;監(jiān)控分析模塊,用于根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。
11.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述插件控制器包括初始化處理模塊,用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;模擬訪問控制模塊,通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。
12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,所述模擬訪問控制模塊包括第一控制模塊,用于通過所述瀏覽器打開所述待測網(wǎng)頁地址集中首個待測的網(wǎng)頁地址對應的網(wǎng)頁;第二控制模塊,用于在確定所述瀏覽器完成關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載、或者強制結(jié)束所述瀏覽器關于當前打開網(wǎng)頁對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入下一個待測的網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的待測的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁。
13.根據(jù)權利要求12所述的系統(tǒng),其特征在于,所述模擬訪問控制模塊還包括第一捕獲處理模塊、第二捕獲處理模塊和加載完成確定模塊;所述初始化處理模塊,還用于在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針;所述第一捕獲處理模塊,用于在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第一句柄;所述第二捕獲處理模塊,用于通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第二句柄;;所述加載完成確定模塊,用于在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
14.根據(jù)權利要求12或13所述的系統(tǒng),其特征在于,所述模擬訪問控制模塊還包括 定時模塊,用于在所述瀏覽器打開任一待測的網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器; 定時取消模塊,用于如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前待測的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器;加載取消模塊,用于如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結(jié)束所述瀏覽器關于當前待測的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
15.根據(jù)權利要求10所述的系統(tǒng),其特征在于,所述插件控制器還包括鏈接捕獲模塊;所述初始化處理模塊,還用于在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針;所述鏈接捕獲模塊,用于在所述瀏覽器每次觸發(fā)與打開網(wǎng)頁相應的第三操作事件時, 通過所述瀏覽器調(diào)用所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、將所述第三操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址寫入所述回調(diào)函數(shù)的相應參數(shù)中,以及通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)并記錄解析結(jié)果,直至所述解析結(jié)果滿足預設結(jié)束條件;根據(jù)所述解析結(jié)果更新所述待測網(wǎng)頁地址集,所述解析結(jié)果包括每次觸發(fā)的與打開網(wǎng)頁相應的操作事件引用或跳轉(zhuǎn)的網(wǎng)頁地址,以及多次記錄的網(wǎng)頁地址之間的遞歸調(diào)用關系。
16.根據(jù)權利要求15所述的系統(tǒng),其特征在于,所述預設結(jié)束條件包括以下條件之一 當前解析得到的網(wǎng)頁地址與預先確定的目的網(wǎng)頁地址相符;當前所述第三操作事件沒有引用和跳轉(zhuǎn)的網(wǎng)頁地址; 解析得到的網(wǎng)頁地址的數(shù)量等于預設的最大收集數(shù)量。
17.根據(jù)權利要求10、11或15所述的系統(tǒng),其特征在于,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象插件。
18.根據(jù)權利要求17所述的系統(tǒng),其特征在于,所述第一操作事件為“DISPID_ NAVIGATEC0MPLETE2”事件,所述第二操作事件為“DISPID_DOCUMENTCOMPLETE”事件,所述第三操作事件為 “DISPID_BEF0RENAVIGATE2” 事件。
全文摘要
本發(fā)明公開了一種網(wǎng)頁安全檢測方法和系統(tǒng),方法包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器嵌入插件,控制所述瀏覽器逐一訪問待測網(wǎng)頁地址集中各待測的網(wǎng)頁地址對應的網(wǎng)頁;通過殺毒軟件監(jiān)控所述瀏覽器訪問網(wǎng)頁的過程,在所述殺毒軟件捕獲當前網(wǎng)頁包括病毒、木馬或惡意特征代碼時觸發(fā)報警,并記錄報警日志;根據(jù)所述報警日志,生成相應網(wǎng)頁的檢測報告。本發(fā)明降低了網(wǎng)頁安全檢測的成本,提高了網(wǎng)頁安全檢測的完整性。
文檔編號G06F21/00GK102375951SQ20111031712
公開日2012年3月14日 申請日期2011年10月18日 優(yōu)先權日2011年10月18日
發(fā)明者崔福東, 邵晴, 高寧 申請人:北龍中網(wǎng)(北京)科技有限責任公司