資安系列第一章 資訊安全為何

用四個章節的篇幅,從資安為何講到入門證照之後的路。

Posted by Peter on April 18, 2024

嗨,在資安這條路上學習了一年半載,想要做一整個小系列的文章來說明我對資安的理解與一些簡單的整理,目錄主要會分成:

  • 第一章 - 何謂資訊安全 (附錄: 關於資訊安全的「學習」)
  • 第二章 - 如何學習資安
  • 第三章 - 關於滲透測試證照OSCP
  • 第四章 - 未來資安上可能的道路

這篇會主要想要著墨在「資訊安全」這四個字上面,我雖然在這邊學了很久,但這四個字海涵了不少東西,我主要學習的只是其中的一小部分,這篇我會盡量把能提出來的部分整理出來,但不免主要的重點還是會放在我主要學習的「攻擊」層面上。

第一章 資訊安全為何

資訊安全 (通常簡稱資安) 是一組安全性程序和工具,可廣泛地保護敏感性企業資訊,以免發生使用不當、未經授權的存取、中斷或毀損等狀況。資安涵蓋實體和環境安全性、存取控制以及網路安全性。它通常包含 雲端存取安全性代理人 (CASB)、驗證工具、端點偵測和回應 (EDR) 等技術,以及 DevOps (DevSecOps) 的安全性測試等等。 – 什麼是資訊安全 (資安)? Microsoft 安全性

從微軟的定義來看,我們可以看到資訊安全就是資訊的安全性的管理,資訊安全涵蓋的範圍很廣,我們一般常見的資安漏洞,外面的人可以存取到機敏資料是資訊安全的範疇,我們平常常聽到的網路釣魚詐騙,欺騙使用者輸入自己的資料,這也屬於資訊安全的一環。

Types of Information Security

source: What Is Information Security? Fortinet

從上面這張圖片我們可以一窺資訊安全這個大框架的一二,資訊安全細分下來的話會分為雲端安全、密碼管理、漏洞管理等等,我們常常聽到資訊安全會被區分為攻擊端(紅隊)與防禦端(藍隊),卻常常疏忽了還有很多資安的從業人員會負責各式各樣的服務,舉例來說像是大企業都會有人員專們處理企業內部的驗證機制與密碼管理,這樣的管理職位也是在企業中不可忽略的一部分。

廣義上的資安

廣義上的資安,也就是想到資安這兩個字我們會想到什麼,就像上面說的,企業被駭、詐騙、帳號被盜等等都是我們平常想像得到的資安情境,我這邊想做的事情是,我們可以從一些案例來看看這些屬於資安的哪一個部分,這樣我們由淺入深應該也會比較容易一點。

帳號被盜

我這個年紀的人大體上都有經歷過這類型的事件吧,楓之谷帳號打開發現自己要不就是在奇幻村被鎖半年,要不就是身上裝備全部被脫光賣掉,完全沒有頭緒怎麼會這樣,只好重複創角,結果還是被盜。

關於過往的經歷,我不能很肯定發生的具體原因,但是大概有幾種可能性,也是我們不管在日常,或是資安實務上都很有可能會遇到的問題。

密碼洩漏

首先是密碼洩漏,我相信大部分人在每一個使用的服務都是用同一組帳號密碼吧,這表示只要密碼洩漏出去了,所有其他的關聯服務都可以很容易地被存取、被登入、被偷走。這樣類型的資安漏洞也是最常出現的,只要被拿到同一組密碼就會導致一連串的問題,這個問題我們在之前的文章 用godjj的steam帳號被盜事件淺談個人資安防治 這篇裡面就有說明,密碼外洩是十分容易發生的問題,也就是為什麼三不五時就會聽到有人在嘮叨要我們改密碼,這個是有原因的。

今天 godjj 的帳號打開發現登不進去,並被其他好友發現在玩永劫無間,可以確定的事情有:

  1. 帳號被外國人登走
  2. 信箱被改掉
  3. 原信箱內有很多帳號驗證碼的通知信,以及通知信箱更改的信件
  4. 本人表示有開啟信箱驗證
  5. 本人表示信箱好像沒有二階段驗證

從種種跡象可以大概率判斷是信箱被盜走所引起的一系列攻擊手法,攻擊者只需要拿到信箱就可以登入你帳號關聯的所有其他服務。

其次有可能的情況是,當時的楓之谷並沒有設定很嚴格的黑名單機制。想想我們常常密碼輸入沒過五次,就會被鎖定三十分鐘的情況吧,這樣的設定是為了防止駭客使用大量的密碼清單,也就是字典檔進行暴力破解,透過不斷地重複輸入密碼,總會猜到並登入成功進去帳號裡面。這也就是為什麼我們所看到的密碼設定要求愈來愈多的原因,多一個複雜性就多一份難被破解的機率,但對於使用者來說也是一個麻煩,關於便利性與安全性的關係,我們在最後會額外補充,有興趣的朋友可以看看。

網路釣魚詐騙

這樣的範例最近也層出不窮,收到詐騙簡訊或是網頁後,上去輸入了資料才發現網站是假的,還沒回過神來信用卡就已經被盜刷,資料就全部被偷走。抑或是收到詐騙郵件說要下載東西,結果載下來才發現是勒索軟體,電腦已經用不了了,像之前惡名昭彰的 WannaCry 案件。

這類型的詐騙用到的比起說是資訊安全上的手法,更多是操控用戶心理,讓我們去執行或填寫我們不應該碰的東西。關於常見的詐騙手法可以參考這裡

狹義上的資安

狹義上的資安我們可以以一句話總結就是「資安從業人員都在做些什麼?」來了解資安詳細的內容。關於這塊其實我也懂得不多,可以去參考網路上很多資安大老的文章,我這邊可以簡單提兩個詞,紅隊與藍隊。紅隊與藍隊分別代表著資安實務上的攻擊與防守方,在一般的企業情況上,公司會請資安公司來進行紅隊演練,也就是請人來測試自己的強韌程度,這是資安市場上份額最大的工作,也就是所謂的滲透測試及弱點掃描。而藍隊一般來說指的是公司裏頭的防守人員,工作大部分是建構系統、檢測log資料看有沒有奇怪的消息等等。

紅隊演練與滲透測試

紅隊演練跟滲透測試如同上面說的,是資安市場上面市場最大的工作之一,也就是請人來攻擊自己的系統並給出相關的報告。紅隊演練與滲透測試的差別在於說,滲透測試比較單一,可以想是有一間公司來對於產品或公司進行一系列的測試,通常不會涵蓋社交工程或是近源滲透測試。至於紅隊演練就可以想是請資安公司可以用任何手段來想辦法取得企業內部資料,這時候就會有各種手段例如詐騙信件、訊息,或是極端一點會有人潛入公司試圖取得資料。

當然,紅隊演練跟滲透測試都必須建立在共識的合約基礎上,在資安演練當中,有良好的文件規範是非常重要的一環。

log分析與資安基礎建設

至於藍隊的部份,我們上面紅隊或是外面的攻擊者會試著用攻擊手法試圖突破一道道系統防線,而藍隊的工作就是試著去阻擋這些攻擊,阻擋並不是實際意義上的拿著盾牌去擋下攻擊,而是建立機制來防禦。網路上所有行為都會有封包,而藍隊的很重要的一個工作就是分析這些封包,看有沒有惡意資料試圖進入,如果有的話就要建立機制來防禦。我們平常看到的防火牆或是防毒軟體就有著類似的防禦機制。

另外一個很重要的部份是資安基礎建設,像是公司的密碼管理、檔案管理、附件管理等等都是一項專門的工作。很多時候資料都會從不經意的地方洩漏出去,如果公司員工把密碼設得很容易的話,就容易被外界猜到或破解。抑或是檔案沒有好好管理或是加密,就容易被外面的人破解或取得。這些看似平常日常的工作也都是資安人員很重要的執掌。

小結

我們從頭開始講了資安的定義,而後看了廣義上的資安與挾義上的資安分別為何物,廣義上的資安包含生活的各個部分,很多我們日常需要注意的地方都可以算是資安,但一旦我們講到專業領域上的資安的時候,就可以把資安細分成攻擊跟防守方,攻擊方模擬外界攻擊手段,而防守方運用各種專業工具來阻攔外面的惡意連線。

第一次寫這種文章,不算寫得特別多,後續有想法的話還會持續補充。下面是一篇關於我對於資安學習的意見,這也是進入第二節前我想特別講講的地方,第二節我們要來講怎麼學習資安,但為什麼要學資安屬實是一個很大的問題,甚至有了學資安不如其他領域的討論,關於資安學習的目的性我合併在下面的附錄,有興趣可以一併閱讀。

附錄:關於資訊安全的「學習」

資安學習是一個很有趣的課題,講到為什麼學資安,有些人說是為了薪水、有的人只是單純為了好玩而進來這個領域。我曾經在一場免費的資安直播中看到如此討論是說,為了薪水學習資訊安全的話,還不如去走半導體或者是寫軟韌體,資安的地位似乎被排在相對下面的位子。 ​ 是的,就薪資層面確實是這樣,以新鮮人的薪資來說,資安比不過純軟,純軟比不過韌體,韌體比不過半導體。這樣的論述方式我自己持懷疑態度,先別說這種方式把自己的興趣愛好完全摒棄,這種說法也是當作把所有人放在同一條起跑線上的不合理的說法,適才適所還是挺重要的,而更多時候工作也不會那麼地順風順水。 ​ 如果有在追蹤部落格裡面的其他文章的話,會發現我不是資訊相關科系的,資訊安全對我來說是作為一個”工作技能”在學習的。事實上,我並不是完全對電腦零基礎的人,在接觸資訊安全之前我嘗試的是寫網頁(前端工程師),但前端在我經歷過幾個面試之後因為有更好的工作機會就沒有在找了,在新的工作的時候也沒有繼續往網頁上面繼續走,雖然還是有在加減寫網頁,原因只是因為單純的不喜歡。寫網頁對我來說太過於枯燥乏味,我喜歡架設環境的過程,但一到要刻上一個個的CSS與JavaScript的時候,我就沒有那麼喜歡了,而這偏偏又是在網頁設計中佔了最大比例的工作。 ​ 在不繼續寫網頁之後,我嘗試了學習資訊安全,而結果是很好的,儘管是作為工作取向在找各式各樣地待遇比較好的工作,但資訊安全是我學習到現在都還可以抱持著熱忱與興趣的,原因是我喜歡學習的過程,而資訊安全的主軸就在於學習二字上。

資訊安全是一個很大的領域,光是理解這個課題就會花上不少時間,甚至是最多人一開始接觸的「滲透測試」都需要一定基礎的理解。其中的理解包括Windows、Linux等作業系統的基礎,閱讀基本的Python、php程式碼,理解網路是如何運作的,有了這些知識,才能算是具備開始滲透測試的基本知識。更別說後面有更多需要學的東西了。

我想跟我之前學的網頁開發做個比較,在學習網頁開發的時候,我們需要的知識比起橫向知識,需要的是更垂直的知識與熟練度,也就是比起花時間去學習,花時間去探索跟練習能對技能上起更大的作用。舉例來說我今天要成為一名ReactJS的開發者的話,我需要理解的知識僅有HTML、CSS、JavaScript的語法即可,剩下的就是看開發者是如何地去依照自己習慣的模式組裝這些語法,每個人都有各自偏好的寫法與過程,這些都是靠練習與探索來的,沒有一個特定的規範與知識。

而資訊安全、滲透測試不一樣的是,我們是在既有的系統上去查找與解決漏洞,也就是說,我們要由上到下地理解系統的全般樣貌,而不是由下到上的去一步步地構築程式碼,這也就帶來了龐大的學習需求,畢竟在沒有一定的知識的話,是很難發現或是利用這些漏洞的。我想這也是為什麼一旦你踏進這個領域之後,會發現到處都是學習的資源。實作、小技巧的部分反而少之又少。關於學習資源的論述,大概兩個月前有一個很有趣的論述,有一篇文章在講說為什麼他不建議你成為一名滲透測試人員,這篇文章引起了很廣泛的討論,圍繞在資安的職場環境需要一定程度的門檻與不合理的工時與大量的學習需求,關於學習需求他是這麼說道的。

On a side note, have you noticed how many “training” sites there are now? It’s almost like people are making more money teaching hacking than actually doing it. Everytime I turn around I see a new EDR evasion, Malware Dev, REAL HACKER training course popping up. Strange huh?

(AI機翻)

順便一提,你有注意到現在有多少“培訓”網站嗎?幾乎就像人們透過教授駭客技巧比實際進行駭客活動賺更多錢似的。每當我轉身,就會看到新的 EDR (端點偵測和回應) 躲避、惡意軟體開發、真實駭客培訓課程冒出來。奇怪吧?

奇怪嗎?這篇文章的作者這麼問到,但如果我們理解了整個資訊安全的學習過程的話,可能就不會覺得特別奇怪了,以一般的角度看來,資安這個圈子確實是蠻特別的,這是一個以大量證照架構起來的環境,放眼望去其他圈子似乎找不到類似的屬性。用圖片說明可能會清楚一些。

image-20240414230002331

如同上方左邊圖片,資安各個證照可以代表著各個「技術棧」,當你擁有這張證照的時候,即代表著你大概率熟悉了這項技能,而右邊圖片代表著我們傳統軟體開發的 roadmap,其實嚴格定義上來說並沒有特定的路徑需要遵循也沒有特定的基礎,而是你選擇了這個領域之後依照你的個人實力往下鑽,通常會是以作品方式呈現出來你的能力,而非證照。這也是由於資安工作的繁雜,很難真正用一個或特定的作品/任務就衡斷一個人的實力。也就是說,資訊安全這個領域可以說是一路都在學習跟組合學習到的知識,相對於其他領域來說實作的部分確實會少很多,而坊間眾多的學習資源也是為了各個人補足各自的知識而存在,在一般的學習中,如同很多人所說的,比起追求特定「證照」不如說去追尋想學的技能,藉由證照來獲取自己心儀的技能方為上策。

回到一個問題是你應不應該學習資安,我的答案是這可以取決你想要走的是什麼領域,假如你覺得駭客很帥,學習網路很帥,能夠懂更多電腦的知識,則何樂而不為,但如果你是想要往寫程式的路線走,想要開發更多東西的話,做很多大專案的話,那資安可能就不見得會是一個最適合的選擇,但回到坊間眾多人同意的事情是,「你總是要先做了才知道自己適不適合」,那不妨可以試試看吧。


感謝閱讀,本文同步發表於FB粉絲專頁 PP學習筆記