谷歌的核心產(chǎn)品包括搜索,應(yīng)用程序,廣告,地圖,YouTube 以及安卓。現(xiàn)任谷歌 CEO Pichai 是谷歌核心業(yè)務(wù)出身,對安卓系統(tǒng)也有特別的感情。他曾幫助智能手機平臺從搖擺不定的安卓2.3升級到更加穩(wěn)定、有用的安卓4.0。安卓明顯成熟起來。在他倡導(dǎo) AI first的戰(zhàn)略中,安卓安全系統(tǒng)也開始運用人工智能打造安全衛(wèi)士,安全團隊負責(zé)人相信,如果計算機安全的未來在于風(fēng)險管理,那么,這個未來就是機器學(xué)習(xí)。不過,這項新近展開的征程還面臨不少難題。
當(dāng) Adrian Ludwig 描述解決計算機安全問題的理想方案時,他做了一個類比。不過,不是比作鎖、防火墻或者護城河之類的。他說,應(yīng)該像信用卡公司那樣解決計算機安全問題。
他解釋道,信用卡公司并不徹底杜絕風(fēng)險。而是管理風(fēng)險,利用將市場描述為一個整體的數(shù)據(jù),針對不同個體,打造不同的風(fēng)險景觀(和不同利率)。Ludwig 相信,計算機安全也應(yīng)該以這種方式運作。「安全社區(qū)給出的好壞或黑白模型?」「除非我們接受存在灰色地帶,否則,(哪有什么白)都是黑(風(fēng)險)。」
如果計算機安全的未來在于風(fēng)險管理,就像 Ludwig 相信的那樣,那么,這個未來就是機器學(xué)習(xí)。
Ludwig 在谷歌工作,他負責(zé)安卓安全工作。但是,他和他的同事們想將安全工作引領(lǐng)到一個新的方向上。如果計算機安全的未來在于風(fēng)險管理,那么,這個未來就是機器學(xué)習(xí),它和在谷歌帝國其他領(lǐng)域大獲成功的人工智能是一類的。我們不應(yīng)該制定固定不變的、旨在阻止所有在線攻擊的數(shù)字規(guī)則。隨著互聯(lián)網(wǎng)日趨復(fù)雜——也在更多人群中普及開來——這種做法會把所有人踢出局。我們應(yīng)該打造這樣的系統(tǒng),有能力分析更大的圖景并學(xué)會在運行中識別潛在問題。
借由信用卡公司的類比,Ludwig 也將谷歌和其最大競爭對手蘋果區(qū)分開來。「我不想要這樣的解決方案:封閉一切。」Ludwig 告訴我。不用說,蘋果的安全模型也有自己的優(yōu)點。聯(lián)邦通信委員會(FCC)正在調(diào)查,填補安卓手機漏洞,為什么要花這么長的時間——原因可能在于安卓系統(tǒng)碎片化,因為谷歌和這么多不同的手機廠商合作。蘋果只擁有一個手機制造商:它本身。但 Ludwig 想說的是,這會是一個介于自由放任與閉關(guān)鎖國之間的中間地帶。而且這個地帶涉及機器學(xué)習(xí),包括一種日益重要的人工智能技術(shù),深度神經(jīng)網(wǎng)絡(luò)。
「如果你有十億臺設(shè)備,無論多么安全,有些設(shè)備總會有bug,有些 bug 可以妥協(xié),」 Ludwig 在 NSA工作了8年,在加入谷歌前還在一家安全咨詢公司Stake任職了一段時間:「為此,你需要數(shù)據(jù),而且需要分析數(shù)據(jù)。」
深度本能
他并不是唯一一個大力推行這一抱負的人。有中國谷歌之稱的百度,使用了深層神經(jīng)網(wǎng)絡(luò)來識別惡意軟件。安全創(chuàng)業(yè)公司,比如,Deep Instinct 和 Cylance 也是這么做的。就像神經(jīng)網(wǎng)絡(luò)可以識一張照片中的特定特征一樣,它也可以識別一款惡意軟件應(yīng)用程序——或者有些瑕疵的系統(tǒng)代碼,它們會讓手機有被黑之虞。
但是,革命可能不止于此。谷歌發(fā)力,仍處于早期階段。「這不是個科學(xué)實驗。而是真實存在的解決方案。不過,還不是主流解決方案,」Ludwig 說。目前,谷歌沒有那么大體量的問題去訓(xùn)練這個神經(jīng)網(wǎng)絡(luò)。「絕大多數(shù)應(yīng)用程序是安全,也是好的。而且會有少數(shù)不良玩家。」和 Ludwig 一起工作的Rich Cannings說道。「這真的很難發(fā)現(xiàn)。」諷刺的是,想要真正擁抱機器學(xué)習(xí),谷歌需要更多的安卓系統(tǒng)問題,用來訓(xùn)練或者改善神經(jīng)網(wǎng)絡(luò)。
那并不是說安卓安全記錄完美無缺。「一年前,」 Joshua Drake說,一位擁有 Zimperium 安全裝備的研究人員,最近找出了安卓系統(tǒng)中的一個明顯string bugs,「我真感覺安卓沒有往安全系統(tǒng)上投錢。」而且機器學(xué)習(xí)也不是萬能藥。沒辦法幫助谷歌將安全補丁發(fā)配到所有那些安卓手機制造商中。但是,它可以幫助他們識別安全漏洞,如果當(dāng)前的技術(shù)已臻完美。
門神
Sebastian Porst 負責(zé)的這個谷歌團隊,主要是識別任何可能出現(xiàn)在安卓手機上的惡意、脆弱的應(yīng)用程序。而且他也想從這些工作中抽身出來。最終,他想要機器來干活。他說,那就是我們的目標。
在谷歌,這態(tài)度算是非同尋常。實際上,它正是公司運作的背后哲學(xué)。 Ben Treynor Sloss 說,「我們最終成立了一個小組,由一些越來越厭倦手工作業(yè)的人組成,他們也有能力寫軟件,取代之前的手工勞動。」
在安卓安全團隊中,這一行動剛開始不久。不過,Porst和他的團隊已經(jīng)建立了一個自動化系統(tǒng)。Dubbed Bouncer,這款系統(tǒng)可以分析每一個上傳到 Google Play 的應(yīng)用程序,尋找惡意或其他問題軟件代碼,然后運行每個應(yīng)用,因此,它也可以分析軟件運行情況。這個系統(tǒng)也被綁定到谷歌網(wǎng)頁爬蟲上,自動掃描上傳到任一網(wǎng)站的安卓應(yīng)用。Porst說,「我們從每個可以找到的資源處掃描應(yīng)用程序。」如果一款不明應(yīng)用被上傳到一定數(shù)量的安卓手機上,系統(tǒng)就會找到它,分析代碼以及軟件行為。
過去,Bouncer 根據(jù)一套預(yù)先設(shè)計好的規(guī)則運行。不過現(xiàn)在,為了訓(xùn)練系統(tǒng),谷歌依賴起機器學(xué)習(xí)。在掃描所有那些應(yīng)用程序過程中,系統(tǒng)已經(jīng)搜集到了有關(guān)每個程序的海量數(shù)據(jù),也就是Porst所說的 「信號」——定義這款應(yīng)用的特征和行為。現(xiàn)在,團隊正在將這些信號輸入到神經(jīng)網(wǎng)絡(luò)中,系統(tǒng)就能學(xué)會那種特征組合暗示了惡意軟件。Porst說,「我們可以用機器學(xué)習(xí)找出那些真與潛在危害行為相關(guān)的信號,哪些信號意味著完全無害。」
結(jié)果,它還管用了。不過,效果有限。當(dāng)時,Porst 說,「安全專家不能被任何一種機器學(xué)習(xí)算法取代。」實際上,機器學(xué)習(xí)只是團隊掃描系統(tǒng)的一部分,而且,如果系統(tǒng)標記了某款應(yīng)用程序有問題,那么,人類工程師總是可以再審核一下。問題在于,數(shù)據(jù)太少。Ports 說,技術(shù)對 Play Store 之外的應(yīng)用程序的有效程度,遠超商店內(nèi)的應(yīng)用。這主要是因為,如今,商店里的應(yīng)用幾乎都是沒什么威脅的軟件。邪惡分子很清楚不要妄加嘗試。
這并不是說機器學(xué)習(xí)不會有所進步。安全創(chuàng)業(yè)公司 Deep Instinct 的首席技術(shù)官 Eli David 說,他的公司通過分析數(shù)據(jù)(不僅限于一個計算機平臺,比如安卓,而是所有平臺),已經(jīng)打造出有效模型。他說,「你的范圍必須夠大。」
真實的 ClusterFuzz
在發(fā)現(xiàn)了一個很大的移動 OS 漏洞后,Jon Larimer 得到了一份谷歌的工作。他在安卓的圖形設(shè)備驅(qū)動程序上發(fā)現(xiàn)了這個漏洞。他利用這個漏洞寫了一段檢測代碼,并通過互聯(lián)網(wǎng)獲得了一部手機的完全控制權(quán)。然后,他向 Ludwig 和安卓團隊成員演示了這一過程。
現(xiàn)在,Larimer 和他的團隊正在開發(fā)一個能夠自動識別這種漏洞的系統(tǒng)。
像 Nick Kralevich 這樣的安卓安全工程師也寫過一些旨在檢測手機操作系統(tǒng)漏洞的程序。但是,仍然經(jīng)常發(fā)現(xiàn)漏洞。因此,Larimer 和他的同事利用原本為谷歌 Chrome 瀏覽器解決安全問題的技術(shù)開發(fā)了一個模糊測試(fuzz testing)系統(tǒng),它能給軟件發(fā)送大量隨機輸入并從中發(fā)現(xiàn)漏洞。Larimer 的這個系統(tǒng)被命名為 Clusterfuzz,它能同時對多部安卓手機進行模糊測試。
在某些情況下,這個系統(tǒng)會通過數(shù)千臺服務(wù)器不停地對 1500 臺虛擬的手機進行測試。但它也會對實體的手機進行測試,因為硬件對手機性能的影響不可小覷。在谷歌總部的 43 號樓,你可以看到數(shù)百臺手機被放在許多支架上進行這種測試。「我們的團隊里人不多,」他說。「但我們的優(yōu)勢是能夠測試成千上萬個 CPU。」
現(xiàn)在,為了識別更多漏洞,谷歌向這個系統(tǒng)里加入了機器學(xué)習(xí)技術(shù)。Larimer 和他的團隊正在嘗試使用神經(jīng)網(wǎng)絡(luò)來識別 Clusterfuzz 獲得的每份文件(file)的結(jié)構(gòu)。如果系統(tǒng)認識這個結(jié)構(gòu),它就能更徹底地測試文件了。不是僅僅隨機將輸入扔給文件,它能使用那些適合它的特定組成的輸入。為了學(xué)會識別文件如何運行,Larimer 解釋說,神經(jīng)網(wǎng)絡(luò)能過幫助系統(tǒng)「盡可能多地接觸到源碼」。和 Porst 在機器學(xué)習(xí)上的工作一樣,這項計劃仍處在初期階段。但 Larimer 給出了一個承諾:我們的系統(tǒng)最終會百分之百地覆蓋每一個地方,這就是未來。
想辦法折中
如果沒有別的情況,所有這些努力顯示,安卓的安全狀況正在改變。除了邁向機器學(xué)習(xí),谷歌還發(fā)起了一個巨額懸賞計劃,這個計劃由前微軟成員 Scott Roberts 指導(dǎo)。而 Ludwig 則為解釋他的團隊成員如何解決安全問題作出很多努力。像 Joshua Drake 這樣的外部研究者曾經(jīng)質(zhì)問谷歌,在安卓誕生的前幾年是如何處理安全的。但現(xiàn)在,即使是 Drake 也會告訴你一些谷歌正在改變的跡象,特別是當(dāng)他在去年夏天爆出安卓的 Stagefright 高危漏洞后。「現(xiàn)在情況完全不同了,」他說。「不得不說谷歌已經(jīng)意識到他們還有很多需要做的。」
谷歌并不信仰蘋果的模式。但 Ludwig 和他的安卓團隊也知道舊方法不一定奏效了。他們相信理想的方法是在這兩者之間的。Drake 同意這種觀點。「兩種生態(tài)系統(tǒng)都有自己的優(yōu)點和缺點,」他說。「它沒這么簡單。」如果真是這種情況的話,機器學(xué)習(xí)就真的能在未來的手機安全上扮演一個主要角色了。前提是他們能讓這個想法變成現(xiàn)實。