李劍明,閆 巧
深圳大學(xué) 計(jì)算機(jī)與軟件學(xué)院,廣東 深圳 518052
驗(yàn)證碼(completely automated public turing test to tell computers and humans apart,CAPTCHA)作為一種反向圖靈測(cè)試,常用于區(qū)分計(jì)算機(jī)程序和真人,進(jìn)而防止刷票、論壇灌水、惡意密碼爆破等腳本攻擊行為[1];人能夠很輕易地解決驗(yàn)證碼中的問(wèn)題,例如文字識(shí)別、圖像識(shí)別等,但這對(duì)機(jī)器來(lái)說(shuō)卻是一項(xiàng)艱巨的任務(wù),而隨著深度學(xué)習(xí)的發(fā)展,以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[2]為代表的深度學(xué)習(xí)模型在圖像識(shí)別方面的能力已經(jīng)超越了人類,傳統(tǒng)的驗(yàn)證碼能夠被深度學(xué)習(xí)模型輕易識(shí)別、進(jìn)而繞過(guò)[3],安全性大幅下降。
近幾年來(lái),許多研究人員致力于研究更加安全的驗(yàn)證碼。例如,從驗(yàn)證碼類別上進(jìn)行擴(kuò)展[4],誕生了短信驗(yàn)證碼、語(yǔ)音驗(yàn)證碼、拖動(dòng)式驗(yàn)證碼甚至是通過(guò)分析IP地址、鼠標(biāo)移動(dòng)軌跡、鼠標(biāo)點(diǎn)擊等數(shù)據(jù)進(jìn)行判別的NoCAPTCHA reCAPTCHA[5]。但是,文本驗(yàn)證碼仍然是主流的驗(yàn)證碼類型,相比于新型驗(yàn)證碼,這類驗(yàn)證碼容易生成,并且人機(jī)交互性較好,能夠在不過(guò)度影響用戶體驗(yàn)的情況下,提升網(wǎng)站的安全性。但文本驗(yàn)證碼的缺點(diǎn)也非常明顯,即安全系數(shù)低,容易被破解,因此通常會(huì)通過(guò)添加噪點(diǎn)、干擾線,或者增加字符間連接距離、旋轉(zhuǎn)角度等方式來(lái)提高模型識(shí)別的難度;雖然提高了安全系數(shù),但相應(yīng)的,這些額外的操作會(huì)導(dǎo)致用戶的體驗(yàn)下降。
早在2014 年,Szegedy 等研究者[6]就發(fā)現(xiàn)存在一種微小的擾動(dòng),人類的視覺(jué)系統(tǒng)對(duì)其不敏感,但是神經(jīng)網(wǎng)絡(luò)卻對(duì)其過(guò)于敏感而產(chǎn)生錯(cuò)誤的分類結(jié)果,于是提出了對(duì)抗樣本的概念。對(duì)抗樣本可以在不被人察覺(jué)的情況下,嚴(yán)重誤導(dǎo)模型的分類,它的存在揭露了現(xiàn)有深度神經(jīng)網(wǎng)絡(luò)的一些缺陷,表明表現(xiàn)良好的模型可能存在著巨大的安全隱患。例如,攻擊者可以在臉部添加少量人類難以察覺(jué)的偽裝,欺騙人臉識(shí)別系統(tǒng)。
在面對(duì)不斷發(fā)展的深度學(xué)習(xí)時(shí),傳統(tǒng)的文本驗(yàn)證碼已經(jīng)顯露出疲態(tài),無(wú)法很好地進(jìn)行防御,扭曲字符、添加噪點(diǎn)等方式雖然能降低被識(shí)別成功的概率,但同時(shí)也降低了用戶的體驗(yàn)。將對(duì)抗樣本生成技術(shù)應(yīng)用在文本驗(yàn)證碼上,利用對(duì)抗擾動(dòng)極其微小的特性,在不被用戶察覺(jué)的情況下,誤導(dǎo)神經(jīng)網(wǎng)絡(luò)的識(shí)別,使傳統(tǒng)的文本驗(yàn)證碼安全性得以提升,重新適應(yīng)當(dāng)下的環(huán)境。
此外,文本驗(yàn)證碼的生成頻率非常高,如何加速對(duì)抗驗(yàn)證碼的生成以匹配原始驗(yàn)證碼的生成速度,該問(wèn)題的解決能使文本對(duì)抗驗(yàn)證碼更具應(yīng)用價(jià)值?,F(xiàn)提出的大部分對(duì)抗樣本生成算法都是針對(duì)特定樣本一對(duì)一生成特定擾動(dòng),無(wú)法實(shí)現(xiàn)對(duì)抗樣本的實(shí)時(shí)生成,文本對(duì)抗驗(yàn)證碼的應(yīng)用也因此受阻。為此,需要針對(duì)驗(yàn)證碼的這一特點(diǎn),采用新的對(duì)抗樣本生成算法。
本文的主要貢獻(xiàn)包括以下兩點(diǎn):
(1)為增強(qiáng)傳統(tǒng)文本驗(yàn)證碼抵御神經(jīng)網(wǎng)絡(luò)模型識(shí)別的能力,將已有的10 種對(duì)抗樣本生成算法應(yīng)用到文本驗(yàn)證碼上,比較其白盒識(shí)別率、黑盒識(shí)別率、擾動(dòng)大小和平均耗時(shí)。
(2)在FUAP 算法的基礎(chǔ)上嘗試進(jìn)行改進(jìn),得到I-FUAP算法,使得其在保證攻擊效果不變的情況下,能更快地生成對(duì)抗擾動(dòng),更好地應(yīng)用在生成頻率較高的驗(yàn)證碼上;通過(guò)調(diào)整算法的應(yīng)用方案,實(shí)現(xiàn)實(shí)時(shí)的文本對(duì)抗驗(yàn)證碼的生成。
對(duì)抗樣本最早可以追溯到2014年Szegedy等人在其文章中提出的一個(gè)關(guān)于深度神經(jīng)網(wǎng)絡(luò)的特性,其發(fā)現(xiàn)存在一種對(duì)人類的視覺(jué)系統(tǒng)并不敏感的微小擾動(dòng),將它附加到原始圖像后卻能引起神經(jīng)網(wǎng)絡(luò)的過(guò)度敏感進(jìn)而以高置信度產(chǎn)生錯(cuò)誤的識(shí)別結(jié)果。于是提出了對(duì)抗樣本的概念。
起初Szegedy 等人認(rèn)為對(duì)抗樣本的存在是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的高度非線性和過(guò)擬合,導(dǎo)致模型并未學(xué)習(xí)到真正需要的泛化特征。然而,Goodfellow 等人[7]發(fā)現(xiàn),即使將模型替換成線性模型族,只要它的輸入有著足夠的維度,那么就可以產(chǎn)生對(duì)抗樣本。這一發(fā)現(xiàn)否定了對(duì)抗樣本的存在是因?yàn)槟P透叨确蔷€性的解釋,同時(shí)Goodfellow等人還指出,對(duì)抗樣本正是模型高度線性的結(jié)果,模型的線性讓其更容易被訓(xùn)練,但缺乏防御對(duì)抗攻擊的能力。基于對(duì)抗樣本的線性解釋,越來(lái)越多對(duì)抗樣本生成算法被相繼提出。
在生成對(duì)抗樣本攻擊模型的情形下,可以將攻擊行為分為白盒攻擊(white box attack)和黑盒攻擊(black box attack),白盒攻擊指攻擊者可以獲得目標(biāo)模型的所有參數(shù),包括架構(gòu)、網(wǎng)絡(luò)參數(shù)、梯度等信息,黑盒攻擊指攻擊者對(duì)目標(biāo)模型了解甚少或者根本不清楚,他們無(wú)法對(duì)模型的內(nèi)部進(jìn)行探索。此外,按攻擊目的可以分為目標(biāo)攻擊和非目標(biāo)攻擊,非目標(biāo)攻擊只需誤導(dǎo)神經(jīng)網(wǎng)絡(luò)的輸出跟原始分類標(biāo)簽不同即可,而目標(biāo)攻擊則是需要將輸出誤導(dǎo)為某一指定的分類。
白盒攻擊方面,Goodfellow等人首先提出了快速梯度符號(hào)法(fast gradient sign method,F(xiàn)GSM),該算法能快速生成對(duì)抗擾動(dòng),但由于是單步攻擊,成功率并不高,基于此衍生出了基礎(chǔ)迭代方法(basic iterative method,BIM)[8]、投影梯度下降(projected gradient descent,PGD)[9]、多樣化輸入的梯度攻擊(diverse input iterative fast gradient sign method,DI-2-FGSM)[10]等算法。除此之外,還有基于超平面分類的DeepFool[11]、基于優(yōu)化的C&W攻擊[12]和基于雅可比矩陣的顯著圖攻擊[13]等白盒攻擊算法。
黑盒攻擊方面,零階優(yōu)化(zeroth order optimization,ZOO)[14]通過(guò)對(duì)目標(biāo)模型梯度的估計(jì)來(lái)進(jìn)行攻擊;Dong 等人[15]提出的基于動(dòng)量迭代的快速梯度符號(hào)法(momentum iterative fast gradient sign method,MI-FGSM)通過(guò)引入動(dòng)量來(lái)使擾動(dòng)的方向更平整,進(jìn)而增強(qiáng)遷移性;Xiao 等人[16]提出以生成對(duì)抗網(wǎng)絡(luò)為基礎(chǔ)的AdvGAN攻擊。
在最近幾年提出的各種對(duì)抗樣本生成算法中,有的是在算法遷移性上進(jìn)行改進(jìn),例如Yang 等人[17]提出的RT-MI-FGSM通過(guò)引入圖像亮度的隨機(jī)變換消除對(duì)抗樣本生成過(guò)程中的過(guò)擬合,提高了黑盒攻擊能力;有的則致力于小樣本的使用,例如王志勇等人[18]基于Wasserstein距離提出的新方法僅需少量樣本即可定位ResNetXt網(wǎng)絡(luò)的結(jié)構(gòu)性弱點(diǎn),生成對(duì)抗樣本時(shí)對(duì)數(shù)據(jù)的需求大幅下降。為了解決對(duì)抗樣本生成過(guò)程過(guò)于耗時(shí)的問(wèn)題,許多研究者也在這方面進(jìn)行了研究。Sarkar 等人[19]提出的UPSET 攻擊方法能夠生成通用對(duì)抗擾動(dòng),減少對(duì)抗樣本的生成時(shí)間;Phan 等人[20]基于生成模型提出的CAG方法相比最新的迭代攻擊(如PGD)可以加速至少500倍,實(shí)現(xiàn)了低成本、高速的對(duì)抗攻擊。
為增強(qiáng)傳統(tǒng)文本驗(yàn)證碼抵御神經(jīng)網(wǎng)絡(luò)模型識(shí)別的能力,搭建實(shí)驗(yàn)系統(tǒng),將基于梯度的7 種對(duì)抗攻擊算法FGSM、BIM、PGD、MI-FGSM、DI-2-FGSM、TI-FGSM和SI-NI-FGSM,基于超平面分類的1 種對(duì)抗攻擊算法DeepFool,基于DeepFool 的通用對(duì)抗擾動(dòng)(UAP)生成算法以及FUAP算法實(shí)現(xiàn),并應(yīng)用于文本對(duì)抗驗(yàn)證碼的生成,比較其白盒識(shí)別率、黑盒識(shí)別率、擾動(dòng)大小和平均耗時(shí)。
實(shí)驗(yàn)系統(tǒng)通過(guò)Python的captcha庫(kù)生成大量隨機(jī)驗(yàn)證碼作為數(shù)據(jù)集,然后使用PyTorch搭建ResNet-18卷積神經(jīng)網(wǎng)絡(luò)并進(jìn)行訓(xùn)練,得到識(shí)別率較高的模型后,基于該模型復(fù)現(xiàn)已有的若干種對(duì)抗樣本生成算法,從模型識(shí)別率、擾動(dòng)大小等方面進(jìn)行比較。同時(shí)搭建ResNet-IBN卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,作為黑盒模型,比較對(duì)抗樣本的白盒攻擊效果和黑盒攻擊效果。
圖1說(shuō)明實(shí)驗(yàn)系統(tǒng)總體架構(gòu)。
圖1 實(shí)驗(yàn)系統(tǒng)總體架構(gòu)Fig.1 Overall architecture of experimental system
2.1.1 實(shí)驗(yàn)數(shù)據(jù)集
Python的第三方庫(kù)captcha能基于給定的字符集來(lái)創(chuàng)建文本驗(yàn)證碼,可以自定義驗(yàn)證碼的寬度、高度、字符個(gè)數(shù)、顏色和背景色等屬性,其默認(rèn)方式創(chuàng)建的驗(yàn)證碼自帶若干噪點(diǎn)和一條干擾線,與實(shí)際使用的文本驗(yàn)證碼相似。在實(shí)驗(yàn)中,規(guī)定驗(yàn)證碼圖像的寬度為160 像素、高度為60 像素,包含4 個(gè)字符;為了避免相似字符間的混淆,規(guī)定驗(yàn)證碼的候選字符集為“2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY”,長(zhǎng)度為52,從中剔除了數(shù)字“019”、小寫(xiě)字母“glo”和大寫(xiě)字母“IOSZ”。生成的驗(yàn)證碼如圖2所示。
圖2 基于候選字符集的隨機(jī)文本驗(yàn)證碼Fig.2 Random CAPTCHA based on candidate charset
通過(guò)這種方式得到的驗(yàn)證碼可以作為訓(xùn)練神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)集;創(chuàng)建100 000 張文本驗(yàn)證碼作為訓(xùn)練集、5 000張文本驗(yàn)證碼作為測(cè)試集,就可以開(kāi)始訓(xùn)練模型。
2.1.2 實(shí)驗(yàn)環(huán)境配置
訓(xùn)練模型所涉及到的具體環(huán)境配置如表1所示。
表1 實(shí)驗(yàn)平臺(tái)與環(huán)境配置Table 1 Experiment platform and environment configuration
2.1.3 搭建卷積神經(jīng)網(wǎng)絡(luò)并訓(xùn)練
基于前面得到的數(shù)據(jù)集,擬搭建卷積神經(jīng)網(wǎng)絡(luò)并進(jìn)行訓(xùn)練,得到文本驗(yàn)證碼的分類器。這里選取ResNet網(wǎng)絡(luò)模型是因?yàn)樗ㄟ^(guò)引入殘差模塊很好地解決了深層網(wǎng)絡(luò)的退化問(wèn)題,網(wǎng)絡(luò)性能優(yōu)于傳統(tǒng)的其他網(wǎng)絡(luò)模型。
搭建的ResNet-18 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。該ResNet-18 卷積神經(jīng)網(wǎng)絡(luò)由輸入層的一層卷積(7×7卷積核)、3層殘差網(wǎng)絡(luò)結(jié)構(gòu)和最后的全連接層組成。3層殘差網(wǎng)絡(luò)結(jié)構(gòu)中,每層包含兩個(gè)殘差模塊(Basic-Block),每個(gè)殘差模塊由兩個(gè)3×3 卷積核的卷積層組成,其中Layer2和Layer3在第一個(gè)BasicBlock之后都會(huì)進(jìn)行一次下采樣,而Layer1沒(méi)有進(jìn)行下采樣。
圖3 適應(yīng)生成的驗(yàn)證碼數(shù)據(jù)集的ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 ResNet-18 network structure adapted to generated CAPTCHA dataset
在訓(xùn)練該卷積神經(jīng)網(wǎng)絡(luò)時(shí),以前面生成的100 000張驗(yàn)證碼作為訓(xùn)練集,設(shè)置學(xué)習(xí)率為3E-4,進(jìn)行訓(xùn)練;在600輪訓(xùn)練過(guò)后,篩選出其中在測(cè)試集上識(shí)別率最高的模型,最高的識(shí)別率達(dá)到94.9%。
同樣的,搭建一個(gè)ResNet-IBN卷積神經(jīng)網(wǎng)絡(luò),基于相同的數(shù)據(jù)集進(jìn)行訓(xùn)練。在這里,選取ResNet-IBN 進(jìn)行訓(xùn)練主要是為了后續(xù)對(duì)各種對(duì)抗樣本生成算法的遷移性進(jìn)行測(cè)試,將其作為黑盒模型,對(duì)比對(duì)抗樣本在誤導(dǎo)白盒模型ResNet-18 進(jìn)行識(shí)別的同時(shí),是否仍在另一個(gè)模型ResNet-IBN 上保持對(duì)抗性;可以選擇其他的模型作為測(cè)試,只要保證與ResNet-18 結(jié)構(gòu)不同即可。經(jīng)過(guò)同樣超參數(shù)的訓(xùn)練,ResNet-IBN最終取得86.8%的準(zhǔn)確率。
ResNet-18 在3 層的殘差網(wǎng)絡(luò)結(jié)構(gòu)中每層都包含兩個(gè)殘差模塊(BasicBlock),相比之下ResNet-IBN 則將BasicBlock 替換為Bottleneck,Bottleneck 的詳細(xì)結(jié)構(gòu)如圖4 所示,網(wǎng)絡(luò)結(jié)構(gòu)的其余部分與ResNet-18 相同。與之前相比,殘差模塊在第一個(gè)Bottleneck 都會(huì)進(jìn)行一次下采樣,并且新增了IBN結(jié)構(gòu)。
圖4 ResNet-IBN殘差模塊組成單元Fig.4 ResNet-IBN residual module component units
2.2.1 算法實(shí)現(xiàn)與比較
通過(guò)對(duì)FGSM、BIM、PGD、MI-FGSM、DI-2-FGSM、TI-FGSM、SI-NI-FGSM 共7 種基于梯度攻擊和Deep-Fool 共1 種基于超平面分類實(shí)現(xiàn)的對(duì)抗樣本生成算法進(jìn)行學(xué)習(xí),將其應(yīng)用到文本驗(yàn)證碼上,生成對(duì)抗驗(yàn)證碼。
首先生成規(guī)模為10 000的驗(yàn)證碼數(shù)據(jù)集,基于該數(shù)據(jù)集去應(yīng)用對(duì)抗樣本生成算法,得到同樣數(shù)量的對(duì)抗驗(yàn)證碼,然后分別從平均時(shí)間開(kāi)銷、白盒識(shí)別率、黑盒識(shí)別率、擾動(dòng)大小等方面去評(píng)估對(duì)抗樣本生成算法的效果。白盒識(shí)別率數(shù)據(jù)的獲取通過(guò)調(diào)用ResNet-18 模型去獲得,黑盒識(shí)別率則是調(diào)用ResNet-IBN,擾動(dòng)大小從兩個(gè)方面進(jìn)行評(píng)估:(1)L2范數(shù);(2)L∞范數(shù);L2范數(shù)表示的是圖像上每個(gè)像素點(diǎn)的平均修改幅度,而L∞范數(shù)則表示單個(gè)像素點(diǎn)的最大修改幅度。
每種對(duì)抗樣本生成算法得到的對(duì)抗驗(yàn)證碼樣例如圖5所示,具體實(shí)驗(yàn)測(cè)試結(jié)果見(jiàn)表2。
表2 各種對(duì)抗樣本生成算法的測(cè)試結(jié)果Table 2 Test results of various adversarial example generation algorithms
圖5 各種對(duì)抗樣本生成算法生成的對(duì)抗驗(yàn)證碼樣例Fig.5 Adversarial CAPTCHA sample generated by various adversarial example generation algorithms
通過(guò)統(tǒng)計(jì)各個(gè)算法執(zhí)行的總時(shí)間,除以樣本數(shù)量,得到每生成一張對(duì)抗驗(yàn)證碼所需的平均耗時(shí)??梢钥吹?,由于FGSM 是最基礎(chǔ)的單步梯度攻擊,因此在耗時(shí)上比其他算法要少一個(gè)數(shù)量級(jí);而TI-FGSM 因?yàn)橐肓硕嘁徊降木矸e運(yùn)算,耗時(shí)劇增。
在白盒識(shí)別率上,BIM 相比FGSM,通過(guò)迭代的方式計(jì)算得到更精確的擾動(dòng),進(jìn)而對(duì)白盒模型ResNet-18的擾動(dòng)效果更好,PGD 相比BIM 只添加了一層擾動(dòng)的隨機(jī)初始化,但實(shí)測(cè)效果并不好,可能是由于模型的原因。而后續(xù)的MI-FGSM、DI-2-FGSM、TI-FGSM 和SI-NI-FGSM 都是在對(duì)抗樣本遷移性上面進(jìn)行改進(jìn),所以在白盒識(shí)別率上有所犧牲。在黑盒識(shí)別率上,BIM由于更傾向于去擬合白盒模型的特征,故而降低了其遷移到其他模型上的能力,在遷移性方面BIM 不如FGSM。而在后面的改進(jìn)中,TI-MI-FGSM以明顯的優(yōu)勢(shì)優(yōu)于其他算法,除此之外,相比FGSM,MI-FGSM、M-DI-2-FGSM和SI-NI-FGSM等都能增強(qiáng)對(duì)抗樣本的遷移性。
實(shí)驗(yàn)中,將DeepFool 算法應(yīng)用在對(duì)抗驗(yàn)證碼時(shí)需要留意到,DeepFool在生成最小擾動(dòng)的過(guò)程中需要遍歷其他所有的分類。本實(shí)驗(yàn)采用的驗(yàn)證碼包含4個(gè)字符,候選的字符集長(zhǎng)度為52,倘若將這4個(gè)字符視為一個(gè)整體,那么一張驗(yàn)證碼可以有524=7 311 616 種可能,也就是說(shuō)DeepFool算法需要計(jì)算原始樣本到其余7 311 616-1=7 311 615 種分類的距離,再?gòu)钠渲羞x擇一個(gè)最小的,而這只是一張文本驗(yàn)證碼在一次迭代過(guò)程中的計(jì)算量,很顯然是不合理的。
為此將這4個(gè)字符視為是單獨(dú)的個(gè)體,在遍歷其中一個(gè)字符的時(shí)候,其余字符不變。這種改變使得單個(gè)文本驗(yàn)證碼在一次迭代過(guò)程中只需計(jì)算到其余52×4-1=207 種分類的距離,計(jì)算量大大減少。這樣做的理由是,假設(shè)計(jì)算得到的擾動(dòng)r′能同時(shí)改變至少兩個(gè)字符的分類結(jié)果,那么一定存在擾動(dòng)r(r<r′,且r是r′的部分取值)只改變其中一個(gè)字符。由于DeepFool 計(jì)算的是最小擾動(dòng),那么r′不是最終的計(jì)算結(jié)果,因?yàn)檫€有比它更小的r?;诖?,只需遍歷改變了一個(gè)字符的207種分類即可,無(wú)需遍歷完整的7 311 615 種其余分類。這一操作大大減少了將DeepFool應(yīng)用到文本驗(yàn)證碼上的計(jì)算開(kāi)銷。
DeepFool 由于需要遍歷計(jì)算其余分類的超平面距離,所以耗時(shí)相對(duì)久;白盒攻擊效果較強(qiáng),白盒模型的識(shí)別率只有6.81%。由于DeepFool是白盒攻擊算法,因此黑盒攻擊效果一般,但DeepFool生成的是最小擾動(dòng),從數(shù)據(jù)上可以看到,相比于其他基于梯度攻擊的對(duì)抗樣本生成算法,DeepFool 生成擾動(dòng)的L2 范數(shù)只有其1/4,而L∞范數(shù)較大,表明DeepFool 可能在個(gè)別像素點(diǎn)上進(jìn)行較大幅度的修改,但總體不會(huì)造成視覺(jué)上的影響。
綜合以上橫向比較的結(jié)果可以得知,F(xiàn)GSM由于是單步攻擊,生成對(duì)抗樣本的速度最快;BIM 通過(guò)迭代的方式去生成更精確的對(duì)抗圖像,白盒攻擊效果最好;而TI-MI-FGSM 通過(guò)結(jié)合平移不變性(translation invariant)和引入動(dòng)量穩(wěn)定方向,得到最好的黑盒攻擊效果。DeepFool 由于原理的不同,計(jì)算的是最小擾動(dòng)的近似,所以擾動(dòng)大小最小。
2.2.2 通用對(duì)抗擾動(dòng)
對(duì)抗擾動(dòng)是神經(jīng)網(wǎng)絡(luò)模型的缺陷而不是數(shù)據(jù)集的缺陷,為此Moosavi-Dezfooli等人通過(guò)研究,提出了通用對(duì)抗擾動(dòng)(universal adversarial perturbation,UAP)[21]的概念。傳統(tǒng)的對(duì)抗樣本生成算法都是針對(duì)單個(gè)輸入產(chǎn)生對(duì)應(yīng)的對(duì)抗樣本,原始樣本和對(duì)抗樣本之間是一對(duì)一關(guān)系,但UAP的提出表明,可以針對(duì)一批原始樣本生成一個(gè)通用對(duì)抗擾動(dòng),該通用對(duì)抗擾動(dòng)作用在其中的任意一個(gè)原始樣本,都能令其產(chǎn)生對(duì)抗攻擊效果;并且該通用對(duì)抗擾動(dòng)能作用在其他數(shù)據(jù)集上。
通用對(duì)抗擾動(dòng)可以作用在驗(yàn)證碼上,以便更快速地生成對(duì)抗驗(yàn)證碼。測(cè)試表明,無(wú)論是基于梯度還是基于超平面分類,所涉及到的對(duì)抗樣本生成算法都是針對(duì)一張驗(yàn)證碼圖像,生成對(duì)應(yīng)的擾動(dòng),該擾動(dòng)無(wú)法遷移到其他圖像上,具有唯一性。從前面的分析可以發(fā)現(xiàn),哪怕是耗時(shí)最少的FGSM 也達(dá)到了每張0.026 4 s,在實(shí)際的驗(yàn)證碼應(yīng)用場(chǎng)景中,驗(yàn)證碼的請(qǐng)求頻率較高,無(wú)法做到一邊生成驗(yàn)證碼、緊接著立刻生成對(duì)應(yīng)的對(duì)抗驗(yàn)證碼,生成驗(yàn)證碼與生成對(duì)抗驗(yàn)證碼的耗時(shí)相差過(guò)大。
而計(jì)算出驗(yàn)證碼的通用對(duì)抗擾動(dòng)后,只需將通用對(duì)抗擾動(dòng)與原始的驗(yàn)證碼進(jìn)行一次加法運(yùn)算,即可得到對(duì)抗驗(yàn)證碼,極大地減少了所需的耗時(shí),并且能保持較高的擾動(dòng)攻擊效果。具體將UAP應(yīng)用在驗(yàn)證碼的方案見(jiàn)圖6。
圖6 通用對(duì)抗擾動(dòng)應(yīng)用在驗(yàn)證碼上的方案Fig.6 Universal adversarial perturbations scheme applied to CAPTCHA
方案分為三層:第一層是正常的驗(yàn)證碼生成接口;第二層則是基于通用對(duì)抗擾動(dòng)對(duì)驗(yàn)證碼進(jìn)行擾動(dòng)的添加,這個(gè)過(guò)程只是一次簡(jiǎn)單的疊加,耗時(shí)較少,并不影響驗(yàn)證碼生成的正常速度;第三層則是相對(duì)獨(dú)立的通用對(duì)抗擾動(dòng)的生成,通過(guò)生成一批新的驗(yàn)證碼作為數(shù)據(jù)集,調(diào)用卷積神經(jīng)網(wǎng)絡(luò)模型生成新的通用對(duì)抗擾動(dòng),并進(jìn)行更新。通過(guò)對(duì)UAP 的定期更新,能進(jìn)一步增強(qiáng)對(duì)抗驗(yàn)證碼的安全性。
DeepFool產(chǎn)生的是最小擾動(dòng),在計(jì)算到其他分類的距離后,只會(huì)選擇其中距離最小的分類去計(jì)算對(duì)應(yīng)的擾動(dòng)。通用對(duì)抗擾動(dòng)的生成算法是基于DeepFool 的,其在遍歷所有樣本點(diǎn)的時(shí)候直接對(duì)獲得的最小擾動(dòng)進(jìn)行累加、裁剪,并沒(méi)有考慮到擾動(dòng)向量方向的問(wèn)題,導(dǎo)致生成通用對(duì)抗擾動(dòng)的速度非常緩慢,擾動(dòng)成功率長(zhǎng)時(shí)間處于起伏狀態(tài)。為此,Dai 等人[22]提出了快速通用對(duì)抗擾動(dòng)(fast-UAP,F(xiàn)UAP)算法,通過(guò)修改擾動(dòng)向量的選擇標(biāo)準(zhǔn)以加快生成速度;具體優(yōu)化做法是:引入余弦相似度,在每次迭代過(guò)程中不選擇最小的,而是選擇與當(dāng)前通用對(duì)抗擾動(dòng)方向最相似的擾動(dòng)進(jìn)行累加、裁剪(公式(1)),使得兩個(gè)擾動(dòng)的聚合幅度被最大化,通用對(duì)抗擾動(dòng)始終朝著某一方向穩(wěn)定進(jìn)行更新,能更快地達(dá)到指定的擾動(dòng)成功率。
是當(dāng)前通用對(duì)抗擾動(dòng),r是本次迭代計(jì)算得到的擾動(dòng),為使r與有最相似的方向,計(jì)算兩者的余弦相似度,計(jì)算得到的結(jié)果越大,則表明越相似。
實(shí)驗(yàn)表明,原通用對(duì)抗擾動(dòng)生成算法的耗時(shí)過(guò)長(zhǎng),擾動(dòng)成功率始終處于大幅度波動(dòng)的狀態(tài),原因就是不同方向擾動(dòng)的相互疊加“抵消”,使得擾動(dòng)一直難以有較大的變化。通過(guò)引入余弦相似度,更改擾動(dòng)的更新方式,能夠快速生成UAP。
由于引入了余弦相似度,F(xiàn)UAP 在每次迭代的過(guò)程中會(huì)選擇與當(dāng)前通用對(duì)抗擾動(dòng)方向最相似的擾動(dòng)進(jìn)行累加,使得通用對(duì)抗擾動(dòng)的生成更穩(wěn)定,但是觀察到,通用對(duì)抗擾動(dòng)最開(kāi)始是被初始化為0的,隨后在計(jì)算第一張文本驗(yàn)證碼的第一個(gè)分類時(shí),由于這時(shí)的通用對(duì)抗擾動(dòng)為0,無(wú)法計(jì)算出余弦值,所以在算法中采取的操作是直接將其對(duì)應(yīng)的擾動(dòng)賦值給通用對(duì)抗擾動(dòng)。而在FUAP中,通用對(duì)抗擾動(dòng)可以視為是始終朝某一方向進(jìn)行穩(wěn)定更新,也就是說(shuō),這一“方向”直接由第一張文本驗(yàn)證碼第一個(gè)分類對(duì)應(yīng)的擾動(dòng)決定。
為了更好地計(jì)算出通用對(duì)抗擾動(dòng),在每輪迭代開(kāi)始之前都會(huì)對(duì)所有的輸入圖像進(jìn)行順序打亂(Shuffle),通過(guò)實(shí)驗(yàn)發(fā)現(xiàn),在不同隨機(jī)數(shù)種子的情況下,F(xiàn)UAP 算法在生成時(shí)間上表現(xiàn)出較大的不穩(wěn)定性。實(shí)驗(yàn)首先生成規(guī)模為1 000 的驗(yàn)證碼數(shù)據(jù)集,然后基于該數(shù)據(jù)集多次運(yùn)行FUAP算法,其中每次運(yùn)行前設(shè)置不同的隨機(jī)數(shù)種子,從0到9,其余所有超參數(shù)均保持不變。測(cè)試的結(jié)果見(jiàn)表3。
表3 通過(guò)僅修改隨機(jī)數(shù)種子測(cè)試FUAPTable 3 Testing FUAP by modifying only random seeds
從表3 中可以看到,在僅修改隨機(jī)數(shù)種子、保持其他超參數(shù)不變的情況下,基于相同數(shù)據(jù)集,最快只需493.54 s 就完成了通用對(duì)抗擾動(dòng)的生成,而最慢的卻達(dá)到了1 214.42 s,相差近2.46倍,并且后者比前者多進(jìn)行了一輪迭代的計(jì)算,原因是后者在首輪迭代中未達(dá)到預(yù)先設(shè)置的擾動(dòng)成功率0.8。耗時(shí)更多生成的通用對(duì)抗擾動(dòng)并不意味著效果更好,從結(jié)果來(lái)看,隨機(jī)數(shù)種子設(shè)置為3 時(shí),耗時(shí)最短,但生成的通用對(duì)抗擾動(dòng)白盒攻擊效果是最好的、擾動(dòng)大小也是最小的。
產(chǎn)生這種不穩(wěn)定性的原因主要是:隨機(jī)數(shù)種子不同,首張被計(jì)算的驗(yàn)證碼圖像就不同,而通過(guò)前面分析可知,通用對(duì)抗擾動(dòng)更新的方向就取決于首張驗(yàn)證碼的首個(gè)分類對(duì)應(yīng)的擾動(dòng),在某些方向上通用對(duì)抗擾動(dòng)的生成速度較快,但是在某些方向上則較慢;生成耗時(shí)與擾動(dòng)效果并不呈現(xiàn)正相關(guān)的關(guān)系,部分情況下,耗時(shí)較短生成的通用對(duì)抗擾動(dòng)得到的白盒攻擊效果更好。從中可以看出通用對(duì)抗擾動(dòng)被初始化時(shí)取值的重要性,影響著FUAP的性能。
基于已有的快速通用對(duì)抗擾動(dòng)(FUAP)算法,本文提出初始化的快速通用擾動(dòng)(initialized fast universal adversarial perturbation,I-FUAP)算法。
通用對(duì)抗擾動(dòng)與輸入圖像無(wú)關(guān),它揭示的是卷積神經(jīng)網(wǎng)絡(luò)模型存在的缺陷。由于FUAP 算法更改了更新通用對(duì)抗擾動(dòng)的選擇標(biāo)準(zhǔn),所以當(dāng)通用對(duì)抗擾動(dòng)被初始化后,后續(xù)都是選擇與當(dāng)前通用對(duì)抗擾動(dòng)最相似的最小擾動(dòng)進(jìn)行更新;而前面的測(cè)試表明,不同方向初始化的通用對(duì)抗擾動(dòng),在生成時(shí)間方面差異較大,表現(xiàn)出不穩(wěn)定性。為此,解決通用對(duì)抗擾動(dòng)的初始化問(wèn)題能加速FUAP算法的執(zhí)行。
目前FUAP算法將通用對(duì)抗擾動(dòng)初始化為0是不合理的,I-FUAP 基于已生成的通用對(duì)抗擾動(dòng)來(lái)初始化FUAP 算法,使FUAP 在執(zhí)行之初便確定一個(gè)較為穩(wěn)定的方向,然后再基于現(xiàn)在的數(shù)據(jù)集去更新通用對(duì)抗擾動(dòng)。I-FUAP算法具體流程如下:
算法1 I-FUAP
vi(i∈[0,9])中的任意一個(gè)通用對(duì)抗擾動(dòng)都能應(yīng)用在原始驗(yàn)證碼圖像上使其產(chǎn)生對(duì)抗攻擊效果,但一旦對(duì)其進(jìn)行比較微小的修改,就有可能破壞這種對(duì)抗效果;在本算法中,計(jì)算這10個(gè)通用對(duì)抗擾動(dòng)的平均值后,平均通用對(duì)抗擾動(dòng)不再具有令原始圖像產(chǎn)生對(duì)抗攻擊的效果。這一點(diǎn)可以通過(guò)實(shí)驗(yàn)來(lái)證明,計(jì)算出平均通用對(duì)抗擾動(dòng)后,直接應(yīng)用到原始數(shù)據(jù)集上得到生成數(shù)據(jù)集,而經(jīng)測(cè)試,無(wú)論是白盒模型還是黑盒模型,都對(duì)生成數(shù)據(jù)集保持較高的正確識(shí)別率,表明平均通用對(duì)抗擾動(dòng)不再具有對(duì)抗攻擊效果。平均通用對(duì)抗擾動(dòng)的唯一作用就是初始化,令通用對(duì)抗擾動(dòng)的生成算法在一開(kāi)始便確定一個(gè)較為穩(wěn)定的更新方向,基于這個(gè)方向去生成通用對(duì)抗擾動(dòng),能夠在更短的時(shí)間內(nèi)結(jié)束算法。
I-FUAP 對(duì)FUAP 改進(jìn)在通用對(duì)抗擾動(dòng)被初始化時(shí)的賦值上,為了橫向?qū)Ρ葍煞N算法,首先生成10組規(guī)模為1 000 的隨機(jī)文本驗(yàn)證碼,每組都通過(guò)FUAP 算法生成通用對(duì)抗擾動(dòng),得到v0、v1到v9;然后進(jìn)行對(duì)比測(cè)試。在每組對(duì)比測(cè)試中,都重新生成規(guī)模為1 000 的隨機(jī)文本驗(yàn)證碼,先通過(guò)FUAP基于該數(shù)據(jù)集生成通用對(duì)抗擾動(dòng),再通過(guò)I-FUAP 基于相同的數(shù)據(jù)集生成通用對(duì)抗擾動(dòng),I-FUAP將使用v0、v1到v9的平均值作為其通用對(duì)抗擾動(dòng)的初始化。
共進(jìn)行了10組對(duì)比測(cè)試,測(cè)試結(jié)果見(jiàn)表4。
表4 FUAP與I-FUAP對(duì)比測(cè)試Table 4 FUAP and I-FUAP comparison test
I-FUAP 對(duì)FUAP 的優(yōu)化體現(xiàn)在生成通用對(duì)抗擾動(dòng)的時(shí)間上面,基于相同的數(shù)據(jù)集,I-FUAP 相比FUAP 能更快地生成通用對(duì)抗擾動(dòng),并且生成的擾動(dòng)在白盒識(shí)別率、黑盒識(shí)別率和擾動(dòng)大小上并沒(méi)有顯著的差別。實(shí)驗(yàn)表明,I-FUAP較FUAP能將生成通用對(duì)抗擾動(dòng)的耗時(shí)減少約30.22%。
I-FUAP 能夠進(jìn)一步加快通用對(duì)抗擾動(dòng)的生成,它基于已存在的通用對(duì)抗擾動(dòng)在算法開(kāi)始之初進(jìn)行初始化,確定了一個(gè)較為穩(wěn)定的擾動(dòng)更新方向,進(jìn)而使得算法的總耗時(shí)減少。除了算法的時(shí)間開(kāi)銷外,由于擾動(dòng)更新方向的改變,I-FUAP 在擾動(dòng)成功率、白盒識(shí)別率、黑盒識(shí)別率和擾動(dòng)大小上都與FUAP不盡相同,白盒識(shí)別率下降了約8.32%、黑盒識(shí)別率上升了約0.57%、擾動(dòng)大小增大了0.73%??紤]到擾動(dòng)在生成過(guò)程中具有的一定隨機(jī)性,其表現(xiàn)出來(lái)的整體差異性較小,生成的通用對(duì)抗擾動(dòng)都達(dá)到了與之前相當(dāng)?shù)墓羲?。而在視覺(jué)效果上,無(wú)論是FUAP 和I-FUAP 都保證了不會(huì)對(duì)肉眼產(chǎn)生太大的影響,圖7 是使用ResNet-18 模型對(duì)三種驗(yàn)證碼進(jìn)行測(cè)試的樣例結(jié)果。
圖7 原始驗(yàn)證碼、FUAP和I-FUAP對(duì)比結(jié)果Fig.7 Comparison results of original CATPTCHA,F(xiàn)UAP and I-FUAP
將基于DeepFool 生成的通用對(duì)抗擾動(dòng)應(yīng)用在文本驗(yàn)證碼的生成上,可以實(shí)現(xiàn)對(duì)抗驗(yàn)證碼的實(shí)時(shí)生成。FUAP通過(guò)修改擾動(dòng)選擇的標(biāo)準(zhǔn),穩(wěn)定了擾動(dòng)更新的方向,能夠更快生成通用對(duì)抗擾動(dòng);而I-FUAP 在其基礎(chǔ)上,設(shè)置通用對(duì)抗擾動(dòng)的初始值,使得算法在開(kāi)始之初便確立一個(gè)比較好的更新方向,進(jìn)一步縮減了通用對(duì)抗擾動(dòng)的生成耗時(shí)。
與其他算法相比,Sarkar等人提出的UPSET攻擊方法雖然也能生成通用對(duì)抗擾動(dòng),但UPSET是定向攻擊,在算法執(zhí)行過(guò)程中會(huì)依次生成N個(gè)通用對(duì)抗擾動(dòng)(N是類別個(gè)數(shù)),每個(gè)擾動(dòng)對(duì)應(yīng)一種定向攻擊的結(jié)果,而在驗(yàn)證碼方面,只需誤導(dǎo)機(jī)器識(shí)別錯(cuò)誤即可,不需要誤導(dǎo)機(jī)器識(shí)別為特定的結(jié)果,在這點(diǎn)上,I-FUAP作為非定向攻擊算法更有優(yōu)勢(shì),計(jì)算開(kāi)銷更??;Phan 等人提出的CAG 相比最新的迭代攻擊(如PGD)可以加速至少500倍,但這種加速還不足以適應(yīng)文本驗(yàn)證碼的生成頻率,相比之下I-FUAP對(duì)原始驗(yàn)證碼直接疊加通用對(duì)抗擾動(dòng)的做法是幾乎不產(chǎn)生額外耗時(shí)的,在速度方面更勝一籌,但CAG通過(guò)引入隨機(jī)丟棄提高了擾動(dòng)的遷移性,這是I-FUAP所沒(méi)有的。
總的來(lái)說(shuō),基于DeepFool的FUAP算法生成的通用對(duì)抗擾動(dòng)使得對(duì)抗驗(yàn)證碼的實(shí)時(shí)生成得以實(shí)現(xiàn),而I-FUAP 通過(guò)穩(wěn)定擾動(dòng)的更新方向,能夠更快生成通用對(duì)抗擾動(dòng),提高了通用對(duì)抗擾動(dòng)的更新頻率,使得應(yīng)用方案更有價(jià)值,但在黑盒攻擊、擾動(dòng)大小等其他方面I-FUAP 仍然有改進(jìn)的空間,這也是未來(lái)可以作為研究的方向之一。
隨著深度學(xué)習(xí)在圖像識(shí)別領(lǐng)域的飛速發(fā)展,傳統(tǒng)的文本驗(yàn)證碼無(wú)法勝任區(qū)分計(jì)算機(jī)程序和真人的反向圖靈任務(wù),而對(duì)抗樣本的發(fā)展為解決該問(wèn)題提供了新的思路。本文將基于梯度的7 種對(duì)抗樣本生成算法FGSM、BIM、PGD、MI-FGSM、DI-2-FGSM、TI-FGSM 和SI-NIFGSM,基于超平面分類的1種對(duì)抗攻擊算法DeepFool,基于DeepFool 的通用對(duì)抗擾動(dòng)(UAP)生成算法以及FUAP算法應(yīng)用于文本驗(yàn)證碼的生成,比較了這些方法應(yīng)用到對(duì)抗驗(yàn)證碼的實(shí)際效果。
分析FUAP算法,發(fā)現(xiàn)其通用對(duì)抗擾動(dòng)的初始化存在不合理性,通過(guò)設(shè)置僅修改隨機(jī)數(shù)種子的變量控制實(shí)驗(yàn),揭示了FUAP的不穩(wěn)定性。將已有的通用對(duì)抗擾動(dòng)用作FUAP的初始化,提出了I-FUAP算法,通過(guò)對(duì)比實(shí)驗(yàn)表明,I-FUAP 較FUAP 能更快生成通用對(duì)抗擾動(dòng),平均耗時(shí)減少約30.22%。
本文針對(duì)文本驗(yàn)證碼以及對(duì)抗樣本生成相關(guān)的研究所提出的方案仍存在一定的不足。例如,通用對(duì)抗擾動(dòng)的生成是基于DeepFool 這一白盒攻擊算法的,所以得到的擾動(dòng)對(duì)黑盒模型的攻擊效果較差,難以遷移到其他攻擊模型上,使用受限。對(duì)抗樣本攻擊算法的遷移性一直是對(duì)抗攻擊領(lǐng)域的研究熱點(diǎn),許多優(yōu)化算法的提出都是為了提高對(duì)抗樣本的黑盒攻擊能力,后續(xù)可以在增強(qiáng)通用對(duì)抗擾動(dòng)的遷移性上做進(jìn)一步的研究,引入模型集成等相關(guān)技術(shù)。