2015/3/8

駭客人生 - Kevin Mitnick, William L.Simon

駭客人生是 Kevin Mitnick 的駭客自傳,他是史上第一位受到美國聯邦調查局(FBI)通緝的大師級駭客,更是將社交工程(Social Engineering)技倆發揮到極致之人。曾入侵昇陽、威網(Novell)、諾基亞、摩托羅拉等跨國公司系統,造成數十億美元的損失。

Kevin Mitnick 追求的,是駭客行為後,帶來的成就感

雖說是數十億元的損失,但實際上他本人並不認為是如此,他認為都是FBI,在追捕他入獄之後,說服這些受害的公司把受害金額拉高而造成的。

雖然他有強烈的駭客欲望,著迷於一些大型公司內部的專案技術,例如諾基亞、摩托羅拉、昇陽以及 NEC 等公司,目的是取得這些公司的作業系統和手機的產品程式碼,找出和突破其漏洞,但實際上他從來沒有因為這些駭客行為,而去販售並取得大筆的獲利。

故事的內容從 Kevin Mitnick 小時候開始講起,他著迷於撥打免費的電話,他運用社交工程的方法取得內部的資訊,不需要花錢就可以打電話,後來漸漸地,他需要更多資訊,進入電話公司的交換機,然後進入手機的時代,他需要手機的原始碼,修改手機 ESN,然後變身為其他身份的手機撥打電話。

社交工程可以幫助他取得內部的資料,從撥接的號碼,擁有特殊權限的單位,一些關鍵的人名等等,有時候,在遇到無法直接取得的資訊時,還能夠透過社交工程,讓一些人直接把資料以傳真或是傳送檔案的方式把資料自動交給他。

米特尼克在2000年獲得假釋機會,但條件是三年內不得接觸任何網路設備,且七年內不得對外談論駭客技術。但他發現他有另一種方式,可以合法從事駭客行為,又可以賺錢,他提供駭客的服務,檢驗公司的資訊安全的等級,這也是他現在維生的方式。

Hacker/Cracker/Hacktivist White/Black/Grey Hat

原本的 Hacker 這個稱呼,到現在已經發展出其他的稱號,這篇文章: 認識駭客(Hacker),Cracker(破壞者),激進駭客(Hacktivist)網路犯罪份子(Cybercriminal),白帽(White Hat),黑帽(Black Hat),灰帽(Grey Hat) 有提供這幾種稱號的用法與解釋。

雖然稱號不大相同,但實際上,這些人的行為都是一樣的,利用管理者或使用者的疏忽,加上資訊系統的漏洞,取得一些特殊的權限,或是機密的資料。最大的差異應該就是取得資料後,這些天才們要怎麼使用資料,非請而來的攻擊行為,販售機密的資料,都會形成一種網路的犯罪行為。

是 駭客 還是 工程師

駭客其實也是個資訊工程師,在 EE人生:工程師可能成為駭客嗎? 這篇文章中,討論到工程師與駭客的差異。

在資訊安全的領域中,要知道怎麼防護系統之前,首先要先知道怎麼破壞它,換句話說,要知道怎麼防堵駭客的攻擊,首先要成為一個真正的駭客。

其實 Kevin Mitnick 的經驗也同樣驗證了這個想法,他被 FBI 追捕成功,也是因為一個駭客下村努的報復與協助。

一般資訊工程師,追求的是要如何成就一個完美的資訊系統,要以最精簡的方式,提供服務,而駭客的本質,就在破壞,突破現有系統設定的限制。

所以我們會常常聽到一種說法,一個成功的創業家,其實就是在以他自己的駭客方式,進行一種產業的革命,當他成功的時候,其實就是改變了這個世界的時候。

駭客 是天生的測試員

一般在撰寫程式的時候,總是會假設輸入的資料的內容,不會多做懷疑,但其實這也是發生資訊系統漏洞的時候。

一個稱職的測試工程師,除了不需要運用社交工程的部份以外,他跟駭客一樣,必須要想方設法破壞這個系統,找出系統的漏洞。

開發者與測試員其實有點像是光與影的兩面,也只有光與影互相完美地搭配,同時存在的時候,我們才能看到一個美侖美奐的美景。

面對系統開發,在最完美的組合下,我們可以試著在光明面進行系統開發,然後再轉向黑暗面補強系統,這樣才能建構出一個兼顧的資訊系統。但實際上,要能做到這樣的成果,我認為有幾項原則:

  1. 熟悉你使用的程式語言
  2. 熟悉你使用的函式庫或套件
  3. 在程式的界面上,不管是使用者界面或是程式與程式的界面上,要注意輸入與輸出資料的格式,並在程式中,檢查輸入資料的格式
  4. 寧願多寫檢查與保護資料格式的程式,也不能偷懶認為輸入的資料,一定會跟假設的一樣

References

駭客人生

Kevin Mitnick 的駭客人生

駭客人生,出獄三年內不能碰網路!