網站安全🔒 初學者入門:如何成為一名駭客

Jayden Lin
程式猿吃香蕉
Published in
Dec 3, 2018

筆者曾任職 Yahoo,現在區塊鏈產業打滾,《經典駭客攻擊教程:給每個人的網站安全入門》線上課程講師 ,粉絲團《程式猿吃香蕉🍌

(image from istockphoto.com)

相信很多人在對於駭客的印象,大多是來自電影,駭客們穿著帥帥的帽 T ,坐在電腦前,華麗地輸入指令,兵不血刃地完成許多重要任務,例如:阻止飛彈發射、取得銀行帳戶或是擊潰歹徒的攻擊裝置等等。「駭客」的形象,滿足了許多人對於擔任匿名英雄的憧憬。在現實生活中,若是能「正當地」使用這些些技能,不僅能夠擔任組織裡的英雄,甚至能夠提升到國家層級,擔任保家衛國的任務。舉例來說:韓國政府便以預算無上限的方式,從 2012 年起招募對資安有興趣的優秀人才,提升國家對抗駭客攻擊的能力。

▍我該怎麼入門呢 ?

由於資訊安全的領域非常廣,對於初學者來說,相較之下較容易入門的領域,即是「網站安全」(Web Security) 的領域。現代人每天都會上網,上網方式也愈來愈多元,因此對於網站的攻擊與防禦,一直以來都是熱門的研究課題,此外,在萬物聯網的時代,什麼東西都要連上「雲端」,各種應用程式也透過網路來彼此互動,只要這個趨勢持續下去,「網站安全」(Web Security) 相關的知識也將愈來愈重要,非常值得初學者投入了解。

▍網站安全的基礎知識

做任何學問,基本功都是非常重要的。 舉例來說,我們必須先學會加減乘除,才能夠計算三角函數、微積分等等進階的學科。基礎扎得穩,面對千變萬化的駭客攻擊手法,便能不再害怕。

因此,在學習駭客的攻擊與防禦手法之前,你需要了解什麼是「伺服器Server」、「客戶端 Client」、「同源政策 Same Origin Policy」以及「 Cookie 」等等專有名詞。

可以參考我先前的文章:

除了學習這些名詞的含義之外,了解一些常見的「安全原則」也是非常重要的,這些處理原則是前人留下來的寶貴智慧,正確的「原則」能讓你做正確的決定。雖然一開始把玩一些駭客工具會很有樂趣,例如:上網搜尋 XXX exploit ( XXX 可自行替換成你想搜的內容),很容易找到一些別人寫好的攻擊程式,但是對初學者來說,重要的還是要把基本功紮穩。

▍駭客攻擊與防禦手法

在談論攻擊與防禦手法之前,先介紹一個非常重要的組織 Open Web Application Security Project,簡稱 OWASP,是一個開放社群的非營利組織,致力於改善網站應用程式的安全性,每年會定期公佈前十大網站安全風險(可參考:2017年公佈的十大網站安全威脅)。該組織也有提供許多文章,普及網站安全的知識。

從 OWASP 公布的前十大網站安全風險,初學者們可以一窺目前駭客最常用的攻擊手法,進而去學習並且了解這些攻擊手法與防禦方式。

以下舉出一些常見的攻擊手法,例如:

若是對這些議題有興趣的話,也可以參考我先前的文章:

唯有充分的了解攻擊,才能夠做相對應的防禦,先了解「攻擊」對每個人來說,相較之下都是比較有趣的,可以從中得到許多樂趣,增進學習的動力。但是防禦手法也是相當重要的,所謂駭客攻防戰,「攻」與「防」的學習會是相輔相成的。

▍組合技!學習進階議題

在了解各種攻擊手法與防禦手段之後,接下來,便會需要了解一些更進階的議題的討論,例如:「認證管理 (Authentication) 」以及「授權管理 (Authorization) 」

大部分的網站都會有會員登入,但你知道要怎麼做才是對的嗎?密碼要怎麼存才安全?你聽過水平權限管理以及垂直權限管理嗎?你知道要怎麼設計權限管理才是對的嗎?

以下列出幾個常見的議題:

  • 密碼的保存
  • Session 的管理與常見的攻擊方式
  • Cookie 的管理與常見的攻擊方式
  • 權限管理 (Access Control) 的設計

如果說「攻擊與防禦」手法是「點」的學習,那麼這些進階議題便是利用這些「點」的學習構成的「面」的應用。這些進階議題,都需要前面提到的那些基本功,才能夠見招拆招。

有關於組合技的實際案例分享,也可以參考以下的文章:

以上,便是我對於駭客入門的初學者的一些建議方向,還希望對你們有幫助!這邊也要特別提醒大家,駭客的技能是用來保衛自己,並不是要拿來傷人或是做一些觸犯法律的事情,希望大家成為駭客後,都能將這些技能應用在正確的領域上,Happy Hacking!

筆者目前任職於 Yahoo ,粉絲團:《程式猿吃香蕉🍌 | 線上課程:《經典駭客攻擊教程:給每個人的網站安全入門》

--

--

Jayden Lin
程式猿吃香蕉

曾在 Yahoo 擔任 Lead Engineer,負責廣告系統,帶團隊做跨國開發,現任職區塊鏈產業。也是《程式猿吃香蕉》團隊創辦人,喜歡將實用的軟體知識以簡單生動的方式講給大家聽 😄😄😄