[資安漫談] 資安小白之網路安全入門

「也許我會輸給快速進步的你吧。不過,並不是今天。」

今天來推薦一部無敵熱血的作品 - 排球少年

為了夢想,你願意付出多少?熱血而不浮誇的劇情,行雲流水般的分鏡,細膩的角色特質刻劃,無論動畫跟漫畫都推薦,絕對是運動作品當中的神作。

故事的主角,來自宮城縣的少年,是排球強校北川第一中學出身,具有優異控球能力的舉球員。憑藉自身的努力與心態的轉變,逐漸成為真正的王者。但在與比賽中面臨來自各路的天才球員,對他來說就像無法翻越的高牆。曾一度因為要不要繼續打排球而迷茫,但最後仍下定決心為了自己的排球夢努力。

沒錯,他就是及川徹。開頭這句就是及川在比賽中想對亦敵亦友的學弟影山飛雄表達的話。及川的每一句名言都貫穿了整部作品的信念,不僅是熱血,也讓人感動。

「認為自己沒有才能的話,大概一輩子都不會有了」、「才能は開花させるもの、センスは磨くもの」,第二句打日文是因為各家翻譯上略有差異,畢竟原文是日文,雖然大家翻譯都想追求「原意」,但畢竟不同語言本身有些含意無法適當翻譯,再加上要還搭配故事情節。如果直接翻成「才能是可以開花結果的,球感是可以磨練的」,其實第一句是有點不知所云,但從故事來看,我認為及川想表達的是我可以憑著自己的努力讓我的才能開花結果。及川徹不是天才,但他從來沒有放棄過努力。

這篇談動漫的內容比較少,因為我對排球少年其實也沒有更多的想法了,對我來說他就是一部很棒的運動作品,連我一個完全不打排球的人都很喜歡的作品。

(OS: 我就是覺得及川比日向翔陽跟影山飛雄更像主角啦)

資安小白之網路安全入門學習指南

回到今天主題,要談的是給資安小白的網路安全入門建議。

緣由是這樣的,前陣子有資安小白(新手)在粉專私訊我,詢問學習的方向和建議。我建議可以從網路跟Linux開始。他後來提了一個問題,我覺得真的是個好問題,他問「網路的部分是指甚麼?」。相信多數資安界的大大會認同網路與資安習習相關,但是如果我想走專職資安(雖然資安裡面也是分很多不同領域),到底至少需要了解那些網路知識才足夠,難道一定要先上個CCNA的課嗎?還是我要把整本O’REILLY TCP/IP給熟讀才能夠開始接觸資安?我覺得網路也是一門可以很深入的專業,如果要學資安,也許不一定要具有這麼豐富的網路知識及技術才能開始接觸資安。所以我想從一些比較主觀也輕鬆簡要的方式來建議新手想學資安需要的最低限度網路知識。

這篇文章的重點在於學習資安的路上,建議需要具有的基礎網路知識及技術能力。雖然內文中仍然會提及資安相關攻防技術或是設備,但想強調的還是在於「網路」部分。因此,對於其他例如密碼學、網站安全、系統安全、應用程式安全則會盡可能避免談及,並不是因為網路比較重要,單純只是這一篇文章是想針對網路來分享而已。實際上學習資安的路上,其實同時學習網路、系統、程式也都是沒問題的,而且其實也是正常的情況。

從我開始學習資安以來,我一直都認為學資安像是一塊拼圖,一塊很大的拼圖。不管我學了哪一種程式語言,不論碰到了哪一種資料庫,還是接觸了一個新的網路協定,任何東西幾乎都有機會和資安扯上關係,它們任何一項都會成為其中的一塊拼圖。有些區域你必須湊滿好幾塊拼圖,才能稍微看清它的樣貌。有些地方則是大家都會建議你先開始拚的地方,也許是因為比較簡單開始,又或者是當這邊沒完成時,你可能無法很順利的繼續完成下去,因為其他地方都仰賴著這個區塊,基礎網路大概就是屬於這樣的一個區塊。我不會跟你說搞資安就是搞網路這種話,我也不認為不懂網路的人就表示他不懂資安。但的確是會建議想走資安的人,要先學習基礎的網路,會跟他們說這很重要,也所以有了這篇文章。

再次重申一下,我這篇文章想分享的是自己在資安領域中,我認為強烈建議需要具備的技能知識,而不是想指引成為網路安全專家的路線,所以許多內容其實真的是很基礎的(而且主觀的),尤其對於可能是網路相關科系的人而言,可能會覺得廢話過多。但我自身是非本科系出身的,希望這些透過這篇文章讓跨領域過來的人明白有哪些基礎觀念是重要的。

第一階段:(本文)

  • 了解 OSI 的七層網路架構
    • 大概知道封裝特性 (Encapsulation/Decapsulation)
    • 大概知道分段特性 (Segmentation/Reassembly)
    • 順便了解TCP/IP Model
  • 了解網路拓樸
    • 知道WAN跟LAN區別
  • 了解甚麼是IP
    • Public IP 與 Private IP
    • Static IP 與 Dynamic IP
    • 熟悉 Private IP 以及一些特殊 IP 的範圍 (不要發生客戶給你的IP都是Private IP, 也沒有提供VPN, 然後你遠端作業還是照樣掃Private IP的情況)
    • 知道甚麼是IPv4跟IPv6以及其差異
  • 了解網域及子網路(Subnet)
    • 知道為何要分子網路
    • 了解子網路遮罩跟CIDR概念
    • 要知道怎麼計算
      • 這段算是跟朋友有討論一下,他覺得這個小白可能不是必須的。我想法是覺得不用到很會算,但至少如果別人給你123.123.123.123/29,要你在裡面選一個可用的IP,你至少用工具算也要可以找得出來答案。
  • 了解路由的概念
  • 了解甚麼是MAC以及ARP運作機制
    • 了解ARP Spoofing攻擊原理
  • 知道一些網路設備的差異
    • Hub
    • Switch
    • IP 分享器
    • Router
    (這邊就先看看文章大概知道原理跟用途就好。老實說除非有工作有接觸機房或是其他相關有接觸到,不然其實不好完全理解。我一開始也很不懂,尤其你只看過家裡的小烏龜,沒有接觸過任何企業級的設備。)
  • 了解內網與外網的概念
  • 了解TCP及UDP差異
    • 了解TCP三項交握
    • 知道兩者使用情景差異
  • 看過IP以及TCP Header格式
    • 不需要到熟悉或背起來,但建議看懂過一次
  • 了解ICMP協定
  • 清楚Port與服務的概念
    • 這邊前提要知道主從式架構(Client-Server)
    • 例如HTTP使用80 Port,但不代表HTTP只能開在80 Port
  • 了解DNS的運作機制
  • 簡單知道一些企業安全防護設備(產品)的性質差異
    • 防火牆(Firewall)/IDS / IPS / WAF
    • 知道甚麼是Server Farm
    • 知道甚麼是DMZ區,以及為何要有DMZ區
    • 知道防火牆的基本技術原理
  • 知道Proxy的概念
  • 知道一些常見的協定用途
    • 例如DHCP/HTTP/SSH/Telnet/FTP/SMTP/SNMP/NTP
    • 有些常見協定Port大概記一下,例如SSH使用22 Port
  • 知道甚麼是DDoS
  • 了解甚麼是VPN
  • 知道甚麼是中間人(MitM)攻擊

下面內容較偏實作技術

  • 會設定網路
    • 簡單來說要讓自己有辦法上網啦。點開你的網卡看那個可以設定IP/Mask/Gateway的地方要知道怎麼設定。如果你去客戶那邊作業,要知道他應該要提供你甚麼資訊;反過來說,如果有人來你公司想上網,你要知道應該提供他甚麼資訊。
  • 會除錯網路為何沒辦法上網
    • 新手階段不奢望你幫別人除錯,但自己電腦沒辦法上網,先想辦法自己救。基本的網路除錯要會,像是檢查網卡、看設定、Ping不同地方測試,nslookup測試,或是錄封包看看
  • 會使用WireShark錄製封包以及簡單的觀察
    • 其實上面提到的很多應該熟悉的協定或服務,例如DNS、TCP三項交握、DHCP運作機制,這些都可以利用WireShark來觀察,同時能幫助學習了解協定,也能讓自己更加熟悉WireShark
  • 了解 VM 當中 NAT / Bridged / Host-Only 的區別(學資安路上,用到虛擬機的機會可不少,熟悉一下不同的網路模式很基本。我自己是使用VMware,但其他虛擬機平台或軟體,一定也會有類似的模式)

上面提及的內容,絕大部分在不管網路安全概論的課程或書籍都會有提及。例如鳥哥私房菜就有包含這些內容。

第二階段:

其實第一階段就幾乎涵蓋了我想說的全部內容,第二跟第三階段可以算是補充吧!但我自己也不是甚麼網路專家,所以就是一些片面資訊的補充而已。

第一階段是我覺得不論你走偏紅隊(攻擊)或是偏藍隊(防禦),都需要的基礎知識和技能。接下來其實走向不同的領域、不同位置、不同專業可能需要的知識會比較不同。有的屬於前面的進階,有的則可能不是難易度的問題,而是職務有沒有這個需求的原因居多。例如你工作不會碰到無線網路,可能就沒需要了解KRACK攻擊。如果你不是做情資分析,也不是ISP業者,可能也碰不到BGP hijacking。

  • 了解甚麼是VLAN
    • 也許考過CCNA,或是網管出身的,會覺得我太晚提到VLAN。但我自己覺得,從網路專業來看它很重要跟基礎,但從資安為出發點,好像不用那麼前期就熟悉它也沒關係。
  • 了解Proxy的不同模式 (如果你要碰設備更是一定會接觸到)
    • Forward Proxy
    • Reverse Proxy
    • Transparent Proxy
  • 了解甚麼是Tunneling技術
    • 會使用SSH不同方式的Tunnel
  • 熟悉前面學的到各種網路協定
    • 包含更熟悉該協定的運作機制
    • 該協定可能有甚麼樣的資安攻擊
    • 要如何防禦保護該協定
    • 如果可以,就動手架設或是測試
    • 太多了,例如Mac Spoofing、DHCP Starvation Attack、DHCP Snooping。或是設定上的安全問題像是,SNMP Public洩漏、SMTP列舉等等
  • 了解一些DNS的常見
    • 例如DNS放大攻擊、DNS hijacking、DNS poisoning
    • 或是更複雜一點的像 DNS rebinding
  • 稍微更熟悉WireShark跟tcpdump等封包分析工具
  • 了解各種不同類型的DDoS
  • 電子郵件安全
    • 了解SPF、DKIM、DMARC
  • 知道防火牆的安全設定規則
  • 了解WAN端網路技術
  • 看懂網路架構
    • 可能要熟悉不同類型設備的佈署方式
    • 要能看出網路架構哪裡有安全問題
    • 其實這一段目的就是達成具有「網路架構檢視」的能力,這其實是許多資安廠商都會提供的資安健診服務當中的一項。不過我自己覺得這個超級難,如果沒有人帶,自學有點困難。

第三階段:

在接著更進階或是更專業的領域

  • 熟悉對各種網路協定進行滲透測試
  • 熟悉各種網路協定安全設定
  • 熟悉各種網路設備安全設定
  • 熟悉網路封包分析
  • 熟悉IDS/IPS/NDR
    • 架設、測試、判斷以及撰寫rule
  • 有能力規劃安全的企業級網路架構

其他

其他補充之網路相關的認證課程:
國際認證基本的應該就CCNA跟CompTIA Network+,
如果想進階在網路領域,CCNA再上去還有CCNP跟CCIE。

我自己關於網路的證照似乎(?)只有一張網路安全封包分析認證課程NSPA,
當時上課的內容雖然簡單,但也算是滿充實的。

最後,如果大大們有任何想補充的內容也都可以留言分享一下。

最後的最後,希望如同開頭提到的排球少年一樣,
希望大家都可以盡情培養與磨練,持續保持熱情,不要放棄資安。

This Post Has 4 Comments

  1. CcL

    我好像第一部分都能勉强过关,但是之后的就一些懂一些不懂

    1. hackercat

      一起加油加油, 我也在持續學習中

  2. NTW

    關注妳的網站有陣子,謝謝分享也請繼續加油。

    1. hackercat

      感謝支持!會繼續持續分享下去的

發佈留言