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