??

?
?
由于我之前寫了不少網路安全技術相關的文章和回答,不少讀者朋友知道我是從事網路安全相關的作業,于是經常有人私信問我:
- 我剛入門網路安全,該怎么學?
- 要學哪些東西?
- 有哪些方向?
- 怎么選?
- 這一行職業前景如何?
廢話不多說,先上一張圖鎮樓,看看網路安全有哪些方向,它們之間有什么關系和區別,各自需要學習哪些東西,

在這個圈子技術門類中,作業崗位主要有以下三個方向:
安全研發
安全研究:二進制方向
安全研究:網路滲透方向
下面逐一說明一下,
第一個方向:安全研發
你可以把網路安全理解成電商行業、教育行業等其他行業一樣,每個行業都有自己的軟體研發,網路安全作為一個行業也不例外,不同的是這個行業的研發就是開發與網路安全業務相關的軟體,
既然如此,那其他行業通用的崗位在安全行業也是存在的,前端、后端、大資料分析等等,不過除了這類通用開發崗位,還有一部分與安全業務緊密相關的研發崗位,
這個分類下面又可以分為兩個子型別:
做安全產品開發,做防
做安全工具開發,做攻
防火墻、IDS、IPS
WAF(Web網站應用防火墻)
資料庫網關
NTA(網路流量分析)
SIEM(安全事件分析中心、態勢感知)
大資料安全分析
EDR(終端設備上的安全軟體)
DLP(資料泄漏防護)
殺毒軟體
安全檢測沙箱
總結一下,安全研發的產品大部分都是用于檢測發現、抵御安全攻擊用的,涉及終端側(PC電腦、手機、網路設備等)
開發這些產品用到的技術主要以C/C++、Java、Python三大技術堆疊為主,也有少部分的GoLang、Rust,
安全研發崗位,相對其他兩個方向,對網路安全技術的要求要低一些(只是相對,部分產品的研發對安全技能要求并不低),甚至我見過不少公司的研發對安全一無所知,在這種情況下,如果除了基本的開發功底以外,對網路安全技術有所了解,自然會是你面試這些崗位時的加分項,
第二個方向:二進制安全
二進制安全方向,這是安全領域兩大技術方向之一,
這個方向主要涉及到軟體漏洞挖掘、逆向工程、病毒木馬分析等作業,涉及作業系統內核分析、除錯與反除錯、反病毒等技術,因為經常都是與二進制的資料打交道,所以久而久之用二進制安全來統稱這個方向,
這個方向的特點是:需要耐得住寂寞,
比不上安全研發可以有實實在在的產品輸出,也比不上網路滲透方向聽起來的狂拽炫酷,這個方向更多時間是在默默的分析和研究,
以漏洞挖掘為例,光是學習五花八門的攻擊手法就需要花不少的時間,在這個領域,為了研究一個問題,可能花費數月甚至數年時間,這絕非一般人能堅持下來的,不僅如此,不是勤奮就可以成功,更多還要靠天分,
像騰訊幾大安全實驗室的掌門人,業界知名的TK教主、吳石這些人物,他們已經深諳漏洞挖掘的奧義,并將這門絕技融會貫通,做個夢都能想到新的玩法,不過像這樣的天才實在是少之又少,絕大多數人都無法企及,
如果說程式員是苦逼的話,那二進制安全研究就是苦逼Plus
第三個方向:網路滲透
這個方向更符合于大部分人對“黑客”的認知,他們能夠黑手機、黑電腦、黑網站、黑服務器、黑內網,萬物皆可黑,
相比二進制安全方向,這個方向初期更容易入門一些,掌握一些基本技術,拿起各種現成的工具就可以開黑了,
不過,要想從腳本小子變成黑客大神,這個方向越往后,需要學習和掌握的東西就多了,
網路滲透的方向更偏向于“實戰”,因此對技術在廣度上有更高的要求,從網路硬體設備、網路通信協議、網路服務(web、郵件、檔案、資料庫等)、到作業系統、攻擊手法等等都需要了解,更偏向于一個全能型的計算機專家,將各種技術融會貫通,以用于“實戰”,
下面開始說說學習路線的問題,內容有點長,可以先點個贊,這樣不迷路及時找得回來哦,

?
在這張圖路線圖中,一共劃分了六個階段,但并不是說你得學完全部才能上手作業,對于一些初級崗位,學到第三四個階段就足矣,
下面的內容,一定要結合上面這張圖看效果才最好,建議在瀏覽器中新建一個tab頁面,打開那張圖,結合著看,【高清版路線圖】
一、石器時代
第一個階段——石器時代,針對的是純新手小白剛剛入場,在這個階段,主要是打基礎,需要學習的有五部分內容:
?
1、Windows
Windows上基礎的一些命令、PowerShell的使用和簡單腳本撰寫,以及Windows以后經常會打交道的幾個重要組件的使用:注冊表、組策略管理器、任務管理器、事件查看器等,
除此之外,學習在Windows上面搭建虛擬機,學會安裝系統,為接下來學習Linux做準備作業,
網路安全,必然要與Linux經常打交道,我看到很多新人一上來就跟著一些培訓班學習Kali,學的云里霧里的,連基本的Linux概念都沒建立起來,就急著學Kali,這屬于還沒學會走路就去學跑步,本末倒置了
在基礎階段,主要以使用為主,學習文本編輯、檔案、網路、權限、磁盤、用戶等相關的命令,對Linux有一個基本的認知,
2、計算機網路
網路安全,計算機網路肯定是非常重要的存在,作為基礎階段,這一小節主要從宏觀上學習計算機網路,而不是死扣某一個協議的某些欄位意義,
首先從局域網出發,了解計算機通信的基本網路——以太網,局域網內是如何通信的?集線器、交換機有什么區別?MAC地址、IP地址、子網、子網掩碼分別是做什么用的?
隨后引出更大的廣域網、互聯網,什么是網路通信協議,通信協議分層的問題,通過七層和四層模型快速建立起計算機網路的基礎概念,各層協議的作用,分別有哪些協議,這些協議在當今的互聯網中具體是怎么應用的,
3、Web基礎
網路滲透中非常重要的一個組成部分就是Web安全,要學習Web安全,得先從Web前端基礎開始入手,
這一小節非常簡單,就是學習最原始的Web前端三板斧:HTML+CSS+JS的開發使用,為將來學習Web相關的安全知識打下基礎,
這一小節是相對偏實際動手多一些,需要自己多動手進行一些網頁編程,尤其是JavaScript的熟悉掌握,了解Ajax是什么東西,常用的jQuery庫也學習一下,這都是Web前端中非常基礎和常用的內容,
4、資料庫基礎
基礎階段的最后一部分,可以來接觸一些資料庫的基礎知識了,
這個階段主要學一些理論知識,重點掌握庫、表、索引等概念,然后學習SQL的撰寫,學會增刪改查資料,暫時不用編程來操作資料庫,
二、青銅時代
度過了石器時代,你已經儲備了一些計算機的基礎知識:作業系統的使用,網路協議,前端基礎,資料庫初識,但這距離做網路安全還不夠,在第二個青銅階段,你還需要再進一步學習基礎,在第一階段之上,難度會開始慢慢上升,
這一階段需要學習的知識有:
1、Web進階
在前面的石器時代,咱們初步接觸了網頁編程,了解了網頁的基本原理,不過那時候是純前端的,純靜態的網頁,沒有接觸后端,在這個進階的階段,你要開始接觸Web后端的內容了,
首先從常用的兩大主流Web服務器出發,學習Apache和Linux的基本知識,隨后引出動態網頁的基本原理,從CGI/Fast-CGI過渡到后來的ASP/PHP/ASPX/JSP等動態網頁技術,了解它們的發展歷史,演變程序和基礎的作業原理,
最后再學習一些Web開發中的基礎知識:表單的操作、Session/Cookie、JWT、LocalStorage等等,了解這些基本的術語都是什么意思,做什么用,解決了什么,
2、PHP編程
學習Web后端開發,得搭配學習一個后端開發語言才行,在這一小節,選擇從PHP入手,
不過要記住,這里選擇PHP不是讓你以后從事PHP的后端開發,也不是說PHP現在有多流行,而是特定歷史背景下,PHP相關的網站安全問題非常具有代表性,選擇這門語言更方便我們研究安全問題,
由于學習的目的不同,所以在學習方法上和普通的后端開發就有所不同了,在這里咱們學習一下語法基礎,基本的后端請求處理,資料庫訪問,然后再接觸一下常用的ThinkPHP框架即可,當然如果你有興趣,學的更深入當然更好,
3、計算機網路進階
第二階段需要再充實一下計算機網路的學習,這一次,重點把精力放在HTTP/HTTPS以及抓包分析之上,
Linux上的tcpdump必須掌握,包括常見的引數配置,然后重點學習Wireshark分析資料包,用Fiddler抓取分析加密的HTTPS流量,
通過在抓包軟體下查看通信流量,對計算機網路的認識從抽象變得具象,
4、加解密技術
接著,來了解一些網路安全領域內經常打交道的編解碼技術和加解密技術,包括base64編碼、對稱加密、非對稱加密、哈希技術等等,
了解它們基礎的概念、做什么用的,解決什么問題,最后再了解下作業原理,
推薦書籍:《加密與解密》
三、白銀時代
現在進入第三個階段——白銀時代,激動人心的時刻就要到來了,在這個階段,我們開始全面學習真正的網路安全技術了,前面兩個階段打下的基礎,在這個階段,也將派上用場,
這一階段需要學習的知識有:
?
1、Web安全入門
有了前面的Web前端和PHP編程的基礎,可以來正式學習Web安全了,Web安全領域內幾大典型的攻擊手法:SQL注入、XSS、CSRF、各種注入、SSRF、檔案上傳漏洞等等,每一個都需要詳細學習,一邊學習理論,一邊動手實踐,
千萬注意別拿互聯網上的網站來攻擊學習,這是違法的行為,自己可以在虛擬機中搭建一些包含漏洞的網站(網路上有很多可以下載來玩),拿自己建的網站練手,
2、網路掃描與注入
前面學習了一些Web安全的攻擊手法,但光有這些還不夠,當我們面對攻擊目標后,如何尋找攻擊點,獲取目標的資訊至關重要,
這些資訊包括:目標運行了什么作業系統,開放了哪些埠,運行了哪些服務,后端服務是什么型別,版本資訊是什么等等,有哪些漏洞可以利用,只有獲取到了這些資訊,才能有針對性的制定攻擊手段,拿下目標,
常見的網路資訊掃描包括埠掃描、網站后臺掃描、漏洞掃描等等,需要學習常用的掃描工具以及它們的作業原理,
3、資訊搜集 & 社會工程學
除了上面需要掃描的資訊,在網路安全中,經常還需要調研很多資訊,比如網站的注冊資訊、相關聯的人物、網站內部的內容檢索等等,這就需要學習掌握資訊搜集和社會工程學的相關技術,
whois資訊用來查詢域名資訊,shodan、zoomeye、fofa等網路空間搜索引擎檢索IP、域名、URL等背后的資訊,Google Hacking利用搜索引擎來檢索網站內部資訊,這些東西都是在網路資訊搜集中經常用到的技能,
4、暴力破解
在網路攻擊中,當掃描到目標開放的服務后,最直接的就是想要登錄進去,常見的服務有SSH、RDP、MySQL、Redis、Web表單等等,
這個時候,暴力破解通常會派上用場,通過使用各種服務常見用戶名密碼組成的字典,通程序式暴力破解,
常用的爆破工具有hydra、超級弱口令,另外還有一個mimikatz,常用來獲取Windows系統的密碼,
四、黃金時代
上一個階段,學習了一些安全攻擊技術,在這一個階段,需要學習一下安全防御和安全檢測技術,安全具有攻防兩面性,缺一不可,
?
1、WAF技術
首先要學習的就是WAF——Web應用防火墻,
Web安全學習的是通過Web技術攻擊計算機系統,WAF就是檢測和防御這些安全攻擊,正所謂知己知彼才能百戰百勝,作為攻方,要掌握WAF的作業原理,找到弱點繞過檢測,作為守方,需要不斷加強安全檢測和防御能力,有效的發現和抵御Web攻擊,
需要學習當下主流的WAF軟體所采用的架構比如openresty、modsecurity,以及主要的幾種檢測演算法:基于特征的、基于行為的、基于機器學習的等等,
2、網路協議攻擊 & 入侵檢測
WAF主要針對的是Web相關的安全攻擊,到這一小節,將視野進一步拓展到整個網路協議堆疊,TCP劫持、DNS劫持、DDoS攻擊、DNS隧道、ARP欺騙、ARP泛洪等等,需要掌握這些傳統經典攻擊手段的原理,搭建環境實踐,為后續的內網滲透打下基礎,
另外作為防守的一方,還需要學習通過網路流量分析技術來進行安全檢測,了解常用的網路分析技術,檢測框架,規則語法,對以后從事安全相關開發或安全防御作業進行儲備,
3、日志技術
通過日志來發現攻擊行為是一種最常見的行為,攻擊者的Web請求,系統登錄,暴力破解嘗試等等都會被系統各種軟體記錄在案,攻擊者得手后也經常會抹除相關的日志記錄,所以學習掌握這些日志,是攻防兩隊的人都需要學習的技能,
常見的日志有系統登錄日志(Windows、Linux)、Web服務器日志、資料庫日志等等,
4、Python編程
在這個階段,是時候來學習一些Python編程開發了,雖然網路安全不用經常做大量的工程開發,但掌味訓本的編程能力,可以用來撰寫爬蟲、資料處理、網路掃描工具、漏洞POC等等,都是非常有用的,而眾多編程語言中,Python無疑是最適合的,
5、瀏覽器安全
這個階段的最后一部分,來學習了解一些瀏覽器側的安全知識,夯實Web安全中與瀏覽器相關的漏洞攻擊,
需要重點掌握IE、Chrome兩款最主流的瀏覽器特性,瀏覽器的沙盒機制是什么,同源策略和跨域技術等等,
五、鉑金時代
1、第三方組件漏洞
前面Web安全相關的攻擊都是一些很多年的經典手法了,經過多年的發展已經相當成熟,相關的漏洞早已不如以前多,現在很多時候的攻擊,都是依靠各種各樣的第三方組件漏洞完成的,所以學習研究這些常見第三方組件的漏洞,一方面掌握這些攻擊手法用于實戰中使用,另一方面觸類旁通,對從事漏洞挖掘的作業也是非常有幫助的,
研究的物件主要涵蓋目前互聯網服務中實際使用的一些工程組件,比如Java技術堆疊系列Spring全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker等等,
?
2、內網滲透
網路滲透中,攻下一個點后,只是一個開始,攻入以后如何轉移,控制更多的節點,是內網滲透研究學習的范疇,典型的如當年的永恒之藍病毒,通過SMB協議漏洞,快速擴散傳播,造成了大面積的中招,
內網滲透中要學的東西既多且雜,難度要上升不少,但這是做網路滲透的非常重要的一塊兒,必須多啃一啃,這一部分理論較少,偏實戰性多一些,需要多搭建環境模擬學習,
3、作業系統安全技術 & 提權技術 & 虛擬化技術
通過web等手段滲透進入計算機后,由于各種限制原因,經常會有提權的需求,還會涉及到許多跟作業系統安全機制緊密相關的內容,所以學習一些作業系統的安全知識也是非常有必要的,
像Windows、Linux上各自的權限管理機制,提權方法和常用的漏洞,工具等等
最后,再學習一些虛擬化技術相關的知識,應對可能需要從虛擬機中逃逸的場景,
六、王者時代
1、CobalStrike & MetaSploit
學習使用這兩個神器,將大大提升攻擊效率,是網路滲透人員居家旅行必備之選!
2、其他安全技術拓展
到了網路滲透的后期階段,想成為一個安全高手,絕不只是固步自封在自己擅長的領域,需要多學習網路安全的其他領域,拓展自己的知識面,
比如二進制漏洞攻擊、逆向工程、木馬技術、內核安全、移動安全、側信道攻擊等等,當然在學習的時候,不用像專業方向的同學那么深入,但需要涉獵了解,豐富自己的知識面,構建全方位的網路安全知識技能堆疊,
以上就是我分享的網路安全學習路線了,希望對自學的你有一些啟發和幫助,同時我也整理了一套網路安全自學教程,需要的話可以評論區告訴我,

![]()
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499857.html
標籤:其他
上一篇:內網滲透學習(一)內網入門基礎
