本申請(qǐng)涉及網(wǎng)絡(luò)攻擊防御領(lǐng)域,尤其涉及一種檢測(cè)撞庫(kù)攻擊的方法及裝置。
背景技術(shù):
撞庫(kù)攻擊是指黑客通過(guò)收集互聯(lián)網(wǎng)已泄露的用戶名和密碼信息,生成對(duì)應(yīng)的字典表,再用字典表中羅列的用戶和密碼,嘗試批量登陸其他網(wǎng)站,一旦用戶為了省事,在多個(gè)不同網(wǎng)站設(shè)置了相同的用戶名和密碼的話,黑客很容易就會(huì)通過(guò)字典中已有的用戶名和密碼信息,成功登錄到這些網(wǎng)站,從而獲得用戶的相關(guān)信息。這些信息泄露后,不僅會(huì)給用戶的經(jīng)濟(jì)帶來(lái)巨大損失,同時(shí)也會(huì)給相關(guān)網(wǎng)站帶來(lái)負(fù)面影響。目前,黑客非法入侵網(wǎng)站服務(wù)器后,通常將網(wǎng)站用戶的用戶名和密碼信息存儲(chǔ)在一個(gè)數(shù)據(jù)庫(kù)中,這個(gè)庫(kù)稱作社工庫(kù)。黑客批量使用社工庫(kù)中的用戶名和密碼去登錄目標(biāo)網(wǎng)站,若用戶在目標(biāo)網(wǎng)站使用同一對(duì)用戶名和密碼,即可登錄成功。
現(xiàn)有的撞庫(kù)攻擊檢測(cè)方法主要包括以下兩種:一種是統(tǒng)計(jì)登錄的頻率,即統(tǒng)計(jì)單位時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的次數(shù),若次數(shù)超過(guò)預(yù)設(shè)閾值,則判定為撞庫(kù)攻擊。這種方法對(duì)于暴力破解的登錄請(qǐng)求和正常業(yè)務(wù)的批量登錄請(qǐng)求無(wú)法區(qū)分,會(huì)導(dǎo)致誤報(bào)。另一種是對(duì)于已經(jīng)泄露的社工庫(kù)進(jìn)行收集,對(duì)登錄請(qǐng)求中的密碼與社工庫(kù)中的密碼進(jìn)行比對(duì),來(lái)確認(rèn)是否為撞庫(kù)攻擊行為。這種方法由于每條登錄請(qǐng)求中的密碼都要和社工庫(kù)中的數(shù)量龐大的密碼進(jìn)行比對(duì),非常消耗算力資源。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)的一個(gè)目的是提供一種檢測(cè)撞庫(kù)攻擊的方法及裝置,提高檢測(cè)撞庫(kù)攻擊的準(zhǔn)確性。
根據(jù)本申請(qǐng)的一方面,提供了一種檢測(cè)撞庫(kù)攻擊的方法,其中,該方法包括以下步驟:
獲取預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息;根據(jù)獲取到的源ip地址和登錄信息,確定所述獲取到的源ip地址中具有高頻登錄行為的源ip地址;根據(jù)所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比,判斷所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊,其中,所述具有語(yǔ)義的密碼為具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼。
根據(jù)本申請(qǐng)的另一方面,還提供了一種檢測(cè)撞庫(kù)攻擊的裝置,其中,該裝置包括:
獲取單元,用于獲取預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息;確定單元,用于根據(jù)獲取到的源ip地址和登錄信息,確定所述獲取到的源ip地址中具有高頻登錄行為的源ip地址;判斷單元,用于根據(jù)所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比,判斷所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊,其中,所述具有語(yǔ)義的密碼為具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼。
與現(xiàn)有技術(shù)相比,本申請(qǐng)的實(shí)施例具有以下優(yōu)點(diǎn):
本申請(qǐng)的技術(shù)方案,通過(guò)先獲取具有高頻登錄行為的源ip地址,再根據(jù)該具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比,確定該源ip地址的高頻登錄行為是否為撞庫(kù)攻擊,提高了檢測(cè)撞庫(kù)攻擊的準(zhǔn)確性。并且,本申請(qǐng)的技術(shù)方案在檢測(cè)撞庫(kù)攻擊時(shí)不需要在龐大的社工庫(kù)中進(jìn)行密碼比對(duì),節(jié)省了計(jì)算資源。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為本申請(qǐng)一個(gè)實(shí)施例提供的方法的流程圖;
圖2為本申請(qǐng)實(shí)施例中步驟s110的一種實(shí)施方式的流程圖;
圖3為本申請(qǐng)實(shí)施例中步驟s120的一種實(shí)施方式的流程圖;
圖4為本申請(qǐng)實(shí)施例中步驟s130的一種實(shí)施方式的流程圖;
圖5為本申請(qǐng)實(shí)施例中步驟s130的另一種實(shí)施方式的流程圖;
圖6為本申請(qǐng)實(shí)施例中步驟s130的又一種實(shí)施方式的流程圖;
圖7為本申請(qǐng)實(shí)施例中步驟s130的再一種實(shí)施方式的流程圖;
圖8為本申請(qǐng)一個(gè)實(shí)施例提供的裝置示意圖;
圖9為本申請(qǐng)實(shí)施例提供的裝置中獲取單元210的示意圖;
圖10為本申請(qǐng)實(shí)施例提供的裝置中確定單元220的示意圖;
圖11為本申請(qǐng)實(shí)施例提供的裝置中判斷單元230的一種實(shí)施方式的示意圖;
圖12為本申請(qǐng)實(shí)施例提供的裝置中判斷單元230的另一種實(shí)施方式的示意圖;
圖13為本申請(qǐng)實(shí)施例提供的裝置中判斷單元230的又一種實(shí)施方式的示意圖;
圖14為本申請(qǐng)實(shí)施例提供的裝置中判斷單元230的再一種實(shí)施方式的示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項(xiàng)操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各項(xiàng)操作的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對(duì)應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
在上下文中所稱“計(jì)算機(jī)設(shè)備”,也稱為“電腦”,是指可以通過(guò)運(yùn)行預(yù)定程序或指令來(lái)執(zhí)行數(shù)值計(jì)算和/或邏輯計(jì)算等預(yù)定處理過(guò)程的智能電子設(shè)備,其可以包括處理器與存儲(chǔ)器,由處理器執(zhí)行在存儲(chǔ)器中預(yù)存的存續(xù)指令來(lái)執(zhí)行預(yù)定處理過(guò)程,或是由asic、fpga、dsp等硬件執(zhí)行預(yù)定處理過(guò)程,或是由上述二者組合來(lái)實(shí)現(xiàn)。計(jì)算機(jī)設(shè)備包括但不限于服務(wù)器、 個(gè)人電腦、筆記本電腦、平板電腦、智能手機(jī)等。
所述計(jì)算機(jī)設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于電腦、智能手機(jī)、pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計(jì)算(cloudcomputing)的由大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。其中,所述計(jì)算機(jī)設(shè)備可單獨(dú)運(yùn)行來(lái)實(shí)現(xiàn)本申請(qǐng),也可接入網(wǎng)絡(luò)并通過(guò)與網(wǎng)絡(luò)中的其他計(jì)算機(jī)設(shè)備的交互操作來(lái)實(shí)現(xiàn)本申請(qǐng)。其中,所述計(jì)算機(jī)設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。
需要說(shuō)明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計(jì)算機(jī)設(shè)備或網(wǎng)絡(luò)如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并以引用方式包含于此。
后面所討論的方法(其中一些通過(guò)流程圖示出)可以通過(guò)硬件、軟件、固件、中間件、微代碼、硬件描述語(yǔ)言或者其任意組合來(lái)實(shí)施。當(dāng)用軟件、固件、中間件或微代碼來(lái)實(shí)施時(shí),用以實(shí)施必要任務(wù)的程序代碼或代碼段可以被存儲(chǔ)在機(jī)器或計(jì)算機(jī)可讀介質(zhì)(比如存儲(chǔ)介質(zhì))中。(一個(gè)或多個(gè))處理器可以實(shí)施必要的任務(wù)。
這里所公開(kāi)的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本申請(qǐng)的示例性實(shí)施例的目的。但是本申請(qǐng)可以通過(guò)許多替換形式來(lái)具體實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實(shí)施例。
應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語(yǔ)“第一”、“第二”等等來(lái)描述各個(gè)單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語(yǔ)限制。使用這些術(shù)語(yǔ)僅僅是為了將一個(gè)單元與另一個(gè)單元進(jìn)行區(qū)分。舉例來(lái)說(shuō),在不背離示例性實(shí)施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語(yǔ)“和/或”包括其中一個(gè)或更多所列出的相關(guān)聯(lián)項(xiàng)目的任意和所有組合。
這里所使用的術(shù)語(yǔ)僅僅是為了描述具體實(shí)施例而不意圖限制示例性實(shí)施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個(gè)”、“一項(xiàng)”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語(yǔ)“包括”和/ 或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個(gè)或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
還應(yīng)當(dāng)提到的是,在一些替換實(shí)現(xiàn)方式中,所提到的功能/動(dòng)作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來(lái)說(shuō),取決于所涉及的功能/動(dòng)作,相繼示出的兩幅圖實(shí)際上可以基本上同時(shí)執(zhí)行或者有時(shí)可以按照相反的順序來(lái)執(zhí)行。
定義:
撞庫(kù)攻擊:是指黑客通過(guò)收集互聯(lián)網(wǎng)已泄露的用戶名和密碼信息,生成對(duì)應(yīng)的字典表,再用字典表中羅列的用戶和密碼,嘗試批量登陸其他網(wǎng)站,若用戶在多個(gè)不同網(wǎng)站設(shè)置了相同的用戶名和密碼,黑客就會(huì)通過(guò)字典中已有的用戶名和密碼信息,成功登錄到這些網(wǎng)站,從而獲得用戶的相關(guān)信息。
登錄請(qǐng)求:是指用戶通過(guò)在用戶終端上安裝的客戶端應(yīng)用的登錄界面或?yàn)g覽器中顯示的web應(yīng)用的登錄頁(yè)面輸入登錄信息,從而向客戶端應(yīng)用或web應(yīng)用的服務(wù)器發(fā)起登錄應(yīng)用的賬戶的請(qǐng)求。例如,在安裝在手機(jī)上的聊天軟件的登錄界面上,通過(guò)輸入用戶名和密碼等信息登錄該聊天軟件。
高頻登錄行為:本申請(qǐng)中高頻登錄行為是指一個(gè)源ip地址發(fā)起登錄請(qǐng)求的頻率超過(guò)一定的頻率閾值的行為。
具有語(yǔ)義的密碼:是指具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼。其中,語(yǔ)義是指字符串在特定領(lǐng)域具有的含義。具有語(yǔ)義的概率是指字符串作為密碼具有含義的概率。例如,用戶使用“zhangsan”作為密碼,“zhangsan”實(shí)際上為用戶的姓名“張三”的漢語(yǔ)拼音全拼表示。密碼具有語(yǔ)義的概率例如,基于特定語(yǔ)言模型計(jì)算得到的該密碼出現(xiàn)的概率。
下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。
圖1為本申請(qǐng)一個(gè)實(shí)施例的檢測(cè)撞庫(kù)攻擊的方法流程圖。根據(jù)本申請(qǐng)的方法1至少包括步驟s110、步驟s120和步驟s130。
參考圖1,在步驟s110中,獲取預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip 地址和登錄信息。所述登錄信息包括用戶名、密碼、登錄時(shí)間。
具體地,可以每隔一預(yù)定時(shí)間獲取上一預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址。在一種具體的實(shí)施方式中,可以根據(jù)http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志或數(shù)據(jù)庫(kù)日志獲取所述預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息。
參考圖2,步驟s110具體包括步驟s111和步驟s112。
步驟s111,獲取服務(wù)器端的http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和/或數(shù)據(jù)庫(kù)日志。
所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和數(shù)據(jù)庫(kù)日志中記錄有對(duì)接收到的請(qǐng)求(包括各種請(qǐng)求,例如登錄請(qǐng)求、訪問(wèn)請(qǐng)求等)進(jìn)行服務(wù)器解析、動(dòng)態(tài)語(yǔ)言解析和數(shù)據(jù)庫(kù)解析的解析結(jié)果。web應(yīng)用或客戶端應(yīng)用(app)通過(guò)http的get方法或post方法將登錄請(qǐng)求發(fā)送至服務(wù)器端,登錄請(qǐng)求到達(dá)服務(wù)器端后,服務(wù)器端對(duì)該登錄請(qǐng)求進(jìn)行解析。其中,服務(wù)器端對(duì)接收到的登錄請(qǐng)求進(jìn)行的解析包括三層解析,分別為http服務(wù)器解析、動(dòng)態(tài)語(yǔ)言解析和數(shù)據(jù)庫(kù)解析,解析得到的結(jié)果分別保存在http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和數(shù)據(jù)庫(kù)日志中,可以獲取上述解析日志中的任意一項(xiàng)或多項(xiàng)。
步驟s112,基于所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和/或數(shù)據(jù)庫(kù)日志,提取所述預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息。
所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志、以及數(shù)據(jù)庫(kù)日志中記錄有對(duì)每一個(gè)登錄請(qǐng)求進(jìn)行解析得到的解析結(jié)果,所述解析結(jié)果包括接收到的登錄請(qǐng)求的源ip地址以及登錄信息。因此,可以從所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志、數(shù)據(jù)庫(kù)日志中的任意一項(xiàng)或多項(xiàng)中提取所述預(yù)定時(shí)間內(nèi)接收到的每一個(gè)登錄請(qǐng)求的源ip地址以及登錄信息。所述預(yù)定時(shí)間例如可以為5分鐘、10分鐘。
在一種具體實(shí)施方式中,根據(jù)所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和/或數(shù)據(jù)庫(kù)日志,生成記錄有接收到的登錄請(qǐng)求的源ip地址和登錄信息的登錄日志;所述登錄信息包括用戶名、密碼、登錄時(shí)間,再根據(jù)登錄日志中記錄的登錄請(qǐng)求的請(qǐng)求時(shí)間,提取出所述預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址以及登錄信息。
參考圖1,在步驟120中,根據(jù)獲取到的源ip地址和登錄信息,確定所述獲取到的源ip地址中具有高頻登錄行為的源ip地址。
撞庫(kù)攻擊的一個(gè)特點(diǎn)是單位時(shí)間內(nèi)請(qǐng)求登錄次數(shù)較多,即高頻登錄。因此可以先確定獲取到的源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的行為是否為高頻登錄行為,若確定是高頻登錄行為,再判斷該高頻登錄行為是否為撞庫(kù)攻擊。
參考圖3,步驟s120具體可以包括步驟s121和步驟s122。
步驟s121,根據(jù)獲取到的源ip地址和登錄信息,提取出所述獲取到源ip地址中每個(gè)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息。
也就是說(shuō),以ip地址為單位,提取出獲取到的每個(gè)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息。
步驟s122,根據(jù)提取出的每個(gè)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息,確定所述源ip地址是否具有高頻登錄行為。
在一種具體的實(shí)施方式中,根據(jù)所述源ip地址發(fā)起的登錄請(qǐng)求的登錄信息,統(tǒng)計(jì)所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的次數(shù),并判斷所述次數(shù)是否超過(guò)預(yù)定次數(shù)閾值,若所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的次數(shù)超過(guò)所述預(yù)定次數(shù)閾值,則所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求為高頻登錄行為,即,所述源ip地址為具有高頻登錄行為的源ip地址。例如,預(yù)定時(shí)間為5分鐘,預(yù)定次數(shù)閾值為300次,某一源ip地址在5分鐘內(nèi)登錄次數(shù)498次,超過(guò)該預(yù)定次數(shù)閾值,則該源ip地址在該預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求為高頻登錄行為,該ip地址為具有高頻登錄行為的源ip地址。
在另一種具體的實(shí)施方式中,根據(jù)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息,統(tǒng)計(jì)所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的次數(shù),根據(jù)所述次數(shù)計(jì)算獲取到的源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的頻率,并判斷所述頻率是否超過(guò)預(yù)定頻率閾值,若所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求的頻率超過(guò)預(yù)定頻率閾值,則所述源ip地址為具有高頻登錄行為的源ip地址。例如,若某一源ip地址在5分鐘內(nèi)登錄次數(shù)為600次,計(jì)算得到該源ip地址發(fā)起登錄請(qǐng)求的頻率(qps)為2,即每秒請(qǐng)求2次。假設(shè)所述預(yù)定頻率 閾值為1,則該ip地址發(fā)起登錄請(qǐng)求的頻率超過(guò)了預(yù)定頻率閾值,即,該源ip地址在該預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求為高頻登錄行為。
參考圖1,在步驟130中,根據(jù)所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比,判斷所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。
其中,所述具有語(yǔ)義的密碼為具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼。由于撞庫(kù)攻擊一般是黑客批量使用社工庫(kù)中的用戶名和密碼進(jìn)行登錄,因此,撞庫(kù)攻擊所使用的密碼一般是人為設(shè)置的密碼。與機(jī)器隨機(jī)生成的無(wú)意義密碼不同,人為設(shè)置的密碼往往都具有一定的語(yǔ)義,例如,用戶常常設(shè)置與自己的姓名相關(guān)的密碼。因此,可以通過(guò)計(jì)算該具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求時(shí)所使用的密碼具有語(yǔ)義的概率,確定其中具有語(yǔ)義密碼,從而通過(guò)統(tǒng)計(jì)其中具有語(yǔ)義的密碼的占比,判斷該源ip發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。
參考圖4,在一種具體實(shí)施方式中,步驟s130具體包括步驟s131、步驟s132和步驟s135。
步驟s131,計(jì)算所述具有高頻登錄行為的源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求所使用的密碼具有語(yǔ)義的概率,以確定所述密碼中具有語(yǔ)義的密碼。
具體地,可以基于預(yù)先生成的語(yǔ)言模型計(jì)算所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求所使用的密碼具有語(yǔ)義的概率,將所述密碼中具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼確定為具有語(yǔ)義的密碼。也即是說(shuō),根據(jù)預(yù)先生成的語(yǔ)言模型計(jì)算所述密碼在所述語(yǔ)言模型中出現(xiàn)的概率,將所述密碼在所述語(yǔ)言模型中出現(xiàn)的概率作為所述密碼具有語(yǔ)義的概率。其中,一個(gè)密碼的具有語(yǔ)義的概率越高,表明該密碼是人為設(shè)置的密碼的可能性越大;反之,一個(gè)密碼具有語(yǔ)義的概率越低,表明該密碼是人為設(shè)置的密碼的可能性越小。將所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求所使用的密碼中,具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼確定為具有語(yǔ)義的密碼。
由于多數(shù)用戶設(shè)置密碼時(shí)喜歡設(shè)置與自己姓名相關(guān)的密碼,例如使用姓名的漢語(yǔ)拼音,如,zhangsan1988、wangwu2016等,因此可以獲取常用姓名 庫(kù),將姓名庫(kù)中的姓名的漢語(yǔ)拼音加入訓(xùn)練語(yǔ)料庫(kù)中建立語(yǔ)言模型。具體地,使用n-gram語(yǔ)言模型,n-gram模型基于這樣一種假設(shè),第n個(gè)詞的出現(xiàn)只與前面n-1個(gè)詞相關(guān),而與其它任何詞都不相關(guān),整句的概率就是各個(gè)詞出現(xiàn)概率的乘積。這些概率可以通過(guò)直接從語(yǔ)料中統(tǒng)計(jì)n個(gè)詞同時(shí)出現(xiàn)的次數(shù)得到。例如,可以使用常見(jiàn)的二元語(yǔ)言模型bi-gram。由于使用語(yǔ)言模型計(jì)算得到的密碼具有語(yǔ)義的概率,為該密碼在該語(yǔ)言模型中出現(xiàn)的概率,因此所述預(yù)定概率閾值可以為基于訓(xùn)練樣本設(shè)置的概率閾值,也就是說(shuō),不同的語(yǔ)言模型,該預(yù)定概率閾值不同。
步驟s132,統(tǒng)計(jì)所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比是否超過(guò)第一預(yù)定比值。
先統(tǒng)計(jì)所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的密碼中,具有語(yǔ)義的密碼的數(shù)量,再計(jì)算具有語(yǔ)義的密碼的數(shù)量與所述源ip地址在所述預(yù)定時(shí)間內(nèi)所使用的密碼的總數(shù)量的比值(即,具有語(yǔ)義的密碼的占比),再判斷該比值是否超過(guò)第一預(yù)定比值。所述第一預(yù)定比值例如可以為60%,即,判斷具有語(yǔ)義的密碼在所述源ip地址在所述預(yù)定時(shí)間內(nèi)使用的所有密碼中的占比是否超過(guò)60%。
步驟s135,基于上述統(tǒng)計(jì)結(jié)果,確定所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。
其中,若上述統(tǒng)計(jì)結(jié)果為肯定結(jié)果,則確定所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求為撞庫(kù)攻擊。也就是說(shuō),若步驟s132中的統(tǒng)計(jì)結(jié)果為肯定結(jié)果,即該源ip地址發(fā)起登錄請(qǐng)求所使用的所有密碼中具有語(yǔ)義的密碼的占比超過(guò)第一預(yù)定比值,則說(shuō)明該具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求使用了大量的人為設(shè)置的密碼,則可以確定該源ip地址的高頻登錄行為是撞庫(kù)攻擊。
在另一種具體實(shí)施方式中,參考圖5,基于圖4所描述的具體實(shí)施方式,步驟s130包括上述步驟s131、步驟s132、步驟s135,還包括步驟s133。
步驟s133,統(tǒng)計(jì)所述預(yù)定時(shí)間內(nèi)所述具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)與所述源ip地址發(fā)起的登錄請(qǐng)求數(shù)的比值是否超過(guò)第二預(yù)定比值。
由于暴力破解攻擊和正常業(yè)務(wù)的批量登錄請(qǐng)求也具有高頻登錄的特點(diǎn),不同的是暴力破解攻擊會(huì)針對(duì)相同的用戶名使用不同的密碼進(jìn)行多次登錄,即,使用重復(fù)的用戶名和不同的密碼進(jìn)行高頻登錄;正常業(yè)務(wù)的批量登錄請(qǐng)求會(huì)使用相同的用戶名和相同的密碼進(jìn)行高頻登錄;而撞庫(kù)攻擊使用大量重復(fù)的用戶名或使用大量重復(fù)的用戶名和密碼對(duì)進(jìn)行登錄的幾率則很小。
因此,可以統(tǒng)計(jì)源ip地址發(fā)起登錄請(qǐng)求的去重用戶名數(shù)(相同的用戶名只保留一個(gè),使去重后的用戶名均不相同)與登錄請(qǐng)求數(shù)的比值,并判斷所述比值是否超過(guò)第二預(yù)定比值,其中,所述第二預(yù)定比值為小于1的百分?jǐn)?shù),若是,則可以在一定程度上排除該源ip地址在該預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求為暴力破解攻擊或正常業(yè)務(wù)的批量登錄請(qǐng)求的可能。所述第二預(yù)定比值例如可以為50%。
進(jìn)一步地,在步驟s135中,基于步驟s132和步驟s133的統(tǒng)計(jì)結(jié)果,確定該源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。其中,若步驟s132和步驟s133中的統(tǒng)計(jì)結(jié)果均為肯定結(jié)果,則確定該源ip地址的高頻登錄行為是撞庫(kù)攻擊。即,若該源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的所有密碼中,具有語(yǔ)義的密碼的占比超過(guò)第一預(yù)定比值,且所述預(yù)定時(shí)間內(nèi)該源ip地址發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)與該源ip地址發(fā)起的登錄請(qǐng)求數(shù)的比值超過(guò)第二預(yù)定比值,則可以確定該源ip地址的高頻登錄行為是撞庫(kù)攻擊。
應(yīng)當(dāng)理解,上述步驟的執(zhí)行順序不限于此,步驟s133也可以在步驟s131之前執(zhí)行。
在又一種具體實(shí)施方式中,參考圖6,基于圖4所描述的具體實(shí)施方式,步驟s130包括上述步驟s131、步驟s132、步驟s135,還包括步驟s134。
步驟s134,統(tǒng)計(jì)所述預(yù)定時(shí)間內(nèi)所述具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求所使用的密碼的去重密碼數(shù)與所述源ip地址的發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)的比值是否超過(guò)第三預(yù)定比值。
類似步驟s133,通過(guò)統(tǒng)計(jì)所述預(yù)定時(shí)間內(nèi)源ip地址的去重密碼數(shù)與去重用戶名數(shù)的比值,并判斷所述比值是否超過(guò)第三預(yù)定比值,若所述比值超過(guò)第三預(yù)定比值,則可以在一定程度上排除該源ip地址在該預(yù)定時(shí)間發(fā)起的 登錄請(qǐng)求為暴力破解攻擊的可能。例如,某些機(jī)構(gòu)統(tǒng)一為用戶申請(qǐng)用戶名,并設(shè)置相同的初始密碼均為123456,黑客利用該初始密碼登錄嘗試登錄所有的用戶名,若用戶未能及時(shí)修改密碼就會(huì)被黑客登錄成功。利用步驟s133可以排除這種情況的暴力破解攻擊。所述第三預(yù)定比值為小于1的百分?jǐn)?shù),例如可以為50%。
進(jìn)一步地,在步驟s135中,基于步驟s132和步驟s134的統(tǒng)計(jì)結(jié)果,確定該源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。其中,若步驟s132和步驟s134中的統(tǒng)計(jì)結(jié)果均為肯定結(jié)果,則確定該源ip地址的高頻登錄行為是撞庫(kù)攻擊。即,若該源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的所有密碼中,具有語(yǔ)義的密碼的占比超過(guò)第一預(yù)定比值,且所述預(yù)定時(shí)間內(nèi)該源ip地址發(fā)起登錄請(qǐng)求所使用的密碼的去重密碼數(shù)與該源ip地址的發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)的比值超過(guò)第三預(yù)定比值,則確定該源ip地址的高頻登錄行為是撞庫(kù)攻擊。
在又一種具體實(shí)施方式中,參考圖7,基于圖4所描述的具體實(shí)施方式,步驟s130包括上述步驟s131、步驟s132、步驟s135,還包括步驟s133和步驟s134。
其中,對(duì)于上述步驟s133和步驟s134的具體描述可參考圖5和圖6所描述的具體實(shí)施方式,此處不加贅述。在步驟s135中,基于步驟s132、步驟s133和步驟s134的統(tǒng)計(jì)結(jié)果,確定該源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。若步驟s132、步驟s133和步驟s134中的統(tǒng)計(jì)結(jié)果均為肯定結(jié)果,則確定該源ip地址發(fā)起的登錄請(qǐng)求是撞庫(kù)攻擊,即,該源ip地址在所述預(yù)定時(shí)間內(nèi)的高頻登錄行為是撞庫(kù)攻擊。
應(yīng)當(dāng)理解,上述步驟的執(zhí)行順序不限于此。
本申請(qǐng)的技術(shù)方案,先獲取具有高頻登錄行為的源ip地址,再根據(jù)該具有高頻登錄行為的源ip地址的登錄信息確定該源ip地址的高頻登錄行為是否為撞庫(kù)攻擊,提高了檢測(cè)撞庫(kù)攻擊的準(zhǔn)確性。并且,本申請(qǐng)的技術(shù)方案不需要在龐大的社工庫(kù)中進(jìn)行密碼比對(duì),節(jié)省了計(jì)算資源。
基于與方法同樣的發(fā)明構(gòu)思,本申請(qǐng)還提供一種檢測(cè)撞庫(kù)攻擊的裝置。圖8所示為的裝置2示意圖,該裝置包括:
獲取單元210,用于獲取預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息,所述登錄信息包括用戶名、密碼;
確定單元220,用于根據(jù)獲取到的源ip地址和登錄信息,確定所述獲取到的源ip地址中具有高頻登錄行為的源ip地址;
判斷單元230,用于根據(jù)所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比,判斷所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊,其中,所述具有語(yǔ)義的密碼為具有語(yǔ)義的概率超過(guò)預(yù)定概率閾值的密碼。
參考圖9,在一種具體實(shí)施方式中,所述獲取單元210包括:
日志獲取子單元211,用于獲取服務(wù)器端的http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和/或數(shù)據(jù)庫(kù)日志;
信息提取子單元212,用于基于所述http服務(wù)器日志、動(dòng)態(tài)語(yǔ)言日志和/或數(shù)據(jù)庫(kù)日志,提取所述預(yù)定時(shí)間內(nèi)接收到的登錄請(qǐng)求的源ip地址和登錄信息。
參考圖10,在一種具體實(shí)施方式中,所述確定單元220包括:
提取子單元221,用于根據(jù)獲取到的源ip地址和登錄信息,提取出所述獲取到源ip地址中每個(gè)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息;
確定子單元222,用于根據(jù)提取出的每個(gè)源ip地址發(fā)起的登錄請(qǐng)求的登錄信息,確定所述源ip地址是否具有高頻登錄行為。
參考圖11,在一種具體實(shí)施方式中,所述判斷單元230包括:
概率計(jì)算子單元231,用于計(jì)算所述具有高頻登錄行為的源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的密碼具有語(yǔ)義的概率,以確定所述密碼中具有語(yǔ)義的密碼;
第一統(tǒng)計(jì)子單元232,用于統(tǒng)計(jì)所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起登錄請(qǐng)求所使用的密碼中具有語(yǔ)義的密碼的占比是否超過(guò)第一預(yù)定比值;
攻擊確定子單元235,用于基于所述第一統(tǒng)計(jì)子單元的統(tǒng)計(jì)結(jié)果,確定所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。
參考圖12、圖13和圖14,基于圖11所描述的實(shí)施方式,所述判斷單元230還包括:
第二統(tǒng)計(jì)子單元233,用于統(tǒng)計(jì)所述預(yù)定時(shí)間內(nèi)所述具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)與所述源ip地址發(fā)起的登錄請(qǐng)求數(shù)的比值是否超過(guò)第二預(yù)定比值;和/或
第三統(tǒng)計(jì)子單元234,用于統(tǒng)計(jì)所述預(yù)定時(shí)間內(nèi)所述具有高頻登錄行為的源ip地址發(fā)起登錄請(qǐng)求所使用的密碼的去重密碼數(shù)與所述源ip地址的發(fā)起登錄請(qǐng)求所使用的用戶名的去重用戶名數(shù)的比值是否超過(guò)第三預(yù)定比值。
所述攻擊確定子單元235進(jìn)一步用于基于所述第一統(tǒng)計(jì)子單元、所述第二統(tǒng)計(jì)子單元和/或所述第三統(tǒng)計(jì)子單元的統(tǒng)計(jì)結(jié)果,確定所述具有高頻登錄行為的源ip地址發(fā)起的登錄請(qǐng)求是否為撞庫(kù)攻擊。
可選地,所述概率計(jì)算子單元231進(jìn)一步用于:
基于預(yù)先生成的語(yǔ)言模型計(jì)算所述源ip地址在所述預(yù)定時(shí)間內(nèi)發(fā)起的登錄請(qǐng)求所使用的密碼具有語(yǔ)義的概率。
需要注意的是,本申請(qǐng)可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,本申請(qǐng)的各個(gè)裝置可采用專用集成電路(asic)或任何其他類似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請(qǐng)的軟件程序可以通過(guò)處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請(qǐng)的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,ram存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本申請(qǐng)的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定 的順序。
雖然前面特別示出并且描述了示例性實(shí)施例,但是本領(lǐng)域技術(shù)人員將會(huì)理解的是,在不背離權(quán)利要求書(shū)的精神和范圍的情況下,在其形式和細(xì)節(jié)方面可以有所變化。