0
本文作者: 李勤 | 2017-08-18 14:22 |
雷鋒網(wǎng)編者按:深度學(xué)習(xí)在很多領(lǐng)域都取得了巨大的進(jìn)步,深度學(xué)習(xí)也讓我們的日常產(chǎn)品功能變得更強(qiáng)大。但是,人工智能也會(huì)帶來(lái)相應(yīng)的問(wèn)題。在由騰訊2017 中國(guó)互聯(lián)網(wǎng)安全領(lǐng)袖峰會(huì)(CSS)中,“MacAuthur天才獎(jiǎng)”“世界杰出青年創(chuàng)新家”等獎(jiǎng)項(xiàng)獲得者、國(guó)際四大安全會(huì)議論文數(shù)第一的 Dawn Song介紹了一些在 AI 和網(wǎng)絡(luò)安全領(lǐng)域經(jīng)常遇到的挑戰(zhàn),AI 如何來(lái)賦予我們能力,AI 如何幫助安全。
以下是她的演講記錄,雷鋒網(wǎng)編輯在不影響原意表達(dá)的基礎(chǔ)上略有刪減和整理。
[Dawn Song]
深度學(xué)習(xí)已經(jīng)改變了安全形勢(shì)和安全能力,深度學(xué)習(xí)能夠使我們的認(rèn)知系統(tǒng)變得更加強(qiáng)大,能夠廣泛的部署在各種產(chǎn)品當(dāng)中,而且它能夠讓我們獲得新的能力,更好識(shí)別惡意軟件、欺詐?,F(xiàn)在,我們已經(jīng)進(jìn)入到一個(gè)新物聯(lián)網(wǎng)時(shí)代,今后幾年,數(shù)十億聯(lián)網(wǎng)設(shè)備將被部署在其中,今天我要給大家來(lái)介紹一下我們最近的工作——深度學(xué)習(xí)如何幫助我們解決 IoT 設(shè)備的安全問(wèn)題。
IoT 設(shè)備可以在不同的硬件平臺(tái)上部署。與此同時(shí),我們也會(huì)有開(kāi)源代碼軟件,它們可能會(huì)有一些共同的漏洞。當(dāng)我們發(fā)現(xiàn)了一個(gè)新漏洞,如何掃描這些不同的 IoT 設(shè)備的固件?如何識(shí)別這些 IoT 的設(shè)備?是不是能夠去除掉這些漏洞?這是具有挑戰(zhàn)的問(wèn)題。
我們可能會(huì)有不同的固件,而且它們是在不同的平臺(tái)上進(jìn)行部署。而我們現(xiàn)在只有這些固件的二進(jìn)制代碼,雖然說(shuō)它們可能會(huì)有同樣的開(kāi)源代碼,但是也會(huì)有漏洞。固件的功能又不一樣,我們?nèi)绾未_保不同的功能固件獲得同樣的語(yǔ)義?如何發(fā)現(xiàn)這些不同固件的功能?如何識(shí)別一些共同的弱點(diǎn)和漏洞?
我們首先會(huì)獲得一個(gè)固件的文件,看到漏洞,進(jìn)行特征提取。之后識(shí)別,并且分析這些功能從語(yǔ)義角度上是不是相似。在這個(gè)案例中,就是使用深度學(xué)習(xí)進(jìn)行嵌入,而這樣的嵌入都是多維度的。計(jì)算機(jī)可以使用深度學(xué)習(xí)讓嵌入變得相似。如果兩個(gè)功能有著相似的語(yǔ)義,它的功能就變得相似。
我們有代碼圖形,也會(huì)從這個(gè)代碼圖形當(dāng)中提取一個(gè)高維數(shù)據(jù)。也會(huì)有端到端的培訓(xùn)方法,如果這兩個(gè)代碼圖形是來(lái)自于相似的功能,那么計(jì)算機(jī)就會(huì)獲得一個(gè)語(yǔ)義學(xué)的相似性。在我們的研究當(dāng)中,之前的方法可能需要花費(fèi)幾分鐘的時(shí)間來(lái)進(jìn)行功能評(píng)估。而現(xiàn)在基于深度學(xué)習(xí),卻只需要幾毫秒。
從培訓(xùn)時(shí)間看,之前我們可能會(huì)花費(fèi)一周多來(lái)進(jìn)行培訓(xùn),而現(xiàn)在我們只需要不到 30 分鐘就能完成。對(duì)于漏洞識(shí)別,我們的方法也能提供更加高的準(zhǔn)確度。比如,在前 50 個(gè)高漏洞威脅中,42個(gè)是確定有漏洞的,比之前的漏洞識(shí)別準(zhǔn)確率高很多。
下一步,AI 也將會(huì)帶來(lái)更高的安全能力,而事實(shí)上,AI 可以顛覆很多不同的域名,包括安全領(lǐng)域。在補(bǔ)丁和防護(hù)措施的建立上,它都能夠起到很大作用。不管你是打游戲還是下圍棋,我們都可以通過(guò) AI 來(lái)識(shí)別潛在的攻擊,另外 AI 也能夠幫助更好實(shí)現(xiàn)自動(dòng)化。比如,在驗(yàn)證軟件安全時(shí),都可以利用 AI 來(lái)實(shí)現(xiàn)自動(dòng)化。
安全和 AI 其實(shí)可以互相促進(jìn)。談到開(kāi)發(fā) AI 系統(tǒng)時(shí),必須要把 AI 放在攻擊者的角度來(lái)進(jìn)行考慮。歷史已經(jīng)告訴我們,攻擊者一直都會(huì)跟隨我們?nèi)麻_(kāi)發(fā)的技術(shù)的腳步,有時(shí)甚至?xí)I(lǐng)。
現(xiàn)在我們面臨的風(fēng)險(xiǎn)在 AI 領(lǐng)域會(huì)更高,因?yàn)?AI 會(huì)控制越來(lái)越多的體系和系統(tǒng)。當(dāng)我們開(kāi)發(fā)出更高的 AI能力時(shí),如果一個(gè)攻擊者濫用或者利用 AI 的話,后果會(huì)更嚴(yán)重。
當(dāng)我們開(kāi)發(fā) AI 系統(tǒng)時(shí),必須從攻擊者的角度來(lái)進(jìn)行思考。這時(shí),我們會(huì)看到有兩個(gè)不同的問(wèn)題。第一,攻擊者如何來(lái)攻擊 AI,讓系統(tǒng)做出錯(cuò)誤的決策,或者攻擊者可以根據(jù)自己的目的來(lái)設(shè)計(jì)最后的結(jié)果。所以,我們要提升學(xué)習(xí)的系統(tǒng),建筑防火墻,我們也需要有更好的安全系統(tǒng)再嵌入到深度學(xué)習(xí)的體系中。
另外,攻擊者也可以濫用 AI,利用 AI 來(lái)攻擊其他的體系。比如,找到其他系統(tǒng)中的漏洞和弱點(diǎn),這樣來(lái)開(kāi)展更具有難度的攻擊,所以我們的學(xué)習(xí)系統(tǒng)也必須有更好的安全性。
在之后的演講中,我將介紹攻擊者如何來(lái)進(jìn)行 AI 的攻擊。
雖然,深度學(xué)習(xí)系統(tǒng)已經(jīng)取得了如此巨大的進(jìn)展,但是,深度學(xué)習(xí)的系統(tǒng)也很容易被混淆。你可以看到,左邊是最初的一些圖像,它是通過(guò)我們的圖像識(shí)別系統(tǒng)進(jìn)行的歸類(lèi)識(shí)別,右邊是一個(gè)對(duì)抗的樣本,而這樣對(duì)抗的樣本是攻擊者來(lái)運(yùn)作的。這些圖像非常小,肉眼根本就看不太出來(lái)。
但是,對(duì)抗的樣本會(huì)讓我們圖像識(shí)別系統(tǒng)進(jìn)行錯(cuò)誤的識(shí)別。比如,本來(lái)不是鴕鳥(niǎo)而識(shí)別成了鴕鳥(niǎo),這是谷歌的研究者所發(fā)現(xiàn)的一個(gè)深度學(xué)習(xí)的弱點(diǎn)。
為什么這是一個(gè)非常重要的問(wèn)題?比如,我們現(xiàn)在有自動(dòng)駕駛汽車(chē),這個(gè)汽車(chē)需要根據(jù)周邊的環(huán)境做出決策。比如,它會(huì)看交通燈,來(lái)確定這到底是一個(gè)停車(chē)的標(biāo)志還是一個(gè)其他的標(biāo)志,從而對(duì)車(chē)發(fā)出指令。
對(duì)人類(lèi)的眼睛而言,這些交通燈代表著一定的意義。但是,一些故意制造出來(lái)的對(duì)抗樣本會(huì)誤導(dǎo)電腦系統(tǒng),讓系統(tǒng)錯(cuò)誤決策。這樣的攻擊不僅會(huì)在現(xiàn)實(shí)世界中發(fā)生,而且也會(huì)從不同的距離或者不同的視角影響到交通標(biāo)志的識(shí)別。
這樣的問(wèn)題會(huì)帶來(lái)非常嚴(yán)重的后果。當(dāng)我們開(kāi)發(fā)機(jī)器人或者是自動(dòng)駕駛時(shí),很容易受到攻擊。
最近,我們做了一些關(guān)于對(duì)抗樣本的研究,涉及到不同類(lèi)型的深度學(xué)習(xí)。我們得出的結(jié)論就是:對(duì)于對(duì)抗樣本的問(wèn)題,在不同類(lèi)型的深度學(xué)習(xí)系統(tǒng)中都是普遍存在的。比如,在深度模型、深度學(xué)習(xí)、圖形選擇、圖形到代碼、黑箱攻擊中,都會(huì)存在這樣的對(duì)抗樣本的問(wèn)題。
對(duì)攻擊者來(lái)說(shuō),他可能會(huì)知道學(xué)習(xí)系統(tǒng)的一些具體內(nèi)容,包括樣本和圖像。另外,他也會(huì)知道什么時(shí)候可以啟動(dòng)黑箱攻擊,攻擊者不需要知道你的模型是什么,或者你的培訓(xùn)數(shù)據(jù)是什么,就能發(fā)動(dòng)這樣的黑箱攻擊。
接下來(lái)的一個(gè)例子是我們最近開(kāi)展的一項(xiàng)工作,講到的是這個(gè)問(wèn)題如何會(huì)帶來(lái)非常嚴(yán)重的安全問(wèn)題。在這個(gè)例子當(dāng)中,我們關(guān)注的是一種叫做生成性模型的學(xué)習(xí)系統(tǒng)。這種模型包括兩個(gè)步驟,第一個(gè)是它的編碼過(guò)程,另一個(gè)是解碼過(guò)程。
在這樣的生成性模型中,輸入會(huì)進(jìn)入到一個(gè)編碼階段,然后會(huì)生成一個(gè)潛在表,然后會(huì)進(jìn)入一個(gè)解碼的過(guò)程,進(jìn)行一個(gè)重構(gòu)。為什么我們對(duì)這樣一種模型感興趣?對(duì)于生成性模型而言,有一個(gè)例子就是圖像壓縮,現(xiàn)在圖像壓縮已經(jīng)達(dá)到很高的水平。
對(duì)抗樣本如何通過(guò)這樣的圖形壓縮帶來(lái)非常嚴(yán)重的問(wèn)題?
現(xiàn)在我們使用了很多攝像頭,安全攝像頭會(huì)收集圖像,對(duì)圖像進(jìn)行壓縮,存儲(chǔ)壓縮的圖像,扔掉原來(lái)的圖像。如果攻擊者可以生成原來(lái)輸入的一個(gè)對(duì)抗樣本,比如,第7個(gè)圖像生成這樣一個(gè)對(duì)抗樣本,那么第7個(gè)圖像經(jīng)過(guò)壓縮后,這個(gè)壓縮圖像再被解壓縮時(shí),原來(lái)的圖像就是一個(gè)對(duì)抗樣本,這時(shí)對(duì)象樣本就會(huì)被解壓縮出來(lái),但是它和原來(lái)的圖像是完全不一樣的。
在這種情況下,對(duì)于攻擊者來(lái)說(shuō),他們會(huì)對(duì)這個(gè)圖像來(lái)進(jìn)行壓縮?,F(xiàn)在有了這樣一個(gè)對(duì)抗樣本,最終解壓縮的圖像可能完全不同于原來(lái)的圖像。
這樣的對(duì)抗樣本會(huì)帶來(lái)非常嚴(yán)重的問(wèn)題。
我們看看這樣的對(duì)抗樣本在生成模型中如何形成對(duì)圖像的壓縮。這是一個(gè)標(biāo)準(zhǔn)的圖像集,左下角是原來(lái)的圖像,是一個(gè)手寫(xiě)的數(shù)字,右邊是對(duì)原來(lái)圖像的重構(gòu),這個(gè)重構(gòu)的圖像看起來(lái)和原來(lái)的圖像非常像。
這是 Google 的數(shù)據(jù),攻擊者可以生成一個(gè)樣本進(jìn)行重構(gòu),重構(gòu)之后,和目標(biāo)圖像也非常類(lèi)似。這是我們的數(shù)據(jù)集,大家可以看到,對(duì)于攻擊者而言,可以創(chuàng)建非常成功的對(duì)抗樣本,再經(jīng)過(guò)解壓或者重構(gòu)之后,對(duì)于解構(gòu)出來(lái)的對(duì)抗樣本,和原來(lái)的樣本非常類(lèi)似。
在過(guò)去的幾年,我們也提出了很多防衛(wèi)措施。比如,有 100 多篇論文提出了不同類(lèi)型的防衛(wèi)措施應(yīng)對(duì)這樣些對(duì)抗樣本的問(wèn)題。但是,現(xiàn)在我們并沒(méi)有有效的防衛(wèi)措施應(yīng)對(duì)對(duì)抗樣本的攻擊,比如,那些特別強(qiáng)的攻擊者,我們無(wú)法應(yīng)對(duì)。有時(shí)即使我們想要去解構(gòu),即使我們想要完全模擬這樣的對(duì)抗樣本,也無(wú)法找到非常強(qiáng)大的防衛(wèi)措施。
攻擊者還可以對(duì)抗機(jī)器學(xué)習(xí),在培訓(xùn)時(shí)就進(jìn)行攻擊,攻擊者可以讓你的培訓(xùn)集中毒,可以讓你的學(xué)習(xí)系統(tǒng)學(xué)習(xí)一個(gè)錯(cuò)誤的模型。對(duì)抗型的機(jī)器學(xué)習(xí)對(duì)安全應(yīng)用來(lái)說(shuō)相當(dāng)關(guān)鍵。
安全應(yīng)該是 AI 領(lǐng)域非常重大的一個(gè)挑戰(zhàn)。我們也需要考慮如何能夠?yàn)閷W(xué)習(xí)系統(tǒng)建立一個(gè)更加安全的體系,我們需要從不同的層面來(lái)考慮學(xué)習(xí)系統(tǒng)的安全,包括軟件學(xué)習(xí),還有分發(fā)層。在軟件層面,我們的目標(biāo)就是為了確保不存在任何軟件的安全隱患,不讓攻擊者影響到我們的學(xué)習(xí)系統(tǒng),或者是控制學(xué)習(xí)系統(tǒng)。
更為重要的,以及非常具有挑戰(zhàn)性的是在學(xué)習(xí)層面,以及在分布層面的挑戰(zhàn)。
首先我們看一下在學(xué)習(xí)層面的安全所面臨的挑戰(zhàn)。
在學(xué)習(xí)層面加強(qiáng)安全性,首先我們需要去了解復(fù)雜類(lèi)、非符號(hào)的一些程序。現(xiàn)在我們對(duì)于符號(hào)性的程序非常熟悉,主要就是 OS 或者是文件系統(tǒng)、編輯器、網(wǎng)絡(luò)應(yīng)用或者移動(dòng)應(yīng)用等等。在這方面,我們也有數(shù)十年的經(jīng)驗(yàn),也有很多的工具分析這樣的符號(hào)性推理。比如,有解算器、SMT 以及抽象解釋這樣的方法?,F(xiàn),我們已經(jīng)進(jìn)入了一個(gè)正式的驗(yàn)證系統(tǒng)時(shí)代,都是基于數(shù)十年的經(jīng)驗(yàn)總結(jié),也是基于多個(gè)團(tuán)隊(duì)努力的結(jié)果。
對(duì)于自動(dòng)駕駛汽車(chē),我們希望確保自動(dòng)駕駛汽車(chē)不會(huì)軋到人。但是對(duì)于人的定義來(lái)說(shuō),好像現(xiàn)在我們還沒(méi)有一個(gè)具體明確的安全上的概念。對(duì)于這樣一個(gè)學(xué)習(xí)系統(tǒng)如何運(yùn)行,我們也知之甚少,對(duì)于深度學(xué)習(xí)如何使用,我們也知之甚少。如何告訴這些系統(tǒng)怎么樣行為,以及如何來(lái)解答一些問(wèn)題,都是知之甚少的。更大的問(wèn)題是,對(duì)于傳統(tǒng)的一些符號(hào)推理的技術(shù),并不適用于機(jī)器學(xué)習(xí)、深度學(xué)習(xí),現(xiàn)在我們需要努力解決這些問(wèn)題。
另外一個(gè)挑戰(zhàn)是:我們需要開(kāi)發(fā)新的網(wǎng)絡(luò)特征,才能夠?qū)崿F(xiàn)更好的泛化和安全的保障。之前我們也提到過(guò),雖然深度學(xué)習(xí)的體系已經(jīng)取得了這么大的進(jìn)展,但是遺憾的是,我們卻不能很好了解他們將會(huì)如何表現(xiàn),包括在以前沒(méi)有遇到的一些狀況下,他們將會(huì)如何反應(yīng),這就是一個(gè)泛化的問(wèn)題。
在這里我給大家一些具體的例子,是我們最近開(kāi)展的工作,可以看看我們?nèi)绾伍_(kāi)發(fā)更好的神經(jīng)網(wǎng)絡(luò)特征,才能實(shí)現(xiàn)更好的泛化和安全保障。
這樣的應(yīng)用領(lǐng)域就是神經(jīng)程序合成,我們要培訓(xùn)這些神經(jīng)的體系,包括讓它們進(jìn)行計(jì)算,幫助他們來(lái)進(jìn)行分類(lèi),我們也是從 Google,還有 Deep Mind 吸取經(jīng)驗(yàn),開(kāi)發(fā)不同的神經(jīng)網(wǎng)絡(luò)特征。
但是,遺憾的是,對(duì)所有的這些特征,有兩個(gè)重要的挑戰(zhàn):第一個(gè)是所有的以前的方法沒(méi)有實(shí)現(xiàn)很好的泛化。也就是說(shuō),當(dāng)你培訓(xùn)這個(gè)神經(jīng)系統(tǒng)時(shí),比如,做三位數(shù)的加法,它沒(méi)辦法正確做出。三位數(shù)和六位數(shù)做加法的方法都是不一樣的;第二個(gè)問(wèn)題就是當(dāng)你來(lái)測(cè)試這樣的神經(jīng)程序時(shí),他們能夠正確解決問(wèn)題。比如。它能夠做六位數(shù)的加法,但是我們不能夠保證這樣的一個(gè)神經(jīng)網(wǎng)絡(luò)當(dāng)面臨做 6+1的計(jì)算的時(shí)候,它將會(huì)如何進(jìn)行反應(yīng)。所以我們需要開(kāi)發(fā)出一個(gè)新的方法來(lái)解決剛才提到的兩個(gè)問(wèn)題。
我們的方法就是要進(jìn)行神經(jīng)項(xiàng)目架構(gòu)的泛化,所以要考慮它的架構(gòu),并且對(duì)它進(jìn)行很好的培訓(xùn)。通過(guò)采取這樣的方式,我們能夠解決兩個(gè)之前提到的問(wèn)題:第一,我們可以使用規(guī)劃和循環(huán)的方法,來(lái)實(shí)現(xiàn)既定的目標(biāo)。當(dāng)我們的神經(jīng)程序通過(guò)這樣一個(gè)認(rèn)知驗(yàn)證之后,它能夠使用遞歸循環(huán)的方式,就能夠證明這樣一個(gè)神經(jīng)程序很好的進(jìn)行泛化。也就是說(shuō),它們能夠正確的進(jìn)行運(yùn)作,這是之前的方法沒(méi)有辦法來(lái)實(shí)現(xiàn)的;第二,我們希望使用這樣遞歸循環(huán)泛化神經(jīng)時(shí),可以通過(guò)遞歸循環(huán)泛化神經(jīng)來(lái)進(jìn)行一個(gè)程序架構(gòu)的設(shè)計(jì)。
遞歸循環(huán)能夠?yàn)樯窠?jīng)程序提供保障,證明通過(guò)驗(yàn)證程序的學(xué)習(xí)遞歸泛化,測(cè)試可能的技術(shù)案例和還原的規(guī)則。
另外,當(dāng)我們?cè)陂_(kāi)發(fā)新的神經(jīng)網(wǎng)絡(luò)特征時(shí),也可以尋找新的架構(gòu)和方法,促進(jìn)強(qiáng)大的泛化和安全保證,進(jìn)行遞歸、神經(jīng)模塊和神經(jīng)架構(gòu),更容易推理、模塊和泛化。我們也可以開(kāi)展一些機(jī)器人的工作,包括我們?nèi)绾蝸?lái)開(kāi)發(fā)新的神經(jīng)網(wǎng)絡(luò)的特征,來(lái)實(shí)現(xiàn)更好的泛化,還有安全的保證。
到目前為止,我只提到了幾個(gè)例子,這些都是非常重要的挑戰(zhàn),包括在學(xué)習(xí)這個(gè)層級(jí)的學(xué)習(xí)系統(tǒng)的挑戰(zhàn)。這個(gè)名單非常長(zhǎng),我只能給大家選取其中的兩個(gè)例子。從本地的層面來(lái)講,其實(shí)會(huì)有很大的挑戰(zhàn),我們?nèi)绾蝸?lái)確保每個(gè)媒介能夠做出本地的決策,如何讓好的本地決策帶來(lái)良好的全球決策。
現(xiàn)在我們看一下攻擊者會(huì)如何來(lái)襲擊 AI,這是一個(gè)非常重要的問(wèn)題。當(dāng)我們來(lái)開(kāi)發(fā)新的 AI 能力的時(shí)候,攻擊者也可以來(lái)誤導(dǎo) AI,包括誤導(dǎo)他們?nèi)フ业狡渌到y(tǒng)當(dāng)中的漏洞,或者是開(kāi)展更加具有殺傷性的襲擊。
總的來(lái)講,我也給大家介紹了一些現(xiàn)在尚未解決的問(wèn)題,還有 AI 和安全的問(wèn)題。我想說(shuō),基于我 20 多年的研究經(jīng)驗(yàn),包括在計(jì)算機(jī)安全領(lǐng)域的經(jīng)驗(yàn),我想告訴各位,我們現(xiàn)在面臨的問(wèn)題和挑戰(zhàn)其實(shí)都是最為嚴(yán)重的一些問(wèn)題。當(dāng)我們開(kāi)發(fā) AI 體系的時(shí)候,安全就必須要放在 AI 系統(tǒng)里。
另外我也深信,安全將會(huì)成為最為應(yīng)用 AI 時(shí)的重大挑戰(zhàn)之一。因此,我們需要在最開(kāi)始就把安全納入到AI 系統(tǒng)當(dāng)中,保護(hù) AI 的安全非常重要。
應(yīng)對(duì)未來(lái)的 AI 和安全挑戰(zhàn),我們?nèi)绾胃玫乩斫獍踩暮x?AI 和學(xué)習(xí)系統(tǒng)如何建造一個(gè)更加靈活的體系進(jìn)行防衛(wèi)?如何做出正確的決策來(lái)確保安全的 AI?這些都是非常激動(dòng)人心的開(kāi)放問(wèn)題。我想這一切都至關(guān)重要,當(dāng)我們進(jìn)軍 AI 和安全領(lǐng)域時(shí),我們應(yīng)該統(tǒng)一考慮。
雷鋒網(wǎng)。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。