本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤指一種盜號(hào)防御實(shí)現(xiàn)方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)黑產(chǎn)的不斷發(fā)展,許多公司的數(shù)據(jù)庫都曾被黑客利用各種漏洞而發(fā)生了泄漏,存儲(chǔ)在這些公司數(shù)據(jù)庫中的帳號(hào)和密碼對(duì)則在黑產(chǎn)中進(jìn)行利用。對(duì)于大多數(shù)的用戶而言,在不同的網(wǎng)站使用同一套用戶名/密碼是最簡(jiǎn)單快捷的行為,但這也造成了極大的安全隱患。比如,用戶在A網(wǎng)站和B網(wǎng)站使用的是同一套用戶名/密碼,如果A網(wǎng)站被攻擊而將用戶的信息泄露出去,那么,黑客就可以利用在A網(wǎng)站獲得的用戶名/密碼去登錄B網(wǎng)站。這樣一來,即使B網(wǎng)站的安全性做得再高,也不能防止用戶的賬戶被惡意的利用。這就是通常所說的“撞庫掃號(hào)”行為,而這也是目前盜號(hào)最為頻繁的一個(gè)攻擊方式。
目前主流的防止撞庫掃號(hào)的防御辦法為閾值檢測(cè)。即統(tǒng)計(jì)某一入口或IP下,發(fā)起的登錄次數(shù)以及其中的異常行為的比例,如果這個(gè)比例超過了一定的閾值,那么就可以認(rèn)為這個(gè)IP是一個(gè)黑客。這么做的原理在于,黑客雖然掌握了大量的用戶名/密碼對(duì),但是它并不知道用戶是否在另一個(gè)網(wǎng)站使用了同樣的信息。因此,黑客只能嘗試它所擁有的所有用戶名/密碼來進(jìn)行登錄,如果登錄成功就可以盜取一個(gè)帳號(hào)。因?yàn)閿?shù)據(jù)量較大,黑客會(huì)以極快的速度來進(jìn)行登錄嘗試,這樣才能保證它自身的收益。而這些嘗試中,又會(huì)有很大一部分是失敗的,因此,失敗的比例會(huì)占嘗試的很大一部分。而對(duì)于正常用戶而言,一來不會(huì)短時(shí)間內(nèi)發(fā)起大量登錄,二來不會(huì)出現(xiàn)大量的失敗,即使有輸錯(cuò)的情況,也不會(huì)占太大比例。通過這種行為的區(qū)別,來指定一個(gè)閾值進(jìn)行區(qū)分,是一個(gè)簡(jiǎn)單易行的方法,目前也被大量的公司所采用。而對(duì)于閾值的設(shè)置,往往是根據(jù)次數(shù)來進(jìn)行分段的,例如登錄10次失敗超過90%,登錄100次失敗超過70%等。
上述閾值檢測(cè)的方法雖然簡(jiǎn)單易行,但存在以下幾個(gè)缺點(diǎn):
1)滯后性:閾值檢測(cè)系統(tǒng)往往會(huì)對(duì)一段時(shí)間內(nèi)的日志進(jìn)行分析。而這也就意味著,這段時(shí)間的登錄行為是不受到保護(hù)的。即使只有很短的幾分鐘,黑客也能夠發(fā)起上萬次的嘗試,盜取到有價(jià)值帳號(hào)的可能性也大大增高。
2)閾值固定:閾值的設(shè)定往往是通過經(jīng)驗(yàn),人為的總結(jié)出來的。但是黑客本身,也能夠通過其經(jīng)驗(yàn),去猜測(cè)目標(biāo)服務(wù)器的閾值。例如,如果一個(gè)黑客在登錄100次以上就被封禁,它可以猜測(cè)到閾值大致在100左右,然后通過降低攻擊頻率,替換IP等方式來進(jìn)行規(guī)避,使得基于閾值的防御完全失效。
3)閾值不連續(xù):閾值的分段是由于次數(shù)越多,可疑性越大,因此允許的失敗比例會(huì)越低。但是,這個(gè)不連續(xù)性會(huì)造成較大的問題。例如,假如一個(gè)閾值的一個(gè)分段點(diǎn)為100,對(duì)于100以下的次數(shù),允許失敗率為90%,而對(duì)于100以上的次數(shù),允許的失敗率只有70%。那么對(duì)于黑客來說,一旦它猜測(cè)出了這個(gè)分段標(biāo)準(zhǔn),它就可以把它的嘗試次數(shù)設(shè)置到99,從而最大化攻擊的效率。
4)閾值人為設(shè)定:閾值的設(shè)定往往是憑借人為的經(jīng)驗(yàn)來設(shè)定的,這樣一來,成本就會(huì)增加不少。另外,黑客的攻擊行為是一直變化的,人為的處理方式也就意味著響應(yīng)的滯后性,很可能等人為反應(yīng)過來的時(shí)候,一個(gè)攻擊行為已經(jīng)完成了。同樣的,如果想將同一套策略移植到不同的服務(wù),則需要不同的閾值設(shè)定。這個(gè)時(shí)候,人為設(shè)定也將大大限制防御系統(tǒng)本身的擴(kuò)展性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種盜號(hào)防御實(shí)現(xiàn)方法及裝置,用以解決現(xiàn)有技術(shù)中存在的盜號(hào)防御閾值固定不能實(shí)施動(dòng)態(tài)調(diào)整,盜號(hào)檢測(cè)準(zhǔn)確性降低,不能有效檢測(cè)到盜號(hào)行為,導(dǎo)致網(wǎng)絡(luò)安全性差的問題。
一方面,本發(fā)明實(shí)施例提供了一種盜號(hào)防御實(shí)現(xiàn)方法,包括:
監(jiān)控各IP地址的登錄數(shù)據(jù),獲取各IP地址上的登錄次數(shù)和失敗次數(shù);針對(duì)每個(gè)IP地址,執(zhí)行下列操作:
根據(jù)獲取到的登錄次數(shù)和失敗次數(shù),確定獲取到的登錄次數(shù)對(duì)應(yīng)的失敗概率;
判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;所述閾值曲線為根據(jù)登錄日志建立、表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的曲線;
當(dāng)大于時(shí),確定該IP地址存在異常登錄;當(dāng)不大于時(shí),確定該IP地址不存在異常登錄。
在一些可選的實(shí)施例中,判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值,具體包括:
根據(jù)預(yù)先建立的閾值曲線,以該登錄次數(shù)作為橫坐標(biāo),獲取閾值曲線上對(duì)應(yīng)的縱坐標(biāo)的值,得到該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;
比較確定出的失敗概率是否大于獲取到的失敗概率閾值。
在一些可選的實(shí)施例中,監(jiān)控各IP地址的登錄數(shù)據(jù)之前,還包括:
獲取系統(tǒng)的登錄日志,根據(jù)登錄日志建立表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
在一些可選的實(shí)施例中,根據(jù)登錄日志建立閾值曲線的過程,具體包括:
根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值;所述特征值包括登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值;
根據(jù)所述特征值,采用選定的曲線擬合算法,生成表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
在一些可選的實(shí)施例中,所述根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值,具體包括:
統(tǒng)計(jì)獲取的登錄日志中每個(gè)IP地址的登錄行為的失敗次數(shù)和登錄次數(shù);
按照失敗次數(shù)的大小進(jìn)行排序,并判斷排序后的相鄰兩個(gè)失敗次數(shù)是否符合設(shè)定的特征值判定條件;當(dāng)符合時(shí),根據(jù)預(yù)設(shè)規(guī)則提取相鄰的兩個(gè)失敗次數(shù)中的一個(gè)作為登錄次數(shù)對(duì)應(yīng)的失敗次數(shù)特征值;
將登錄次數(shù)作為登錄次數(shù)特征值,并根據(jù)登錄次數(shù)和對(duì)應(yīng)的失敗次數(shù)特征值確定出對(duì)應(yīng)的失敗概率特征值,得到建立閾值曲線的特征值。
在一些可選的實(shí)施例中,根據(jù)所述特征值生成閾值曲線的過程,具體包括:
采用最小二元法,以確定出的登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值作為曲線上的已知點(diǎn),擬合出包含已知點(diǎn)閾值曲線;或
采用三次樣條插值的方式,以確定出的登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值作為樣點(diǎn),在相鄰樣點(diǎn)之間進(jìn)行插值計(jì)算,擬合出包含樣點(diǎn)的閾值曲線。
本發(fā)明實(shí)施例還提供一種盜號(hào)防御實(shí)現(xiàn)裝置,包括:
監(jiān)控獲取模塊,用于監(jiān)控各IP地址的登錄數(shù)據(jù),獲取各IP地址上的登錄次數(shù)和失敗次數(shù);
概率確定模塊,用于針對(duì)每個(gè)IP地址,執(zhí)行下列操作:根據(jù)獲取到的登錄次數(shù)和失敗次數(shù),確定獲取到的登錄次數(shù)對(duì)應(yīng)的失敗概率;
異常判斷模塊,用于判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;所述閾值曲線為根據(jù)登錄日志建立、表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的曲線;當(dāng)大于時(shí),確定該IP地址存在異常登錄;當(dāng)不大于時(shí),確定該IP地址不存在異常登錄。
在一些可選的實(shí)施例中,所述異常判斷模塊,具體用于:
根據(jù)預(yù)先建立的閾值曲線,以該登錄次數(shù)作為橫坐標(biāo),獲取閾值曲線上對(duì)應(yīng)的縱坐標(biāo)的值,得到該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;
比較確定出的失敗概率是否大于獲取到的失敗概率閾值。
在一些可選的實(shí)施例中,上述裝置還包括:
曲線建立模塊,用于獲取系統(tǒng)的登錄日志,根據(jù)登錄日志建立表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
在一些可選的實(shí)施例中,所述曲線建立模塊,具體用于:
根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值;所述特征值包括登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值;
根據(jù)所述特征值,采用選定的曲線擬合算法,生成表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
上述技術(shù)方案具有如下有益效果:對(duì)各IP地址的登錄次數(shù)和失敗次數(shù)進(jìn)行監(jiān)控,根據(jù)失敗概率和預(yù)先建立的閾值曲線上響應(yīng)登錄次數(shù)的失敗概率的大小比較,確定是否存在登錄異常;通過閾值曲線的形式可以實(shí)現(xiàn)閾值的連續(xù)性,同時(shí)根據(jù)對(duì)登錄日志的監(jiān)控,可以實(shí)時(shí)動(dòng)態(tài)調(diào)整閾值曲線,實(shí)現(xiàn)基于網(wǎng)絡(luò)中的各種狀態(tài)變化的動(dòng)態(tài)閾值調(diào)整,避免固定閾值所導(dǎo)致的防御失效,從而提高盜號(hào)檢測(cè)的準(zhǔn)確性,有效的檢測(cè)到各種可能的盜號(hào)行為,提高網(wǎng)絡(luò)的安全可靠性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明實(shí)施例一中盜號(hào)防御實(shí)現(xiàn)方法的流程圖;
圖2是本發(fā)明實(shí)施例一中預(yù)先建立的一條閾值曲線的示例圖;
圖3是本發(fā)明實(shí)施例二中盜號(hào)防御實(shí)現(xiàn)方法的流程圖;
圖4是本發(fā)明實(shí)施例三中閾值曲線建立方法的流程圖;
圖5是本發(fā)明實(shí)施例中盜號(hào)防御實(shí)現(xiàn)裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例中盜號(hào)防御實(shí)現(xiàn)系統(tǒng)的部署示例圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了解決現(xiàn)有技術(shù)中存在的盜號(hào)檢測(cè)過程中不能實(shí)現(xiàn)動(dòng)態(tài)閾值調(diào)整,且閾值不連續(xù),導(dǎo)致檢測(cè)結(jié)果準(zhǔn)確性差,網(wǎng)絡(luò)安全性差的問題,本發(fā)明實(shí)施例提供一種盜號(hào)防御實(shí)現(xiàn)方法,能夠盜號(hào)檢測(cè)過程中閾值的動(dòng)態(tài)調(diào)整,且能夠建立針對(duì)每個(gè)登錄次數(shù)的連續(xù)閾值曲線,實(shí)現(xiàn)閾值連續(xù),從而能夠更準(zhǔn)確、有效地檢測(cè)到網(wǎng)絡(luò)中存在的盜號(hào)行為,提高網(wǎng)絡(luò)安全。
實(shí)施例一
本發(fā)明實(shí)施例一提供的盜號(hào)防御實(shí)現(xiàn)方法,其流程如圖1所示,包括如下步驟:
步驟S101:監(jiān)控各IP地址的登錄數(shù)據(jù),獲取各IP地址上的登錄次數(shù)和失敗次數(shù)。
通過監(jiān)控各IP地址的登錄數(shù)據(jù),統(tǒng)計(jì)登錄次數(shù)和失敗次數(shù),實(shí)現(xiàn)監(jiān)控其登錄行為是否異常。導(dǎo)致登錄失敗的原因可能包括用戶不存在,密碼錯(cuò)誤以及異地登錄等等。
失敗次數(shù)也可以是異常次數(shù),登錄異??梢园ǖ卿浭『偷卿洺晒Φ惓?。
步驟S102:針對(duì)每個(gè)IP地址,執(zhí)行下列操作:
步驟S103:根據(jù)獲取到的登錄次數(shù)和失敗次數(shù),確定獲取到的登錄次數(shù)對(duì)應(yīng)的失敗概率。
通過統(tǒng)計(jì)登錄次數(shù)和失敗次數(shù),即可以確定出失敗次數(shù)所占的概率,得到登錄次數(shù)對(duì)應(yīng)的失敗概率。
步驟S104:判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值。當(dāng)大于時(shí),執(zhí)行步驟S105;當(dāng)不大于時(shí),執(zhí)行步驟S106。
其中,閾值曲線為根據(jù)登錄日志建立、表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的曲線。如圖2所示,就是預(yù)先建立的一條閾值曲線的示例。當(dāng)然所建立的閾值曲線不限于圖2所示的曲線,閾值曲線可以根據(jù)登錄日志進(jìn)行實(shí)時(shí)的調(diào)整,也可以在根據(jù)登錄日志建立閾值曲線后通過人工的方式在進(jìn)行調(diào)整,已達(dá)到更好的盜號(hào)防御效果。
區(qū)別于傳統(tǒng)的分段式的閾值系統(tǒng),本發(fā)明中采用了一種曲線式的閾值系統(tǒng)。對(duì)于每一個(gè)登錄次數(shù),都對(duì)應(yīng)了一個(gè)合適的閾值頻率。這樣一來,就有效的防止了黑客利用分段邊界來獲得最大收益的可能。而這個(gè)閾值曲線的生成,只需要設(shè)定幾個(gè)特征值,就可以通過插值或其他方式擬合而自動(dòng)生成出一條完整的曲線。如圖2所示的曲線上的小圓圈極為特征值,根據(jù)這幾個(gè)特征值可以擬合出閾值曲線,閾值曲線的橫坐標(biāo)為登錄次數(shù),縱坐標(biāo)為登錄次數(shù)對(duì)應(yīng)的失敗概率。
在進(jìn)行異常判斷時(shí),根據(jù)預(yù)先建立的閾值曲線,以該登錄次數(shù)作為橫坐標(biāo),獲取閾值曲線上對(duì)應(yīng)的縱坐標(biāo)的值,得到該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;比較確定出的失敗概率是否大于獲取到的失敗概率閾值。
步驟S105:確定該IP地址存在異常登錄。
當(dāng)確定出的失敗概率大于閾值曲線上相同登錄次數(shù)對(duì)應(yīng)的失敗概率閾值時(shí),說明該IP出現(xiàn)登錄失敗的次數(shù)大于了一定的值,認(rèn)為其存在異常登錄行為。
步驟S106:確定該IP地址不存在異常登錄。
當(dāng)確定出的失敗概率不大于閾值曲線上相同登錄次數(shù)對(duì)應(yīng)的失敗概率閾值時(shí),說明該IP出現(xiàn)登錄失敗的次數(shù)在控制范圍內(nèi),認(rèn)為其不存在異常登錄行為。
面對(duì)黑客的攻擊行為、可以使用動(dòng)態(tài)智能的防盜號(hào)方法進(jìn)行智能的區(qū)分,對(duì)于每一次登錄行為,都進(jìn)行及時(shí)的處理監(jiān)控,不給黑客任何可乘之機(jī)。使用這種方法,即使在其他不同的場(chǎng)景,也能夠自動(dòng)進(jìn)行識(shí)別,減少人工成本,加大擴(kuò)展性,能夠極大的提高每一個(gè)系統(tǒng)的帳號(hào)安全性。
實(shí)施例二
本發(fā)明實(shí)施例二提供的盜號(hào)防御實(shí)現(xiàn)方法,其流程如圖3所示,包括如下步驟:
步驟S301:獲取系統(tǒng)的登錄日志。
系統(tǒng)的登陸日志可以來源于用戶通過終端設(shè)備的各種登錄行為,可以獲取一段時(shí)間內(nèi)的登錄日志,也可以獲取一定數(shù)量的登錄日志。
步驟S302:根據(jù)登錄日志建立表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
建立閾值曲線時(shí),先確定幾個(gè)特征值,根據(jù)特征值擬合出閾值曲線。具體的,根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值;其中,特征值包括登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值;根據(jù)確定出的特征值,采用選定的曲線擬合算法,生成表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
特征值的獲取可以動(dòng)態(tài)實(shí)現(xiàn),當(dāng)有新的登錄日志時(shí)可以進(jìn)行動(dòng)態(tài)更新,動(dòng)態(tài)更新后可以生成新的閾值曲線。本發(fā)明中閾值采用智能檢測(cè)的方式來確定。在收集到一定的登錄日志訓(xùn)練集之后,對(duì)每一個(gè)IP下的異常頻率和次數(shù)進(jìn)行統(tǒng)計(jì)。正常用戶和黑客的登錄行為必然會(huì)存在一定的差異,否則成本會(huì)大幅升高,黑客將無法獲益,因此,從這些統(tǒng)計(jì)數(shù)據(jù)中,發(fā)現(xiàn)異常點(diǎn),從而確定出一個(gè)閾值來進(jìn)行準(zhǔn)確劃分。這樣一來,不論黑客的行為如何變化,都能制定出合適的閾值來進(jìn)行劃分。
步驟S303:監(jiān)控各IP地址的登錄數(shù)據(jù),獲取各IP地址上的登錄次數(shù)和失敗次數(shù)。
該步驟和下面步驟的具體實(shí)現(xiàn)可參照實(shí)施例一的描述。
步驟S304:針對(duì)每個(gè)IP地址,執(zhí)行下列操作:
步驟S305:根據(jù)獲取到的登錄次數(shù)和失敗次數(shù),確定獲取到的登錄次數(shù)對(duì)應(yīng)的失敗概率。
步驟S306:判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值。
當(dāng)大于時(shí),執(zhí)行步驟S307;當(dāng)不大于時(shí),執(zhí)行步驟S308。
步驟S307:確定該IP地址存在異常登錄。
步驟S308:確定該IP地址不存在異常登錄。
實(shí)施例三
本發(fā)明實(shí)施例三提供上述供盜號(hào)防御實(shí)現(xiàn)方法閾值曲線建立的一種實(shí)現(xiàn)過程,其流程如圖4所示,包括如下步驟:
步驟S401:獲取系統(tǒng)的登錄日志。
步驟S402:根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值。其中,特征值包括登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值。
對(duì)于建立閾值曲線的特征值可以根據(jù)登錄日志進(jìn)行確定,在登陸日志有更新時(shí)可以動(dòng)態(tài)調(diào)整更新。
確定特征值的過程包括:
統(tǒng)計(jì)獲取的登錄日志中每個(gè)IP地址的登錄行為的失敗次數(shù)和登錄次數(shù);
按照失敗次數(shù)的大小進(jìn)行排序,并判斷排序后的相鄰兩個(gè)失敗次數(shù)是否符合設(shè)定的特征值判定條件;當(dāng)符合時(shí),根據(jù)預(yù)設(shè)規(guī)則提取相鄰的兩個(gè)失敗次數(shù)中的一個(gè)作為登錄次數(shù)對(duì)應(yīng)的失敗次數(shù)特征值;
將登錄次數(shù)作為登錄次數(shù)特征值,并根據(jù)登錄次數(shù)和對(duì)應(yīng)的失敗次數(shù)特征值確定出對(duì)應(yīng)的失敗概率特征值,得到建立閾值曲線的特征值。
對(duì)于曲線閾值來說,能夠獲取到的特征值越多,插值結(jié)果越準(zhǔn)確。那么,對(duì)于上百次的登錄行為來說,人工的方法獲得的結(jié)果顯然是不準(zhǔn)確而且不全面的。因此可以采用一個(gè)智能檢測(cè)方式來自動(dòng)分析出樣本中所包含的全部特征點(diǎn)。
在具體實(shí)現(xiàn)時(shí),可以采用不同的實(shí)現(xiàn)方式,例如通過一段腳本代碼,或者通過設(shè)定的數(shù)組,或者通過預(yù)先編寫的小程序等等。
以采用數(shù)組方式實(shí)現(xiàn)為例,基于流式處理,每一個(gè)登錄日志的到來,都會(huì)產(chǎn)生一個(gè)當(dāng)前的數(shù)據(jù)結(jié)果。為了找出特征點(diǎn),所采用的智能檢測(cè)算法設(shè)計(jì)如下:
1)定義一個(gè)數(shù)組,每一個(gè)數(shù)組的元素為一個(gè)映射(Map)。在這個(gè)Map中,關(guān)鍵字(key)是IP地址,值(value)是失敗次數(shù)。而數(shù)組的序號(hào),其實(shí)就代表的登錄總次數(shù)。
2)每接收到一個(gè)登錄日志,從數(shù)組的第一個(gè)元素開始:如果當(dāng)前元素map中存在有該IP地址,那么如果登錄結(jié)果為失敗,把value加1,否則不變,然后對(duì)下一個(gè)數(shù)組元素進(jìn)行同樣的操作;如果當(dāng)前元素map不存在該IP地址,那么創(chuàng)建對(duì)應(yīng)的IP地址,并把value根據(jù)登錄結(jié)果,賦值成0或者1。
3)當(dāng)處理的登錄日志達(dá)到某一目標(biāo)數(shù)量,或者達(dá)到設(shè)定的時(shí)間長(zhǎng)度后,對(duì)數(shù)組中的每一個(gè)元素做如下處理:對(duì)當(dāng)前map中的所有IP地址,按value的大小,從小到大進(jìn)行排序,并計(jì)算平均值。從小往大遍歷結(jié)果,如果當(dāng)前value的值與下一個(gè)value的值的比值小于設(shè)定的比值閾值(比如50%),并且當(dāng)前value值小于平均值,而下一個(gè)value值大于平均值,那么,下一個(gè)value的值就是當(dāng)前登錄次數(shù)對(duì)應(yīng)的失敗次數(shù)特征值,據(jù)此可以得到當(dāng)前登錄次數(shù)對(duì)應(yīng)的失敗概率特征值。
4)對(duì)數(shù)組每一個(gè)元素進(jìn)行遍歷,如果當(dāng)前數(shù)據(jù)存在特征值,就會(huì)被提取出來了。對(duì)于不存在的點(diǎn),也可以后期通過插值的辦法求出來。
上述采用數(shù)組的方式實(shí)現(xiàn)時(shí),判斷排序后的相鄰兩個(gè)失敗次數(shù)是否符合設(shè)定的特征值判定條件時(shí),所設(shè)定的判定條件為相鄰兩個(gè)失敗次數(shù)的比值小于設(shè)定的比值閾值,且前一個(gè)失敗次數(shù)小于平均值,后一個(gè)失敗次數(shù)大于平均值。可以理解的是,這只是設(shè)定的判定條件的一種舉例,在實(shí)際應(yīng)用中,可以根據(jù)需要選擇不同的判定條件,例如判定相鄰兩個(gè)失敗次數(shù)的差值是否符合設(shè)定條件,或者直接判定相鄰兩個(gè)失敗次數(shù)各自滿足什么條件等等。
在提取特征值時(shí),可以如上述數(shù)組方式中那樣,提取下一個(gè)value作為特征值,也可以提取當(dāng)前的value作為特征值,具體提取哪一個(gè)可以根據(jù)需要設(shè)定。
步驟S403:根據(jù)確定的特征值,采用選定的曲線擬合算法,生成表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
雖然可以對(duì)海量登錄數(shù)據(jù)進(jìn)行處理來提高準(zhǔn)確性,但由于數(shù)據(jù)本身的連續(xù)性是沒有辦法保障的,往往只能總結(jié)出某些請(qǐng)求次數(shù)下的頻率閾值,因此要建立閾值曲線就需要一個(gè)從一些不連續(xù)的點(diǎn),擬合出一段曲線。在確定特征值之后,擬合閾值曲線時(shí),可以采用不同的擬合方法來實(shí)現(xiàn),例如:
采用最小二元法,以確定出的登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值作為曲線上的已知點(diǎn),擬合出包含已知點(diǎn)閾值曲線。最小二元法是比較簡(jiǎn)單易懂的方法,通過設(shè)定一個(gè)特定的函數(shù)形式,最小二元法可以確定每一個(gè)系數(shù)a的值,使得總體的偏差為最小值。
或
采用三次樣條插值的方式,以確定出的登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值作為樣點(diǎn),在相鄰樣點(diǎn)之間進(jìn)行插值計(jì)算,擬合出包含樣點(diǎn)的閾值曲線。三次樣條插值是通過一系列特征點(diǎn)的一條光滑曲線,數(shù)學(xué)上通過求解三彎矩方程組得出曲線函數(shù)組的過程。相比于最小二元法,三次樣條插值所產(chǎn)生的曲線,不會(huì)局限于某一具體的模型,適用的場(chǎng)景更加廣泛。對(duì)于每一個(gè)特征點(diǎn),三次樣條插值能夠確保經(jīng)過每一個(gè)已知的特征點(diǎn)。另外,它還能使得曲線在特征點(diǎn)的導(dǎo)數(shù)和二階導(dǎo)數(shù)值相等,也就是說,在特征點(diǎn)附近的誤差,也能夠控制在很小的范圍內(nèi)。這樣一來,就可以使得整個(gè)曲線閾值更加精確。
本發(fā)明方法,為了解決傳統(tǒng)分段閾值所存在的局限性,引入了曲線閾值的概念。曲線閾值可以解決傳統(tǒng)分段閾值由于不連續(xù)性而造成的漏洞,更好的防御黑客的攻擊。同時(shí),為了簡(jiǎn)化曲線閾值的生成過程和減少人力成本,通過一個(gè)智能檢測(cè)算法,使用機(jī)器學(xué)習(xí)的辦法,智能的去識(shí)別攻擊行為和正常的登錄行為。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種盜號(hào)防御實(shí)現(xiàn)裝置,其結(jié)構(gòu)如圖5所示,包括:監(jiān)控獲取模塊501、概率確定模塊502和異常判斷模塊503。
監(jiān)控獲取模塊501,用于監(jiān)控各IP地址的登錄數(shù)據(jù),獲取各IP地址上的登錄次數(shù)和失敗次數(shù)。
概率確定模塊502,用于針對(duì)每個(gè)IP地址,執(zhí)行下列操作:根據(jù)獲取到的登錄次數(shù)和失敗次數(shù),確定獲取到的登錄次數(shù)對(duì)應(yīng)的失敗概率。
異常判斷模塊503,用于判斷確定出的失敗概率是否大于預(yù)先建立的閾值曲線上該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;其中,閾值曲線為根據(jù)登錄日志建立、表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的曲線;當(dāng)大于時(shí),確定該IP地址存在異常登錄;當(dāng)不大于時(shí),確定該IP地址不存在異常登錄。
優(yōu)選的,上述異常判斷模塊503,具體用于根據(jù)預(yù)先建立的閾值曲線,以該登錄次數(shù)作為橫坐標(biāo),獲取閾值曲線上對(duì)應(yīng)的縱坐標(biāo)的值,得到該登錄次數(shù)對(duì)應(yīng)的失敗概率閾值;比較確定出的失敗概率是否大于獲取到的失敗概率閾值。
優(yōu)選的,上述盜號(hào)防御實(shí)現(xiàn)裝置,還包括:
曲線建立模塊504,用于獲取系統(tǒng)的登錄日志,根據(jù)登錄日志建立表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
優(yōu)選的,上述曲線建立模塊504,具體用于根據(jù)獲取的登錄日志,確定建立閾值曲線的特征值;其中,特征值包括登錄次數(shù)特征值和對(duì)應(yīng)的失敗概率特征值;根據(jù)確定出的特征值,采用選定的曲線擬合算法,生成表征登錄次數(shù)和失敗概率閾值對(duì)應(yīng)關(guān)系的閾值曲線。
可選的,該盜號(hào)防御實(shí)現(xiàn)裝置可以布置在圖6所示的盜號(hào)防御實(shí)現(xiàn)系統(tǒng)中。如圖6所示的系統(tǒng),包括提供登錄日志的終端設(shè)備(日志來源)、kafka集群、storm集群和處理結(jié)果存儲(chǔ)器。其中,提供登錄日志的終端設(shè)備可以包括個(gè)人計(jì)算機(jī)、筆記本電腦、移動(dòng)終端等等;kafka集群為分布式消息發(fā)布和訂閱的系統(tǒng),可以收集處理各種登錄日志文件;storm集群是一個(gè)免費(fèi)開源、分布式、高容錯(cuò)的實(shí)時(shí)計(jì)算系統(tǒng),盜號(hào)防御實(shí)現(xiàn)裝置設(shè)置在該系統(tǒng)中,實(shí)現(xiàn)對(duì)登錄日志的處理和對(duì)各IP地址的監(jiān)控,以便更好地實(shí)現(xiàn)盜號(hào)防御;處理結(jié)果存儲(chǔ)器存儲(chǔ)各種數(shù)據(jù)。
想要實(shí)現(xiàn)動(dòng)態(tài)的更新響應(yīng),流式處理是必不可少的,而考慮到登錄日志的量級(jí),并行化的操作也是必不可少的。例如,可以利用kafka和storm實(shí)現(xiàn)了一套并行的流式處理框架。在并行化方面,可以設(shè)計(jì)為了一種拓?fù)浣Y(jié)構(gòu),部署在storm上。然后登錄日志就會(huì)從kafka獲取,分布式的流經(jīng)每一個(gè)節(jié)點(diǎn)進(jìn)行處理,最終實(shí)時(shí)的產(chǎn)生結(jié)果。
本發(fā)明的上述盜號(hào)防御實(shí)現(xiàn)方法,能夠通過流式處理,采用曲線閾值實(shí)現(xiàn)對(duì)異常登陸行為的智能識(shí)別,起到反盜號(hào)的作用,實(shí)現(xiàn)網(wǎng)絡(luò)安全防御,其識(shí)別準(zhǔn)確度高,提高了網(wǎng)絡(luò)安全性。由于采用了曲線閾值,可以彌補(bǔ)傳統(tǒng)分段閾值的缺陷,加強(qiáng)閾值方法對(duì)賬戶安全的保護(hù)力度;此外,智能生成閾值的算法,不僅能夠降低人工成本,增加準(zhǔn)確率,在應(yīng)對(duì)黑客攻擊手段的變化性上,也同樣能夠做出有效的防御,對(duì)于建立一個(gè)安全的網(wǎng)絡(luò)環(huán)境有著極大的幫助。
本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說明性邏輯塊(illustrative logical block),單元,和步驟可以通過電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說明性部件(illustrative components),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過硬件還是軟件來實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。
本發(fā)明實(shí)施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器,數(shù)字信號(hào)處理器,專用集成電路(ASIC),現(xiàn)場(chǎng)可編程門陣列或其它可編程邏輯裝置,離散門或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過計(jì)算裝置的組合來實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類似的配置來實(shí)現(xiàn)。
本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲(chǔ)于RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫信息。可選地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于ASIC中,ASIC可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。
在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)、磁盤存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(DSL)或以例如紅外、無線和微波等無線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、鐳射盤、光盤、DVD、軟盤和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。
以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。