田柳 龔光軍 林黃智




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