但是,你以為只有好人能用它嗎?Too young too simple!
接下來,我將揭秘AI技術(shù)黑暗的一面——犯罪份子和人工智能的孽緣。
當(dāng)計算科學(xué)發(fā)展的不夠完善,還沒能解決啟發(fā)式問題的時候,很多安全問題都是利用規(guī)則來解決的,這些規(guī)則都是“死”的。
那時候沒人覺得計算機能夠破解密碼、讀出來驗證碼內(nèi)容或者掌握馬路交通的規(guī)律。但是現(xiàn)在,人工智能發(fā)展極快,老掉牙的基于規(guī)則的安全保障系統(tǒng)輕而易舉的就被AI秒成渣。
驗證碼和AI的不解情緣
當(dāng)我們上網(wǎng)的時候,最煩的就是驗證碼,它老是來讓你填。這是計算機在確定你卻是是個“大活人”,而不是一個程序在惡意攻擊訪問它。
這樣做是因為咱們?nèi)祟愑脩敉ㄟ^鼠標(biāo)鍵盤訪問某個網(wǎng)站或資源的這個操作,計算機都能用一段程序來同樣做到。
比如說,當(dāng)你連續(xù)三次在登陸Facebook的時候輸錯密碼,網(wǎng)站肯定會跳出來一個驗證碼來確定你是個活人而不是惡意暴力破解密碼的程序(當(dāng)然了,我會首先想到梯子被踹了)。Facebook還有很多公司的服務(wù)器都是這種安全措施,而這種安全措施都是用驗證碼的,比如常見的驗證碼長成這樣:
多年以來,驗證碼都能有效的區(qū)分惡意攻擊代碼還有人類用戶。但是現(xiàn)在聰明AI時代到來了,驗證碼在它面前仿佛就是送分題。
CNN(卷積神經(jīng)網(wǎng)絡(luò))就是一個很簡單的技術(shù)來破解驗證碼,只要你能給他大量的驗證碼學(xué)習(xí)數(shù)據(jù)集。每張驗證碼都有一個特定的目標(biāo),識別文字或者識別物體之類的。
但是,這些問題在CNN面前都將形同虛設(shè)。上述說的只是一個簡單的栗子,沒太多的技術(shù)術(shù)語,只要知道簡單的神經(jīng)網(wǎng)絡(luò)的原理就能看懂。
既然驗證碼的保護都不起作用了,暴力破解的威脅就更可怕了。你也許會說,我看到過更難的那種驗證碼,就是從一堆圖片里找出個公交車或者找出路牌兒之類的那種(你肯定沒少上Youtube!) 。但其實,它們對于AI來說也不難,你肯定聽說過谷歌大法的目標(biāo)檢測有多偉大,雖然谷歌僅僅把它作為搜索引擎的一個基礎(chǔ)功能來用。
GAN和密碼的那些事
注:GAN = Generative Adversarial Networks,讀音:干!翻譯是對抗生成網(wǎng)絡(luò)。
咱們的密碼一般不會設(shè)的特別奇怪,長這樣的畢竟是少類: 5f2#V0”P?oz3(幾乎就是異類了)。
差不多咱們的密碼都長成這樣:kronebourg1664,名字加數(shù)字大小寫什么好記還好輸入。
當(dāng)然了,也有少部分不怕死的這么設(shè)密碼:password(肯定老被盜)。
對于猜到第一種密碼,我天,太難了,不論是對人腦來說還是對一塊GTX 1080 GPU來說都太難猜中了(GTX 1080是一塊英偉達家的GPU,不只是能用來玩游戲,現(xiàn)在更多人用來跑深度學(xué)習(xí)工程)。
但是其他的密碼嘛,相對來說就容易一些了。所以我們怎么猜這些密碼呢?最簡單的方法就是翻一本厚厚的字典,然后將每個單詞都當(dāng)成密碼去試。這種情況下如果你也就能猜中用“password”當(dāng)密碼的童鞋了。
什么?你真的拿“password”當(dāng)密碼?哥們兒,英語不錯呀,你怎么不試試拼音“mima”當(dāng)密碼?趕緊換一個靠譜的吧……
現(xiàn)在,來點高科技的,用AI來猜你的密碼。你以為AI還會翻字典?當(dāng)然不是,神經(jīng)網(wǎng)絡(luò)會自己產(chǎn)生一大堆密碼候選項。我們就用這堆候選來攻破你的密碼。很玄幻?讀一讀PassGAN這篇文章吧,下面這個圖講了這堆候選項是怎么產(chǎn)生的。
就算你對神經(jīng)網(wǎng)絡(luò)很熟,這篇論文可能看起來也不是那么輕松。 這不是簡單的通過輸入來預(yù)測結(jié)果,它是先從數(shù)據(jù)里面學(xué)習(xí)數(shù)據(jù)的特點,然后讓生成器生成一些具有類似特點的樣本出來的特殊網(wǎng)絡(luò)結(jié)構(gòu)。
專業(yè)上叫Generative Adversarial Network(對抗生成網(wǎng)絡(luò),一般簡寫成GAN,提出GAN的就是那個寫深度學(xué)習(xí)花書的大神古德菲洛)。GAN里面包括了兩個神經(jīng)網(wǎng)絡(luò),一個生成器和一個檢查器。
檢查器用于檢驗輸入的數(shù)據(jù)是否合理,生成器用于來回折騰演化自己讓生成的數(shù)據(jù)能在檢查器眼皮子底下蒙混過關(guān)。
譯者注:這里有個鏈接,我覺得可以不加,因為就是在一個門戶里搜了一下神經(jīng)網(wǎng)絡(luò)關(guān)鍵詞的結(jié)果,毫無營養(yǎng)……然后那個啥,GAN的解釋我沒用原文,因為太枯燥了怕別人看不懂,我就結(jié)合自己的認識寫了一個,如果翻譯的不好的話再聯(lián)系我翻譯這句。
為了使用PassGAN,我們要有一個不知道哪兒來的真實的密碼數(shù)據(jù)集(也許是某東某訊某度泄漏的?)。從這個數(shù)據(jù)集里起碼能知道人們真正使用的數(shù)據(jù)集大概長成什么樣。一般就是有一些大寫字母,一些日期,一些隨機的數(shù)字,一些名字之類的。
然后呢,我們要用到一個噪聲產(chǎn)生器,就是生成一些隨機數(shù)用的。噪聲產(chǎn)生器和密碼數(shù)據(jù)集就是咱們神經(jīng)網(wǎng)絡(luò)模型的輸入了。
網(wǎng)絡(luò)的輸出就是二分類值,也就是說在有監(jiān)督訓(xùn)練的時候,網(wǎng)絡(luò)模型會被告訴說這個密碼是真實的還是假的。
在每次神經(jīng)網(wǎng)絡(luò)前向傳遞的時候,網(wǎng)絡(luò)的輸出都會跟真實的標(biāo)簽值進行比較,然后帶著這個誤差值反向傳遞回去迭代修改網(wǎng)絡(luò)的權(quán)重。生成器也會跟著模型的訓(xùn)練而成長,因為隨著網(wǎng)絡(luò)模型變化,生成器根據(jù)噪聲所產(chǎn)生的結(jié)果也越接近真實的密碼。
當(dāng)生成器訓(xùn)練完畢之后,之后我們再輸入一個噪聲,網(wǎng)絡(luò)就能輸出一個特別真實的密碼。所以我們只要讓PassGAN運行幾個小時,就能得到一堆密碼候選項了。
AI和網(wǎng)絡(luò)釣魚的那些事兒
釣魚是很常見的黑客技術(shù)。你肯定收到過一些看著不太對勁的郵件,自稱是銀行、移動聯(lián)通或者微博的人。然后郵件里面還給你一個鏈接,跳到一個能讓你中毒的網(wǎng)頁。
想做這樣一個釣魚郵件,你只要照著Facebook或者什么其他大公司的郵件樣式外觀和語言仿造一封即可。然后又見里面說你的軟件得更新,或者點開看看這里有什么驚喜,或者讓你填寫登陸信息等。
簡單粗暴還老套。不論你寫了什么,結(jié)果都會被發(fā)送到不法分子的服務(wù)器上。先不說這個,AI是怎么跟釣魚勾搭上的?
機器學(xué)習(xí)里面有個利器叫爬蟲,它能通過爬取目標(biāo)網(wǎng)站的各種信息來改進釣魚技術(shù)。通過爬蟲保存下來的數(shù)據(jù),黑客們能夠?qū)W習(xí)到這些網(wǎng)站的外觀,還有文字書寫的風(fēng)格,然后據(jù)此產(chǎn)出大量的假郵件然后大規(guī)模發(fā)送。但是有郵件不知道往哪兒發(fā)也是個問題。所以聰明的黑客還能通過前面咱們說的GAN技術(shù)來猜測郵件地址,這就增加了讓人上當(dāng)?shù)臋C會。
有的童鞋可能說了,現(xiàn)在我們用的郵箱里面都有反釣魚的安全措施~安全的很。但悲劇的是,現(xiàn)在的機器學(xué)習(xí)已經(jīng)知道怎么產(chǎn)生能夠通過釣魚檢查的釣魚郵件了!
訓(xùn)練集是這樣嬸兒的,一大堆郵件,一些郵件是被反釣魚攔住的,還有一些是能成功發(fā)送的。然后我們就能據(jù)此訓(xùn)練處一個神經(jīng)網(wǎng)絡(luò)模型,來知道釣魚算法是怎么檢測的。在不久的將來,釣魚郵件也許都是這種反釣魚巨網(wǎng)下的“漏網(wǎng)之魚”。
咳咳,總結(jié)一下
好消息是,目前只有三種被AI攻克的安全領(lǐng)域。壞消息是,還有巨多的場景正面臨著AI黑客的威脅,比如詐騙廣告等。但是我相信AI在合法的領(lǐng)域中應(yīng)用所帶來的好處要遠大于不法之徒將它們用于作惡上的壞處。
其實,挺諷刺的,現(xiàn)在有很多將人工智能用于偵破犯罪活動的案例,從街頭的巡查到網(wǎng)絡(luò)詐騙都有所設(shè)計。最后總結(jié)一下:
1.如果你覺的自己的密碼能讓GAN給猜到的話,趕緊換個密碼吧,比如wenzhaizhenshuai就很不錯(因為沒人覺得文摘菌帥,所以GAN學(xué)不到這個信息)。
2.別點開不知道誰發(fā)給你的鏈接,除非你十分確定發(fā)郵件的人沒問題;
3.千萬別用AI做惡呀!