一位在這條路上越走越穩當、越走越順的網路安全人士回答您這個問題。
我不清楚到底這麼走,我只知道哪一步該當機立斷、果斷前行,哪一步需要深思熟慮、小心謹慎。因為資訊保安是一個外行看熱鬧,覺得很神秘、很酷但是內行看門道、拼耐心和獨特的思維,需要敏銳的洞察力的領域。
如果你只是覺得它只是個很酷、很神秘,可以做到彈指間灰飛煙滅,那我建議你不要入這行。
因為入門的學習不會讓你覺得多酷的,只會讓你覺得多苦。如果你對這個專業沒有極大的興趣和耐心,你是沒有辦法沉下心來滿屏滿屏地在那些程式碼中尋找漏洞。更不可能在別人(本行業從事人員,我們的對手——網路管理人員)都沒有發現或者想到的地方有自己獨特的理解。是的,你沒有看錯,這條路註定是每一個孤獨(特指喜歡單獨思考的人)者的孤僻小道,我們沉浸在自己的孤芳自賞中。
如果你堅持看到了這裡,那說明你有一定機會和決心走這條路。那我就不多廢話了,我把我自己的經歷大概總結了一下,可以分三點。
這是最開始的步驟。你要想從事某些行業,你首先必須得了解它是什麼?怎麼用?如何實現?沒有它怎麼辦?還有沒有其他辦法?等等問題。說直白一點就是,資訊保安所謂的安全攻防就是漏洞的尋找與修補,而無論是漏洞的尋找還是修補,你必須要知道它的實現原理是什麼。這樣你才能捕捉到漏洞或者想辦法修補它。這裡具體說說有哪些你必須瞭解的基礎性東西:TCP-IP五層模型(物理層、資料鏈路層、網路層、傳輸層、應用層)、工作在這五層的網路協議或協議簇(http,https,ip,ftp,smtp,pptp,arp等等)、工作在這五層的網路硬體設施(交換機、網橋、路由器、防火牆)以及相關概念(埠,服務,閘道器,廣播,域,使用者許可權、檔案管理系統等等)。
這是進階的步驟。一個厲害的資訊(網路)安全領域的人,不僅僅要明白原理,更要知道怎麼去實現它或者說如何避開它執行的安全機制。而這就需要程式碼審計甚至是動手編寫,這樣你的能力才能更好地鍛鍊。一個僅僅會使用網路安全測試與資料滲透相關軟體(工具)的從業者只是一般從業者。透過審計開發人員編寫的程式碼,嘗試進行字串注入、資料庫注入、報錯注入、緩衝區溢位操作,這樣的成功率往往更高。這裡推薦學習和使用C#,C++,或者ruby語言,JAVA和python也可以。具體多深入就看你自己的興趣了。這裡我大概說一下,演算法漏洞一般不好利用,業務邏輯漏洞很多開發者都在所難免——因為他們不是本專業人員,更多追求開發的效率而忽視了安全。所以,演算法這些太過深入的內容看你自己的精力和興趣。
這便是這條路的末尾,只是少數真正地大神涉足這個境界。他們要麼是編寫了行業經常使用的工具,投身白帽事業,賺得盆滿缽滿;要麼是駭客大佬,現在不知道是在監獄還是在給國家安全部門打工。。。。。。
大概講講這一塊需要學習的東西,作業系統是肯定的,它的程序、執行緒、死鎖、開鎖,各種排程演算法都必須瞭解,甚至要自己開發符合要求的作業系統。彙編指令是必須要學的,至於ARM指令集這個看情況。
另外我推薦兩個線上自學軟體——非常適合喜歡自學的新人學習的軟體。中國大學MOOC和B站。中國大學MOOC是許多優質的中國大學提供的線上MOOC課,非常有體系(基本上每門課都安排了試驗課和隨堂作業)、有目的。而B站,著名軍事評論家、戰忽局局長張紹忠將軍稱之為沒有圍牆的大學。裡面也有很多適合初學者學習的課程,而且大多數老師講得很棒。
大概,這條路就是這樣咯。
一位在這條路上越走越穩當、越走越順的網路安全人士回答您這個問題。
我不清楚到底這麼走,我只知道哪一步該當機立斷、果斷前行,哪一步需要深思熟慮、小心謹慎。因為資訊保安是一個外行看熱鬧,覺得很神秘、很酷但是內行看門道、拼耐心和獨特的思維,需要敏銳的洞察力的領域。
如果你只是覺得它只是個很酷、很神秘,可以做到彈指間灰飛煙滅,那我建議你不要入這行。
因為入門的學習不會讓你覺得多酷的,只會讓你覺得多苦。如果你對這個專業沒有極大的興趣和耐心,你是沒有辦法沉下心來滿屏滿屏地在那些程式碼中尋找漏洞。更不可能在別人(本行業從事人員,我們的對手——網路管理人員)都沒有發現或者想到的地方有自己獨特的理解。是的,你沒有看錯,這條路註定是每一個孤獨(特指喜歡單獨思考的人)者的孤僻小道,我們沉浸在自己的孤芳自賞中。
如果你堅持看到了這裡,那說明你有一定機會和決心走這條路。那我就不多廢話了,我把我自己的經歷大概總結了一下,可以分三點。
1.夯實網路安全基礎,瞭解計算機網路與通訊的各種原理。(liunx作業系統的命令列或者windows的DOS(cmd.exe)是最基礎的。)這是最開始的步驟。你要想從事某些行業,你首先必須得了解它是什麼?怎麼用?如何實現?沒有它怎麼辦?還有沒有其他辦法?等等問題。說直白一點就是,資訊保安所謂的安全攻防就是漏洞的尋找與修補,而無論是漏洞的尋找還是修補,你必須要知道它的實現原理是什麼。這樣你才能捕捉到漏洞或者想辦法修補它。這裡具體說說有哪些你必須瞭解的基礎性東西:TCP-IP五層模型(物理層、資料鏈路層、網路層、傳輸層、應用層)、工作在這五層的網路協議或協議簇(http,https,ip,ftp,smtp,pptp,arp等等)、工作在這五層的網路硬體設施(交換機、網橋、路由器、防火牆)以及相關概念(埠,服務,閘道器,廣播,域,使用者許可權、檔案管理系統等等)。
2.具有閱讀高階程式語言,使用程式語言程式設計的能力。這是進階的步驟。一個厲害的資訊(網路)安全領域的人,不僅僅要明白原理,更要知道怎麼去實現它或者說如何避開它執行的安全機制。而這就需要程式碼審計甚至是動手編寫,這樣你的能力才能更好地鍛鍊。一個僅僅會使用網路安全測試與資料滲透相關軟體(工具)的從業者只是一般從業者。透過審計開發人員編寫的程式碼,嘗試進行字串注入、資料庫注入、報錯注入、緩衝區溢位操作,這樣的成功率往往更高。這裡推薦學習和使用C#,C++,或者ruby語言,JAVA和python也可以。具體多深入就看你自己的興趣了。這裡我大概說一下,演算法漏洞一般不好利用,業務邏輯漏洞很多開發者都在所難免——因為他們不是本專業人員,更多追求開發的效率而忽視了安全。所以,演算法這些太過深入的內容看你自己的精力和興趣。
3熟悉作業系統、熟練彙編助記碼,知道硬體的引數好壞、瞭解一定ARM(AMD)指令集,可以反編譯軟體,看得懂作業系統核心程式碼、能夠新增模組、設計程序排程演算法等等。這便是這條路的末尾,只是少數真正地大神涉足這個境界。他們要麼是編寫了行業經常使用的工具,投身白帽事業,賺得盆滿缽滿;要麼是駭客大佬,現在不知道是在監獄還是在給國家安全部門打工。。。。。。
大概講講這一塊需要學習的東西,作業系統是肯定的,它的程序、執行緒、死鎖、開鎖,各種排程演算法都必須瞭解,甚至要自己開發符合要求的作業系統。彙編指令是必須要學的,至於ARM指令集這個看情況。
另外我推薦兩個線上自學軟體——非常適合喜歡自學的新人學習的軟體。中國大學MOOC和B站。中國大學MOOC是許多優質的中國大學提供的線上MOOC課,非常有體系(基本上每門課都安排了試驗課和隨堂作業)、有目的。而B站,著名軍事評論家、戰忽局局長張紹忠將軍稱之為沒有圍牆的大學。裡面也有很多適合初學者學習的課程,而且大多數老師講得很棒。
大概,這條路就是這樣咯。