亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Scrapy-redis 的網(wǎng)站敏感信息監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)

        2023-08-16 05:01:24楊秉杰
        無線互聯(lián)科技 2023年11期
        關(guān)鍵詞:爬蟲隊列頁面

        楊秉杰,薛 鈺

        (國家計算機(jī)網(wǎng)絡(luò)與信息安全管理中心河南分中心,河南 鄭州 450000)

        0 引言

        隨著互聯(lián)網(wǎng)的飛速發(fā)展,社會的發(fā)展已經(jīng)與互聯(lián)網(wǎng)密不可分,網(wǎng)絡(luò)安全的重要性日益凸顯。 近年來,大規(guī)模的數(shù)據(jù)泄露事件頻頻發(fā)生,敏感信息泄露問題已經(jīng)成了一個全球性的問題,在全球范圍帶來的損失與造成的影響與日俱增。 根據(jù)相關(guān)機(jī)構(gòu)研究報告顯示,2022 年第一季度全球范圍內(nèi)發(fā)生35 起影響較大的已公開信息泄露事件,數(shù)據(jù)泄露規(guī)模超過17 TB,敏感信息泄露涉及人數(shù)近9 000 萬人,涉及行業(yè)包括政府、金融、能源、交通、醫(yī)療等[1]。 造成敏感數(shù)據(jù)泄露頻發(fā)的原因主要有兩方面:一是來自外部的網(wǎng)絡(luò)攻擊形勢日益嚴(yán)峻,攻擊者為了獲取利益持續(xù)針對重點(diǎn)目標(biāo)進(jìn)行網(wǎng)絡(luò)攻擊,進(jìn)而竊取單位內(nèi)部敏感數(shù)據(jù);二是內(nèi)部員工缺乏安全意識,在工作中無意識進(jìn)行了錯誤的系統(tǒng)配置或?qū)⑽唇?jīng)審核的信息發(fā)布,造成敏感數(shù)據(jù)信息的非授權(quán)訪問等問題。 本文提出了一種基于爬蟲技術(shù)的網(wǎng)站敏感數(shù)據(jù)信息監(jiān)測系統(tǒng),利用Scrapyredis 框架定時對目標(biāo)網(wǎng)站進(jìn)行全量爬取,通過非授權(quán)URL 地址庫構(gòu)造URL,檢測系統(tǒng)或網(wǎng)站是否存在敏感信息未授權(quán)訪問,通過敏感信息檢測規(guī)則對爬取結(jié)果進(jìn)行分析,檢測網(wǎng)站內(nèi)容是否存在敏感數(shù)據(jù)信息泄露。

        1 Scrapy-redis 框架工作原理

        1.1 Scrapy 框架

        Scrapy 框架是一個開源的Python 爬蟲框架,主要用于抓取網(wǎng)站和提取結(jié)構(gòu)化數(shù)據(jù),廣泛地用于數(shù)據(jù)挖掘、信息處理或歷史存檔等。 它可以處理從網(wǎng)頁爬取數(shù)據(jù)到處理HTML、XML、JSON 等各種格式的數(shù)據(jù)。Scrapy 框架采用Twisted 異步網(wǎng)絡(luò)庫,可以高效地處理異步IO 操作,支持并發(fā)、分布式爬取等多種高性能擴(kuò)展,經(jīng)常被用于構(gòu)建大規(guī)模的爬蟲項目[2]。

        1.2 Scrapy-redis 框架

        Scrapy-redis 框架是在Scrapy 框架基礎(chǔ)上進(jìn)行擴(kuò)展的一種分布式爬蟲框架,它將Scrapy 框架的爬取、解析、存儲等功能與Redis 分布式隊列相結(jié)合,實現(xiàn)了高效、穩(wěn)定的分布式爬取。 其重要特點(diǎn)包括5 個方面:(1)框架基于Redis 的分布式隊列管理,支持多個爬蟲節(jié)點(diǎn)同時抓取同一個網(wǎng)站,提高了爬取效率和速度。 (2)框架支持?jǐn)帱c(diǎn)續(xù)爬,即在網(wǎng)絡(luò)或程序異常中斷后能夠自動恢復(fù)爬取任務(wù)。 (3)框架支持分布式爬取過程中的數(shù)據(jù)去重,避免重復(fù)爬取。 (4)框架支持對爬取結(jié)果進(jìn)行持久化存儲,支持多種數(shù)據(jù)存儲方式,如MySQL、MongoDB、Redis 等。 (5)框架支持自定義的中間件和擴(kuò)展,方便進(jìn)行各種自定義功能的開發(fā)和集成[3]。

        2 系統(tǒng)設(shè)計

        2.1 功能設(shè)計

        網(wǎng)站敏感信息監(jiān)測系統(tǒng)主要包含以下4 個功能模塊:定時任務(wù)模塊、非授權(quán)檢測模塊、網(wǎng)絡(luò)爬蟲模塊、數(shù)據(jù)分析與存儲模塊。

        2.2 定時任務(wù)模塊

        用戶通過配置定時任務(wù),完成對目標(biāo)網(wǎng)站的持續(xù)監(jiān)測。 用戶需要配置爬蟲任務(wù),定義爬蟲初設(shè)頁面(start_urls)和爬蟲作用域名范圍(allowed_domains)。用戶配置添加定時任務(wù)。 其中,爬蟲任務(wù)ID 與爬蟲任務(wù)進(jìn)行關(guān)聯(lián)。 系統(tǒng)將根據(jù)定時任務(wù)啟動頻率(cron表達(dá)式)和最后啟動時間(last_start_time)定時啟動關(guān)聯(lián)的爬蟲任務(wù)。

        2.3 非授權(quán)檢測模塊

        根據(jù)已有知識配置可能造成非授權(quán)的URL 地址庫,構(gòu)造非授權(quán)檢測URL,用于檢測網(wǎng)站非授權(quán)訪問情況。 非授權(quán)URL 地址庫是根據(jù)互聯(lián)網(wǎng)情報、知識積累等方式獲得的,并不斷進(jìn)行更新增加的知識庫。其記錄的是可能存在非授權(quán)訪問情況的URL,比如管理員會無意間將備份文件(. bak)和配置文件(.settings)放在網(wǎng)站目錄下造成非授權(quán)訪問,還有一些網(wǎng)站配置不當(dāng)導(dǎo)致目錄列出問題(如Upload、Edit、phpinfo 目錄),造成網(wǎng)站敏感配置信息或數(shù)據(jù)信息泄露。 URL 地址庫規(guī)則如“admin. {}”“Info. {}”“css.{}”等。 非授權(quán)檢測是根據(jù)域名啟動檢測的。 爬蟲過程中,系統(tǒng)持續(xù)獲取爬蟲隊列中URL 對應(yīng)的域名,當(dāng)發(fā)現(xiàn)隊列中存在未曾檢測的域名時,啟動非授權(quán)檢測模塊,將當(dāng)前域名與非授權(quán)URL 地址庫按照規(guī)則構(gòu)造檢測URL 并發(fā)送給爬蟲隊列進(jìn)行檢測,數(shù)據(jù)分析與存儲模塊將根據(jù)爬蟲結(jié)果判斷是否存在敏感信息泄露情況。 在發(fā)送構(gòu)造檢測URL 給爬蟲隊列后,系統(tǒng)會在request 請求時傳遞泄露類型參數(shù)(re_type),告知數(shù)據(jù)分析與存儲模塊此爬蟲隊列是在進(jìn)行非授權(quán)檢測[4]。 如果構(gòu)造的檢測URL 訪問不存在,則該隊列任務(wù)將直接結(jié)束,不進(jìn)入數(shù)據(jù)結(jié)果分析。

        2.4 網(wǎng)絡(luò)爬蟲模塊

        啟動網(wǎng)站爬取任務(wù),按照遞歸方式,完成站點(diǎn)所有頁面的爬取。 網(wǎng)絡(luò)爬蟲模塊主要利用Scrapy-redis框架實現(xiàn)針對目標(biāo)網(wǎng)站的爬取。 該框架是在Scrapy框架基礎(chǔ)上,加入了Redis 分布式隊列支持的爬蟲框架。 網(wǎng)絡(luò)爬蟲模塊的功能如下:(1)引擎主要處理整個系統(tǒng)的數(shù)據(jù)流,觸發(fā)對應(yīng)的事務(wù)。 (2)調(diào)度器模塊負(fù)責(zé)分發(fā)爬蟲的請求,并使用Redis 的Sorted Set 數(shù)據(jù)結(jié)構(gòu)來管理爬取請求,并使用Redis 的Key-Value 數(shù)據(jù)結(jié)構(gòu)來管理已爬取的URL 集合。 一方面調(diào)度器模塊從引擎接收新提取的URL 任務(wù)請求,將其壓入Redis 隊列中;另一方面當(dāng)引擎請求爬取時,調(diào)度器模塊根據(jù)爬取優(yōu)先級從Redis 中抽取URL 鏈接,返回給引擎啟動爬取任務(wù)。 調(diào)度器模塊在從Redis 隊列中抽取URL 時,使用Redis 的Set 數(shù)據(jù)結(jié)構(gòu)來管理已經(jīng)爬取過的URL,在調(diào)度時利用DupeFilter 防止重復(fù)爬取。 (3)隊列處理模塊主要進(jìn)行爬取URL鏈接管理,供爬蟲使用。 Scrapy-redis 框架使用Redis 存儲需要爬取的URL,可以多個爬蟲實例共享同一個隊列,實現(xiàn)系統(tǒng)的分布式爬蟲。 (4)下載器模塊:接收調(diào)度器下發(fā)的請求,獲取下載URL 的Response 數(shù)據(jù)。 (5)爬蟲模塊:接收下載器下載到的HTML 頁面,通過Xpath 表達(dá)式和正則表達(dá)式提取網(wǎng)頁中的數(shù)據(jù)。

        此外,系統(tǒng)采用遞歸式爬取方式,即每次下載器獲取到Response 數(shù)據(jù)后提取所有鏈接壓如爬蟲隊列,由系統(tǒng)進(jìn)行URL 去重操作,刪除已經(jīng)爬取的URL。Scrapy-redis 去重主要使用request_fingerprint 接口的Request 指紋計算和布隆過濾器實現(xiàn)。

        2.5 數(shù)據(jù)分析與存儲模塊

        根據(jù)下載器模塊提供的Response 數(shù)據(jù)進(jìn)行數(shù)據(jù)結(jié)果分析,利用敏感信息檢測規(guī)則庫判斷Response 中是否存在敏感信息,并將結(jié)果存入MySQL 數(shù)據(jù)庫中。當(dāng)Response 獲取的數(shù)據(jù)為Word、PDF 等文件,則需要借助Python-docx、PyPDF2 等第三方庫類完成文件讀取,獲取內(nèi)容信息后再進(jìn)行分析。

        系統(tǒng)在進(jìn)行結(jié)果數(shù)據(jù)分析和數(shù)據(jù)存儲時需要花費(fèi)一定的時間,若使用同步方式處理,則造成線程的堵塞,影響系統(tǒng)的性能。 為了提高系統(tǒng)性能,系統(tǒng)采用異步方式進(jìn)行數(shù)據(jù)分析及存儲,其方法是構(gòu)造自定義pipeline 實例ProcessTwistedPipeline, 通過使用Twisted 框架實現(xiàn)異步處理和存儲。

        敏感信息檢測規(guī)則庫:用戶可通過正則匹配等方法配置敏感信息檢測規(guī)則,用來檢測下載結(jié)果中是否存在敏感信息。 比如:檢測頁面中是否存在身份證號、手機(jī)號等敏感信息,檢測網(wǎng)頁源代碼中是否存在password、Secret_Key 等敏感代碼,檢測規(guī)則如:身份證號檢測((([1-9] d{5}(19|20) d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx])|身份證|身份證號|證件號))、手機(jī)號檢測(((13[4-9]|14[7-8]|15[0-27-9]|178|18[2-47-8]|198|13[0-2]|14[5-6]|15[5-6]|166|17[5-6]|18[5-6]|133|149|153|17[37]|18[0-19]|199|17[0-1])[0-9]{8}))等。

        3 系統(tǒng)實現(xiàn)

        系統(tǒng)流程如圖1 所示,(1)根據(jù)初始URL 初始化隊列,啟動網(wǎng)絡(luò)爬取模塊開始進(jìn)行數(shù)據(jù)爬取。 (2)隊列獲取目標(biāo)URL,通過檢測去重,發(fā)送給下載器下載網(wǎng)頁。 同時,從目標(biāo)URL 提取域名信息,如果判斷為新增域名,則同時啟動非授權(quán)檢測模塊,根據(jù)字典構(gòu)造檢測URL 加入隊列。 (3)下載網(wǎng)頁完成后,提取頁面所有有效鏈接,重新加入爬蟲隊列,同時下載的頁面結(jié)果發(fā)送給數(shù)據(jù)分析和存儲模塊處理。 (4)數(shù)據(jù)分析和存儲模塊根據(jù)檢測規(guī)則,進(jìn)行敏感信息泄露檢測,并將結(jié)果存入數(shù)據(jù)庫。

        圖1 系統(tǒng)流程

        系統(tǒng)測試部署在3 臺主機(jī)上(配置均為Intel Core i7-7500U CPU 2.7 GHz 2.90 GHz,32 G 內(nèi)存),模擬監(jiān)測鄭州大學(xué)敏感信息泄露情況。 配置起始URL為:www. zzu. edu. cn,配置域名作用范圍為zzu. edu.cn,運(yùn)行24 h,獲取網(wǎng)站頁面信息約20 萬條,發(fā)現(xiàn)存在手機(jī)號泄露頁面3 102 個,郵箱泄露頁面5 138 個,部分?jǐn)?shù)據(jù)如圖2 所示。

        4 結(jié)語

        本文提出一個基于Scrapy 的網(wǎng)站敏感信息監(jiān)測系統(tǒng)設(shè)計方案,通過實驗可以發(fā)現(xiàn)系統(tǒng)單日采集分析處理頁面約為20 萬條,系統(tǒng)性能滿足要求。 根據(jù)敏感信息檢測規(guī)則庫,系統(tǒng)能夠發(fā)現(xiàn)存在手機(jī)號或郵箱賬號泄露的頁面,達(dá)到系統(tǒng)預(yù)期的功能要求。 本文設(shè)計的系統(tǒng)具有一定的擴(kuò)展性,用戶可根據(jù)需要增加非授權(quán)檢測URL庫和敏感信息檢測規(guī)則庫,后續(xù)在實際使用中,仍需進(jìn)一步擴(kuò)充相應(yīng)的規(guī)則,達(dá)到更好的監(jiān)測效果。

        猜你喜歡
        爬蟲隊列頁面
        大狗熊在睡覺
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
        刷新生活的頁面
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        隊列里的小秘密
        基于多隊列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊列里
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        豐田加速駛?cè)胱詣玉{駛隊列
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        久久不见久久见免费影院www| 国产亚洲熟妇在线视频| 久久久久久久亚洲av无码| 一本一道久久综合狠狠老| 亚洲一区二区三区av链接| 国产91精品清纯白嫩| 国产香蕉视频在线播放| 久久精品人人做人人综合| 日韩一区二区超清视频| 在线观看免费的黄片小视频| 久久亚洲精品中文字幕| 桃花色综合影院| 国产日本在线视频| 国产三级不卡在线观看视频| 在线观看av片永久免费| 亚洲精品无码久久久久sm| 好爽~又到高潮了毛片视频| 日本免费一区二区在线看片| 大地资源在线观看官网第三页| 久久亚洲欧洲无码中文| 精品一区二区中文字幕| 亚洲女人毛茸茸粉红大阴户传播 | 四虎国产精品免费久久| 国产精品玖玖玖在线资源| 午夜一区二区三区免费观看| 亚洲欧洲国产码专区在线观看| 久久人人爽人人爽人人av东京热| 久久婷婷国产综合精品| 美女扒开腿露内裤免费看| 国产麻传媒精品国产av| 少妇无码av无码去区钱| 日韩一区二区av伦理| 午夜亚洲av日韩av无码大全| 粗一硬一长一进一爽一a级| 网红极品女神精品视频在线| 国产自拍偷拍精品视频在线观看| 中国农村熟妇性视频| 精品人妻少妇一区二区中文字幕 | 国产av剧情刺激对白| 人妻激情另类乱人伦人妻| 国产精品青草久久久久婷婷|