一、網絡安全學習的誤區
1.不要試圖以程式設計為基礎去學習網絡安全
不要以程式設計為基礎再開始學習網絡安全,一般來說,學習程式設計不但學習周期長,且過渡到網絡安全用到程式設計的用到的程式設計的關鍵點不多。一般人如果想要把程式設計學好再開始學習網絡安全往往需要花費很長時間,容易半途而廢。建議在學習網絡安全的過程中,哪裡不會補哪裡,這樣更有目的性且耗時更少。學習程式設計能決定你能在網絡安全這條路上到底能走多遠,是以推薦大家自學一些基礎程式設計的知識
2.不要剛開始就深度學習網絡安全
學習講究這方法,需要一步一步的來,由淺至深,慢慢的加大難度,很多人剛開始就猛學,很容易到後面的時候乏力,越學可能就越學得枯燥,到最後就很容易放棄了。
3.收集适當的學習資料
網上有很多網絡安全的學習資料。而很多朋友都有“收集癖”,一下子很多書籍,收藏幾十個視訊,覺得學習資料越多越好,然而網上的學習資料重複性極高。建議選擇大衆受用的學習資料。
網絡安全(黑客)全套學習資料
4.适當的報班學習
很多人覺得報班就是浪費錢财,覺得自己自學就很好了,但其實自學也是需要一定的天賦和了解能力,且自學的周期較長,一些急躁的學習者或者急于找到工作的學習者,還是報班學的比較輕松,學習周期不長,學到的東西也不會少,建議學習者根據自己的自身條件選擇是否報班。
二、學習網絡安全的些許準備
1.硬體選擇
學習網絡安全不需要配置很高的電腦,黑客用的電腦,從來不是根據高配置選擇電腦,隻要穩定就行。因為黑客所使用的一些程式,低端 CPU 也可以很好的運作,而且不占什麼記憶體。黑客是在 DOS 指令下對進行的,電腦能使用到最佳狀态就可以了。
2.軟體選擇
很多人會糾結學習黑客到底是用 Linux 還是 Windows 或者是 Mac 系統,Linux 系統對于新人入門并不友好。Windows 系統一樣可以用虛拟機裝靶機進行學習,當然是根據學習者自己的感覺來選擇系統。
至于程式設計語言,Python、PHP、 C++、Java 都是可以的,學習程式設計隻是工具不是目的,我們的目标不是成為程式員,而是成為網絡安全員,程式設計隻是為了看懂程式。
3.外語能力
計算機最早誕生于賓西法利亞大學,很多名詞或者代碼都是英文,一個漏洞翻譯成中文需要一個星期的時間,在這個時間上漏洞可能都修補了。如果不了解一些專業名詞,在與其他黑客交流時也會有障礙,是以需要一定量的英文量和了解一些專業名詞。
三、網絡安全學習路線
第一階段:基礎操作入門
入門的第一步是學習一些當下主流的安全工具課程并配套基礎原理的書籍,一般來說這個過程在 1 個月左右比較合适。
在學習基礎入門課程的同時,同時閱讀相關的書籍補充理論知識,這裡比較推薦以下幾本書:
《白帽子講Web安全》
《Web安全慎獨剖析》
《Web安全攻防 滲透測試實戰指南》
第二階段:學習基礎知識
在這個階段,你已經對網絡安全有了基本的了解。如果你認真學習完第一步,什麼是 sql 注入,什麼是 xss 攻擊這些已經都明白了,對 burp、cs 等安全工具也掌握了基礎操作。這個時候最重要的就是開始打地基!所謂的“打地基”其實就是系統化的學習計算機基礎知識
第三階段:實戰操作
1.挖 SRC
挖 SRC 的目的主要是講技能落在實處,學習網絡安全最大的幻覺就是覺得自己什麼都懂了,但是到了真的挖漏洞的時候卻一籌莫展,更多的還是要進行實操,把理論知識運用到實踐中,確定更好的掌握知識點。
2.從技術分享帖學習
觀看學習近十年所有挖掘的帖,然後搭建環境,去複現漏洞,去思考學習筆者的挖洞思維,培養自己的滲透思維。
到這一步,再加上之後對挖掘漏洞的技術多加練習與積累實戰經驗,基本就可以達到安全工程師的級别
四、怎樣規劃網絡安全
如果你是一個安全行業新人,我建議你先從網絡安全或者Web安全/滲透測試這兩個方向先學起,一是市場需求量高,二則是發展相對成熟入門比較容易。
值得一提的是,學網絡安全,是先網絡後安全;學Web安全,也是先Web再有安全。
安全不是獨立存在的,而是建立在其他技術基礎之上的上層應用技術。脫離了這個基礎,就很容易變成紙上談兵,變成“知其然,不知其是以然”,在安全的職業道路上也很難走遠。
**如果你是原本從事網工運維,那麼可以選擇網絡安全方向入門;如果你原本從事程式開發,推薦選擇Web安全/滲透測試方向入門。**當然學到一定程度、或者有了一定工作經驗,不同方向的技術耦合會越來越高,各個方向都需要會一點。
根據以上網絡安全技能表不難看出,網絡安全需要接觸的技術還遠遠很多,常見的技能需要學習:外圍打點能力、釣魚遠控能力、域滲透能力、流量分析能力、漏洞挖掘能力、代碼審計能力等。
五、網絡安全的知識多而雜,怎麼科學合理安排?
一、基礎階段
★中華人民共和國網絡安全法 (包含18個知識點)
★Linux作業系統 (包含16個知識點)
★計算機網絡 (包含12個知識點)
★SHELL (包含14個知識點)
★HTML/CSS (包含44個知識點)
★JavaScript (包含41個知識點)
★PHP入門 (包含12個知識點)
★MySQL資料庫 (包含30個知識點)
★Python (包含18個知識點)
入門的第一步是系統化的學習計算機基礎知識,也就是學習以下這幾個基礎知識子產品:作業系統、協定/網絡、資料庫、開發語言、常用漏洞原理。前面的基礎知識學完之後,就要進行實操了。
因為網際網路與資訊化的普及網站系統對外的業務比較多,而且程式員的水準參差不齊和運維人員的配置事物,是以需要掌握的内容比較多。
二、滲透階段
■SQL注入的滲透與防禦(包含36個知識點)
■XSS相關滲透與防禦(包含12個知識點)
■上傳驗證滲透與防禦(包含16個知識點)
■|檔案包含滲透與防禦(包含12個知識點)
■CSRF滲透與防禦(包含7個知識點)
■SSRF滲透與防禦(包含6個知識點)
■XXE滲透與防禦(包含5個知識點)
■遠端代碼執行滲透與防禦(包含7個知識點)
■…(包含…個知識點)
掌握常見漏洞的原理、使用、防禦等知識。Web滲透階段還是需要掌握一些必要的工具。
主要要掌握的工具和平台:burp、AWVS、Appscan、Nessus、sqlmap、nmap、shodan、fofa、代理工具ssrs、hydra、medusa、airspoof等,以上工具的練習完全可以利用上面的開源靶場去練習,足夠了;
三、安全管理(提升)
★滲透報告編寫(包含21個知識點)
★等級保護2.0(包含50個知識點)
★應急響應(包含5個知識點)
★代碼審計(包含8個知識點)
★風險評估(包含11個知識點)
★安全巡檢(包含12個知識點)
★資料安全(包含25個知識點)
主要包括滲透報告編寫、網絡安全等級保護的定級、應急響應、代碼審計、風險評估、安全巡檢、資料安全、法律法規彙編等。
這一階段主要針對已經從事網絡安全相關工作需要提升進階成管理層的崗位。如果你隻學習參加工程師方面的崗位,這一階段可學可不學。
四、提升階段(提升)
■密碼學(包含34個知識點)
■JavaSE入門(包含92個知識點)
■C語言(包含140個知識點)
■C++語言(包含181個知識點)
■Windows逆向(包含46個知識點)
■CTF奪旗賽(包含36個知識點)
■Android逆向(包含40個知識點)
主要包括密碼學、JavaSE、C語言、C++、Windows逆向、CTF奪旗賽、Android逆向等。
主要針對已經從事網絡安全相關工作需要提升進階安全架構需要提升的知識。
結語
給小夥伴們的意見是想清楚,自學網絡安全沒有捷徑,相比而言系統的網絡安全是最節省成本的方式,因為能夠幫你節省大量的時間和精力成本。給自學的小夥伴們的意見是堅持住,既然已經走到這條路上,雖然前途看似困難重重,隻要咬牙堅持,最終會收到你想要的效果。
網絡安全(黑客)全套學習資料領取