本發(fā)明涉及通信技術(shù)/計算機(jī)技術(shù),具體涉及網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測方法。
背景技術(shù):
目前在網(wǎng)頁安全內(nèi)容實(shí)時監(jiān)測領(lǐng)域的主流方式是在服務(wù)器端部署防篡改方案。面向web服務(wù)器端的內(nèi)容檢測研究較為成熟,已經(jīng)出現(xiàn)了不少實(shí)用系統(tǒng)。該方案需要在web服務(wù)器端安裝監(jiān)測軟件,該軟件包含核心內(nèi)嵌、外掛輪詢、事件觸發(fā)等技術(shù)。面向服務(wù)端的檢測系統(tǒng)屬于單機(jī)部署模式。其不僅部署復(fù)雜、應(yīng)用成本高,而且降低網(wǎng)站性能。而在監(jiān)控網(wǎng)頁結(jié)構(gòu)類型眾多、管理又分散的網(wǎng)站時,由于網(wǎng)頁數(shù)量巨大,并不適合通過現(xiàn)有技術(shù)實(shí)現(xiàn)對網(wǎng)頁內(nèi)容的實(shí)時監(jiān)控。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,本發(fā)明提出了克服上述問題或者至少部分地解決上述問題的網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測方法。
為此目的,第一方面,本文提供一種網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測系統(tǒng),包括任務(wù)調(diào)度模塊、監(jiān)控模塊、分析引擎模塊;
任務(wù)調(diào)度模塊、監(jiān)控模塊分別部署于分布式系統(tǒng)的一個第一節(jié)點(diǎn)上;
所述任務(wù)調(diào)度模塊用于將需要抓取的目標(biāo)網(wǎng)址,以及預(yù)設(shè)的抓取時間或抓取頻率分配給各分析引擎模塊;
所述監(jiān)控模塊用于監(jiān)控分析引擎模塊執(zhí)行分析任務(wù)的狀態(tài)和資源占用情況,以及任務(wù)狀態(tài)和資源占用情況上報任務(wù)調(diào)度模塊;
多個分析引擎模塊分別部署在不同的分布式系統(tǒng)的第二節(jié)點(diǎn)上;
分析引擎模塊用于抓取目標(biāo)網(wǎng)頁,獲得網(wǎng)頁文件,對網(wǎng)頁文件進(jìn)行安全性分析。
進(jìn)一步,分析引擎模塊還用于根據(jù)預(yù)設(shè)的抓取規(guī)則獲得線索,根據(jù)線索提取第一網(wǎng)頁文件中的子目標(biāo)網(wǎng)頁地址,根據(jù)線索獲取第二網(wǎng)頁文件。
進(jìn)一步,分析引擎模塊還用于對網(wǎng)頁文件進(jìn)行惡意代碼分析后,還對網(wǎng)頁文件進(jìn)行暗鏈分析;
分析引擎模塊還用于去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,分別計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的的simhash值之間的海明距離,根據(jù)海明距離判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁。
進(jìn)一步,分析引擎模塊還用于去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,分別計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的的simhash值之間的海明距離,根據(jù)海明距離判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁。
進(jìn)一步,分析引擎模塊還用于比較網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的網(wǎng)頁編碼、文件類型、數(shù)據(jù)長度是否一致,若不一致則該網(wǎng)頁為存在安全風(fēng)險的網(wǎng)頁。
進(jìn)一步,分析引擎模塊還用于根據(jù)設(shè)置的敏感詞構(gòu)造dfa狀態(tài)機(jī);對網(wǎng)頁文件進(jìn)行分詞,獲得字符串;在dfa狀態(tài)機(jī)中遍歷查詢所有獲得的字符串,若在dfa狀態(tài)機(jī)中查找到對應(yīng)的字符串,則該網(wǎng)頁文件包含敏感詞。
進(jìn)一步,分析引擎模塊還用于將安全性分析獲得結(jié)果按設(shè)定的方式存儲;
將分析引擎的分析結(jié)果進(jìn)行統(tǒng)計分析,并將分析結(jié)果發(fā)送至交互界面顯示。
第二方面,本發(fā)明提出網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測方法,其特征在于,包括步驟:
根據(jù)預(yù)設(shè)的目標(biāo)網(wǎng)址、以及預(yù)設(shè)的抓取時間或抓取頻率,
通過部署在分布式系統(tǒng)上的網(wǎng)站爬蟲工具抓取目標(biāo)網(wǎng)頁,獲得網(wǎng)頁文件;
對網(wǎng)頁文件進(jìn)行安全性分析。
可選的,所述網(wǎng)站爬蟲工具抓取目標(biāo)網(wǎng)頁,包括步驟:
根據(jù)預(yù)設(shè)的抓取規(guī)則獲得線索,根據(jù)線索提取第一網(wǎng)頁文件中的子目標(biāo)網(wǎng)頁地址,根據(jù)線索獲取第二網(wǎng)頁文件。
可選的,所述步驟對網(wǎng)頁文件進(jìn)行安全性分析包括,對網(wǎng)頁文件進(jìn)行惡意代碼分析后,還對網(wǎng)頁文件進(jìn)行暗鏈分析。
可選的,所述對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟:去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的各自的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的海明距離,根據(jù)海明距離判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁。
可選的,所述對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟:比較網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的網(wǎng)頁編碼、文件類型、數(shù)據(jù)長度是否一致,若不一致則該網(wǎng)頁為存在安全風(fēng)險的網(wǎng)頁。
可選的,所述對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟,根據(jù)設(shè)置的敏感詞構(gòu)造dfa狀態(tài)機(jī);對網(wǎng)頁文件進(jìn)行分詞,獲得字符串;在dfa狀態(tài)機(jī)中遍歷查詢所有獲得的字符串,若在dfa狀態(tài)機(jī)中查找到對應(yīng)的字符串,則該網(wǎng)頁文件包含敏感詞。
可選的,在步驟對網(wǎng)頁文件進(jìn)行安全性分析之后,還包括步驟:
將安全性分析獲得結(jié)果按設(shè)定的方式存儲;
將分析引擎的分析結(jié)果進(jìn)行統(tǒng)計分析,并將分析結(jié)果發(fā)送至交互界面顯示。
由上述技術(shù)方案可知,區(qū)別于現(xiàn)有技術(shù)系統(tǒng)采用分布式部署,允許客戶在需要時靈活的增加或減少線上的分析引擎數(shù)量,從而實(shí)現(xiàn)對含有海量的動態(tài)數(shù)據(jù)頁面進(jìn)行監(jiān)測。
用戶根據(jù)檢測任務(wù)的需求,在監(jiān)控模塊中預(yù)設(shè)對應(yīng)目的網(wǎng)址的抓取時間或抓取頻率,從而根據(jù)檢監(jiān)測網(wǎng)站的特點(diǎn)運(yùn)行監(jiān)測任務(wù),避免對客戶網(wǎng)絡(luò)和服務(wù)器本身造成壓力,對服務(wù)器性能影響較小。
上述方法無需在服務(wù)器上安裝客戶端,能夠透明接入客戶網(wǎng)絡(luò)環(huán)境,易于部署,系統(tǒng)內(nèi)包含任務(wù)調(diào)度和監(jiān)視模塊,只需簡單的配置網(wǎng)站的首頁及基本參數(shù)即可啟動監(jiān)測。極大的降低了實(shí)施維護(hù)成本。
前面是提供對本發(fā)明一些方面的理解的簡要發(fā)明內(nèi)容。這個部分既不是本發(fā)明及其各種實(shí)施例的詳盡表述也不是窮舉的表述。它既不用于識別本發(fā)明的重要或關(guān)鍵特征也不限定本發(fā)明的范圍,而是以一種簡化形式給出本發(fā)明的所選原理,作為對下面給出的更具體的描述的簡介。應(yīng)當(dāng)理解,單獨(dú)地或者組合地利用上面闡述或下面具體描述的一個或多個特征,本發(fā)明的其它實(shí)施例也是可能的。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為現(xiàn)有技術(shù)中實(shí)施所述方法的監(jiān)測系統(tǒng)結(jié)構(gòu)示意圖;
圖2為本發(fā)明的一個實(shí)施例中執(zhí)行所述方法的流程示意圖。
具體實(shí)施方式
下面將結(jié)合示例性的檢測系統(tǒng)描述本發(fā)明。
如圖1所示,在本發(fā)明的一個實(shí)施例中,本發(fā)明公開的網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測系統(tǒng)用于實(shí)現(xiàn)本發(fā)明對應(yīng)的方法,其中系統(tǒng)包括任務(wù)調(diào)度模塊、監(jiān)控模塊、分析引擎模塊;
任務(wù)調(diào)度模塊、監(jiān)控模塊部署于分布式系統(tǒng)的一個第一節(jié)點(diǎn)上;在分布式系統(tǒng)中第一幾點(diǎn)可以有1個(任務(wù)調(diào)度模塊、監(jiān)控模塊都部署在同一個第一節(jié)點(diǎn)中),也可以有2個((任務(wù)調(diào)度模塊、監(jiān)控模塊都可以是分別部署在不同的第一節(jié)點(diǎn)中)。任務(wù)調(diào)度模塊和監(jiān)控模塊只有一個。
所述任務(wù)調(diào)度模塊用于將需要抓取的目標(biāo)網(wǎng)址,以及預(yù)設(shè)的抓取時間或抓取頻率分配給各分析引擎模塊;
所述監(jiān)控模塊用于監(jiān)控分析引擎模塊執(zhí)行分析任務(wù)的狀態(tài)和資源占用情況,以及任務(wù)狀態(tài)和資源占用情況上報任務(wù)調(diào)度模塊;
多個分析引擎模塊分別部署在不同的分布式系統(tǒng)的第二節(jié)點(diǎn)上;可以理解的是,可以根據(jù)監(jiān)控任務(wù)的情況,部署對應(yīng)數(shù)量的分析引擎模塊,在同一個節(jié)點(diǎn)上,不存在多個分析引擎模塊;第一節(jié)點(diǎn)連接第二節(jié)點(diǎn)。第一節(jié)點(diǎn)上也可以部署分析引擎模塊,即一個第一節(jié)點(diǎn)可以是第一節(jié)點(diǎn)的同時也是第二節(jié)點(diǎn)。
分析引擎模塊用于抓取目標(biāo)網(wǎng)頁,獲得網(wǎng)頁文件,對網(wǎng)頁文件進(jìn)行安全性分析。
區(qū)別于現(xiàn)有技術(shù)系統(tǒng)采用分布式部署,允許客戶在需要時靈活的增加或減少線上的分析引擎數(shù)量,從而實(shí)現(xiàn)對海量的數(shù)據(jù)頁面進(jìn)行監(jiān)測。
在本發(fā)明的另一些實(shí)施例中,分析引擎模塊還用于根據(jù)預(yù)設(shè)的抓取規(guī)則獲得線索,根據(jù)線索提取第一網(wǎng)頁文件中的子目標(biāo)網(wǎng)頁地址,根據(jù)線索獲取第二網(wǎng)頁文件。
預(yù)設(shè)的抓取規(guī)則可以限定在第一網(wǎng)頁文件中抓取鏈接的位置、設(shè)置抓取鏈接的深度(即第一個第一網(wǎng)頁文件到最后一個第二網(wǎng)頁文件所經(jīng)過的鏈接個數(shù))、頁面數(shù)、第一網(wǎng)頁文件中的鏈接類型等。
通過在監(jiān)控模塊中設(shè)置抓取規(guī)則,使用戶可以根據(jù)檢測任務(wù)的需求,有針對的抓取網(wǎng)頁的數(shù)據(jù);同時,通過根據(jù)設(shè)定的深度、類型等線索,實(shí)現(xiàn)網(wǎng)站爬蟲自動抓取第一級網(wǎng)頁到設(shè)定深度的網(wǎng)頁的內(nèi)容,從而實(shí)現(xiàn)大量的動態(tài)網(wǎng)頁的監(jiān)測,有效識別網(wǎng)頁替換、惡意鏈接等行為。
分析引擎模塊還用于根據(jù)預(yù)設(shè)的抓取規(guī)則獲得線索,根據(jù)線索提取第一網(wǎng)頁文件中的子目標(biāo)網(wǎng)頁地址,根據(jù)線索獲取第二網(wǎng)頁文件。
在本發(fā)明的另一些實(shí)施例中,分析引擎模塊還用于對網(wǎng)頁文件進(jìn)行惡意代碼分析后,還對網(wǎng)頁文件進(jìn)行暗鏈分析;
分析引擎模塊還用于去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,分別計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的的simhash值之間的海明距離,根據(jù)海明距離判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁。
或者分析引擎模塊用于去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,再分別計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的的simhash值之間的海明距離,根據(jù)海明距離判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁;
分析引擎模塊還用于比較網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的網(wǎng)頁編碼、文件類型、數(shù)據(jù)長度是否一致,若不一致則該網(wǎng)頁為存在安全風(fēng)險的網(wǎng)頁。
該系統(tǒng)包括用于與用戶交互的交互界面,其可以是webui(即基于html和腳本所設(shè)計的用戶交互界面);包括用于調(diào)度分布式任務(wù)的任務(wù)調(diào)度模塊,任務(wù)調(diào)度模塊用于將需要抓取的目標(biāo)網(wǎng)址分配給各分析引擎模塊;分析引擎模塊包括網(wǎng)站爬蟲單元、分析處理單元和結(jié)果上報單元。本領(lǐng)域技術(shù)人員容易理解,可以根據(jù)檢測網(wǎng)頁任務(wù)的大小,部署多個分析引擎模塊,實(shí)現(xiàn)對海量網(wǎng)頁的實(shí)時監(jiān)控。監(jiān)控模塊與任務(wù)調(diào)度模塊、各分析引擎模塊通信連接,用于監(jiān)控分析引擎模塊執(zhí)行分析任務(wù)的狀態(tài);網(wǎng)站爬蟲單元用于根據(jù)目標(biāo)網(wǎng)址抓取網(wǎng)頁文件。分析處理單元與網(wǎng)站爬蟲模塊通信連接,用于對抓取的網(wǎng)頁進(jìn)行安全性分析。結(jié)果上報單元用于將安全分析的結(jié)果上傳至存儲設(shè)備存儲,以及在對安全分析的結(jié)果進(jìn)行標(biāo)準(zhǔn)化處理后,存儲于數(shù)據(jù)庫中。
本發(fā)明公開網(wǎng)頁內(nèi)容安全實(shí)時監(jiān)測方法,包括步驟:
根據(jù)預(yù)設(shè)的目標(biāo)網(wǎng)址、以及預(yù)設(shè)的抓取時間或抓取頻率,
通過部署在分布式系統(tǒng)上的網(wǎng)站爬蟲工具抓取目標(biāo)網(wǎng)頁,獲得網(wǎng)頁文件;
對網(wǎng)頁文件進(jìn)行安全性分析。
網(wǎng)站爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人),是一種按照一定的線索,自動的抓取萬維網(wǎng)信息的程序或者腳本,其中本文的實(shí)施例中優(yōu)選采用基于web2.0(web2.0,指的是一個利用web的平臺,由用戶主導(dǎo)而生成的內(nèi)容互聯(lián)網(wǎng)產(chǎn)品模式,為了區(qū)別傳統(tǒng)由網(wǎng)站雇員主導(dǎo)生成的內(nèi)容而定義為web2.0)的網(wǎng)站爬蟲,從而支持網(wǎng)站中的javascript(javascript是一種由netscape的livescript發(fā)展而來的原型)、ajax(asynchronousjavascriptandxml,異步的javascript和xml)等web2.0的技術(shù)特性,能夠有效的提高客戶端模式獲取網(wǎng)頁可見范圍,為后續(xù)內(nèi)容分析提供充分的數(shù)據(jù)支撐。
本文中的網(wǎng)頁文件為根據(jù)http協(xié)議(超文本傳輸協(xié)議,hypertexttransferprotocol,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議)從目標(biāo)網(wǎng)址中獲取到的文本。
區(qū)別于現(xiàn)有技術(shù)系統(tǒng)采用分布式部署,允許客戶在需要時靈活的增加或減少線上的分析引擎數(shù)量,從而實(shí)現(xiàn)對海量數(shù)據(jù)頁面進(jìn)行監(jiān)測。
用戶根據(jù)檢測任務(wù)的需求,在監(jiān)控模塊中預(yù)設(shè)對應(yīng)目的網(wǎng)址的抓取時間或抓取頻率,從而根據(jù)檢監(jiān)測網(wǎng)站的特點(diǎn)運(yùn)行監(jiān)測任務(wù),避免對客戶網(wǎng)絡(luò)和服務(wù)器本身造成壓力,對服務(wù)器性能影響較小。
上述方法無需在服務(wù)器上安裝客戶端,能夠透明接入客戶網(wǎng)絡(luò)環(huán)境,易于部署,系統(tǒng)內(nèi)包含任務(wù)調(diào)度和監(jiān)視模塊,只需簡單的配置網(wǎng)站的首頁及基本參數(shù)即可啟動監(jiān)測。極大的降低了實(shí)施維護(hù)成本。在本文一個具體實(shí)施例中所述網(wǎng)站爬蟲工具抓取目標(biāo)網(wǎng)頁,包括步驟:
根據(jù)預(yù)設(shè)的抓取規(guī)則獲得線索,例如提取第一網(wǎng)頁文件中的鏈接作為線索,根據(jù)線索獲取第二網(wǎng)頁文件。
預(yù)設(shè)的抓取規(guī)則可以限定在第一網(wǎng)頁文件中抓取鏈接的位置、設(shè)置抓取鏈接的深度(即第一個第一網(wǎng)頁文件到最后一個第二網(wǎng)頁文件所經(jīng)過的鏈接個數(shù))、頁面數(shù)、第一網(wǎng)頁文件中的鏈接類型等。
通過在監(jiān)控模塊中設(shè)置抓取規(guī)則,使用戶可以根據(jù)檢測任務(wù)的需求,有針對的抓取網(wǎng)頁的數(shù)據(jù);同時,通過根據(jù)設(shè)定的深度、類型等線索,實(shí)現(xiàn)網(wǎng)站爬蟲自動抓取第一級網(wǎng)頁到設(shè)定深度的網(wǎng)頁的內(nèi)容,從而實(shí)現(xiàn)大量的動態(tài)網(wǎng)頁的監(jiān)測,有效識別網(wǎng)頁替換、惡意鏈接等行為。
所述步驟對網(wǎng)頁文件進(jìn)行安全性分析包括,對網(wǎng)頁文件進(jìn)行惡意代碼分析后,還對網(wǎng)頁文件進(jìn)行暗鏈分析。
暗鏈通常是指黑客在入侵網(wǎng)站獲取網(wǎng)站控制權(quán)限后,在網(wǎng)頁中植入鏈接信息等代碼。暗鏈的實(shí)現(xiàn)原理很簡單,均是通過css樣式完成,按實(shí)現(xiàn)方式來分類,通常有四種類型的暗鏈:
1.通過將display屬性設(shè)置為none等使得鏈接信息不可見。
2.通過將鏈接字符無限小,達(dá)到肉眼不可見。
3.通過使鏈接字符與網(wǎng)頁背景色一致或相似,達(dá)到鏈接不可見。
4.通過鏈接位置定位,使得鏈接出現(xiàn)至可見屏外,達(dá)到暗鏈效果。
暗鏈的最顯著牲就是“暗”,暗即在它是隱藏在網(wǎng)頁源代碼中的,通過肉眼直接在頁面上看不見的。
在對網(wǎng)頁文件進(jìn)行惡意代碼分析后,還對網(wǎng)頁進(jìn)行暗鏈分析,減少了人工分析網(wǎng)絡(luò)安全的難度,提高了網(wǎng)頁安全監(jiān)測的性能。
在本文的一個實(shí)施例中對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟:去除網(wǎng)頁文件中的標(biāo)簽注釋文本后,計算獲得的網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的各自的simhash值,計算獲得的網(wǎng)頁文件的simhash值與安全網(wǎng)頁文件之間的海明距離,根據(jù)海明距離值判斷網(wǎng)頁相似度,若相似,則該獲取的網(wǎng)頁文件為安全網(wǎng)頁。
從一個文本計算得到simhash值是過程大概如下:
將文本進(jìn)行關(guān)鍵詞抽取(其中包括分詞和計算權(quán)重),抽取出n個(關(guān)鍵詞,權(quán)重)對,將“(關(guān)鍵詞,權(quán)重)對”記為feature_weight_pairs=[fw1,fw2…fwn],其中fwn=(feature_n,weight_n)。
hash_weight_pairs=[(hash(feature),weight)forfeature,weightinfeature_weight_pairs]生成(hash,weight),此時假設(shè)hash生成的位數(shù)bits_count=6;
然后對hash_weight_pairs進(jìn)行位的縱向累加,如果該位是1,則+weight,如果是0,則-weight,最后生成bits_count個數(shù)字,例如是[13,108,-22,-5,-32,55],這里產(chǎn)生的值和hash函數(shù)所用的算法相關(guān)。
根據(jù)每一位的是大于等于0,則該位為1,若為負(fù)數(shù)則為0,例如[13,108,-22,-5,-32,55]得到simhash值為110001。
simhash本質(zhì)上是局部敏感性的hash,和md5之類的不一樣。正因?yàn)樗木植棵舾行?,所以我們可以使用海明距離來衡量simhash值的相似度。
海明距離值的計算方式為:二進(jìn)制串a(chǎn)和二進(jìn)制串b的海明距離就是axorb后二進(jìn)制數(shù)值中1的個數(shù)。
由上述算法可知,比較網(wǎng)頁文件與對應(yīng)安全網(wǎng)頁的計算量級小,計算速度快,從而在提高海量網(wǎng)頁的實(shí)時監(jiān)測小了。
若網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁通過計算海明距離比較,判斷得出網(wǎng)頁文件與安全網(wǎng)頁的內(nèi)容相似度符合預(yù)設(shè)值,則認(rèn)為網(wǎng)頁文件未被修改,是安全的。
在另一些實(shí)施例中,對所述對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟:比較網(wǎng)頁文件與對應(yīng)的安全網(wǎng)頁文件的網(wǎng)頁編碼、文件類型、數(shù)據(jù)長度是否一致,若不一致則該網(wǎng)頁為存在安全風(fēng)險的網(wǎng)頁。
通過對文件編碼、文件類型和數(shù)據(jù)長度等比較,從而較快的識別網(wǎng)頁文件是否被整體串改的情況。
所述對網(wǎng)頁文件進(jìn)行安全性分析還包括步驟,根據(jù)設(shè)置的敏感詞構(gòu)造dfa(有窮狀態(tài)自動機(jī))狀態(tài)機(jī);對網(wǎng)頁文件進(jìn)行分詞,獲得字符串;在dfa狀態(tài)機(jī)中遍歷查詢所有獲得的字符串,若在dfa狀態(tài)機(jī)中查找到對應(yīng)的字符串,則該網(wǎng)頁文件包含敏感詞。
構(gòu)造dfa狀態(tài)機(jī)的過程如下:
1:把{s}放進(jìn)隊列l(wèi)和集合d中。其中s是nfa(有窮狀態(tài)自動機(jī))的起始狀態(tài)。隊列l(wèi)放置的是未被處理的已經(jīng)創(chuàng)建了的dfa狀態(tài),集合d放置的是已經(jīng)存在的dfa狀態(tài)。dfa的每一個狀態(tài)都對應(yīng)著nfa的一些狀態(tài)。
2:從隊列l(wèi)中取出一個狀態(tài),計算從這個狀態(tài)輸出的所有邊所接受的字符集的并集,然后對該集合中的每一個字符尋找接受這個字符的邊,把這些邊的目標(biāo)狀態(tài)的并集t計算出來。如果t∈d則代表當(dāng)前字符指向了一個已知的dfa狀態(tài)。否則則代表當(dāng)前字符指向了一個未創(chuàng)建的dfa狀態(tài),這個時候就把t放進(jìn)l和d中。在這個步驟里有兩層循環(huán):第一層是遍歷所有接受的字符的并集,第二層是對每一個可以接受的字符遍歷所有輸出的邊計算目標(biāo)dfa狀態(tài)所包含的nfa狀態(tài)的集合。
dfa狀態(tài)機(jī)構(gòu)造完成后,向狀態(tài)機(jī)輸入字符串,若得到終止?fàn)顟B(tài),則字符串中包含敏感詞。
相比于現(xiàn)有技術(shù)中使用正則表達(dá)式,文本查找等監(jiān)測敏感詞的方法,本文提供的構(gòu)造dfa從而監(jiān)測敏感詞的方法其監(jiān)測敏感詞的速度更快,效率更高,更適用于實(shí)現(xiàn)海量的網(wǎng)頁內(nèi)容中的敏感詞監(jiān)測。
將安全性分析獲得結(jié)果按設(shè)定的方式存儲;
將分析引擎的分析結(jié)果進(jìn)行統(tǒng)計分析,并將分析結(jié)果發(fā)送至交互界面顯示。
如圖2所示,在本發(fā)明的一個完整實(shí)施例中,其主要實(shí)施過程包括:
s201:輸入預(yù)設(shè)的監(jiān)測網(wǎng)站的地址,抓取規(guī)則(包括抓取深度、過濾文件類型)并發(fā)抓取網(wǎng)頁的數(shù)量、登入代理、數(shù)據(jù)存儲等信息;
s202:網(wǎng)站爬蟲根據(jù)預(yù)設(shè)的上述信息抓取網(wǎng)頁文件(即下載網(wǎng)頁),
s203:在抓取的過程中,根據(jù)http協(xié)議獲得網(wǎng)頁文件的網(wǎng)頁編碼、文件類型、數(shù)據(jù)長度等信息;
s204:將網(wǎng)頁文件轉(zhuǎn)換為utf-8編碼;
s205:解析網(wǎng)頁文件的結(jié)構(gòu),提取網(wǎng)頁文件的標(biāo)題、內(nèi)容等;
s206:根據(jù)抓取規(guī)則判斷網(wǎng)頁文件中的鏈接是否作為線索用于遞歸獲得第二網(wǎng)頁文件,若是則s207將該鏈接放入url隊列等待抓取;若否則不向url隊列中放入網(wǎng)頁文件的鏈接;
對抓取到的網(wǎng)頁進(jìn)行s211網(wǎng)頁相似度分析、s212敏感詞分析、s221惡意代碼分析和s222暗鏈分析;
在分析惡意代碼之后對其進(jìn)行暗鏈分析;
在網(wǎng)頁相似度分析之后進(jìn)行敏感詞分析;
s231上述分析的結(jié)果和數(shù)據(jù)上報至相應(yīng)的標(biāo)準(zhǔn)化模塊,將分析結(jié)果按預(yù)設(shè)的格式存儲。
s241管理待抓取的url隊列,url隊列中的url為待抓取的url;管理包括增加url,取出url等操作。
可以理解的是上述方法可以通過軟件/計算機(jī)程序?qū)崿F(xiàn),也可以通過硬件實(shí)現(xiàn),在通過軟件實(shí)現(xiàn)是,該軟件/計算機(jī)程序存儲或運(yùn)行于計算機(jī)可讀介質(zhì)中。
本文中使用的“至少一個”、“一個或多個”以及“和/或”是開放式的表述,在使用時可以是聯(lián)合的和分離的。例如,“a、b和c中的至少一個”,“a、b或c中的至少一個”,“a、b和c中的一個或多個”以及“a、b或c中的一個或多個”指僅有a、僅有b、僅有c、a和b一起、a和c一起、b和c一起或a、b和c一起。
本文中使用的術(shù)語“計算機(jī)可讀介質(zhì)”是指參與將指令提供給處理器執(zhí)行的任何有形存儲設(shè)備和/或傳輸介質(zhì)。計算機(jī)可讀介質(zhì)可以是在ip網(wǎng)絡(luò)上的網(wǎng)絡(luò)傳輸(如soap)中編碼的串行指令集。這樣的介質(zhì)可以采取很多形式,包括但不限于非易失性介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)包括例如nvram或者磁或光盤。易失性介質(zhì)包括諸如主存儲器的動態(tài)存儲器(如ram)。計算機(jī)可讀介質(zhì)的常見形式包括例如軟盤、柔性盤、硬盤、磁帶或任何其它磁介質(zhì)、磁光介質(zhì)、cd-rom、任何其它光介質(zhì)、穿孔卡、紙帶、任何其它具有孔形圖案的物理介質(zhì)、ram、prom、eprom、flash-eprom、諸如存儲卡的固態(tài)介質(zhì)、任何其它存儲芯片或磁帶盒、后面描述的載波、或計算機(jī)可以讀取的任何其它介質(zhì)。電子郵件的數(shù)字文件附件或其它自含信息檔案或檔案集被認(rèn)為是相當(dāng)于有形存儲介質(zhì)的分發(fā)介質(zhì)。當(dāng)計算機(jī)可讀介質(zhì)被配置為數(shù)據(jù)庫時,應(yīng)該理解該數(shù)據(jù)庫可以是任何類型的數(shù)據(jù)庫,例如關(guān)系數(shù)據(jù)庫、層級數(shù)據(jù)庫、面向?qū)ο蟮臄?shù)據(jù)庫等等。相應(yīng)地,認(rèn)為本發(fā)明包括有形存儲介質(zhì)或分發(fā)介質(zhì)和現(xiàn)有技術(shù)公知的等同物以及未來開發(fā)的介質(zhì),在這些介質(zhì)中存儲本發(fā)明的軟件實(shí)施。
本文中使用的術(shù)語“確定”、“運(yùn)算”和“計算”及其變型可以互換使用,并且包括任何類型的方法、處理、數(shù)學(xué)運(yùn)算或技術(shù)。
本文中使用的術(shù)語“模塊”或“工具”是指任何已知的或以后發(fā)展的硬件、軟件、固件、人工智能、模糊邏輯或能夠執(zhí)行與該元件相關(guān)的功能的硬件和軟件的組合。另外,雖然用示例性實(shí)施方式來描述本發(fā)明,但應(yīng)當(dāng)理解本發(fā)明的各方面可以單獨(dú)要求保護(hù)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實(shí)體或者操作與另一個實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。
盡管已經(jīng)對上述各實(shí)施例進(jìn)行了描述,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例做出另外的變更和修改,所以以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利保護(hù)范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍之內(nèi)。