本技術(shù)涉及域名識(shí)別,尤其涉及一種惡意域名識(shí)別方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、在網(wǎng)絡(luò)攻擊的眾多案例中,域名生成算法(domai?n?generat?ion?al?gor?ithm,dga)是一種被廣泛使用的技術(shù)。惡意軟件可以通過(guò)dga技術(shù)動(dòng)態(tài)生成大量域名,即便部分域名被識(shí)別并封鎖,惡意軟件仍能通過(guò)生成的新域名保持與其服務(wù)器的通信,給網(wǎng)絡(luò)安全帶來(lái)了嚴(yán)重威脅。
2、相關(guān)技術(shù)中,為了對(duì)惡意域名進(jìn)行全面檢測(cè),一般通過(guò)基于規(guī)則和統(tǒng)計(jì)特征的攔截技術(shù)對(duì)域名進(jìn)行檢測(cè),然而,這種檢測(cè)需要消耗大量的計(jì)算資源和內(nèi)存,在資源有限的設(shè)備上使用會(huì)導(dǎo)致計(jì)算時(shí)間過(guò)長(zhǎng),檢測(cè)的結(jié)果出現(xiàn)嚴(yán)重的滯后性,以至于不能夠及時(shí)阻斷惡意域名的連接。另一方面,由于這種檢測(cè)方式依賴于預(yù)定義的規(guī)則和模式,可能無(wú)法適應(yīng)新的攻擊模式,將會(huì)導(dǎo)致對(duì)惡意域名識(shí)別的準(zhǔn)確性下降。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例的主要目的在于提出一種惡意域名識(shí)別方法、裝置、計(jì)算機(jī)設(shè)備及可讀存儲(chǔ)介質(zhì),能夠提高對(duì)惡意域名識(shí)別的及時(shí)性和準(zhǔn)確性。
2、為實(shí)現(xiàn)上述目的,本技術(shù)實(shí)施例的第一方面提出了一種惡意域名識(shí)別方法,所述方法包括:
3、通過(guò)滑動(dòng)窗口,從位于當(dāng)前時(shí)間步之前的歷史域名序列中截取當(dāng)前時(shí)間步的輸入序列;
4、將所述輸入序列輸入至目標(biāo)模型,并通過(guò)所述目標(biāo)模型中的第一編碼器按照正向時(shí)間順序生成所述輸入序列的第一隱藏狀態(tài)向量,以及通過(guò)所述目標(biāo)模型中的第二編碼器按照逆向時(shí)間順序生成所述輸入序列的第二隱藏狀態(tài)向量;
5、通過(guò)所述目標(biāo)模型的解碼器基于所述第一隱藏狀態(tài)向量和第二隱藏狀態(tài)向量的融合隱藏狀態(tài)向量,預(yù)測(cè)所述當(dāng)前時(shí)間步的預(yù)測(cè)字符;
6、將所述預(yù)測(cè)字符更新至所述輸入序列,移動(dòng)所述滑動(dòng)窗口以更新得到待預(yù)測(cè)序列,將所述待預(yù)測(cè)序列輸入所述目標(biāo)模型,并通過(guò)所述目標(biāo)模型基于所述待預(yù)測(cè)序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符;
7、重復(fù)執(zhí)行所述將所述預(yù)測(cè)字符更新至所述輸入序列,移動(dòng)所述滑動(dòng)窗口以更新得到待預(yù)測(cè)序列,將所述待預(yù)測(cè)序列輸入所述目標(biāo)模型,并通過(guò)所述目標(biāo)模型基于所述待預(yù)測(cè)序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符的步驟,直至更新得到的多個(gè)預(yù)測(cè)字符的個(gè)數(shù)達(dá)到預(yù)設(shè)個(gè)數(shù)閾值;
8、基于所述多個(gè)預(yù)測(cè)字符確定預(yù)測(cè)惡意域名名單,并根據(jù)所述預(yù)測(cè)惡意域名名單對(duì)待識(shí)別域名進(jìn)行識(shí)別。
9、相應(yīng)的,本技術(shù)實(shí)施例的第二方面提出了一種惡意域名識(shí)別裝置,所述裝置包括:
10、截取模塊,用于通過(guò)滑動(dòng)窗口,從位于當(dāng)前時(shí)間步之前的歷史域名序列中截取當(dāng)前時(shí)間步的輸入序列;
11、生成模塊,用于將所述輸入序列輸入至目標(biāo)模型,并通過(guò)所述目標(biāo)模型中的第一編碼器按照正向時(shí)間順序生成所述輸入序列的第一隱藏狀態(tài)向量,以及通過(guò)所述目標(biāo)模型中的第二編碼器按照逆向時(shí)間順序生成所述輸入序列的第二隱藏狀態(tài)向量;
12、預(yù)測(cè)模塊,用于通過(guò)所述目標(biāo)模型的解碼器基于所述第一隱藏狀態(tài)向量和第二隱藏狀態(tài)向量的融合隱藏狀態(tài)向量,預(yù)測(cè)所述當(dāng)前時(shí)間步的預(yù)測(cè)字符;
13、移動(dòng)模塊,用于將所述預(yù)測(cè)字符更新至所述當(dāng)前時(shí)間步的輸入序列,移動(dòng)所述滑動(dòng)窗口以更新得到下一時(shí)間步的輸入序列,將所述下一時(shí)間步的輸入序列輸入所述目標(biāo)模型,并通過(guò)所述目標(biāo)模型基于所述下一時(shí)間步的輸入序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符;
14、更新模塊,用于重復(fù)執(zhí)行將所述預(yù)測(cè)字符更新至所述當(dāng)前時(shí)間步的輸入序列,移動(dòng)所述滑動(dòng)窗口以更新得到下一時(shí)間步的輸入序列,將所述下一時(shí)間步的輸入序列輸入所述目標(biāo)模型,并通過(guò)所述目標(biāo)模型基于所述下一時(shí)間步的輸入序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符的步驟,直至更新得到的多個(gè)預(yù)測(cè)字符的個(gè)數(shù)達(dá)到預(yù)設(shè)個(gè)數(shù)閾值;
15、識(shí)別模塊,用于基于所述多個(gè)預(yù)測(cè)字符確定預(yù)測(cè)惡意域名名單,并根據(jù)所述預(yù)測(cè)惡意域名名單對(duì)待識(shí)別域名進(jìn)行識(shí)別。
16、在一些實(shí)施方式中,所述生成模塊,還用于:
17、按照正向時(shí)間順序?qū)⑺鲚斎胄蛄袑?duì)應(yīng)的最早時(shí)間步確定為正向起始時(shí)間步,將其他的時(shí)間步確定為正向中間時(shí)間步;
18、通過(guò)所述目標(biāo)模型中的第一編碼器,根據(jù)所述正向起始時(shí)間步對(duì)應(yīng)的正向字符確定所述正向起始時(shí)間步對(duì)應(yīng)的正向隱藏狀態(tài)和正向細(xì)胞狀態(tài);
19、依次針對(duì)每個(gè)所述正向中間時(shí)間步,根據(jù)前序的時(shí)間步對(duì)應(yīng)的所述正向隱藏狀態(tài)和所述正向細(xì)胞狀態(tài),以及所述正向中間時(shí)間步輸入的正向字符,更新所述正向中間時(shí)間步對(duì)應(yīng)的正向隱藏狀態(tài)和正向細(xì)胞狀態(tài),直至最后一個(gè)所述正向中間時(shí)間步的正向隱藏狀態(tài)和正向細(xì)胞狀態(tài)更新完畢,得到所述輸入序列對(duì)應(yīng)的多個(gè)正向隱藏狀態(tài)組成的第一隱藏狀態(tài)向量。
20、在一些實(shí)施方式中,所述生成模塊,還用于:
21、按照逆向時(shí)間順序?qū)⑺鲚斎胄蛄袑?duì)應(yīng)的最晚時(shí)間步確定為逆向起始時(shí)間步,將其他的時(shí)間步確定為逆向中間時(shí)間步;
22、通過(guò)所述目標(biāo)模型中的第二編碼器,根據(jù)所述逆向起始時(shí)間步對(duì)應(yīng)的逆向字符確定所述逆向起始時(shí)間步對(duì)應(yīng)的逆向隱藏狀態(tài)和逆向細(xì)胞狀態(tài);
23、依次針對(duì)每個(gè)所述逆向中間時(shí)間步,根據(jù)后序的時(shí)間步對(duì)應(yīng)的所述逆向隱藏狀態(tài)和所述逆向細(xì)胞狀態(tài),以及所述逆向中間時(shí)間步輸入的逆向字符,更新所述逆向中間時(shí)間步對(duì)應(yīng)的逆向隱藏狀態(tài)和逆向細(xì)胞狀態(tài),直至最后一個(gè)所述逆向中間時(shí)間步的逆向隱藏狀態(tài)和逆向細(xì)胞狀態(tài)更新完畢,得到所述輸入序列對(duì)應(yīng)的多個(gè)逆向隱藏狀態(tài)組成的第二隱藏狀態(tài)向量。
24、在一些實(shí)施方式中,所述識(shí)別模塊,還用于:
25、獲取域名劃分標(biāo)識(shí);
26、從所述多個(gè)更新后的預(yù)測(cè)字符中確定至少一個(gè)域名劃分標(biāo)識(shí),并以所述域名劃分標(biāo)識(shí)為劃分點(diǎn)對(duì)所述多個(gè)預(yù)測(cè)字符進(jìn)行劃分,得到預(yù)測(cè)的多個(gè)預(yù)測(cè)惡意域名;
27、基于所述多個(gè)預(yù)測(cè)惡意域名,確定預(yù)測(cè)惡意域名名單。
28、在一些實(shí)施方式中,所述識(shí)別模塊,還用于:
29、獲取待識(shí)別域名,并根據(jù)所述待識(shí)別域名在所述預(yù)測(cè)惡意域名名單中進(jìn)行匹配,得到匹配結(jié)果;
30、根據(jù)所述匹配結(jié)果,得到所述待識(shí)別域名的識(shí)別結(jié)果。
31、在一些實(shí)施方式中,所述惡意域名識(shí)別裝置還包括訓(xùn)練模塊,用于:
32、獲取樣本輸入序列,并將所述樣本輸入序列輸入至預(yù)設(shè)模型中,得到所述預(yù)設(shè)模型預(yù)測(cè)多個(gè)樣本預(yù)測(cè)字符對(duì)應(yīng)的多個(gè)樣本預(yù)測(cè)概率;
33、獲取位于所述樣本輸入序列后序的樣本時(shí)間步的真實(shí)樣本標(biāo)簽字符,并基于所述真實(shí)樣本標(biāo)簽字符、所述多個(gè)樣本預(yù)測(cè)字符以及對(duì)應(yīng)的所述多個(gè)樣本預(yù)測(cè)概率,計(jì)算所述預(yù)設(shè)模型的目標(biāo)損失;
34、基于所述目標(biāo)損失對(duì)所述預(yù)設(shè)模型進(jìn)行訓(xùn)練,得到目標(biāo)模型。
35、在一些實(shí)施方式中,所述訓(xùn)練模塊,還用于:
36、針對(duì)每個(gè)所述樣本預(yù)測(cè)字符,確定所述樣本預(yù)測(cè)字符對(duì)應(yīng)的樣本預(yù)測(cè)概率;
37、根據(jù)所述樣本預(yù)測(cè)概率與所述真實(shí)樣本標(biāo)簽字符,確定對(duì)應(yīng)的所述樣本預(yù)測(cè)字符對(duì)應(yīng)的第一子損失;
38、根據(jù)所述多個(gè)樣本預(yù)測(cè)字符對(duì)應(yīng)的多個(gè)第一子損失,計(jì)算所述預(yù)設(shè)模型的目標(biāo)損失。
39、相應(yīng)的,本技術(shù)實(shí)施例的第三方面提出了一種計(jì)算機(jī)設(shè)備,所述計(jì)算機(jī)設(shè)備包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)本技術(shù)第一方面實(shí)施例任一項(xiàng)所述的惡意域名識(shí)別方法。
40、相應(yīng)的,本技術(shù)實(shí)施例的第四方面提出了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本技術(shù)第一方面實(shí)施例任一項(xiàng)所述的惡意域名識(shí)別方法。
41、本技術(shù)實(shí)施例通過(guò)滑動(dòng)窗口,從位于當(dāng)前時(shí)間步之前的歷史域名序列中截取當(dāng)前時(shí)間步的輸入序列;將輸入序列輸入至目標(biāo)模型,并通過(guò)目標(biāo)模型中的第一編碼器按照正向時(shí)間順序生成輸入序列的第一隱藏狀態(tài)向量,以及通過(guò)目標(biāo)模型中的第二編碼器按照逆向時(shí)間順序生成輸入序列的第二隱藏狀態(tài)向量;通過(guò)目標(biāo)模型的解碼器基于第一隱藏狀態(tài)向量和第二隱藏狀態(tài)向量的融合隱藏狀態(tài)向量,預(yù)測(cè)當(dāng)前時(shí)間步的預(yù)測(cè)字符;將預(yù)測(cè)字符更新至輸入序列,移動(dòng)滑動(dòng)窗口以更新得到待預(yù)測(cè)序列,將待預(yù)測(cè)序列輸入目標(biāo)模型,并通過(guò)目標(biāo)模型基于待預(yù)測(cè)序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符;重復(fù)執(zhí)行將預(yù)測(cè)字符更新至輸入序列,移動(dòng)滑動(dòng)窗口以更新得到待預(yù)測(cè)序列,將待預(yù)測(cè)序列輸入目標(biāo)模型,并通過(guò)目標(biāo)模型基于待預(yù)測(cè)序列預(yù)測(cè)下一時(shí)間步的預(yù)測(cè)字符的步驟,直至更新得到的多個(gè)預(yù)測(cè)字符的個(gè)數(shù)達(dá)到預(yù)設(shè)個(gè)數(shù)閾值;基于多個(gè)預(yù)測(cè)字符確定預(yù)測(cè)惡意域名名單,并根據(jù)預(yù)測(cè)惡意域名名單對(duì)待識(shí)別域名進(jìn)行識(shí)別。以此,能夠通過(guò)實(shí)時(shí)對(duì)下一時(shí)間點(diǎn)的字符進(jìn)行預(yù)測(cè),提前獲取下一時(shí)間段的預(yù)測(cè)惡意域名名單,提高了對(duì)惡意域名檢測(cè)的及時(shí)性。并且,本技術(shù)是根據(jù)上一時(shí)刻的輸入序列進(jìn)行預(yù)測(cè)得到預(yù)測(cè)惡意域名名單的,而不是基于固定的規(guī)則和模式,在預(yù)測(cè)的過(guò)程中,還能夠結(jié)合正向時(shí)間順序和逆向時(shí)間順序生成融合隱藏狀態(tài)向量,能夠使得目標(biāo)模型更加準(zhǔn)確地理解上下文信息,以便于根據(jù)上一時(shí)刻的域名模式和精確的上下文信息準(zhǔn)確預(yù)測(cè)惡意域名,提高了對(duì)惡意域名識(shí)別的準(zhǔn)確性。綜上,本技術(shù)能夠提高對(duì)惡意域名識(shí)別的及時(shí)性和準(zhǔn)確性。