沈言玉,張三峰,2,3,曹玖新,2,3
〔1.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 211189;2.計(jì)算機(jī)網(wǎng)絡(luò)和信息集成教育部重點(diǎn)實(shí)驗(yàn)室(東南大學(xué)),江蘇南京 211189;3.網(wǎng)絡(luò)空間國(guó)際治理研究基地(東南大學(xué)),江蘇南京 211189〕
驗(yàn)證碼作為互聯(lián)網(wǎng)安全的第一道防線[1],被廣泛應(yīng)用于賬號(hào)登錄、注冊(cè)、密碼找回等驗(yàn)環(huán)節(jié),以防止惡意腳本程序?yàn)E用網(wǎng)絡(luò)資源或者暴力破解攻擊。然而,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,基于深層網(wǎng)絡(luò)模型的破解工具的識(shí)別準(zhǔn)確率和攻擊成功率越來(lái)越高,驗(yàn)證碼系統(tǒng)的安全性逐漸降低[2]。
盡管深度學(xué)習(xí)模型對(duì)多數(shù)樣本的識(shí)別準(zhǔn)確率很高,但近期的研究發(fā)現(xiàn)它對(duì)某些精心設(shè)計(jì)的樣本的識(shí)別率很低[3]。在原始樣本的基礎(chǔ)上精心構(gòu)造對(duì)抗樣本,并欺騙神經(jīng)網(wǎng)絡(luò)模型的攻擊技術(shù)稱為對(duì)抗攻擊。Szegedy[4]等人首先指出了對(duì)抗樣本的存在。對(duì)抗攻擊在樣本上添加的微小擾動(dòng)對(duì)人類視覺(jué)系統(tǒng)而言幾乎不可察覺(jué),因此對(duì)于驗(yàn)證碼來(lái)說(shuō)不影響其可讀性。
本文研究基于對(duì)抗樣本增強(qiáng)文本驗(yàn)證碼安全性的技術(shù),提出基于區(qū)域更新的模型集成白盒生成方法(Model Ensemble White-Box Generation based on Region Update,MEWG-RU)。MEWG-RU同時(shí)使用如VGG、ResNet、DenseNet等多個(gè)模型生成對(duì)抗驗(yàn)證碼,根據(jù)每個(gè)生成模型的預(yù)測(cè)結(jié)果對(duì)損失函數(shù)進(jìn)行加權(quán)求和,將驗(yàn)證碼文本區(qū)域和背景區(qū)域相區(qū)分,并通過(guò)梯度下降的方式更新驗(yàn)證碼圖像的像素值以最小化目標(biāo)函數(shù)。MEWG-RU可以有效地提高對(duì)抗驗(yàn)證碼的遷移性,降低未知模型的識(shí)別率,同時(shí)可以避免識(shí)別模型預(yù)處理對(duì)擾動(dòng)的破壞,有效地增加了文本驗(yàn)證碼的安全性。
在原始樣本添加特定噪音后使得模型出錯(cuò)的樣本稱為對(duì)抗樣本。原始樣本添加的噪音稱為對(duì)抗擾動(dòng)或?qū)乖胍簟T谝阎繕?biāo)模型的網(wǎng)絡(luò)結(jié)構(gòu)、參數(shù)、訓(xùn)練數(shù)據(jù)的基礎(chǔ)上添加特定噪音,構(gòu)造對(duì)抗樣本的方法稱白盒生成。某些對(duì)抗樣本除了能夠欺騙生成它的模型之外,對(duì)其它的基于深度學(xué)習(xí)的模型仍然可以使其輸出錯(cuò)誤的分類結(jié)果,這種性質(zhì)稱為對(duì)抗樣本的遷移性[7]。驗(yàn)證碼通常需要面臨未知的識(shí)別模型,遷移性尤為重要。
Goodfellow等人提出一種稱為快速梯度符號(hào)法FGSM[5]來(lái)快速生成對(duì)抗樣本,它沿著每個(gè)像素的梯度符號(hào)方向執(zhí)行一步梯度更新。其擾動(dòng)計(jì)算方法為:
Kurakin等人通過(guò)迭代擴(kuò)展FGSM設(shè)計(jì)了BIM[6],在每次迭代時(shí)計(jì)算擾動(dòng)方向,同時(shí)通過(guò)剪裁操作避免在每個(gè)像素上有過(guò)大的改變:
對(duì)抗樣本則通過(guò)多次迭代產(chǎn)生:
Osadchy等人[9]首次將對(duì)抗樣本技術(shù)結(jié)合在驗(yàn)證碼中,提出DeepCAPTCHA方法生成圖像驗(yàn)證碼。DeepCAPTCHA在對(duì)抗樣本生成過(guò)程中把容易被樣本預(yù)處理去除的噪音事先去除,保證最終對(duì)抗樣本添加的擾動(dòng)不會(huì)被預(yù)處理操作去除。Shi等人[10]設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)名為aCAPTCHA的對(duì)抗性驗(yàn)證碼生成和評(píng)估系統(tǒng),該系統(tǒng)集成了圖像預(yù)處理技術(shù)、驗(yàn)證碼攻擊技術(shù)和對(duì)抗性驗(yàn)證碼生成方法。與之相比,本文通過(guò)模型集成和區(qū)域更新的方法提高對(duì)抗樣本在遷移性和抗擾動(dòng)噪音去除能力,可進(jìn)一步增強(qiáng)對(duì)抗驗(yàn)證碼的安全性。
對(duì)抗驗(yàn)證碼生成問(wèn)題定義為求解滿足條件的對(duì)抗樣本x',條件為:
即根據(jù)驗(yàn)證碼y生成對(duì)抗驗(yàn)證碼x',目標(biāo)模型f的識(shí)別結(jié)果y'至少有一個(gè)或多個(gè)字符和y不吻合。其中x為原始驗(yàn)證碼樣本,為模型輸出的第i個(gè)字符中類別j的概率值,L為文本驗(yàn)證碼的字符長(zhǎng)度,擾動(dòng)大小d(x,x')為優(yōu)化問(wèn)題的約束,這里僅要求添加的擾動(dòng)在范圍內(nèi),添加的噪音不影響肉眼識(shí)別效果即可。
在對(duì)抗驗(yàn)證碼的生成過(guò)程中,MEWG-RU利用現(xiàn)有的數(shù)據(jù)集訓(xùn)練得到多個(gè)不同網(wǎng)絡(luò)結(jié)構(gòu)的模型,然后能夠同時(shí)欺騙這些模型的對(duì)抗驗(yàn)證碼才可以作為結(jié)果輸出:
其中y'k;i為模型fk輸出第i個(gè)字符的預(yù)測(cè)結(jié)果,為模型fk(x')的概率輸出結(jié)果,K為模型數(shù)量。該目標(biāo)函數(shù)同時(shí)也是MEWG-RU的結(jié)束條件,即當(dāng)對(duì)抗驗(yàn)證碼x'可以使所有模型輸出至少一個(gè)錯(cuò)誤文本的結(jié)果時(shí)返回x'。
將公式5的問(wèn)題求解轉(zhuǎn)化為公式6的目標(biāo)函數(shù)T(x'),并通過(guò)梯度下降的方式更新驗(yàn)證碼的像素值以最小化目標(biāo)函數(shù)。
MEWG-RU的目標(biāo)函數(shù)最終為:
文本驗(yàn)證碼的圖像形式較為簡(jiǎn)單,可以明顯地區(qū)分為背景區(qū)域和文本區(qū)域。如果在文本驗(yàn)證碼的所有區(qū)域上添加噪音,在背景區(qū)域添加的噪音很容易被去除,從而降低了對(duì)抗樣本的有效性。因此,MEWG-RU在生成過(guò)程中限制添加噪音的區(qū)域?yàn)槲谋緟^(qū)域。
首先對(duì)文本驗(yàn)證碼進(jìn)行二值化處理,根據(jù)二值化結(jié)果選擇圖片中的文本區(qū)域,在生成過(guò)程中,不再在所有區(qū)域上添加噪音,而是根據(jù)二值化的結(jié)果選擇需要添加的區(qū)域。有效區(qū)域的計(jì)算方法為:
其中,T為二值化的閾值,在本文使用的文本驗(yàn)證碼中,實(shí)驗(yàn)發(fā)現(xiàn)將T設(shè)置為0.8便可以有效區(qū)分背景區(qū)域和文本區(qū)域。公式14對(duì)原始文本驗(yàn)證碼灰度化,公式15對(duì)灰度化后的結(jié)果二值化得到有效區(qū)域。
實(shí)驗(yàn)中使用Python的Captcha庫(kù)隨機(jī)生成文本驗(yàn)證碼作為數(shù)據(jù)集。設(shè)置生成的文本驗(yàn)證碼的字符集包括36個(gè)字符,生成的文本驗(yàn)證碼圖片的分辨率為128×64。訓(xùn)練集和測(cè)試集的圖片數(shù)分別為4萬(wàn)和1萬(wàn)。訓(xùn)練得到多個(gè)不同結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)模型(VGG16、VGG19、ResNet18、ResNet34、GoogLeNet、DenseNet)。實(shí)驗(yàn)采用兩種經(jīng)典的白盒生成算法FGSM和BIM作為對(duì)比。實(shí)驗(yàn)以文本驗(yàn)證碼破解模型的識(shí)別率作為評(píng)估標(biāo)準(zhǔn)衡量安全性,以添加的擾動(dòng)大?。↙2范數(shù))衡量可用性。
實(shí)驗(yàn)首先分析集成模型數(shù)量K分別為1、2、3、4、5時(shí),MEWG-RU的識(shí)別率和擾動(dòng)大小的變化情況。圖1所示為各目標(biāo)模型識(shí)別對(duì)抗驗(yàn)證碼的成功率,可以看出,隨著模型數(shù)量的增多,對(duì)抗驗(yàn)證碼在不同目標(biāo)模型下的識(shí)別率都在逐漸變小。MEWG-RU算法在多個(gè)模型的時(shí)候,設(shè)置要求每個(gè)模型識(shí)別錯(cuò)誤才輸出結(jié)果,否則持續(xù)增加擾動(dòng),因此模型個(gè)數(shù)的增加導(dǎo)致擾動(dòng)增加,在集成模型數(shù)量為1~5的時(shí)候,對(duì)應(yīng)擾動(dòng)的二范數(shù)分別為3.60、4.11、4.52、4.83和5.16。后文實(shí)驗(yàn)中,設(shè)置集成模型數(shù)量為4。
圖1 MEWG-RU中模型數(shù)量對(duì)識(shí)別率的影響
驗(yàn)證碼識(shí)別方法分為直接識(shí)別與圖像預(yù)處理后識(shí)別。如圖2所示,整體更新生成的對(duì)抗驗(yàn)證碼在面對(duì)端到端的卷積神經(jīng)網(wǎng)絡(luò)時(shí)具有較低的識(shí)別率,但是如果在預(yù)處理之后識(shí)別率就較高。相比之下,樣本圖片預(yù)處理對(duì)區(qū)域更新生成的對(duì)抗文本驗(yàn)證碼的影響較小。由于區(qū)域更新只改變?cè)嘉谋掘?yàn)證碼文本區(qū)域的像素點(diǎn),而預(yù)處理操作無(wú)法去除添加在文本區(qū)域的噪音。
圖2 整體更新和區(qū)域更新的識(shí)別率對(duì)比
考慮到MEWG-RU和經(jīng)典的白盒生成方法FGSM和BIM也存在添加的擾動(dòng)越大其對(duì)應(yīng)的識(shí)別率越低的特性,這里重點(diǎn)對(duì)比三種方法的識(shí)別正確率隨擾動(dòng)大小的變化規(guī)律。在對(duì)抗驗(yàn)證碼生成過(guò)程中,難以直接控制擾動(dòng)的大小,只能通過(guò)調(diào)節(jié)擾動(dòng)步長(zhǎng)和迭代次數(shù)的方式生成不同擾動(dòng)大小的對(duì)抗驗(yàn)證碼,然后分別確定其識(shí)別率。圖3為在表1的參數(shù)下三種方法的識(shí)別率,可以看出,MEWG-RU生成的對(duì)抗樣本在四種不同模型識(shí)別下的識(shí)別率明顯優(yōu)于其它兩種算法。
表1 三種對(duì)抗驗(yàn)證碼生成方法的擾動(dòng)步長(zhǎng)和擾動(dòng)大小
圖4為三種對(duì)抗樣本生成方法對(duì)應(yīng)的識(shí)別正確率和對(duì)應(yīng)的擾動(dòng)大小的關(guān)系,可以看出MEWGRU可以在較小的擾動(dòng)的情況下實(shí)現(xiàn)相對(duì)較低的識(shí)別率。
圖3 對(duì)抗文本驗(yàn)證碼面對(duì)不同識(shí)別模型的識(shí)別率
圖4 不同方法擾動(dòng)大小和識(shí)別率關(guān)系
圖5 所示左邊一列為原始樣本,右邊一列為對(duì)抗樣本。PQPG、PIU2和5WET三組驗(yàn)證碼分別在擾動(dòng)大小為2.5617、3.3765和4.3463的時(shí)候,在不做預(yù)處理的情況下被識(shí)別成了PQVS、PIJZ和5WFJ??梢钥闯鯩EWG-RU生成的對(duì)抗文本驗(yàn)證碼僅在文本區(qū)域上添加噪音,當(dāng)擾動(dòng)大小L2范數(shù)大于3時(shí),便可觀察到添加的噪音,當(dāng)擾動(dòng)大小L2范數(shù)大于4時(shí)在文本字符上添加的噪音較為明顯,但是仍然不影響肉眼識(shí)別效果。
圖5 區(qū)域更新MEWG-RU生成的對(duì)抗驗(yàn)證碼
本文提出了一種基于區(qū)域更新的模型集成白盒對(duì)抗驗(yàn)證碼生成算法MEWG-RU,重點(diǎn)考慮了對(duì)抗驗(yàn)證碼的遷移性和面對(duì)識(shí)別工具的圖像圖像預(yù)處理去除擾動(dòng)的問(wèn)題。測(cè)試結(jié)果表明,MEWGRU具有良好的安全性和可用性。后期還可以在圖像驗(yàn)證碼和驗(yàn)證碼的系統(tǒng)測(cè)試方面繼續(xù)完善相關(guān)工作。