網路安全的學習方向和路線是怎麼樣的?

我不是hack發表於2022-03-27

大家好,我是周杰倫!

最近有同學問我,網路安全的學習路線是怎麼樣的?

廢話不多說,先上一張圖鎮樓,看看網路安全有哪些方向,它們之間有什麼關係和區別,各自需要學習哪些東西。

在這裡插入圖片描述

在這個圈子技術門類中,工作崗位主要有以下三個方向:

安全研發
安全研究:二進位制方向
安全研究:網路滲透方向

下面逐一說明一下。

下面的卡片可以免費領取網路安全相關的學習資料,幫助大家在學習的過程中少走彎路:

【你要的網路安全知識,戳這裡!!!】

第一個方向:安全研發

你可以把網路安全理解成電商行業、教育行業等其他行業一樣,每個行業都有自己的軟體研發,網路安全作為一個行業也不例外,不同的是這個行業的研發就是開發與網路安全業務相關的軟體。

既然如此,那其他行業通用的崗位在安全行業也是存在的,前端、後端、大資料分析等等,不過除了這類通用開發崗位,還有一部分與安全業務緊密相關的研發崗位。

這個分類下面又可以分為兩個子型別:

做安全產品開發,做防
做安全工具開發,做攻

防火牆、IDS、IPS
WAF(Web網站應用防火牆)
資料庫閘道器
NTA(網路流量分析)
SIEM(安全事件分析中心、態勢感知)
大資料安全分析
EDR(終端裝置上的安全軟體)
DLP(資料洩漏防護)
防毒軟體
安全檢測沙箱

總結一下,安全研發的產品大部分都是用於檢測發現、抵禦安全攻擊用的,涉及終端側(PC電腦、手機、網路裝置等)

開發這些產品用到的技術主要以C/C++、Java、Python三大技術棧為主,也有少部分的GoLang、Rust。

安全研發崗位,相對其他兩個方向,對網路安全技術的要求要低一些(只是相對,部分產品的研發對安全技能要求並不低),甚至我見過不少公司的研發對安全一無所知。在這種情況下,如果除了基本的開發功底以外,對網路安全技術有所瞭解,自然會是你面試這些崗位時的加分項。

第二個方向:二進位制安全

二進位制安全方向,這是安全領域兩大技術方向之一。

這個方向主要涉及到軟體漏洞挖掘、逆向工程、病毒木馬分析等工作,涉及作業系統核心分析、除錯與反除錯、反病毒等技術。因為經常都是與二進位制的資料打交道,所以久而久之用二進位制安全來統稱這個方向。

這個方向的特點是:需要耐得住寂寞。

比不上安全研發可以有實實在在的產品輸出,也比不上網路滲透方向聽起來的狂拽炫酷,這個方向更多時間是在默默的分析和研究。

以漏洞挖掘為例,光是學習五花八門的攻擊手法就需要花不少的時間。在這個領域,為了研究一個問題,可能花費數月甚至數年時間,這絕非一般人能堅持下來的。不僅如此,不是勤奮就可以成功,更多還要靠天分。

像騰訊幾大安全實驗室的掌門人,業界知名的TK教主、吳石這些人物,他們已經深諳漏洞挖掘的奧義,並將這門絕技融會貫通,做個夢都能想到新的玩法。不過像這樣的天才實在是少之又少,絕大多數人都無法企及。

如果說程式設計師是苦逼的話,那二進位制安全研究就是苦逼Plus

第三個方向:網路滲透

這個方向更符合於大部分人對“黑客”的認知,他們能夠黑手機、黑電腦、黑網站、黑伺服器、黑內網,萬物皆可黑。

相比二進位制安全方向,這個方向初期更容易入門一些,掌握一些基本技術,拿起各種現成的工具就可以開黑了。

不過,要想從指令碼小子變成黑客大神,這個方向越往後,需要學習和掌握的東西就多了。

網路滲透的方向更偏向於“實戰”,因此對技術在廣度上有更高的要求,從網路硬體裝置、網路通訊協議、網路服務(web、郵件、檔案、資料庫等)、到作業系統、攻擊手法等等都需要了解。更偏向於一個全能型的計算機專家,將各種技術融會貫通,以用於“實戰”。

下面開始說說學習路線的問題,內容有點長,可以先點個贊,這樣不迷路及時找得回來哦。

學習路線

下面以網路滲透為例,看一下一個新手從零基礎開始,要學哪些東西,以及具體的學習路線是什麼?

先來一個大局圖,從全域性上整體把握:

在這裡插入圖片描述

圖片有些大,上傳後被壓縮的厲害。想要獲取高清圖的朋友可以來這裡:

肝了7天,超強的網路滲透學習路線圖!

在這張圖路線圖中,一共劃分了六個階段,但並不是說你得學完全部才能上手工作,對於一些初級崗位,學到第三四個階段就足矣。

下面的內容,一定要結合上面這張圖看效果才最好,建議在瀏覽器中新建一個tab頁面,開啟那張圖,結合著看。

石器時代

第一個階段——石器時代,針對的是純新手小白剛剛入場。在這個階段,主要是打基礎,需要學習的有五部分內容:

Windows

Windows上基礎的一些命令、PowerShell的使用和簡單指令碼編寫,以及Windows以後經常會打交道的幾個重要元件的使用:登錄檔、組策略管理器、工作管理員、事件檢視器等。

除此之外,學習在Windows上面搭建虛擬機器,學會安裝系統,為接下來學習Linux做準備工作。

網路安全,必然要與Linux經常打交道,我看到很多新人一上來就跟著一些培訓班學習Kali,學的雲裡霧裡的。連基本的Linux概念都沒建立起來,就急著學Kali,這屬於還沒學會走路就去學跑步,本末倒置了。

在這裡插入圖片描述

在基礎階段,主要以使用為主,學習文字編輯、檔案、網路、許可權、磁碟、使用者等相關的命令,對Linux有一個基本的認知。

計算機網路

網路安全,計算機網路肯定是非常重要的存在。作為基礎階段,這一小節主要從巨集觀上學習計算機網路,而不是死扣某一個協議的某些欄位意義。

首先從區域網出發,瞭解計算機通訊的基本網路——乙太網,區域網內是如何通訊的?集線器、交換機有什麼區別?MAC地址、IP地址、子網、子網掩碼分別是做什麼用的?

隨後引出更大的廣域網、網際網路,什麼是網路通訊協議,通訊協議分層的問題,通過七層和四層模型快速建立起計算機網路的基礎概念,各層協議的作用,分別有哪些協議,這些協議在當今的網際網路中具體是怎麼應用的。

Web基礎

網路滲透中非常重要的一個組成部分就是Web安全,要學習Web安全,得先從Web前端基礎開始入手。

這一小節非常簡單,就是學習最原始的Web前端三板斧:HTML+CSS+JS的開發使用,為將來學習Web相關的安全知識打下基礎。

在這裡插入圖片描述

這一小節是相對偏實際動手多一些,需要自己多動手進行一些網頁程式設計,尤其是JavaScript的熟悉掌握,瞭解Ajax是什麼東西,常用的jQuery庫也學習一下,這都是Web前端中非常基礎和常用的內容。

資料庫基礎

基礎階段的最後一部分,可以來接觸一些資料庫的基礎知識了。

這個階段主要學一些理論知識,重點掌握庫、表、索引等概念,然後學習SQL的編寫,學會增刪改查資料。暫時不用程式設計來運算元據庫。

青銅時代

度過了石器時代,你已經儲備了一些計算機的基礎知識:作業系統的使用,網路協議,前端基礎,資料庫初識,但這距離做網路安全還不夠,在第二個青銅階段,你還需要再進一步學習基礎,在第一階段之上,難度會開始慢慢上升。

這一階段需要學習的知識有:

Web進階

在前面的石器時代,我們們初步接觸了網頁程式設計,瞭解了網頁的基本原理。不過那時候是純前端的,純靜態的網頁,沒有接觸後端。在這個進階的階段,你要開始接觸Web後端的內容了。

首先從常用的兩大主流Web伺服器出發,學習Apache和Linux的基本知識,隨後引出動態網頁的基本原理,從CGI/Fast-CGI過渡到後來的ASP/PHP/ASPX/JSP等動態網頁技術,瞭解它們的發展歷史,演變過程和基礎的工作原理。

在這裡插入圖片描述

最後再學習一些Web開發中的基礎知識:表單的操作、Session/Cookie、JWT、LocalStorage等等,瞭解這些基本的術語都是什麼意思,做什麼用,解決了什麼。

PHP程式設計

學習Web後端開發,得搭配學習一個後端開發語言才行。在這一小節,選擇從PHP入手。

不過要記住,這裡選擇PHP不是讓你以後從事PHP的後端開發,也不是說PHP現在有多流行,而是特定歷史背景下,PHP相關的網站安全問題非常具有代表性,選擇這門語言更方便我們研究安全問題。

由於學習的目的不同,所以在學習方法上和普通的後端開發就有所不同了。在這裡我們們學習一下語法基礎,基本的後端請求處理,資料庫訪問,然後再接觸一下常用的ThinkPHP框架即可,當然如果你有興趣,學的更深入當然更好。

計算機網路進階

第二階段需要再充實一下計算機網路的學習。這一次,重點把精力放在HTTP/HTTPS以及抓包分析之上。

Linux上的tcpdump必須掌握,包括常見的引數配置。然後重點學習Wireshark分析資料包,用Fiddler抓取分析加密的HTTPS流量。

通過在抓包軟體下檢視通訊流量,對計算機網路的認識從抽象變得具象。

加解密技術

接著,來了解一些網路安全領域內經常打交道的編解碼技術和加解密技術。包括base64編碼、對稱加密、非對稱加密、雜湊技術等等。

在這裡插入圖片描述

瞭解它們基礎的概念、做什麼用的,解決什麼問題,最後再瞭解下工作原理。

推薦書籍:《加密與解密》

白銀時代

現在進入第三個階段——白銀時代,激動人心的時刻就要到來了,在這個階段,我們開始全面學習真正的網路安全技術了,前面兩個階段打下的基礎,在這個階段,也將派上用場。

這一階段需要學習的知識有:

Web安全入門

有了前面的Web前端和PHP程式設計的基礎,可以來正式學習Web安全了。Web安全領域內幾大典型的攻擊手法:SQL隱碼攻擊、XSS、CSRF、各種注入、SSRF、檔案上傳漏洞等等,每一個都需要詳細學習,一邊學習理論,一邊動手實踐。

在這裡插入圖片描述

千萬注意別拿網際網路上的網站來攻擊學習,這是違法的行為。自己可以在虛擬機器中搭建一些包含漏洞的網站(網路上有很多可以下載來玩),拿自己建的網站練手。

網路掃描與注入

前面學習了一些Web安全的攻擊手法,但光有這些還不夠,當我們面對攻擊目標後,如何尋找攻擊點,獲取目標的資訊至關重要。

這些資訊包括:目標執行了什麼作業系統,開放了哪些埠,執行了哪些服務,後端服務是什麼型別,版本資訊是什麼等等,有哪些漏洞可以利用,只有獲取到了這些資訊,才能有針對性的制定攻擊手段,拿下目標。

在這裡插入圖片描述

常見的網路資訊掃描包括埠掃描、網站後臺掃描、漏洞掃描等等。需要學習常用的掃描工具以及它們的工作原理。

資訊蒐集 & 社會工程學

除了上面需要掃描的資訊,在網路安全中,經常還需要調研很多資訊,比如網站的註冊資訊、相關聯的人物、網站內部的內容檢索等等。這就需要學習掌握資訊蒐集和社會工程學的相關技術。

在這裡插入圖片描述

whois資訊用來查詢域名資訊,shodan、zoomeye、fofa等網路空間搜尋引擎檢索IP、域名、URL等背後的資訊,Google Hacking利用搜尋引擎來檢索網站內部資訊,這些東西都是在網路資訊蒐集中經常用到的技能。

暴力破解

在網路攻擊中,當掃描到目標開放的服務後,最直接的就是想要登入進去。常見的服務有SSH、RDP、MySQL、Redis、Web表單等等。

這個時候,暴力破解通常會派上用場,通過使用各種服務常見使用者名稱密碼組成的字典,通過程式暴力破解。

常用的爆破工具有hydra、超級弱口令,另外還有一個mimikatz,常用來獲取Windows系統的密碼。

黃金時代

上一個階段,學習了一些安全攻擊技術,在這一個階段,需要學習一下安全防禦和安全檢測技術,安全具有攻防兩面性,缺一不可。

WAF技術

首先要學習的就是WAF——Web應用防火牆。

Web安全學習的是通過Web技術攻擊計算機系統,WAF就是檢測和防禦這些安全攻擊。正所謂知己知彼才能百戰百勝,作為攻方,要掌握WAF的工作原理,找到弱點繞過檢測,作為守方,需要不斷加強安全檢測和防禦能力,有效的發現和抵禦Web攻擊。

在這裡插入圖片描述

需要學習當下主流的WAF軟體所採用的架構比如openresty、modsecurity,以及主要的幾種檢測演算法:基於特徵的、基於行為的、基於機器學習的等等。

網路協議攻擊 & 入侵檢測

WAF主要針對的是Web相關的安全攻擊,到這一小節,將視野進一步擴充到整個網路協議棧,TCP劫持、DNS劫持、DDoS攻擊、DNS隧道、ARP欺騙、ARP泛洪等等,需要掌握這些傳統經典攻擊手段的原理,搭建環境實踐,為後續的內網滲透打下基礎。

在這裡插入圖片描述

另外作為防守的一方,還需要學習通過網路流量分析技術來進行安全檢測,瞭解常用的網路分析技術,檢測框架,規則語法,對以後從事安全相關開發或安全防禦工作進行儲備。

日誌技術

通過日誌來發現攻擊行為是一種最常見的行為,攻擊者的Web請求,系統登入,暴力破解嘗試等等都會被系統各種軟體記錄在案,攻擊者得手後也經常會抹除相關的日誌記錄,所以學習掌握這些日誌,是攻防兩隊的人都需要學習的技能。

常見的日誌有系統登入日誌(Windows、Linux)、Web伺服器日誌、資料庫日誌等等。

Python程式設計

在這個階段,是時候來學習一些Python程式設計開發了。雖然網路安全不用經常做大量的工程開發,但掌握基本的程式設計能力,可以用來編寫爬蟲、資料處理、網路掃描工具、漏洞POC等等,都是非常有用的,而眾多程式語言中,Python無疑是最適合的。

瀏覽器安全

這個階段的最後一部分,來學習瞭解一些瀏覽器側的安全知識,夯實Web安全中與瀏覽器相關的漏洞攻擊。

需要重點掌握IE、Chrome兩款最主流的瀏覽器特性,瀏覽器的沙盒機制是什麼,同源策略和跨域技術等等。

鉑金時代

第三方元件漏洞

前面Web安全相關的攻擊都是一些很多年的經典手法了,經過多年的發展已經相當成熟,相關的漏洞早已不如以前多,現在很多時候的攻擊,都是依靠各種各樣的第三方元件漏洞完成的,所以學習研究這些常見第三方元件的漏洞,一方面掌握這些攻擊手法用於實戰中使用,另一方面觸類旁通,對從事漏洞挖掘的工作也是非常有幫助的。

研究的物件主要涵蓋目前網際網路服務中實際使用的一些工程元件,比如Java技術棧系列Spring全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker等等。

內網滲透

網路滲透中,攻下一個點後,只是一個開始,攻入以後如何轉移,控制更多的節點,是內網滲透研究學習的範疇。典型的如當年的永恆之藍病毒,通過SMB協議漏洞,快速擴散傳播,造成了大面積的中招。

在這裡插入圖片描述

內網滲透中要學的東西既多且雜,難度要上升不少,但這是做網路滲透的非常重要的一塊兒,必須多啃一啃。這一部分理論較少,偏實戰性多一些,需要多搭建環境模擬學習。

作業系統安全技術 & 提權技術 & 虛擬化技術

通過web等手段滲透進入計算機後,由於各種限制原因,經常會有提權的需求,還會涉及到許多跟作業系統安全機制緊密相關的內容,所以學習一些作業系統的安全知識也是非常有必要的。

像Windows、Linux上各自的許可權管理機制,提權方法和常用的漏洞,工具等等

最後,再學習一些虛擬化技術相關的知識,應對可能需要從虛擬機器中逃逸的場景。

王者時代

CobalStrike & MetaSploit

在這裡插入圖片描述

在這裡插入圖片描述

學習使用這兩個神器,將大大提升攻擊效率,是網路滲透人員居家旅行必備之選!

其他安全技術擴充

到了網路滲透的後期階段,想成為一個安全高手,絕不只是固步自封在自己擅長的領域,需要多學習網路安全的其他領域,擴充自己的知識面。

比如二進位制漏洞攻擊、逆向工程、木馬技術、核心安全、移動安全、側通道攻擊等等,當然在學習的時候,不用像專業方向的同學那麼深入,但需要涉獵瞭解,豐富自己的知識面,構建全方位的網路安全知識技能棧。

以上就是我分享的網路安全學習路線了,希望對自學的你有一些啟發和幫助。

新入行的朋友自學不容易,我也是這樣一路走過來的,在這個過程中收集整理了不少學習資料,裡面有:

1、很多已經買不到的絕版電子書
2、安全大廠內部的培訓資料
3、國內外頂級安全大會的演講PPT
4、頂級安全研究團隊釋出的研究論文
5、各大頂級安全論壇精華帖

在這裡插入圖片描述

現在免費分享給自學的你,如果感到有所幫助,歡迎幫忙給俺點個贊哦~

【點我免費領取!!!】

羅馬不是一日建成的,精雕細琢才會把羅馬建設得更漂亮!目前市面上,網路安全可學習內容較少,不像開發語言等那麼廣泛,建議大家也可以多去關注一些視訊、論壇、文章及書籍等做好入門,萬事開頭難,有什麼問題可以多多提問。

相關文章