作者:李四偉@星輿實驗室
本文為作者投稿,Seebug Paper 期待你的分享,凡經采用即有禮品相送! 投稿郵箱:paper@seebug.org
相關閱讀:“刷臉時代”你的臉就是我的臉 -- 人臉識別漏洞分析 (上)
大家好, 我是星輿車聯網實驗室李四偉。星輿取 “星辰大海, 輿載萬物”之意, 是專注于車聯網技術研究, 漏洞挖掘和工具研發的安全團隊。團隊成員在漏洞挖掘, 硬件逆向與AI大數據方面有著豐富經驗, 連續在GeekPwn等破解賽事中斬獲獎項, 并獲眾廠商致謝。團隊研究成果多次發表于DEFCON等國內外頂級安全會議。
人臉識別漏洞分析的方法
主要對2D人臉識別漏洞進行分析,最后會將在2D人臉識別系統驗證通過的方法在3D人臉識別下做驗證測試。人臉漏洞分析的方法思想就是解析人臉識別整個流程每個子任務,基于每個子任務的原理進行分析對抗,最后再整合進行整體任務對抗。人臉識別是一個任務的集合,包含眾多的子任務,基于對各個子任務的分析以及整體任務的分析,總結了人臉識別漏洞驗證的方法如下圖所示[7]:

基于以上方法我們會對人臉識別整個任務進行分析測試,驗證人臉識別系統的安全性,并對人臉識別的漏洞進行分析。為了保護用戶的隱私問題,以及維護廠商的安全問題,相關視頻圖片中的人臉,明顯商標都添加了馬賽克保護。
1.人臉檢測漏洞分析
回顧整個人臉識別的過程,無論什么系統,第一步總是人臉檢測,人臉檢測算法的目的是準確檢測到人臉位置,但是由于現實場景的復雜性,往往在算法訓練的過程中無法覆蓋所有場景,無法添加所有異常數據作為負類來增強數據的魯棒性,所以當前各廠家的人臉檢測算法往往會存在將特定的非人臉數據頻繁誤檢測成人臉的情況,我們嘗試一種手繪人臉攻擊的方法,并設計了一個實驗,測試人臉識別系統的人臉檢測功能的魯棒性。
- 測試工具:一個繪制了簡單人臉五官圖標的橘子

-
實驗對象:裝有人臉識別系統的打印機,某款汽車的車機系統,某款人臉閘機,華為某款手機
-
實驗過程:將繪有人臉圖標的橘子放到實驗對象的攝像頭前,不斷的調整位置和角度
- 實驗結果:測試的四種設備,都會錯誤的將橘子誤檢測為人臉,一個繪有人臉圖標的橘子即可攻破人臉檢測系統。 下圖是繪有人臉圖標的橘子被檢測成人臉,成功錄入某款打印機的人臉識別系統的圖片:

這個結果是出乎實驗前主觀的預期的,但是同時又從另一個方面證明了,由于深度學習對數據的高度依賴性,再加上物理世界實際場景的復雜性,訓練數據很難覆蓋所有場景,而構建的用于測試的算法指標的測試集,往往也只能覆蓋常見場景,所以一般我們看到的某種算法的指標,往往指的是在測試集覆蓋的場景下表現的結果,在實際應用中,算法的精確率往往會低于測試結果,算法的誤檢率會高于測試結果,因而在算法的魯棒性沒有足夠好的情況下,其實會存在很多漏洞能夠被利用挖掘的,該結論同樣適用于人臉識別的其他子任務,甚至是自動駕駛等等任務。
2. 活體檢測漏洞分析
當攻破了人臉檢測,下一個階段就是整個人臉識別系統最重要的反欺詐模塊活體檢測模塊,活體檢測可以稱得上是人臉識別系統最重要的防線,大部分針對人臉識別系統的攻擊都是通過活體檢測防御的,一個沒有活體檢測的人臉識別系統基本上最簡單的照片攻擊都能夠攻破。活體檢測是一種基于人臉檢測的結果,對檢測到的目標是否為真實人臉進行判定的方法,可以簡單的理解為對輸入數據的進行一個二分類的問題。實現思路和方法很多,例如傳統的基于活體和非活體顏色紋理,非剛性運動變形,材質,頻域信息等差異,進行針對性設計特征的進行分類的方法,再到后來的基于神經網絡自動提取特征進行分類,分類轉回歸等等方法。不同模態的攝像機又為活體檢測提供了不同的數據源,而基于這些數據源,又可簡單的分成rgb活體檢測,紅外活體檢測,3D活體檢測等等。表現在應用層面主要有兩種,一個是配合式活體檢測,一種是非配合式活體檢測[6]。針對于不同的活體檢測,應用照片攻擊,視頻回放攻擊,人臉面具+動作,3D人臉面具的方法設計了一個實驗[13]:
-
測試工具:A4紙打印的人臉rgb圖片,A4紙打印的人臉灰度圖片,手機播放人臉圖片,硅膠制作而成的3D人臉面具

-
實驗對象:帶有人臉識別功能的打印機(雙目攝像頭,應用近紅外活體檢測),某款帶有人臉識別功能汽車(單目攝像頭,應用近紅外活體檢測),華為(單目攝像頭,應用rgb活體檢測),開源靜默活體檢測算法。
-
實驗過程:將測試工具放置到實驗對象攝像頭前,調整位置角度,驗證是否能夠通過活體檢測;測試人員佩戴3D人臉面具到實驗對象攝像頭前,調整位置角度,驗證是否能夠通過活體檢測。
-
實驗結果:照片攻擊,視頻回放攻擊全部驗證失敗,無法通過活體檢測;3D人臉面具能夠繞過打印機,華為手機,開源靜默活體檢測算法的人臉檢測及活體檢測,但是由于3d人臉的工藝問題,無法識別成對應目標人物;使用人臉面具+動作的方法在面具覆蓋人臉區域較大時無法通過活體檢測,當面具體積減少到一定程度,能夠繞過所有實驗對象的活體檢測。
分析該實驗結果:首先紅外活體檢測在活體檢測領域有著廣泛的應用,對比不同材質在近紅外攝像頭下的圖片,可以很直觀的觀測到活體檢測如何對抗照片攻擊,視頻回放攻擊。

紅外圖像下不同材質的物體成像結果有著明顯的差距,后續我們通過在打印圖片上覆蓋不同反射率材質的,希望能夠改變紅外攝像頭采集到的圖像成像結果,依然失敗了。但是依然存在方法繞過活體檢測,即真實人臉+圖片面具的方法和3D面具的方法,真實人臉+圖片面具本質相當于帶遮擋的真實人臉,所以在未添加遮擋限制檢測的系統中,理論上有很大概率通過各類型活體檢測[14]。3D人臉面具除材質外,形狀結構有著高度的一致性,而硅膠材質和人臉在紅外下的成像差異不明顯,使用3D人臉面具繞過人臉識別存在一定可行性。 基于對活體檢測的測試結果以及對公開數據集的研究,大多是對照片攻擊,視頻回放攻擊,整張人臉圖片裁減掉人眼關鍵位置的攻擊的防御,對于局部區域遮擋沒有很好的防御[15,16]。
3. 特征提取漏洞分析
綜合以上測試結果,活體檢測繞過的難度較高,但是仍然存在可行的方法。而對于特征提取的任務,只需要調整改變輸入圖像的像素值,就能夠影響到最終特征提取的結果。我們使用對抗樣本的方法來影響特征提取結果,這種方法是人臉對抗樣本在物理世界的應用。對抗樣本主要思想是對輸入樣本添加細微的干擾,導致輸出結果異常。在人臉識別的應用中,對抗樣本攻擊主要通過修改圖像的像素信息,增加擾動信息,干擾到人臉特征提取的結果,導致提取到的特征向量與本身的特征向量距離過大,最終導致人臉匹配時,匹配結果異常。更進一步的物理世界的人臉對抗樣本攻擊,由于無法做到全臉的細微的干擾,往往會將擾動信息集中在固定區域[17]。 綜合人臉檢測,活體檢測的測試結果,以及人臉對抗樣本在物理世界的應用的分析,提出一種通過對抗樣本+真實人臉的人臉識別繞過的方法,打印出擾動特征提取結果的對抗樣本,然后真實人臉佩戴打印出來的對抗樣本,進行人臉識別認證。本質和人臉帶面具方法相同,只不過將面具內容替換為對抗樣本。其中真實人臉+局部遮擋繞過了人臉檢測和活體檢測,人臉覆蓋的對抗樣本數據影響特征提取的結果,進而影響后續的人臉匹配過程,錯誤的將測試人員的人臉匹配成目標人臉,導致人臉識別的最終結果異常[18]。 整個方法的實現過程包括兩部分,一部分是被覆蓋特征區域的選取,另外一個是區域內對抗樣本的生成。
-
覆蓋區域選定:通過相關資料的調研以及使用大量數據統計,對比人臉各區域對人臉特征提取結果的影響,結果與人的主觀意識相符,人臉眉間到鼻子附近區域對整個人臉特征提取結果影響較大,通過調整區域內的像素特征能夠干擾到最終人臉識別的結果。部分活體檢測系統,包含了對嘴巴和眼睛遮擋的判定,所以選取的區域需要保證人眼睛和嘴巴不被遮擋。基于以上結果,通過大量的數據驗證測試,選取了相對較優的特征替換區域。
-
對抗樣本生成:對于一個未知的人臉識別系統進行對抗樣本攻擊,可以稱之為黑盒攻擊,我們基于樣本的遷移性,首先在星輿自研的人臉識別算法的基礎上,完成對抗樣本的訓練和測試,可以稱這個過程為白盒模型對抗攻擊。選定位置后使用自研人臉算法進行對抗樣本的訓練,最終生成目標對抗樣本 將生成的對抗樣本打印出來,粘貼到預定覆蓋的人臉位置,完成了對抗樣本測試的準備。 以下是實驗過程:
-
測試工具:測試人員人臉佩戴打印出來的對抗樣本圖片
-
測試目標:多款車輛(單目紅外),打印機(雙目,rgb+紅外),手機(單目rgb)
-
測試過程:測試人員站到對應攝像頭前,調整位置角度,驗證是否能夠通過人臉識別認證
-
實驗結果:車輛全部通過認證,手機通過認證,打印機未通過認證 該測試驗證對抗樣本+真實人臉的方法能夠達到預期的效果,欺騙人臉識別系統。 測試結果錄制成視頻在三四節實踐部分展示。
人臉識別漏洞在智能汽車中的實踐
為了驗證上述方法的可實踐性,我們在真實場景下進行了測試:首先獲取車主照片,我們將照片通過人臉對抗模型生成對抗樣本,然后打印出來,測試人員佩戴對抗樣本圖片,坐到駕駛員位置,開啟車輛人臉識別認證,開始進行人臉識別認證。
某款車輛的測試視頻,該車型的人臉識別能夠作為車鑰匙啟動車輛,使用上述方法成功解鎖并啟動車輛 (https://v.qq.com/x/page/r33024jmh4o.html)

另一款車輛的測試視頻,該車型使用人臉識別作為賬號認證,登錄后能夠查看用戶行程記錄儀,行車路線圖等隱私信息,使用上述方法成功解鎖登 錄,自由查看操作用戶數據 (https://v.qq.com/x/page/v3302fkrhm9.html)

測試人員成功完成認證欺騙車載人臉識別系統,完成了登錄,然后可以正常訪問目標車主的隱私信息,正常啟動車輛,控制車輛啟動。在一款車型有著90%以上的成功率,另一款車基本有接近100%的成功率。
人臉識別漏洞在其他領域的實踐
為了驗證該方法的普適性,我們在某款手機的人臉識別系統以及某銀行的銀規級軟件上進行了驗證,結果如下:
某款華為手機
使用上述方法測試了華為某款手機的人臉識別解鎖功能,使用非用戶的人人臉佩戴生成人臉圖案的方法成功欺騙了手機的人臉認證,解鎖手機,登錄到主頁面,自由操縱該手機。我們將該漏洞提交給華為,并提供了一些緩解該漏洞問題的建議:增加檢測算法對人臉遮擋的檢測,或者增加負類數據集,提升檢測算法對該場景對抗訓練,優化該場景的檢測效果。可通過優化活體檢測算法,增加識別算法相關負類數據集來對抗該問題 華為官方認可了該漏洞在2D人臉應用場景下的可行性,并認為該問題為行業共性問題,由于是已知行業共性問題,按照非漏洞流程處理。演示視頻:(https://v.qq.com/x/page/i3302rry4tp.html)

銀規級軟件測試
我們使用該方法對某銀行APP人臉登錄功能進行驗證,經驗證,此方法未能在該場景下生效,主要原因:銀規級的人臉識別系統要求更好的人臉配合度,減少了對用戶體驗的妥協,有著更高的檢測識別閾值,更嚴格的識別條件,對人臉遮擋有著嚴格的判定,當人臉遮擋到達一定比例時,人臉檢測將會判定該人臉非真實人臉,拒絕進行下一步認證。當我們逐漸減少特征圖片的面積時,最終能夠通過檢測系統,但是又會由于替換的特征區域過小,而導致無法按照預期識別成指定目標。
總結
通過上述實驗得出一個結論:2D人臉識別系統普遍存在的一個漏洞,由于2D數據信息的局限性,可通過替換局部人臉特征,來改變人臉識別系統識別的結果。在保證活體檢測能夠正常通過的情況下,通過簡單的替換人臉特征即可完成對人臉識別系統的攻破。測試中的問題暫時未在3D人臉識別的系統復現。 對于該問題的優化方案:
-
增加檢測算法對人臉遮擋的檢測,或者增加負類數據集,提升檢測算法對該場景對抗訓練,優化該場景的檢測效果。
-
可通過優化活體檢測算法,增加識別算法相關負類數據集來對抗該問題。
-
使用3D人臉識別增加輸入信息維度,但是3D人臉識別的成本較高,算法訓練的復雜度較大,數據收集的成本較高。
本篇文章主要對人臉識別相關漏洞進行了分析,人臉識別作為生物識別領域廣受關注并且有大量應用的技術,本身有著很高的研究價值,人臉識別系統的安全性對用戶本身的信息安全,數據安全甚至財產安全等等有著重要的影響。人臉識別漏洞技術的研究對人臉識別技術安全性,魯棒性有著重要的意義。我們后續會持續關注研究人臉識別的漏洞以及安全性問題。
References
[1]https://www.jiqizhixin.com/graph/technologies/3ff3ab31-7595-48d8-905a-baddfecc22be
[2] https://cmusatyalab.github.io/openface/
[3] Kaipeng Zhang, Zhanpeng Zhang, Zhifeng Li, Senior Member, IEEE, and Yu Qiao, Senior Member, IEEE:Joint Face Detection and Alignment using Multi task Cascaded Convolutional Networks
[4] Daniel Sáez Trigueros, Li Meng, Margaret Hartnett. Face Recognition: From Traditional to Deep Learning Methods
[5] Florian Schroff, Dmitry Kalenichenko, James Philbin. FaceNet: A Unified Embedding for Face Recognition and Clustering
[6] Jucheng,DAI Xiangzi,HAN Shujie,MAO Lei,WANG Yuan. On Liveness Detection through Face Recognition
[7] Naveed Akhtar,Ajmal Mian. Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey
[8] Jiankang Deng, Jia Guo, Niannan Xue, Stefanos Zafeiriou. ArcFace: Additive Angular Margin Loss for Deep Face Recognition
[9] https://zhuanlan.zhihu.com/p/44904820
[10]https://blog.csdn.net/molixuebeibi/article/details/91880162
[11] https://www.lddoc.cn/p-17334859.html
[12] Haibo Qiu, Baosheng Yu, Dihong Gong, Zhifeng Li, Wei Liu, Dacheng Tao. SynFace: Face Recognition with Synthetic Data
[13] https://blog.csdn.net/u013841196/article/details/81176498YANG
[14] https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/107902924
[15] https://zhuanlan.zhihu.com/p/43480539
[16] A Dataset and Benchmark for Large-scale Multi-modal Face Anti-spoofing
[17]Stepan Komkov, Aleksandr Petiushko. AdvHat: Real-world adversarial attack on ArcFace Face ID system
[18]https://baijiahao.baidu.com/s?id=1690021058663956115&wfr=spider&for=pc
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1740/
暫無評論