999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

網站變更監測預警系統的設計與實現

2021-03-31 03:48:28何詩佳劉曉強李柏巖蔡立志
關鍵詞:頁面數據庫文本

何詩佳,劉曉強,李柏巖,蔡立志,胡 蕓

(1.東華大學計算機科學與技術學院,上海 201620)(2.上海市計算機軟件評測重點實驗室,上海 201112)

網站是團體和機構必不可少的信息發布和交流平臺,易成為黑客攻擊的對象. 黑客攻擊網站時篡改網站內容,篡改后的頁面往往會出現一些不良信息,對機構形象和社會安定產生負面影響. 網站變更監測的目標是對網站頁面內容進行對比監測,實時報告變更情況,便于監控人員及時發現頁面中的篡改內容,減少網站篡改帶來的損失,維護網站安全.

網站變更監測存在著許多問題和難點. 實驗表明,網站變化的頻率與域名種類、頁面大小等因素密切相關,大約有40%的網站在一周內發生了變化,大約50天內一半的網站都發生了變化,尤其是.com網站,一天內就有25%的網站發生了變化[1]. 網絡中的網站數量龐大以及時刻動態變化的特性,使得對網站變化的監測十分困難. 同時,為了監測網站變化,反復重載所監測的頁面進行比較,對系統的并行性要求很高. 基于目前網站變更監測的難點,本文設計和實現了一種基于非關系型數據庫和消息機制的網站變更監測方案,可滿足大規模實時監測需求. 在變更監測算法上采用MD5值比較與基于文本比較算法的結合,檢測精度高,能夠定位到變更的具體位置. 此外,系統增加了監測預警功能,可實現監測實時處理告警及緊急切斷服務支持.

1 網站變更監測相關研究工作

網站變更監測的方案主要分為兩類:基于網站服務端的本地監測和基于客戶端的遠程監測.

基于網站服務端的本地監測主要采用事件觸發技術、核心內嵌技術、外掛輪詢技術等方法,其優點是可實時防護、技術精度高,但需在每個服務器上安裝專門的軟件,占用了服務器的系統資源,管理員操作復雜,不適合大規模的監測[2].

基于客戶端的遠程監測只需知道網站的域名,適合大規模多網站的實時監測服務. 遠程監測網站變更主要采用以下算法:

(1)基于HTTP協議頭的狀態監測

基于HTTP協議頭的狀態監測常用屬性有Last-Modified和ETag. Last-Modified中記錄了網頁在服務器端最后被修改的時間,ETag中記錄了服務器根據網頁資源所生成的標記號[3]. 服務器通過驗證Last-Modified字段和ETag值即可判斷網頁內容是否發生變化. 該方法快速簡單,可節省大量不必要的網絡資源,適用于靜態網頁變更監測. 對于動態網頁,Last-Modifed對應服務器發送Response的時間并非網頁的最后更新時間,ETag通常為空值,該方法無效.

(2)基于網頁的MD5值監測

MD5算法即Message-Digest Algorithm 5(信息-摘要算法5),監測時通過比較前后網頁的MD5值來判斷頁面內容是否發生變更. 該方法實現簡單,但過于嚴格,如頁面中存在統計訪問人數或記錄時間的腳本,一旦發生變化,也會導致MD5值的改變,而這些改變通常無意義. 此外,該方法無法定位到發生變更的具體位置.

(3)基于文本比較算法的對比監測

網頁本質上是純文本文件,可將網頁看成一個長字符串,通過文本比較算法來監測兩個網頁之間的差異. 文本比較算法主要有基于文本的編輯距離(levenshtein distance,LD)算法和基于文本的最長公共子序列(longest common subsequence,LCS)算法. 基于文本比較的對比算法實現簡單、檢測速度快,但直接使用文本比較算法來計算網頁間的字符差異效率非常低.

(4)基于網頁結構的對比監測

基于網頁結構的對比監測是指根據網頁代碼生成一棵DOM樹,采用遍歷和樹節點一一比對的方法來定位網頁間的差異[4]. 其優點是能夠全面比對網頁的內容、結構、樣式,適合只關注網頁某個部分的監測,允許用戶定制. 該方法不適合結構復雜的頁面,會導致DOM樹龐大,從而效率低、準確性低.

本文基于客戶端的遠程監測系統,將MD5值比較與基于文本比較算法結合以實現網站變更監測,該方法實現簡單,檢測精度高,能夠定位到變更的具體位置. 由于傳統關系型數據庫不能滿足對大量網站內容的快速查找,本系統采用非關系型分布式數據庫ElasticSearch存儲網頁內容和變更結果[5],并采用高性能、易部署的NSQ消息隊列實時處理不斷新增的數據[6].

2 網站變更監測預警系統設計

本文設計的網站變更監測預警系統以B/S架構為核心,有3個核心模塊,整體架構如圖1所示.

圖1 網站變更監測預警系統架構Fig.1 The architecture of website change monitoring and early warning system

2.1 監測管理模塊

監測管理模塊以Web網站形式向管理員提供對目標網站的監測和管理服務,包括監測任務管理、監測結果查看和監測報表生成. 用戶通過該模塊可以添加監測網站、開啟或停止監測任務,使用MySQL數據庫存儲用戶信息及相關任務信息,從ElasticSearch數據庫中取出最終的監測結果可視化展示在頁面上并生成對應的報表便于管理員查看,管理員可針對異常情況發出關閉服務器命令.

2.2 任務調度模塊

任務調度模塊負責對監測任務模塊進行配置并初始化NSQ消息隊列. NSQ消息隊列可用于大規模系統中的實時消息服務. 當任務調度獲取到網站監測任務開啟或關閉的信息后,能夠對任務的狀態進行更新,通過NSQ消息隊列將任務信息分發到監測任務模塊,啟動對應的爬蟲任務或變更監測分析任務.

2.3 監測任務模塊

監測任務模塊分為網頁爬取和變更分析兩類. 監測任務開啟后,爬蟲定時去爬取被監測網站的網頁信息并存儲到ElasticSearch數據庫中;變更監測分析任務通過對比前后兩版頁面信息將變更結果存入ElasticSearch數據庫中,為最后以網頁形式為用戶呈現監測結果提供動態數據支持.

網站變更監測預警系統采用構件化技術,各模塊獨立運行,根據系統負載情況及用戶需求適當開啟監控任務,增強系統的穩定性與生命周期. 根據網站的變化判斷是否正常,定義預警策略進行消息告警,并支持服務切斷.

系統實現中,任務調度模塊的任務調度器和監測任務模塊的爬蟲采用Golang語言開發;監測管理模塊和監測任務模塊的變更分析采用Python語言開發;網站Web端基于Django框架;采用非關系型數據庫ElasticSearch存儲網頁內容和變更分析結果,其他信息存儲在MySQL數據庫中.

3 網站變更監測算法設計

3.1 數據獲取及處理流程

用戶通過監測任務管理模塊開啟監測任務后,經任務調度器發送任務信息給NSQ消息隊列,爬蟲任務啟動后監聽NSQ中的任務信息進行頁面爬取,爬取到的頁面內容存儲在ElasticSearch數據庫中. 對同一URL的網頁,每次爬取頁面時會生成對應的版本號,進行對比分析時可根據爬蟲版本號每次從ElasticSearch數據庫中取出當前URL所對應版本的內容與上一版本進行變更對比,對比結果存入ElasticSearch數據庫中.

3.2 網站變更對比算法

網站變更分析采用MD5值進行初步比較,而后結合LCS算法進行文本內容比較.

3.2.1 采用MD5算法進行初步比較

一旦網頁的MD5值發生變化,則網站的內容一定發生了變化. 本系統采用Python的hashlib庫返回頁面的MD5值進行比較. 若MD5一致,則表明頁面內容未發生變化,不再進行下一步比較.

3.2.2 采用LCS算法進行文本內容比較

當對比頁面MD5值不同時,采用LCS算法進行內容變更比較. LCS算法中的子序列指不改變序列中元素的順序,從序列中刪除任意某些元素而獲得的新序列,例如字符串acdfg與akdfc的最長公共子序列為adf. 對于LCS問題的解決思路采用動態規劃的方法.

《算法導論》第3版中通過構建矩陣實現該算法的求解[7]. 設所給的兩個序列為X=和Y=. 由算法LCS計算出的結果Z為 ,求解過程如圖2所示.

圖2 LCS問題求解矩陣Fig.2 Sovling matrix of LCS

本文定義二維數組c[i][j]表示Xi和Yj的LCS的長度,b[i][j]中存放每次獲得的解的方向. 算法的核心思想如下:

1Len1=序列X的長度

2Len2=序列Y的長度

3 Fori=0 toLen1

4c[i][0]==0

5 Forj=0 toLen2

6c[0][j]==0

7 Fori=1 toLen1

8 Forj=1 toLen2

9 IfX[i]==Y[j]

10c[i][j]==c[i-1][j-1] + 1

11b[i][j]==1 // 1表示箭頭方向為 ↖

12 Else Ifc[i-1][j] >=c[i][j-1]

13c[i][j]==c[i-1][j]

14b[i][j]==2 // 2表示箭頭方向為 ↑

15 Else

16c[i][j]==c[i][j-1]

17b[i][j]==3 // 3表示箭頭方向為 ←

18Returnb,c

當得到完整的矩陣之后,通過倒推來得到相應的子序列. 從最后一個位置開始往前遍歷b數組(i,j代表當前字符在數組中的位置):

若b[i][j]==1,則代表該字符是LCS的一員,存下該值后i-1,j-1,繼續向左上角查找;

若b[i][j]==2,則代表該字符不是LCS的一員,i-1,向上查找;

若b[i][j]==3,也代表該字符不是LCS的一員,j-1,向左查找.

在代碼實現時,每次回溯根據矩陣箭頭標示生成初步的對比坐標點,在合并對比結果時通過坐標位置判斷內容為新增、刪除或更改.

LCS算法的時間復雜度和空間復雜度與進行比較的字符串長度成正比. 為了減少時間和空間耗費,本系統做出以下改進:

(1)在處理頁面時,將頁面以html標簽“< >”切分為單位進行比較;

(2)使用碎塊化對比,比對時若同一位置處兩段切分完全相同,用一維數組記錄下當前位標,并將位標增加100繼續查找,否則位標加1;按照數組中記錄的下標對比較對象進行碎塊化,分別進行LCS算法處理,與比較對象相同度越高時,對比速度越快.

3.3 變更結果處理及展示

通過網站變更算法處理,對爬蟲后的網頁源碼進行標記,標記分為變更標記和類型標記. 以html標簽為一個切分,監測到增加部分在切分代碼前添加變更標記“+”,減少部分添加變更標記“-”,改變部分添加變更標記“?”,未變部分添加變更標記“=”. 通過html標簽判斷變更類型,若改變部分為圖片,則添加類型標記“I”;若改變部分為文本內容,則添加類型標記“T”,其他類型標記為“N”. 處理后的網頁代碼存儲在ElasticSearch數據庫中.

變更結果以網頁形式實時展示,便于監控人員更直觀地操作. 讀取數據庫中變更后的源碼,根據標記加入相應的span標簽,通過標簽引入對應的CSS樣式,最終展示在頁面中.

圖3所示為東華大學研究生系統任務中在7月內產生變更的網站及變更的具體信息. 記錄顯示了對應網站變更狀態是否正常、變動范圍、變更是否可見及變更各項的統計.

圖3 變更統計詳情頁面Fig.3 Page of change statistics

如圖4所示,點擊查看詳情按鈕,即可查看到頁面中具體內容的變化位置,并可通過高亮顏色來增強可視化效果.

圖4 變更結果展示頁面Fig.4 Page of change result

如圖5所示,對CSS、Javascript的改變不直接顯示在頁面上,管理員可通過系統中的代碼對比功能來判斷變化是否正常.

3.4 實時預警和切斷服務

系統采用設置變更率閾值來判斷變更是否正常. 變更率閾值為增加、刪除、變化的內容占整個網頁的比重. 如圖6所示,系統默認設計了二級告警,當閾值小于等于0.3時,定義為普通消息,普通信息顯示在系統主頁中進行提示(圖6(a));當閾值大于0.3時,變更異常,定義為告警消息,系統會向客戶單位發送郵件進行告警(圖6(b)). 用戶可通過定義變更率閾值來定義預警策略. 若管理員通過系統發現網站存在惡意變更內容,可緊急切斷服務,待網站正常時恢復訪問.

圖6 預警消息Fig.6 Warning message

4 結論

網站易成為黑客攻擊的對象,對網站變更的監測往往能夠減少網站被篡改所帶來的不良影響. 本文所設計系統實現了對網站變更情況的實時監測與預警,并支持對多網站的大規模監測需求,為網站內容安全監控提供了一種基礎架構和解決方案.

目前,系統中還存在以下問題需要進一步研究和改進:

(1)對于LCS算法,由于回溯時左側值等于上方值時默認向上回溯,最終只能得到一種結果,而實際上通過LCS算法回溯路徑不同可獲得多種結果. 在所有結果中,如何找出最符合網站變更情況的結果是下一步需要研究的方向;

(2)系統對CSS和Javascript的變更只能通過管理員代碼對比來判斷,而CSS和Javascript的改變往往會給網站帶來巨大的影響,因此在CSS和Javascript的監測上還需要進行優化.

猜你喜歡
頁面數據庫文本
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在808DA上文本顯示的改善
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學隱喻
如何快速走進文本
語文知識(2014年1期)2014-02-28 21:59:13
主站蜘蛛池模板: 操美女免费网站| 青草精品视频| 亚洲国产中文欧美在线人成大黄瓜 | 亚洲国内精品自在自线官| 亚洲欧美不卡视频| 九九香蕉视频| 日本久久久久久免费网络| 国产原创演绎剧情有字幕的| 国产特级毛片| 久久精品娱乐亚洲领先| 亚洲色图另类| 嫩草影院在线观看精品视频| 999国内精品视频免费| 中文字幕欧美日韩| 亚洲成a人在线播放www| 成人a免费α片在线视频网站| 亚洲v日韩v欧美在线观看| 国产成人91精品| 国产在线无码av完整版在线观看| 国产小视频网站| 亚洲视频a| 国产精女同一区二区三区久| 欧美日韩国产在线观看一区二区三区| 国产精品极品美女自在线| 毛片基地美国正在播放亚洲| 免费看a级毛片| 91久久精品日日躁夜夜躁欧美| 黄色a一级视频| 五月婷婷丁香综合| 亚洲第一香蕉视频| 欧洲精品视频在线观看| 国产精品久久久久久久久kt| 色婷婷视频在线| 老司机aⅴ在线精品导航| 久久久精品久久久久三级| 狼友视频一区二区三区| 视频二区亚洲精品| 在线日韩日本国产亚洲| 国产精品尤物在线| 国产精品露脸视频| 丁香五月亚洲综合在线| 香蕉视频在线观看www| 国产亚洲精品资源在线26u| 不卡国产视频第一页| 欧美国产在线精品17p| 色综合综合网| 国产成人精品第一区二区| 欧美日韩在线亚洲国产人| 国产成人精品亚洲日本对白优播| 五月天丁香婷婷综合久久| 亚洲成人精品| 国产黄在线观看| 国产福利一区二区在线观看| 国产av无码日韩av无码网站| 日本亚洲国产一区二区三区| 亚洲人成影院午夜网站| 久久精品人人做人人爽97| 国产午夜无码片在线观看网站| 九九久久精品免费观看| 伊人色天堂| 亚洲天堂网视频| 国产精品视屏| 色哟哟国产精品| 污网站免费在线观看| 精品99在线观看| 日本成人一区| 亚洲AV无码乱码在线观看代蜜桃| 久久免费精品琪琪| 国产chinese男男gay视频网| 欧美国产综合视频| 国产视频久久久久| 第一页亚洲| 欧美影院久久| 97超碰精品成人国产| 亚洲无码精彩视频在线观看| 国产一二视频| 黄色福利在线| 综合天天色| 福利一区在线| 国产成人调教在线视频| 被公侵犯人妻少妇一区二区三区 | 亚洲最大看欧美片网站地址|