每日最新頭條.有趣資訊

人工智能黑暗面:驗證碼、密碼、網絡釣魚

大數據文摘出品

編譯:DonFJ、蔣寶尚

機器學習是現在大家都打了雞血想用或者在用的技術。

但是,你以為只有好人能用它嗎?Too young too simple!

接下來,我將揭秘AI技術黑暗的一面——犯罪份子和人工智能的孽緣。

當計算科學發展的不夠完善,還沒能解決啟發式問題的時候,很多安全問題都是利用規則來解決的,這些規則都是“死”的。

那時候沒人覺得電腦能夠破解密碼、讀出來驗證碼內容或者掌握馬路交通的規律。但是現在,人工智能發展極快,老掉牙的基於規則的安全保障系統輕而易舉的就被AI秒成渣。

驗證碼和AI的不解情緣

當我們上網的時候,最煩的就是驗證碼,它老是來讓你填。這是電腦在確定你卻是是個“大活人”,而不是一個程式在惡意攻擊訪問它。

這樣做是因為咱們人類用戶通過滑鼠鍵盤訪問某個網站或資源的這個操作,電腦都能用一段程式來同樣做到。

比如說,當你連續三次在登陸Facebook的時候輸錯密碼,網站肯定會跳出來一個驗證碼來確定你是個活人而不是惡意暴力破解密碼的程式(當然了,我會首先想到梯子被踹了)。Facebook還有很多公司的伺服器都是這種安全措施,而這種安全措施都是用驗證碼的,比如常見的驗證碼長成這樣:

多年以來,驗證碼都能有效的區分惡意攻擊代碼還有人類用戶。但是現在聰明AI時代到來了,驗證碼在它面前仿佛就是送分題。

CNN(卷積神經網絡)就是一個很簡單的技術來破解驗證碼,只要你能給他大量的驗證碼學習數據集。每張驗證碼都有一個特定的目標,識別文字或者識別物體之類的。

但是,這些問題在CNN面前都將形同虛設。上述說的只是一個簡單的栗子,沒太多的技術術語,只要知道簡單的神經網絡的原理就能看懂。

既然驗證碼的保護都不起作用了,暴力破解的威脅就更可怕了。你也許會說,我看到過更難的那種驗證碼,就是從一堆圖片裡找出個公車或者找出路牌兒之類的那種(你肯定沒少上Youtube!) 。但其實,它們對於AI來說也不難,你肯定聽說過谷歌大法的目標檢測有多偉大,雖然谷歌僅僅把它作為搜索引擎的一個基礎功能來用。

GAN和密碼的那些事

注:GAN = Generative Adversarial Networks,讀音:乾!翻譯是對抗生成網絡。

咱們的密碼一般不會設的特別奇怪,長這樣的畢竟是少類: 5f2#V0”P?oz3(幾乎就是異類了)。

差不多咱們的密碼都長成這樣:kronebourg1664,名字加數字大小寫什麽好記還好輸入。

當然了,也有少部分不怕死的這麽設密碼:password(肯定老被盜)。

對於猜到第一種密碼,我天,太難了,不論是對人腦來說還是對一塊GTX 1080 GPU來說都太難猜中了(GTX 1080是一塊英偉達家的GPU,不只是能用來玩遊戲,現在更多人用來跑深度學習工程)。

但是其他的密碼嘛,相對來說就容易一些了。所以我們怎麽猜這些密碼呢?最簡單的方法就是翻一本厚厚的字典,然後將每個單詞都當成密碼去試。這種情況下如果你也就能猜中用“password”當密碼的童鞋了。

什麽?你真的拿“password”當密碼?哥們兒,英語不錯呀,你怎麽不試試拚音“mima”當密碼?趕緊換一個靠譜的吧……

現在,來點高科技的,用AI來猜你的密碼。你以為AI還會翻字典?當然不是,神經網絡會自己產生一大堆密碼候選項。我們就用這堆候選來攻破你的密碼。很玄幻?讀一讀PassGAN這篇文章吧,下面這個圖講了這堆候選項是怎麽產生的。

PassGAN:A Deep Learning Approach for Password Guessing的arxiv鏈接是:

https://arxiv.org/abs/1709.00440

就算你對神經網絡很熟,這篇論文可能看起來也不是那麽輕鬆。 這不是簡單的通過輸入來預測結果,它是先從數據裡面學習數據的特點,然後讓生成器生成一些具有類似特點的樣本出來的特殊網絡結構。

專業上叫Generative Adversarial Network(對抗生成網絡,一般簡寫成GAN,提出GAN的就是那個寫深度學習花書的大神古德菲洛)。GAN裡麵包括了兩個神經網絡,一個生成器和一個檢查器。

檢查器用於檢驗輸入的數據是否合理,生成器用於來回折騰演化自己讓生成的數據能在檢查器眼皮子底下蒙混過關。

譯者注:這裡有個鏈接,我覺得可以不加,因為就是在一個門戶裡搜了一下神經網絡關鍵詞的結果,毫無營養……然後那個啥,GAN的解釋我沒用原文,因為太枯燥了怕別人看不懂,我就結合自己的認識寫了一個,如果翻譯的不好的話再聯繫我翻譯這句。

為了使用PassGAN,我們要有一個不知道哪兒來的真實的密碼數據集(也許是某東某訊某度泄漏的?)。從這個數據集裡起碼能知道人們真正使用的數據集大概長成什麽樣。一般就是有一些大寫字母,一些日期,一些隨機的數字,一些名字之類的。

然後呢,我們要用到一個噪聲產生器,就是生成一些隨機數用的。噪聲產生器和密碼數據集就是咱們神經網絡模型的輸入了。

網絡的輸出就是二分類值,也就是說在有監督訓練的時候,網絡模型會被告訴說這個密碼是真實的還是假的。

在每次神經網絡前向傳遞的時候,網絡的輸出都會跟真實的標簽值進行比較,然後帶著這個誤差值反向傳遞回去迭代修改網絡的權重。生成器也會跟著模型的訓練而成長,因為隨著網絡模型變化,生成器根據噪聲所產生的結果也越接近真實的密碼。

當生成器訓練完畢之後,之後我們再輸入一個噪聲,網絡就能輸出一個特別真實的密碼。所以我們只要讓PassGAN運行幾個小時,就能得到一堆密碼候選項了。

AI和網絡釣魚的那些事兒

釣魚是很常見的黑客技術。你肯定收到過一些看著不太對勁的郵件,自稱是銀行、移動聯通或者微博的人。然後郵件裡面還給你一個鏈接,跳到一個能讓你中毒的網頁。

想做這樣一個釣魚郵件,你只要照著Facebook或者什麽其他大公司的郵件樣式外觀和語言仿造一封即可。然後又見裡面說你的軟體得更新,或者點開看看這裡有什麽驚喜,或者讓你填寫登陸資訊等。

簡單粗暴還老套。不論你寫了什麽,結果都會被發送到不法分子的伺服器上。先不說這個,AI是怎麽跟釣魚勾搭上的?

機器學習裡面有個利器叫爬蟲,它能通過爬取目標網站的各種資訊來改進釣魚技術。通過爬蟲保存下來的數據,黑客們能夠學習到這些網站的外觀,還有文字書寫的風格,然後據此產出大量的假郵件然後大規模發送。但是有郵件不知道往哪兒發也是個問題。所以聰明的黑客還能通過前面咱們說的GAN技術來猜測郵件地址,這就增加了讓人上當的機會。

有的童鞋可能說了,現在我們用的郵箱裡面都有反釣魚的安全措施~安全的很。但悲劇的是,現在的機器學習已經知道怎麽產生能夠通過釣魚檢查的釣魚郵件了!

訓練集是這樣嬸兒的,一大堆郵件,一些郵件是被反釣魚攔住的,還有一些是能成功發送的。然後我們就能據此訓練處一個神經網絡模型,來知道釣魚算法是怎麽檢測的。在不久的將來,釣魚郵件也許都是這種反釣魚巨網下的“漏網之魚”。

https://albahnsen.com/wp-content/uploads/2018/05/deepphish-simulating-malicious-ai_submitted.pdf

咳咳,總結一下

好消息是,目前只有三種被AI攻克的安全領域。壞消息是,還有巨多的場景正面臨著AI黑客的威脅,比如詐騙廣告等。但是我相信AI在合法的領域中應用所帶來的好處要遠大於不法之徒將它們用於作惡上的壞處。

其實,挺諷刺的,現在有很多將人工智能用於偵破犯罪活動的案例,從街頭的巡查到網絡詐騙都有所設計。最後總結一下:

1.如果你覺的自己的密碼能讓GAN給猜到的話,趕緊換個密碼吧,比如wenzhaizhenshuai就很不錯(因為沒人覺得文摘菌帥,所以GAN學不到這個資訊)。

2.別點開不知道誰發給你的鏈接,除非你十分確定發郵件的人沒問題;

3.千萬別用AI做惡呀!

相關報導:

https://medium.com/predict/a-technical-look-at-how-criminals-use-ai-4080f2e325a9

【今日機器學習概念】

Have a Great Definition

志願者介紹

獲得更多的PTT最新消息
按讚加入粉絲團