當前位置:
首頁 > 新聞 > 谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

自推出以來,谷歌的 reCaptcha 驗證系統就被頻繁破解,因此谷歌不得不一次又一次地迭代升級。現在,reCaptcha 已經升級到了 v3,由原來的用戶交互直接升級成了給用戶打分。但再強的系統也會有漏洞,來自加拿大和法國的研究者另闢蹊徑,用強化學習「破解」了這個最新的驗證系統。

谷歌的 reCAPTCHA 驗證系統

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

對於谷歌瀏覽器的用戶來說,上面這幅畫面想必並不陌生。這是谷歌開發的驗證碼系統 reCaptcha,旨在確認訪問者是人還是程序,並防止惡意程序的入侵。

reCAPTCHA 項目是由卡內基梅隆大學創建的系統,於 2009 年 9 月被谷歌收購。reCAPTCHA v1 將從書本上掃描下來、無法被 OCR 準確識別的文字顯示在 CAPTCHA 問題中,從而判斷訪問者到底是程序還是人類。該版本被 Bursztein 等人破解,他們使用基於機器學習的系統對文本進行分割和識別,準確率達 98%。

為了反破解,谷歌引入了基於音頻和圖像的 reCAPTCHA v2。該系統使用了一些高級的分析工具來判斷一個用戶到底是人還是機器人。

他們使用了多種元素,包括 cookie、解題的速度、滑鼠的移動以及解題的成功率。但儘管如此,還是有研究人員宣稱自己破解了 ReCAPTCHA,其中比較有名的就是美國馬里蘭大學四位研究人員開發的 unCapture。

用 unCaptcha 攻破 reCAPTCHA

unCaptcha 項目最早創建於 2017 年 4 月,並在當時實現了 85% 的 ReCaptcha 對抗率。後來,谷歌發布了新的 ReCaptcha,實現了更好的瀏覽器自動檢測,而且開始使用短語語音進行驗證。這些改進最開始成功地防禦了第一版 unCaptcha 的攻擊,但這一改進版很快又被第二版 unCaptcha 破解了。

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

由於 ReCaptcha 添加了語音形式的驗證碼識別,破解 ReCaptcha 變得比以前更加容易。破解者表示,「因為我們只需要調用一個免費的語音識別 API,對所有驗證碼的識別準確率就能達到 90% 左右。」今年一月份,破解者還開源了 ReCaptcha 的破解代碼。

用強化學習「攻破」reCAPTCHA v3

當然,谷歌也沒有閑著,一直在迭代自己的驗證系統。2018 年 10 月,谷歌正式發布 reCAPTCHA v3。谷歌這次放出的大招是:移除所有用戶界面。

前兩個版本的 reCAPTCHA 有可利用的文本、圖像或音頻,可以將其用作訓練神經網路的輸入。但 reCAPTCHA v3 移除了所有用戶界面,沒有拆開亂碼文本或街道標誌,甚至也沒有勾選「我不是機器人」的方框。

它會分析一系列信號,使用機器學習技術返回一個 0 到 1 之間的風險評估分數(這個分數表徵了用戶的可信任度,越接近 1 越有可能是人類)。與前兩個版本相比,這種打分完全是在後台進行的,根本沒有人類交互,因此破解難度更大。

破解從哪兒入手?

這麼高難度的項目當然會引得各路「黑客」躍躍欲試。近日,來自法國和加拿大的研究人員聲稱自己破解了谷歌的 reCAPTCHA v3,並根據自己的研究成果發表了一篇名為《Hacking Google reCAPTCHA v3 using Reinforcement Learning》(使用強化學習破解谷歌的 reCAPTCHA v3)的論文。與之前研究的不同之處在於,他們使用的是強化學習方法,測試準確率達到了 97.4%。

實際上,這項強化學習技術並非針對 reCAPTCHA v3 中不可見的分數,而是 reCAPTCHA v2 中首次引入的滑鼠移動分析。也就是說,這項研究並非真正攻破 reCAPTCHA v3,而是用機器學習欺騙二級系統(即舊版的「我不是機器人」打勾操作),以繞過 reCAPTCHA v3。

等等,「我不是機器人」這種界面不是已經在 v3 中被移除了嗎?理論上是該這麼做,但在實際操作中並沒有。

論文一作 Akrout 表示,在 reCAPTCHA v3 中,網站設置其分數閾值以判定用戶是否為機器人。如果訪客在某個設定點低於閾值(比如當他們輸入評論或登錄細節時),網站可以選擇立即譴責該訪客是機器人,不過真這麼做的話,如果訪客是真人就會很尷尬了。

想像一下在網購的時候,你正在查看的頁面突然消失,隨之而來的是滿屏的「你是機器人」譴責。就問你糟不糟心?從用戶體驗的角度來看這種做法實在太……emmm…

因此,Akrout 表示,很多網站會選擇更友好地緩和這個過程。如果網站訪客低於分數閾值,網站會顯示舊版的「我不是機器人」複選框頁面,這個複選框用來發現機器人的分析行為,包括滑鼠移動等。

這樣可以讓用戶更好地理解為什麼他們的網購或其它正在乾的事會被打斷,而且會給他們一個證明自己人類身份的機會。

「我認識的大部分程序員會添加複選框,因為他們不知道如何選擇恰當的時機來詢問 v3 系統的判斷。」

正是這個複選框的存在讓 Akrout 和他的同事們發現了繞過 reCAPTCHA v3 的可能。

怎麼破解?

Akrout 及其同事利用強化學習來欺騙部分 reCAPTCHA v3 系統,其中軟體智能體試圖找到最佳的可能途徑,並通過正確方向上每一步的獎勵受到鼓勵。

他們的系統在頁面中放置一個正方形網格,滑鼠沿對角線穿過網格到達「我不是機器人」按鈕。如果成功,則給予正面強化;如果失敗,則給予負面強化。該系統學會了控制正確的移動方法以欺騙 reCAPTCHA 系統。該論文中稱其準確率達到了 97.4%。在論文發表後,谷歌未對該論文置評。

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

這樣破解真的可以嗎?

這種做法並沒有讓伯恩茅斯大學的 Nan Jiang 信服,他沒有參與這次研究。「理論上來說,任何僅依賴於檢查用戶行為的驗證碼方法都可以用定製的機器學習演算法破解,比如那種可以輕易地模擬用戶在頁面上交互的演算法。

但是,谷歌的 ReCAPTCHA 結合了其它技術來預測用戶的可信程度,然後嘗試把該用戶納入白名單。一旦你被納入白名單,無論你做什麼都可以通過測試。」他表示。

破解 reCAPTCHA 版本 2 的伊利諾伊大學計算機科學助理教授 Jason Polakis 指出,reCAPTCHA 版本 3 的工作要比論文中描述的更多。

他說道:「本文試圖展示的攻擊僅僅是從頁面中的隨機起點移至複選框。這是用戶在實踐中與實際頁面產生交互的非常具體和有限的子集(如填寫表格、與多頁面元素交互以及跨越更複雜模式等)。」

他還補充:「如果谷歌也已經改善瀏覽器/設備指紋等更先進技術的利用(我們在進行廣泛深入分析和破解 ReCaptcha 版本 2 時已經發現了這些跡象),實際上展開攻擊將會變得更為複雜。」

Akrout 同意基於滑鼠移動的攻擊存在局限,但這些也揭露了一點關於 reCAPTCHA 版本 3 工作的信息。他表示,「如果你通過一個常規 IP 連接谷歌賬戶,則系統大部分時間都會認為你是人類。」如果你通過 TOR 或者代理伺服器連接谷歌賬戶,則系統通常會認為你是機器人。

如果測試的網站已經具有這種默認設置,了解這些則更容易迫使 reCAPTCHA 系統顯示「我不是機器人」按鈕。

Akrout 表示攻擊需要對谷歌表現出中立性—所以沒有登錄賬戶,也沒有通過代理伺服器或使用 Selenium 等瀏覽器控制工具進入。他說道:「這就好像是我在要求該系統直接進入第二個頁面,其目的僅是為了獲得大量移動檢測。」

Akrout 認為谷歌可以通過這項技術(特別是根據用戶點擊按鈕花費的時間),使用更簡單的方法來保護 reCAPTCHA。Akrout 表示,「該智能體點擊複選框花費的時間比人類更多。在沒有任何交互的情況下,任何用戶通常都不會影響 reCaptcha 在後台的工作。」

肯特大學的網路安全教授 Shujun Li 先前已經設計了自己用於破解 reCAPTCHA 早期版本的系統,但並沒有參與這個項目。他表示這項工作從技術層面看似可行,但也認為谷歌可輕易更新其系統以避免此類攻擊。

他說道:「尚未清楚的是,該攻擊方法被重新訓練至何種程度才能趕上谷歌系統。可能更加穩健的一種方法是收集真正人類用戶對 reCAPTCHA 的響應,並構建機器學習模型來模擬此類響應。這些模型很容易被重複訓練,而且能夠保證有用,除非 reCAPTCHA 對常規人類用戶不可用。」

Li 表示破解這些系統的確還有很多其他方法。雖然這種特定攻擊受到限制,但 reCAPTCHA 將繼續淪為人工智慧系統犧牲品的事實並不意外。

Li 表示:「破解驗證碼並不是什麼新聞了。最近的 AI 進展已經大大提高了自動攻擊的成功率。原則上,驗證碼技術已證明無法抵制先進的攻擊。」本文的研究或許無法破解第 3 版 reCAPTCHA,但這是一個開始。

論文:Hacking Google reCAPTCHA v3 using Reinforcement Learning

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

論文鏈接:https://arxiv.org/pdf/1903.01003.pdf

摘要:本文提出了一種可以欺騙谷歌 reCAPTCHA v3 的強化學習方法。我們將 reCAPTCHA v3 視為一個網格世界,智能體在這個世界裡學習如何移動滑鼠並點擊 reCAPTCHA 按鈕獲得高分。

我們研究了在改變網格中格子大小時智能體的性能,結果顯示,當智能體向目標大步前進時,其性能會大大降低。最後,我們用了一個分治策略來應對任意網格解析度,以攻破 reCAPTCHA 系統。我們提出的方法在 100 × 100 的網格中實現了 97.4% 的勝率,在 1000 × 1000 的屏幕解析度上實現了 96.7% 的勝率。

實驗結果

研究人員在一個特定尺寸的網格上訓練了一個強化學習智能體。他們的方法是將訓練得到的策略用於在 reCAPTCHA 環境中選擇最佳行動。實驗結果是在訓練 1000 輪之後得到的。

如果智能體得到 0.9 分,他們就認為該智能體成功攻破了 reCAPTCHA。策略網路是一個全新的雙層全連接層網路。參數是以 10^(-3) 的學習率訓練得到的,批大小為 2000。

下圖顯示了智能體在 100 × 100 的網格上得到的結果。該方法以 97.4% 的勝率成功攻破了 reCAPTCHA 測試。

接下來考慮在更大的網格上測試該方法。如果增加網格的大小,狀態空間的維數就會指數級增加,在這種情況下訓練強化演算法並不可行。這是本研究解決的另一個難題:如果不為每個解析度的網格重新訓練智能體,該如何攻破 reCAPTCHA 系統?

為此,研究人員提出了一種分治方法,可以攻破任意網格大小的 reCAPTCHA 系統而無需重新訓練強化學習智能體。中心思想是將網格進一步切分為子網格,然後將訓練得到的智能體應用到這些子網格上,以為更大的屏幕尋找最優策略(見圖 2)。圖 3 顯示了該方法的有效性,在不同大小的網格上勝率超過了 90%。

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

圖 2:分治方法圖示:智能體在紫色的對角網格世界上運行。紅色網格世界還沒有被探索。

谷歌最新驗證系統又雙叒被「破解」了,這次是強化學習

圖 3:強化學習智能體在不同網格解析度上的勝率。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

超十億樣本煉就的CNN助力圖像質量增強,Adobe推出新功能「增強細節」
各種NLP操作難實現?谷歌開源序列建模框架Lingvo

TAG:機器之心 |