如果你通過(guò) Google 搜索購(gòu)買(mǎi)演唱會(huì)門(mén)票或者注冊(cè)論壇賬號(hào),系統(tǒng)會(huì)提示你必須點(diǎn)擊幾個(gè)圖框、音頻或者移動(dòng)鼠標(biāo)等操作來(lái)確認(rèn)是人類(lèi)在操作驗(yàn)證而不是機(jī)器人。
其背后的驗(yàn)證機(jī)制就是 CAPTCHA(驗(yàn)證碼),保護(hù)互聯(lián)網(wǎng)服務(wù)免受諸如 Sybil 的攻擊,這是互聯(lián)網(wǎng)防止自動(dòng)創(chuàng)建帳戶(hù)和濫用服務(wù)的第一道防線(xiàn)。而 Google 的 reCaptcha 服務(wù)是最受歡迎的驗(yàn)證碼系統(tǒng)之一,目前被成千上萬(wàn)的網(wǎng)站用于測(cè)試用戶(hù)是否是人類(lèi),以防范機(jī)器人的攻擊。
reCAPTCHA 發(fā)布之后,無(wú)論是安全專(zhuān)家還是研究人員都在試圖挑戰(zhàn)它,找出它的漏洞,比如一些專(zhuān)家就試圖通過(guò)反向圖像搜索、深度學(xué)習(xí)和“實(shí)驗(yàn)神經(jīng)科學(xué)數(shù)據(jù)”來(lái)進(jìn)行攻擊。這些方法要么成功率較低或者很快就被 Google 團(tuán)隊(duì)迅速補(bǔ)上了漏洞。但其中一種攻擊方法讓 Google 團(tuán)隊(duì)看上去束手無(wú)策。
馬里蘭大學(xué)的研究人員聲提出的 unCaptcha 攻擊方法 unCaptcha 可以輕松騙過(guò) Google reCaptcha。他們使用來(lái)自實(shí)時(shí)網(wǎng)站的超過(guò) 450 次 reCaptcha 挑戰(zhàn)來(lái)評(píng)估 unCaptcha,并證明可以在 5.42 秒內(nèi)以 85.15% 的準(zhǔn)確率進(jìn)行破解。
該方法的原理讓人萬(wàn)萬(wàn)沒(méi)想到的是:在用戶(hù)請(qǐng)求語(yǔ)音驗(yàn)證碼后,只要把收到的內(nèi)容轉(zhuǎn)發(fā)給 Google 語(yǔ)音轉(zhuǎn)文字 API,然后把收到的回復(fù)進(jìn)行提交,最后竟然給輕易破解了。
古人問(wèn):以子之矛,攻子之盾,何如?
Google reCaptcha 團(tuán)隊(duì):其人弗能應(yīng)也......內(nèi)心苦,說(shuō)不出。
微博網(wǎng)友如此調(diào)侃:
怎么會(huì)這樣呢?
上述研究人員最初在 2017 年開(kāi)發(fā)了 UnCaptcha,他們?cè)诎l(fā)表的論文《unCaptcha: A Low-resource Defeat of reCaptcha's Audio Challenge》中給出了更為詳細(xì)的解釋?zhuān)和ㄟ^(guò) UnCaptcha 下載音頻驗(yàn)證碼,將音頻分成單個(gè)數(shù)字音頻片段,將片段上傳到多個(gè)其他語(yǔ)音轉(zhuǎn)文本服務(wù)(包括 Google),然后將這些服務(wù)得出的結(jié)果轉(zhuǎn)換為數(shù)字編碼。隨后經(jīng)過(guò)一些同音詞猜測(cè)后,它會(huì)決定哪個(gè)語(yǔ)音到文本輸出最接近準(zhǔn)確值,然后將答案上傳到 CAPTCHA 字段。
這還是 unCaptcha 1.0 版本,成功率便達(dá)到 85%。在這一版發(fā)布后,Google 隨即修復(fù)了一些漏洞,包括提升瀏覽器自動(dòng)檢測(cè)性能以及將驗(yàn)證方式從數(shù)字編碼切換為短語(yǔ)音,這成功防止了 unCaptcha 的攻擊。
不過(guò),上述研究人員在 2018 年 6 月升級(jí)了新方法,unCaptcha v2 依然可以繞過(guò)這些防御機(jī)制,并且“魔高一丈”,準(zhǔn)確性比以前更高,達(dá)到了 90%。
這次他們還公布了 v2 版的代碼和更詳盡的步驟,研究人員稱(chēng) unCaptcha2 的操作方法很簡(jiǎn)單:
導(dǎo)航到 Google 的 ReCaptcha 演示網(wǎng)站
導(dǎo)航到 ReCaptcha 的音頻挑戰(zhàn)
下載音頻挑戰(zhàn)
將音頻挑戰(zhàn)提交到 Speech To Text
解析響應(yīng)和類(lèi)型答案
按提交并檢查是否成功
(過(guò)程演示)
由于 unCaptcha2 必須轉(zhuǎn)到屏幕上的特定坐標(biāo),因此你需要根據(jù)設(shè)置更新坐標(biāo)。這些坐標(biāo)位于 run.py 的頂部。在 Linux 上,使用命令 xdotool getmouselocation --shell 查找鼠標(biāo)的坐標(biāo)可能會(huì)有所幫助。
你還需要為選擇的任何語(yǔ)音轉(zhuǎn)文本的 API 設(shè)置證書(shū)。由于 Google,微軟和 IBM 的語(yǔ)音轉(zhuǎn)文本系統(tǒng)看起來(lái)效果最好,因此這些系統(tǒng)已包含在 queryAPI.py 中。此外,你必須根據(jù)需要設(shè)置用戶(hù)名和密碼,對(duì)于 Google 的 API,必須使用包含 Google 應(yīng)用程序證書(shū)的文件設(shè)置環(huán)境變量(GOOGLE_APPLICATION_CREDENTIALS)。
最后,使用安裝依賴(lài)項(xiàng) pip install -r dependencies.txt,大功告成。
到此你還有疑惑問(wèn)這難道不是黑客攻擊嗎?Google 沒(méi)報(bào)警?研究人員的說(shuō)法是,他們已經(jīng)聯(lián)系了 Google ReCaptcha 團(tuán)隊(duì),提醒 Recaptcha 更新后的系統(tǒng)安全性更差了,所以后者完全了解這次攻擊的事件,而研究人員非但沒(méi)有受到任何干擾,而且在破解成功率如此之高的情況下,ReCaptcha 團(tuán)隊(duì)甚至允許他們公布代碼。
當(dāng)然,這些研究人員這么努力找 ReCaptcha 的 bug,并善意提醒ReCaptcha 團(tuán)隊(duì)基礎(chǔ)架構(gòu)的問(wèn)題,卻沒(méi)能得到 Google 的獎(jiǎng)勵(lì),研究人員也特意強(qiáng)調(diào)了這一點(diǎn)。
ReCaptcha 團(tuán)隊(duì)暫時(shí)未給出應(yīng)對(duì)攻擊的進(jìn)一步措施,但研究人員最后發(fā)布免責(zé)聲明稱(chēng),當(dāng) Google 再度更新 ReCaptcha 服務(wù)時(shí),他們將不再更新 GitHub 庫(kù)。因此,他們預(yù)計(jì) unCaptcha2 攻擊方法未來(lái)會(huì)失效,項(xiàng)目本身也會(huì)隨時(shí)中斷。
-
Google
+關(guān)注
關(guān)注
5文章
1772瀏覽量
57842 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11192瀏覽量
103971
原文標(biāo)題:Google AI騙過(guò)了Google,工程師竟無(wú)計(jì)可施?
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論