老實說,學習黑客攻防知識還是挺複雜的。
攻防?
明明林楓是要進攻,這裡怎麼涉及到“防”了。
雖然攻防不能說是一體的。
但了解攻擊當然得先知道防禦。
很多黑客其實本質上也是網絡安全專家。
可惜了,正邪之分,存乎一心。
想要更好的理解進攻,就得先學會防守。
而且是重頭學一遍,林楓先前掌握的那些防守技巧還不夠。
也正因此整個過程很複雜。
好吧,不是一般意義的複雜,而是非常之複雜。
你得懂得跟計算機和網路相關的很多細碎但基礎的知識。
要熟練掌握操作係統的工作原理及結構;
要熟悉tcpip協議和網絡協議棧;
要理解路由、交換、網絡拓撲背後的深層次奧秘;
要熟練掌握服務器和客戶端的通信機製;
要通曉基本的網絡安全知識……
而在密碼學方麵,你要掌握對稱加密和非對稱加密的基本原理和應用。
要能理解常見的加密算法(如aes、rsa等)。
準備跟比特幣打交道你還得熟悉哈希算法及其在數據完整性中的應用。
其次要了解數字簽名和證書體係的工作機製。
還要試著具備破解和繞過加密係統的能力。
此外呢,還得掌握python、javascript等常用編程語言。
要熟悉bash、poershell等腳本語言,自動化任務。
要能編寫各種網絡掃描、嗅探和注入腳本。
要理解漏洞並能編寫漏洞利用程序。
要熟悉多線程、並發編程,這樣才能提高攻擊效率。
此外漏洞分析和逆向工程能力也要強。
畢竟不是所有的漏洞都是現成的。
要有能使用調試器和分析工具排查程序漏洞的能力。
此外要熟悉常見的緩衝區溢出、sql注入等手段……
光是看到這一堆“要如何如何”林楓就覺得很麻煩。
相比於數學這些東西絕對算不上難。
但有些東西確實不難,但不等於不折磨人。
因為繁瑣。
想象一道分類討論題,要分一百種情況,每個情況再要細分1000個要點,每個要點還要再分幾個分支,每個分支還要……
那種感覺怎麼說呢無限套娃。
當你要在知識的汪洋大海裡遊泳,得知這個知識海還有好幾個“深淵”,每個“深淵”裡都充滿了看不見底的細節,而這些細節你又必須得全須全尾地了解。
當你得知這一切的時候,那時你的心情一定以及肯定將是無比的絕望。
而學習這些知識的過程就是一個拆解一個個深淵的過程。
這些知識太雜、太細、太碎。
越是接觸這一行,林楓就越是感覺這個方向的知識浩如煙海。
但偏偏每一步都不能夠忽略。
要走上這條道路,當然要搞懂計算機和網絡的基礎知識。
這裡“基礎”可不是“簡單”的意思,而是指很多平時甚至都讓人忽視的內容。
這類基礎是所有進階知識的根基。
操作係統就是計算機的“大腦”,而網絡是它的“手腳”。
了解它們,你才能知道每個“細胞”是如何“通話”的。
得深入理解操作係統的工作原理,比如進程管理、內存分配、文件係統……
這些聽上去就不好應付,但這些是基礎中的基礎。
因為每當你想要“突破”一個係統、進入這台設備的大腦中樞,起碼得先知道這個“大腦”在運行中做了哪些“自我保護”。
知道了它的保護,你才能在它的“守衛”盲區裡找到可趁之機。
網絡知識同樣重要,要成為一名優秀的網絡安全專家,你得熟悉tcpip協議。
這個協議堪稱網絡世界的“語言”,大部分網絡通信都依賴它。
想象一下,如果你進入一個國家,發現每個人都在用同一種語言交談,假如你也會這種語言,那麼溝通、獲取信息豈不更容易?
tcpip協議就是這樣的“共同語言”,你熟悉了這套共同語言,就可以在網絡世界自由“行走”,掌握彆人的通信方式。