隨著網(wǎng)絡(luò)安全被列為國家安全戰(zhàn)略的一部分,這個(gè)曾經(jīng)細(xì)分的領(lǐng)域發(fā)展提速了不少,除了一些傳統(tǒng)安全廠商以外,一些互聯(lián)網(wǎng)大廠也都紛紛加碼了在這一塊的投入,隨之而來的吸引了越來越多的新鮮血液不斷涌入。
不同于JAVA、C/C++等后端開發(fā)崗位有非常明晰的學(xué)習(xí)路線,網(wǎng)路安全更多是靠自己摸索,要學(xué)的東西又雜又多,難成體系。
網(wǎng)絡(luò)安全分支
其實(shí)在網(wǎng)絡(luò)安全這個(gè)概念之上,還有一個(gè)更大的概念:信息安全。
工作崗位主要有以下:
- 網(wǎng)絡(luò)安全工程師
- 信息安全工程師
- 風(fēng)險(xiǎn)評估工程師
- 應(yīng)急響應(yīng)工程師
- o系統(tǒng)集成工程師
- 等保測試工程師
- 安全運(yùn)維工程師
- 大數(shù)據(jù)安全工程師
- 安全研究員
- 滲透測試工程師
- 代碼審計(jì)工程師
- 安全研發(fā)
安全行業(yè)的研發(fā)崗主要有兩種分類:
- 與安全業(yè)務(wù)關(guān)系不大的研發(fā)崗位
- 與安全業(yè)務(wù)緊密相關(guān)的研發(fā)崗位
你可以把網(wǎng)絡(luò)安全理解成電商行業(yè)、教育行業(yè)等其他行業(yè)一樣,每個(gè)行業(yè)都有自己的軟件研發(fā),網(wǎng)絡(luò)安全作為一個(gè)行業(yè)也不例外,不同的是這個(gè)行業(yè)的研發(fā)就是開發(fā)與網(wǎng)絡(luò)安全業(yè)務(wù)相關(guān)的軟件。
既然如此,那其他行業(yè)通用的崗位在安全行業(yè)也是存在的,前端、后端、大數(shù)據(jù)分析等等,也就是屬于上面的第一個(gè)分類,與安全業(yè)務(wù)關(guān)系不大的類型。這里我們重點(diǎn)關(guān)注下第二種,與安全業(yè)務(wù)緊密相關(guān)的研發(fā)崗位。
這個(gè)分類下面又可以分為兩個(gè)子類型:
- 做安全產(chǎn)品開發(fā),做防
- 做安全工具開發(fā),做攻
安全行業(yè)要研發(fā)的產(chǎn)品,主要(但不限于)有下面這些:
- 防火墻、IDS、IPS
- WAF(Web網(wǎng)站應(yīng)用防火墻)
- 數(shù)據(jù)庫網(wǎng)關(guān)
- NTA(網(wǎng)絡(luò)流量分析)
- SIEM(安全事件分析中心、態(tài)勢感知)
- 大數(shù)據(jù)安全分析
- EDR(終端設(shè)備上的安全軟件)
- DLP(數(shù)據(jù)泄漏防護(hù))
- 殺毒軟件
- 安全檢測沙箱
開發(fā)這些產(chǎn)品用到的技術(shù)主要以C/C++、Java、Python三大技術(shù)棧為主,也有少部分的GoLang、Rust。
安全研發(fā)崗位,相對其他兩個(gè)方向,對網(wǎng)絡(luò)安全技術(shù)的要求要低一些(只是相對,部分產(chǎn)品的研發(fā)對安全技能要求并不低),甚至我見過不少公司的研發(fā)對安全一無所知。
在這種情況下,如果除了基本的開發(fā)功底以外,對網(wǎng)絡(luò)安全技術(shù)有所了解,自然會是你面試這些崗位時(shí)的加分項(xiàng)。
安全研發(fā)崗位,除了通用開發(fā)技能的要求以外,可以重點(diǎn)關(guān)注一下下面這些技術(shù):

上面列舉的只是最直接相關(guān)的部分,還需要有了解更多安全技術(shù)才能更好的開發(fā)產(chǎn)品,繼續(xù)往下看。
二進(jìn)制安全
二進(jìn)制安全方向,這是安全領(lǐng)域兩大技術(shù)方向之一。
這個(gè)方向主要涉及到軟件漏洞挖掘、逆向工程、病毒木馬分析等工作,涉及操作系統(tǒng)內(nèi)核分析、調(diào)試與反調(diào)試、反病毒等技術(shù)。
因?yàn)榻?jīng)常都是與二進(jìn)制的數(shù)據(jù)打交道,所以久而久之用二進(jìn)制安全來統(tǒng)稱這個(gè)方向。
這個(gè)方向的特點(diǎn)是:需要耐得住寂寞。
比不上安全研發(fā)可以有實(shí)實(shí)在在的產(chǎn)品輸出,也比不上網(wǎng)絡(luò)滲透方向聽起來的狂拽炫酷,這個(gè)方向更多時(shí)間是在默默的分析和研究。
以漏洞挖掘?yàn)槔馐菍W(xué)習(xí)五花八門的攻擊手法就需要花不少的時(shí)間。在這個(gè)領(lǐng)域,為了研究一個(gè)問題,可能花費(fèi)數(shù)月甚至數(shù)年時(shí)間,這絕非一般人能堅(jiān)持下來的。不僅如此,不是勤奮就可以成功,更多還要靠天分。
如果看了這些你還是有勇氣進(jìn)入這個(gè)領(lǐng)域,那下面這些東西是你需要學(xué)的:

這個(gè)方向比起安全研發(fā),不僅技術(shù)難度更大,提供這些崗位的公司也很少,且基本上分布于北上廣深幾個(gè)一線城市。
網(wǎng)絡(luò)滲透
這個(gè)方向更符合于大部分人對“黑客”的認(rèn)知,他們能夠黑手機(jī)、黑電腦、黑網(wǎng)站、黑服務(wù)器、黑內(nèi)網(wǎng),萬物皆可黑。
相比二進(jìn)制安全方向,這個(gè)方向初期更容易入門一些,掌握一些基本技術(shù),拿起各種現(xiàn)成的工具就可以開黑了。
不過,要想從腳本小子變成黑客大神,這個(gè)方向越往后,需要學(xué)習(xí)和掌握的東西就多了:

網(wǎng)絡(luò)滲透的方向更偏向于“實(shí)戰(zhàn)”,因此對技術(shù)在廣度上有更高的要求,從網(wǎng)絡(luò)硬件設(shè)備、網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)服務(wù)(web、郵件、文件、數(shù)據(jù)庫等)、到操作系統(tǒng)、攻擊手法等等都需要了解。更偏向于一個(gè)全能型的計(jì)算機(jī)專家,將各種技術(shù)融會貫通,以用于“實(shí)戰(zhàn)”。
網(wǎng)絡(luò)滲透方向的工作有下面幾個(gè)方向:
網(wǎng)絡(luò)滲透的方向更偏向于“實(shí)戰(zhàn)”,因此對技術(shù)在廣度上有更高的要求,從網(wǎng)絡(luò)硬件設(shè)備、網(wǎng)絡(luò)通信協(xié)議、網(wǎng)絡(luò)服務(wù)(web、郵件、文件、數(shù)據(jù)庫等)、到操作系統(tǒng)、攻擊手法等等都需要了解。更偏向于一個(gè)全能型的計(jì)算機(jī)專家,將各種技術(shù)融會貫通,以用于“實(shí)戰(zhàn)”。
網(wǎng)絡(luò)滲透方向的工作有下面幾個(gè)方向:
安全服務(wù),俗稱乙方,這是最主要的一個(gè)方向,為甲方公司提供安全能力支持,如滲透測試,產(chǎn)品安全檢測等。
安全能力建設(shè),俗稱甲方,國內(nèi)稍微有點(diǎn)規(guī)模的公司都有自己的SRC(安全應(yīng)急響應(yīng)中心),也就是有自己的安全團(tuán)隊(duì)。
國家隊(duì):你懂的
學(xué)習(xí)路線
上面說完了三個(gè)大的技術(shù)方向后,下面來聊聊該怎么入手呢?下面說說我的看法。
首先別想分方向,先打好基礎(chǔ)!
第一步:計(jì)算機(jī)基礎(chǔ)
這第一步,其實(shí)跟網(wǎng)絡(luò)安全關(guān)系都不太大,而是進(jìn)入IT領(lǐng)域的任何一個(gè)人都要掌握的基礎(chǔ)能力。
下面五大課程,是大學(xué)老師當(dāng)年教給我們不管你是什么技術(shù)方向最好都好好學(xué)的技術(shù),如今看來,仍然不過時(shí):
- 計(jì)算機(jī)網(wǎng)絡(luò)
- 計(jì)算機(jī)組成原理
- 操作系統(tǒng)
- 算法與數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)庫
這每一門課程其實(shí)都內(nèi)有乾坤,基本都不能做到一次學(xué)習(xí)就能掌握,而是伴隨每個(gè)人的職業(yè)生涯,不同的技術(shù)階段都會有不一樣的認(rèn)識和感受。
第二步:編程能力
有了上面的一些基本功后,這個(gè)時(shí)候就需要?jiǎng)邮郑瑏韺扅c(diǎn)代碼,錘煉一下編程的功底。
下面三項(xiàng),是安全行業(yè)的從業(yè)者都最好能掌握的語言:
- Shell腳本
掌握常用的linux命令,能編寫簡單的Shell腳本,處理一些簡單的事務(wù)。
- C語言(C++可選)
C語言沒有復(fù)雜的特性,是現(xiàn)代編程語言的祖師爺,適合編寫底層軟件,還能幫助你理解內(nèi)存、算法、操作系統(tǒng)等計(jì)算機(jī)知識,建議學(xué)一下。
- Python
C語言幫助你理解底層,Python則助你編寫網(wǎng)絡(luò)、爬蟲、數(shù)據(jù)處理、圖像處理等功能性的軟件。是程序員,尤其是黑客們非常鐘愛的編程語言,不得不學(xué)。
第三步:安全初體驗(yàn)
有了前面兩步的打底,是時(shí)候接觸一些網(wǎng)絡(luò)安全的技術(shù)了,剛剛開始這個(gè)階段,仍然不要把自己圈起來只學(xué)某一個(gè)方向的技術(shù)。這個(gè)階段,我的建議是:但當(dāng)涉獵,見往事耳。
網(wǎng)絡(luò)協(xié)議攻擊、Web服務(wù)攻擊、瀏覽器安全、漏洞攻擊、逆向破解、工具開發(fā)都去接觸一下,知道這是做什么的,在這個(gè)過程中去發(fā)現(xiàn)自己的興趣,讓自己對網(wǎng)絡(luò)安全各種領(lǐng)域的技術(shù)都有一個(gè)初步的認(rèn)識。
第四步:分方向
在第三步中,慢慢發(fā)現(xiàn)自己的興趣點(diǎn),是喜歡做各種工具的開發(fā),還是喜歡攻破網(wǎng)站,還是癡迷于主機(jī)電腦的攻擊···
這個(gè)時(shí)候就可以思考自己后面的方向,然后精力開始聚焦在這個(gè)方向上,通過上面思維導(dǎo)圖中各自方向的技術(shù)去持續(xù)深耕,成為某一個(gè)領(lǐng)域的大拿。
學(xué)習(xí)方法
上面介紹了技術(shù)分類和學(xué)習(xí)路線,這里來談一下學(xué)習(xí)方法
- 看書學(xué)習(xí),這是最最基礎(chǔ)的
- 實(shí)際動(dòng)手,開發(fā)路線需要多寫代碼,閱讀優(yōu)秀開源代碼,二進(jìn)制路線多分析樣本,編寫EXP等等,滲透測試多拿網(wǎng)站練手(合法方式)等
- 打CTF,多參與一些網(wǎng)絡(luò)安全比賽,接近實(shí)戰(zhàn)的環(huán)境下鍛煉動(dòng)手能力
- 混圈子,多混一些安全大牛出沒的社群、社區(qū)、論壇,掌握行業(yè)信息,了解最新技術(shù)變化趨勢(高清版思維導(dǎo)圖有)
經(jīng)過我的收集,我整理了網(wǎng)絡(luò)安全相關(guān)的學(xué)習(xí)資料有:
- Web安全學(xué)習(xí)視頻
- SRC漏洞匯總
- 網(wǎng)安必看書籍
- 全套工具包