網(wǎng)絡(luò)安全自學(xué)筆記+學(xué)習(xí)路線(超詳細)
01 什么是網(wǎng)絡(luò)安全
網(wǎng)絡(luò)安全可以基于攻擊和防御視角來分類,我們經(jīng)常聽到的 “紅隊”、“滲透測試” 等就是研究攻擊技術(shù),而“藍隊”、“安全運營”、“安全運維”則研究防御技術(shù)。
無論網(wǎng)絡(luò)、Web、移動、桌面、云等哪個領(lǐng)域,都有攻與防兩面性,例如 Web 安全技術(shù),既有 Web 滲透,也有 Web 防御技術(shù)(WAF)。作為一個合格的網(wǎng)絡(luò)安全工程師,應(yīng)該做到攻守兼?zhèn)洌吘怪褐?,才能百?zhàn)百勝。
02 怎樣規(guī)劃網(wǎng)絡(luò)安全
如果你是一個安全行業(yè)新人,我建議你先從網(wǎng)絡(luò)安全或者Web安全/滲透測試這兩個方向先學(xué)起,一是市場需求量高,二則是發(fā)展相對成熟入門比較容易。
值得一提的是,學(xué)網(wǎng)絡(luò)安全,是先網(wǎng)絡(luò)后安全;學(xué)Web安全,也是先Web再有安全。
安全不是獨立存在的,而是建立在其他技術(shù)基礎(chǔ)之上的上層應(yīng)用技術(shù)。脫離了這個基礎(chǔ),就很容易變成紙上談兵,變成“知其然,不知其所以然”,在安全的職業(yè)道路上也很難走遠。
**如果你是原本從事網(wǎng)工運維,那么可以選擇網(wǎng)絡(luò)安全方向入門;如果你原本從事程序開發(fā),推薦選擇Web安全/滲透測試方向入門。**當(dāng)然學(xué)到一定程度、或者有了一定工作經(jīng)驗,不同方向的技術(shù)耦合會越來越高,各個方向都需要會一點。

根據(jù)以上網(wǎng)絡(luò)安全技能表不難看出,網(wǎng)絡(luò)安全需要接觸的技術(shù)還遠遠很多,常見的技能需要學(xué)習(xí):外圍打點能力、釣魚遠控能力、域滲透能力、流量分析能力、漏洞挖掘能力、代碼審計能力等。
03網(wǎng)絡(luò)安全的知識多而雜,怎么科學(xué)合理安排?
一、基礎(chǔ)階段
★中華人民共和國網(wǎng)絡(luò)安全法 (包含18個知識點)
★L(fēng)inux操作系統(tǒng) (包含16個知識點)
★計算機網(wǎng)絡(luò) (包含12個知識點)
★SHELL (包含14個知識點)
★HTML/CSS (包含44個知識點)
★JavaScript (包含41個知識點)
★PHP入門 (包含12個知識點)
★MySQL數(shù)據(jù)庫 (包含30個知識點)
★Python (包含18個知識點)
————————————————

入門的第一步是系統(tǒng)化的學(xué)習(xí)計算機基礎(chǔ)知識,也就是學(xué)習(xí)以下這幾個基礎(chǔ)知識模塊:操作系統(tǒng)、協(xié)議/網(wǎng)絡(luò)、數(shù)據(jù)庫、開發(fā)語言、常用漏洞原理。前面的基礎(chǔ)知識學(xué)完之后,就要進行實操了。
因為互聯(lián)網(wǎng)與信息化的普及網(wǎng)站系統(tǒng)對外的業(yè)務(wù)比較多,而且程序員的水平參差不齊和運維人員的配置事物,所以需要掌握的內(nèi)容比較多。
————————————————
二、滲透階段
■SQL注入的滲透與防御(包含36個知識點)
■XSS相關(guān)滲透與防御(包含12個知識點)
■上傳驗證滲透與防御(包含16個知識點)
■|文件包含滲透與防御(包含12個知識點)
■CSRF滲透與防御(包含7個知識點)
■SSRF滲透與防御(包含6個知識點)
■XXE滲透與防御(包含5個知識點)
■遠程代碼執(zhí)行滲透與防御(包含7個知識點)
■…(包含…個知識點)
————————————————

掌握常見漏洞的原理、使用、防御等知識。Web滲透階段還是需要掌握一些必要的工具。
主要要掌握的工具和平臺:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的練習(xí)完全可以利用上面的開源靶場去練習(xí),足夠了;
————————————————
三、安全管理(提升)
★滲透報告編寫(包含21個知識點)
★等級保護2.0(包含50個知識點)
★應(yīng)急響應(yīng)(包含5個知識點)
★代碼審計(包含8個知識點)
★風(fēng)險評估(包含11個知識點)
★安全巡檢(包含12個知識點)
★數(shù)據(jù)安全(包含25個知識點)
————————————————

主要包括滲透報告編寫、網(wǎng)絡(luò)安全等級保護的定級、應(yīng)急響應(yīng)、代碼審計、風(fēng)險評估、安全巡檢、數(shù)據(jù)安全、法律法規(guī)匯編等。
這一階段主要針對已經(jīng)從事網(wǎng)絡(luò)安全相關(guān)工作需要提升進階成管理層的崗位。如果你只學(xué)習(xí)參加工程師方面的崗位,這一階段可學(xué)可不學(xué)。
四、提升階段(提升)
■密碼學(xué)(包含34個知識點)
■JavaSE入門(包含92個知識點)
■C語言(包含140個知識點)
■C++語言(包含181個知識點)
■Windows逆向(包含46個知識點)
■CTF奪旗賽(包含36個知識點)
■Android逆向(包含40個知識點)
————————————————

主要包括密碼學(xué)、JavaSE、C語言、C++、Windows逆向、CTF奪旗賽、Android逆向等。
主要針對已經(jīng)從事網(wǎng)絡(luò)安全相關(guān)工作需要提升進階安全架構(gòu)需要提升的知識。
1、Web安全相關(guān)概念(2周)
熟悉基本概念(SQL注入、上傳、XSS、CSRF、一句話木馬等)。
通過關(guān)鍵字(SQL注入、上傳、XSS、CSRF、一句話木馬等)進行Google/SecWiki;
閱讀《精通腳本黑客》,雖然很舊也有錯誤,但是入門還是可以的;
看一些滲透筆記/視頻,了解滲透實戰(zhàn)的整個過程,可以Google(滲透筆記、滲透過程、入侵過程等);
2、熟悉滲透相關(guān)工具(3周)
熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相關(guān)工具的使用。
了解該類工具的用途和使用場景,先用軟件名字Google/SecWiki;
下載無后門版的這些軟件進行安裝;
學(xué)習(xí)并進行使用,具體教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
待常用的這幾個軟件都學(xué)會了可以安裝音速啟動做一個滲透工具箱;
3、滲透實戰(zhàn)操作(5周)
掌握滲透的整個階段并能夠獨立滲透小型站點。
網(wǎng)上找滲透視頻看并思考其中的思路和原理,關(guān)鍵字(滲透、SQL注入視頻、文件上傳入侵、數(shù)據(jù)庫備份、dedecms漏洞利用等等);
自己找站點/搭建測試環(huán)境進行測試,記住請隱藏好你自己;
思考滲透主要分為幾個階段,每個階段需要做那些工作,例如這個:PTES滲透測試執(zhí)行標(biāo)準;
研究SQL注入的種類、注入原理、手動注入技巧;
研究文件上傳的原理,如何進行截斷、雙重后綴欺騙(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,參照:上傳攻擊框架;
研究XSS形成的原理和種類,具體學(xué)習(xí)方法可以Google/SecWiki,可以參考:XSS;
研究Windows/Linux提權(quán)的方法和具體使用,可以參考:提權(quán);
可以參考: 開源滲透測試脆弱系統(tǒng);
4、關(guān)注安全圈動態(tài)(1周)
關(guān)注安全圈的最新漏洞、安全事件與技術(shù)文章。
通過SecWiki瀏覽每日的安全技術(shù)文章/事件;
通過Weibo/twitter關(guān)注安全圈的從業(yè)人員(遇到大牛的關(guān)注或者好友果斷關(guān)注),天天抽時間刷一下;
通過feedly/鮮果訂閱國內(nèi)外安全技術(shù)博客(不要僅限于國內(nèi),平時多注意積累),沒有訂閱源的可以看一下SecWiki的聚合欄目;
養(yǎng)成習(xí)慣,每天主動提交安全技術(shù)文章鏈接到SecWiki進行積淀;
多關(guān)注下最新漏洞列表,推薦幾個:exploit-db、CVE中文庫、Wooyun等,遇到公開的漏洞都去實踐下。
關(guān)注國內(nèi)國際上的安全會議的議題或者錄像,推薦SecWiki-Conference。
5、熟悉Windows/Kali Linux(3周)
學(xué)習(xí)Windows/Kali Linux基本命令、常用工具;
熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;
熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
熟悉Kali Linux系統(tǒng)下的常用工具,可以參考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;
熟悉metasploit工具,可以參考SecWiki、《Metasploit滲透測試指南》。
6、服務(wù)器安全配置(3周)
學(xué)習(xí)服務(wù)器環(huán)境配置,并能通過思考發(fā)現(xiàn)配置存在的安全問題。
Windows2003/2008環(huán)境下的IIS配置,特別注意配置安全和運行權(quán)限,可以參考:SecWiki-配置;
Linux環(huán)境下的LAMP的安全配置,主要考慮運行權(quán)限、跨目錄、文件夾權(quán)限等,可以參考:SecWiki-配置;
遠程系統(tǒng)加固,限制用戶名和口令登陸,通過iptables限制端口;
配置軟件Waf加強系統(tǒng)安全,在服務(wù)器配置mod_security等系統(tǒng),參見SecWiki-ModSecurity;
通過Nessus軟件對配置環(huán)境進行安全檢測,發(fā)現(xiàn)未知安全威脅。
7、腳本編程學(xué)習(xí)(4周)
選擇腳本語言Perl/Python/PHP/Go/Java中的一種,對常用庫進行編程學(xué)習(xí)。
搭建開發(fā)環(huán)境和選擇IDE,PHP環(huán)境推薦Wamp和XAMPP,IDE強烈推薦Sublime,一些Sublime的技巧:SecWiki-Sublime;
Python編程學(xué)習(xí),學(xué)習(xí)內(nèi)容包含:語法、正則、文件、網(wǎng)絡(luò)、多線程等常用庫,推薦《Python核心編程》,不要看完;
用Python編寫漏洞的exp,然后寫一個簡單的網(wǎng)絡(luò)爬蟲,可參見SecWiki-爬蟲、視頻;
PHP基本語法學(xué)習(xí)并書寫一個簡單的博客系統(tǒng),參見《PHP與MySQL程序設(shè)計(第4版)》、視頻;
熟悉MVC架構(gòu),并試著學(xué)習(xí)一個PHP框架或者Python框架(可選);
了解Bootstrap的布局或者CSS,可以參考:SecWiki-Bootstrap;
8、源碼審計與漏洞分析(3周)
能獨立分析腳本源碼程序并發(fā)現(xiàn)安全問題。
熟悉源碼審計的動態(tài)和靜態(tài)方法,并知道如何去分析程序,參見SecWiki-審計;
從Wooyun上尋找開源程序的漏洞進行分析并試著自己分析;
了解Web漏洞的形成原因,然后通過關(guān)鍵字進行查找分析,參見SecWiki-代碼審計、高級PHP應(yīng)用程序漏洞審核技術(shù);
研究Web漏洞形成原理和如何從源碼層面避免該類漏洞,并整理成checklist。
9、安全體系設(shè)計與開發(fā)(5周)
能建立自己的安全體系,并能提出一些安全建議或者系統(tǒng)架構(gòu)。
開發(fā)一些實用的安全小工具并開源,體現(xiàn)個人實力;
建立自己的安全體系,對公司安全有自己的一些認識和見解;
提出或者加入大型安全系統(tǒng)的架構(gòu)或者開發(fā);
看自己發(fā)展咯~
最后
在整理好自己的知識框架,知道該怎么學(xué)習(xí)之后,下一步就是往框架里面填充內(nèi)容了。
此時我們的選擇也可以很多,比如CSDN,比如知乎,再比如B站,都有很多人在分享自己的學(xué)習(xí)資料,但我覺得這里存在的很大一個問題就是不連貫、不完善,大部分免費分享的教程,都是東一塊西一塊,前言不搭后語,學(xué)著學(xué)著就蒙了,這是我自學(xué)之后的親身感受。
如果你確實想自學(xué)的話,我可以把我自己整理收藏的這些教程分享給你,里面不僅有web安全,還有滲透測試等等內(nèi)容,包含電子書、面試題、pdf文檔、視頻以及相關(guān)的課件筆記,我都已經(jīng)學(xué)過了,可以評論區(qū)留言告訴我。



給小伙伴們的意見是想清楚,自學(xué)網(wǎng)絡(luò)安全沒有捷徑,相比而言系統(tǒng)的網(wǎng)絡(luò)安全是最節(jié)省成本的方式,因為能夠幫你節(jié)省大量的時間和精力成本。
給自學(xué)的小伙伴們的意見是堅持住,既然已經(jīng)走到這條路上,雖然前途看似困難重重,只要咬牙堅持,最終會收到你想要的效果。