不久前,我讀了諾貝爾物理學獎獲得者理察·費曼的自傳,他曾與愛因斯坦一起研究原子彈。這本書講述了一系列的奇聞軼事:費曼曾經為螞蟻造過電梯,還曾用邦高鼓為芭蕾舞劇伴奏。
其中一章中寫到,他花了一年半時間在洛斯阿拉莫斯破解保險箱。當他發現一個他無法破解的保險箱時會猜測密碼組合,並能在第二次嘗試時正確無誤。最後,他遇到了一個保險箱,小詭計不頂用了。於是他請來了專業的鎖匠,鎖匠在鑽鎖之前鎖匠就破解了密碼。
費曼被迷住了,問他是怎麼做到的,結果發現鎖匠很驚訝:「你是費曼!偉大的保險箱破解者!我還想從你那兒學著怎麼撬開保險箱呢。」
費曼很困惑,「但你打開了!你一定知道怎麼破解保險箱。」鎖匠承認他沒有什麼特別的能力,「我知道鎖具的出廠設定組合是25–0–25或50–25–50,所以我想——誰知道呢,也許那傢伙懶得換密碼,所以第二次就成功了。」
當我上周讀到一篇關於Twitter黑客的文章時,我又想到了這個故事。那個黑客黑了很多知名人士的帳戶,並發推承諾將所有收到的比特幣翻倍。
每當我們讀到有關黑客攻擊的文章時就會想到電腦程式員,他們通過編寫巧妙的代碼來訪問系統。影視劇中的黑客就像是是巫師,他們穿著衛衣坐在電腦前,輕敲幾下按鍵,然後得意洋洋地宣布「我成功了!」
不過,雖然事實上大多數非法入侵都很巧妙,但相對直接。比起巫師,黑客更像舞臺魔術師,他們的方法是使用一系列鏡子和磁鐵,如果知道了他們的做法之後你可能會失望。就像《綠野仙蹤》,窗簾後面沒有任何奇幻的魔法。
當然,這裡面包含了很多好想法。最難的不是執行力,而是一開始就想到這個點子。黑客世界總有一些奇怪的合成詞,比如phishing(網絡釣魚)、smishing(簡訊詐騙)、Ddosing(洪水攻擊),還有一些晦澀難懂的術語,比如SQL注入、XSS腳本和遠程代碼執行。但複雜的技術開發實際上相當罕見。如果有人留下了默認的管理員密碼,為什麼還要費心去做這些工作呢?
目前為止最常見的黑客攻擊是「網絡釣魚」。他們想要獲取某人的Twitter密碼,於是製作了一個Twitter登錄頁面,看上去和真實的完全一樣,並將其放在自己的網站上。然後引誘用戶去訪問那個網站,可能是通過向他們發送一封假裝來自Twitter的電子郵件,並附上他們偽造登錄頁面的連結。
當用戶輸入用戶名和密碼時,假頁面會保存它們,這樣黑客就可以知道密碼是什麼了。就是這樣。黑客不需要任何高級編碼就可以進入Twitter,他們只需輸入密碼就行。
我喜歡閱讀有關黑客的文章,就像我喜歡了解魔術是如何實現的一樣。任何系統中最大安全隱患就是人類。幾年前,在亞馬遜更新流程之前的一次網絡入侵中,黑客通過打電話給亞馬遜服務臺就進入了某人的帳戶,他們甚至連電腦都沒碰。
「首先你打電話給亞馬遜,告訴他們你是帳戶持有人,並想在帳戶上增加一個信用卡號。你只需要帳戶上的名稱、關聯的電子郵件地址和帳單地址。然後亞馬遜就允許你輸入一張新的信用卡。」
「接下來打電話給亞馬遜,告訴他你無法訪問帳戶。在提供姓名、帳單地址和前一次電話中的新信用卡號碼後,Amazon將允許在帳戶中添加新的電子郵件地址。之後你就可以進入亞馬遜網站,將電子郵件密碼重置。」
更糟糕的是,既然你能訪問某人的亞馬遜帳戶,你就可以看到他們實際信用卡號的最後四位數字,根據《連線》雜誌的說法,「訪問某人蘋果ID所需的全部信息」,除了他們的姓名和地址之外,就是「信用卡的最後四位數字」。通過訪問一個伺服器,拿到了另一個伺服器的密匙,且兩個伺服器並不相關。
Twitter攻擊的全部細節仍有待披露,但據我們目前所知,幕後黑手柯克獲得了Twitter內部管理面板的權限,並任意更改了電子郵件和密碼。
但是他是怎麼拿到Twitter管理面板的權限的呢?據《紐約時報》報導,他「找到了一條進入Twitter內部Slack信息通道的途徑,能看到發布在那裡的信息,以及可以訪問公司的伺服器。」
這是一種高科技版本的入侵,看到安全密碼寫在白板上。就像上面亞馬遜和蘋果的黑客攻擊一樣,訪問一個伺服器就可以訪問另一個安全性更高的伺服器,我們稱之為「升級入侵」。
為了訪問歐巴馬的Twitter帳戶,攻擊者從Twitter的Slack帳戶開始。奇怪的是,一家無關的公司意外地、不知不覺地掌握了這些密匙。
我們還不知道柯克是如何進入Twitter的Slack帳戶的。但我們知道過去人們是如何進入Slack帳戶的:搜索GitHub。在編寫軟體時,開發人員有時會與其他產品集成。為此,他們要使用一個API密鑰,它本質上是一個特殊的計算機密碼,允許開發人員編寫的代碼與其他服務(比如Slack)一起工作。
有時,開發人員會意外地將這些密鑰保存到他們的公共原始碼存儲庫中。如果有人知道他們在找什麼,那麼他們就可以在GitHub中搜索並在那裡找到密鑰。即使現在,GitHub中也有成千上萬可見的密匙。
這或許不是柯克訪問Twitter Slack的方式,還有很多其他的方法,也許他釣魚了一個Twitter員工。Twitter在一份聲明中說,他們發現了「一場有組織的社會工程攻擊,目標是我們的一些員工」。他們在博客上補充道,「攻擊者成功地操縱了一小部分員工,並利用了他們的資信。」
還有其他一些巧妙的黑客攻擊,比如這個利用服務臺發送了電子郵件。但事情可能沒有這麼複雜,有人認為他「只是賄賂了一名推特員工」,讓他們可以訪問Slack。
我的朋友在一家大公司從事信息安全工作,他給我講了一個故事,有一次黑客猜中了一位知名員工的密碼,是密碼1。黑客行為被發現後,安全團隊就將該帳戶上鎖,並聯繫此人更改密碼。但下周他的帳戶又被黑客入侵了。
「他們這次是怎麼破解的?」我問,他把密碼改成了密碼2。
儘管我們擁有各種聰明的安全措施——龐大複雜的保險箱、軟體庫和漏洞檢查,但每個系統中最薄弱的部分仍然是人類自己。