田柳 龔光軍 林黃智
關(guān)鍵詞:內(nèi)容安全;圖像識別;分布式;自動化監(jiān)控
1 引言
計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展為人類信息與科技的傳播提供了前所未有的方便與速度,然而飛速發(fā)展的技術(shù)是一把雙刃劍,也為網(wǎng)上各類不良信息的傳播、滋生內(nèi)容安全隱患的溫床創(chuàng)造了條件。
內(nèi)容安全包括兩個方面[1-3],第一個方面是對網(wǎng)頁內(nèi)容的保護(hù),例如防范對網(wǎng)站內(nèi)容的篡改,第二個方面是指網(wǎng)頁內(nèi)容需要符合各類政治、法律、道德等方面的要求。特別是防止網(wǎng)站中出現(xiàn)色情、賭博、恐暴、反動及垃圾廣告等影響國家安全、社會民生、個人生活的風(fēng)險內(nèi)容。僅2020年上半年,國家計算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心通過監(jiān)測發(fā)現(xiàn)我國境內(nèi)出現(xiàn)篡改現(xiàn)象的網(wǎng)站數(shù)量已達(dá)147682個,監(jiān)控網(wǎng)站內(nèi)容、肅清互聯(lián)網(wǎng)環(huán)境、保障內(nèi)容安全是我們刻不容緩的艱巨任務(wù)。
大量中小網(wǎng)站因為架構(gòu)單薄、不具備有效的安全防護(hù)措施或維護(hù)人員技術(shù)水平有限等,頻繁出現(xiàn)網(wǎng)站內(nèi)容失效或被改動等質(zhì)量問題,存在容易被篡改及遭受黑客攻擊等安全隱患。對于這一類中小網(wǎng)站,傳統(tǒng)的人工監(jiān)控手段無法及時發(fā)現(xiàn)這些質(zhì)量問題及安全隱患,使其更容易成為黑客攻擊的重要目標(biāo)。因此高效準(zhǔn)確的網(wǎng)站自動化監(jiān)控系統(tǒng),是確保中小網(wǎng)站內(nèi)容安全的“必備良藥”。
2 常用自動化網(wǎng)站監(jiān)控手段介紹
自動化網(wǎng)站監(jiān)控常用爬蟲技術(shù)或接口技術(shù)來實(shí)現(xiàn)[4-5],爬蟲技術(shù)是對需要監(jiān)控的網(wǎng)站,針對性地根據(jù)網(wǎng)站特點(diǎn)編寫Python 爬蟲程序或使用現(xiàn)有爬蟲工具,獲取網(wǎng)站數(shù)據(jù)并進(jìn)行網(wǎng)站對比,進(jìn)行網(wǎng)站內(nèi)容監(jiān)控,監(jiān)控網(wǎng)站是否存在無法打開或發(fā)生篡改的現(xiàn)象。這種方法節(jié)省時間、維護(hù)成本低、抓取的數(shù)據(jù)量遠(yuǎn)超手動收集的數(shù)據(jù)量。但是這種方法也存在一些問題,比如抓取工具較為依賴于外部網(wǎng)站,無法控制該網(wǎng)站何時更改其結(jié)構(gòu)或內(nèi)容,因此需要在抓取工具過時,重新進(jìn)行抓取,更新維護(hù)工作量較大;此外大量網(wǎng)站使用多種不同的方法(例如IP阻止)來阻止爬蟲工具抓取其內(nèi)容,所以有可能被阻止訪問,從而造成無效監(jiān)控或誤報問題。
另一種最常見的監(jiān)控技術(shù)是接口監(jiān)控,這種監(jiān)控的效率最高,而且最容易發(fā)現(xiàn)問題,但是接口的監(jiān)控并不能準(zhǔn)確地反應(yīng)用戶看到的前端頁面狀態(tài),比如數(shù)據(jù)異常、空白頁面、部分內(nèi)容加載異常等,這些情況不能通過自動化獲取接口數(shù)據(jù)來實(shí)現(xiàn)全方位監(jiān)控,所以需要使用頁面級別的圖像化監(jiān)控。
3 分布式監(jiān)控系統(tǒng)設(shè)計與實(shí)現(xiàn)
本文旨在針對現(xiàn)有網(wǎng)站自動化監(jiān)控技術(shù)存在的問題,基于圖像識別的原理,設(shè)計一種面向網(wǎng)站內(nèi)容安全的自動化監(jiān)控系統(tǒng),為了避免單點(diǎn)監(jiān)控時存在的系統(tǒng)穩(wěn)定性差、告警誤報率高等問題,構(gòu)建分布式架構(gòu)的監(jiān)控系統(tǒng)。
3.1 系統(tǒng)整體設(shè)計
系統(tǒng)設(shè)計的基本思路是,構(gòu)建分布式系統(tǒng),在多個分布式監(jiān)控終端上部署監(jiān)控任務(wù),利用計算機(jī)視覺處理技術(shù),運(yùn)用圖像識別的原理[6],模擬人工訪問分發(fā)網(wǎng)站,獲取網(wǎng)站內(nèi)容并自動進(jìn)行識別、對比和分析,實(shí)時監(jiān)測網(wǎng)站能否打開,內(nèi)容有無異常,并將結(jié)果匯總到分布式系統(tǒng)的主監(jiān)控終端上,進(jìn)行綜合判斷,可以在問題發(fā)生的第一時間內(nèi),及時發(fā)現(xiàn)網(wǎng)站無法登錄、網(wǎng)站被惡意篡改現(xiàn)象,及時推送告警,基于多個監(jiān)控終端結(jié)果,從而排除偶發(fā)性網(wǎng)站打開失敗或錯誤、監(jiān)控終端或監(jiān)控程序本身的問題,使得結(jié)果更準(zhǔn)確。
3.2 系統(tǒng)功能實(shí)現(xiàn)
3.2.1 構(gòu)建分布式監(jiān)控系統(tǒng)
構(gòu)建分布式監(jiān)控系統(tǒng),采用一個主監(jiān)控終端及多個分布式監(jiān)控終端的模式。其中,主監(jiān)控終端負(fù)責(zé)對網(wǎng)站資源訪問及監(jiān)控任務(wù)進(jìn)行調(diào)度并觸發(fā)任務(wù)執(zhí)行,向分布式監(jiān)控終端部署采集任務(wù),并分配給多個監(jiān)控線程;啟動監(jiān)控線程后,分布式監(jiān)控終端從隊列資源獲取URL,根據(jù)監(jiān)控任務(wù)指定的目標(biāo)網(wǎng)站打開對應(yīng)的頁面,下載并獲取頁面數(shù)據(jù),各分布式監(jiān)控終端通過對獲取的頁面內(nèi)容自動進(jìn)行識別分析,實(shí)時監(jiān)測網(wǎng)站是否能打開,內(nèi)容有無異常。各分布式監(jiān)控終端實(shí)時將監(jiān)測結(jié)果發(fā)送至主監(jiān)控終端,并定期進(jìn)行監(jiān)控任務(wù)同步,監(jiān)控任務(wù)由主監(jiān)控終端下發(fā)至各監(jiān)控終端。
當(dāng)不同監(jiān)控終端對某網(wǎng)站的監(jiān)控結(jié)果不同時,需通過對多次測試結(jié)果的分析來排除偶發(fā)性網(wǎng)站無法打開或錯誤、監(jiān)控終端或監(jiān)控程序本身的問題,以保證監(jiān)控結(jié)果的準(zhǔn)確性,避免誤報告警。此外,在排除偶發(fā)性網(wǎng)站打開失敗或錯誤、監(jiān)控終端或監(jiān)控程序本身的問題后,應(yīng)考慮是否為部分區(qū)域發(fā)生惡意DNS劫持或用戶請求非法重定向等問題。
3.2.2 基于圖像識別的原理進(jìn)行網(wǎng)站內(nèi)容監(jiān)控
本文所述的網(wǎng)站內(nèi)容監(jiān)控的基本功能是通過圖形化編程工具Sikuli實(shí)現(xiàn),它由MIT開發(fā),以python為基礎(chǔ),通過搭建Java環(huán)境來運(yùn)行,不需要寫一行行代碼,這使得程序員編寫代碼工作大大簡化,可以直接使用截圖替代代碼。它使用該工具來實(shí)現(xiàn)最基本的監(jiān)控功能,并以網(wǎng)站中的典型圖標(biāo)、圖片及文字等為參照物,實(shí)時監(jiān)測網(wǎng)站是否能打開,內(nèi)容有無異常。
在基本的網(wǎng)站打開和典型圖標(biāo)對比的基礎(chǔ)上,為進(jìn)一步提升監(jiān)控準(zhǔn)確率,對于監(jiān)控的對象網(wǎng)站進(jìn)行圖像特征,包括網(wǎng)站所包含的典型圖標(biāo)、圖片及文字等,對圖像的特征進(jìn)行提取及學(xué)習(xí),建立特征標(biāo)識,在監(jiān)控的過程中,將獲取的網(wǎng)站內(nèi)容與特征標(biāo)識進(jìn)行比對,并通過差異的大小來判斷網(wǎng)站內(nèi)容是否存在異常;針對部分網(wǎng)站內(nèi)容經(jīng)常有變動的情況,將網(wǎng)站內(nèi)容進(jìn)行動靜內(nèi)容劃分,對于變化較大的動態(tài)部分,多次采集網(wǎng)站的頁面圖像,計算動態(tài)部分的變化范圍,當(dāng)監(jiān)控對象網(wǎng)站的動態(tài)部分變化超過這一范圍時,判斷網(wǎng)站內(nèi)容存在異常。
4 測試驗證
為了驗證本文提出的系統(tǒng)在實(shí)際網(wǎng)站監(jiān)控中的應(yīng)用情況,進(jìn)行了實(shí)驗系統(tǒng)的搭建,并完成了若干測試驗證。實(shí)驗系統(tǒng)使用了5臺電腦,組成文中所述分布式監(jiān)控系統(tǒng),其中1臺電腦為主監(jiān)控終端,其余作為各分布式監(jiān)控終端,將監(jiān)控的目標(biāo)設(shè)置為TOP100網(wǎng)站。系統(tǒng)功能測試目標(biāo)、過程及最終結(jié)果如表l所示。經(jīng)過對系統(tǒng)測試證明,系統(tǒng)的運(yùn)行情況和結(jié)果符合設(shè)計要求,單個網(wǎng)站的測試及判斷時間不超過47秒,可以在39分鐘內(nèi)完成TOP100網(wǎng)站的一輪監(jiān)控任務(wù),能及時告警,告警準(zhǔn)確率達(dá)到100%。
5 總結(jié)
本文設(shè)計并實(shí)現(xiàn)了一種面向網(wǎng)站內(nèi)容安全的分布式自動化監(jiān)控系統(tǒng),系統(tǒng)基于圖像識別的原理,及時發(fā)現(xiàn)網(wǎng)站打開失敗或錯誤、網(wǎng)站域名被劫持、網(wǎng)站內(nèi)容被篡改等現(xiàn)象,并通過實(shí)驗進(jìn)行了驗證。此外,系統(tǒng)的分布式架構(gòu)還有效避免了單點(diǎn)監(jiān)控時存在的系統(tǒng)穩(wěn)定性差、告警誤報率高等問題。