信息安全技術的學習路徑和方法

我從2013年帶隊參加高職的信息安全管理與評估技能大賽開始接觸信息安全,2015年在北京郵電大學信息安全中心訪學一年,2016年下半年訪學結束回校,開始專心帶隊參加各類比賽,2018年開始參與CTF比賽,一路走來,至今也有幾個年頭了。本文主要針對有志於學習信息安全技術的同學,談談我的一些看法和建議。
當今時代,信息技術正在深刻改變着整個人類社會,在信息技術中,我認爲有幾個最重要的發展方向:人工智能、大數據、雲計算、物聯網、信息安全。上至國家層面,這是國家在大力倡導和推動的核心產業,下至大學招生,這些都是近幾年最熱門的綠牌專業。在麥克斯發佈的針對2017和2018屆大學畢業生的就業薪資調查報告中,信息安全專業更是連續2年位居排行榜首位
信息安全技術的學習路徑和方法
信息安全技術的學習路徑和方法
這點從我之前幾屆已經畢業的學生身上也可以得到印證。他們大都在北京工作,月薪也基本都在10K以上。所以學習信息安全,就業前景廣,薪資待遇高,這點是毋庸置疑的。
但其實我們可以再深入思考一下。爲什麼信息安全專業的待遇最高呢?這當然是因爲這方面的人才比較短缺。那爲什麼人才會短缺呢?我認爲最主要的原因,就是信息安全技術的學習難度非常大,涉及的知識面特別廣,想學好信息安全真的是不容易。

學習信息安全的必備能力

作爲一名常年帶隊參加比賽的指導教師,我目前最頭疼的問題就是如何選拔出優秀隊員。每年新生入學我都會做大量宣傳,也有不少同學想加入我們的團隊,比如在今年的2019級新生中就招募了近100名同學。但兵貴在精而不在多,這些同學最終大多數是會被淘汰的。
對於這批新加入的同學,我首先提出了三點要求,也就是要具備三個方面的能力:
自學能力
自控能力
代碼編寫能力

這三個能力我就不展開說明了,總之你可以在內心自我審視一下,如果你不具備這三個能力,那還是別在這方面浪費時間了。
對於自信這方面沒問題的同學,接下來我安排了一個入門學習路徑,主要是分爲三關:

第一關,Linux

Linux系統現在太重要了,如果不會使用Linux,那麼不僅僅無法學習信息安全,其它諸如人工智能、大數據、雲計算、物聯網等也都無法學習,Linux是在這些專業領域繼續學習所必須要具備的基礎。但是Linux的學習曲線非常陡峭,尤其對於初學者很不友好,因爲在學習初期必須要記憶大量的命令。所以Linux被我放在入門第一關,如果過不了這關,那麼就及早收手,另尋其它適合自己的學習方向。但如果能過了這關,即使最終在其它關卡被卡住了,無法繼續學習信息安全,但這也給自己增加了一項非常重要的技能,以後要學習人工智能等領域也會比較輕鬆。
另外話又說回來,Linux其實也沒那麼難學,必須要掌握的常規命令也就50個左右,在入門階段,我們不必深入學習,只要能掌握一些基礎知識就好。具體來講,我準備了50幾講課程(每講時長10幾分鐘),只要學完這些課程並通過考覈,那麼Linux這入門第一關就算過了。這些課程是:
瞭解並安裝Linux系統(17講):
https://edu.51cto.com/sd/64978
Linux文件和目錄管理(29講):
https://edu.51cto.com/sd/8b646
Linux用戶和權限管理(前15講):
https://edu.51cto.com/sd/36ff3
在這一關的最後,我還將結合Kali和Metasploit來介紹一些比較基礎的緩衝區溢出漏洞。總之,能否記住並靈活使用Linux的常用命令是這關的核心。

第二關,Python

凡是參加過CTF比賽的同學都知道,如果不會Python,那麼在比賽中是寸步難行,但如果能夠精通Python,則會如虎添翼。
Python的精髓當然是它那豐富多彩的庫,但我認爲,掌握Python的一些核心語法知識也同樣重要,對列表、字符串這些對象的常用處理函數和方法,以及各種推導式和異常處理等,這些都是Python的獨門絕技。優雅、簡單、明確,我在學習Python的過程中,就常常對它那用短短一行代碼所能實現的強大功能而拍案叫絕。另外,Python目前實在是太火熱了,同Linux一樣,掌握了Python,即使最終學不成安全,那麼對自己學習其它領域也同樣會很有幫助。
網上Python的教程非常多,作爲初學者,一定注意不要選錯課程。有的Python課程是針對人工智能方向,有的是針對大數據方向,雖然都是Python,但學習的內容差別會非常大。我們要學習的Python,當然是針對信息安全方向。我的思路是結合信息編碼和古典密碼學的部分內容來講Python的基礎知識,具體也是有50幾講課程,其中第一套課程已經發布,第二套課程正在錄製編輯中:
Python基本語法(16講)
https://edu.51cto.com/sd/53aa7

第三關,Web安全

信息安全所涵蓋的領域太多了,如果讓我選一個最重要的領域,那麼目前來講,毫無疑問是Web安全(當然將來很有可能是二進制和逆向)。
在針對信息安全的招聘崗位中,最多的一類就是ShenTou測試工程師,這就是典型的Web安全方向,這個崗位的典型任職要求:
信息安全技術的學習路徑和方法

當然作爲入門階段,我們沒有必要也不可能掌握這麼多內容,這一關我要求只要能掌握基本的SQL注入即可。
首先,要能夠針對PHP+Mysql進行手工注入。
其次,要能夠使用SQLMAP工具進行注入。
最後,要能夠從PHP代碼審計的角度來對SQL注入進行防禦。

這關主要需要學習的課程是:
Web安全入門, https://edu.51cto.com/sd/45eb5
PHP代碼審計(因爲不可抗拒的原因,這套課程目前已被下架,回頭我會調整內容,重新錄製新的課程)。

如果能最終通過這三關,那麼就可以正式加入我們的安全團隊,同時你也具備了進一步學習信息安全的基本素質。接下來再如何學習,就可以結合個人興趣來選擇一個適合自己的主攻方向。
至於學習方法,我認爲主要有兩種:

1. SRC挖洞(實戰型)

SRC,也就是漏洞響應平臺。這種學習方式屬於實戰型,就是在網上挖掘各個網站的漏洞,然後寫成一篇詳細的報告提交給SRC平臺,這樣既可以提高自己的技術,同時還可以獲得不菲的獎勵。但我不建議在校大學生採用這種學習方式,因爲hacker和白帽只在一念之間,如果不小心越過了法律的紅線,那可就得不償失了。

2.CTF比賽(理論型)

CTF,也就是奪旗賽,這是目前信息安全領域最流行的比賽形式,也是我認爲最適合大學生的學習方式。這種學習方式主要就是做題,但是比賽題目幾乎涉及了計算機的所有領域,所以參加CTF比賽可以極大拓寬自己的知識面。
信息安全技術的學習路徑和方法

針對CTF比賽,目前我已經發布了3套入門課程:
HTTP協議,https://edu.51cto.com/sd/0ad83
字符編碼,https://edu.51cto.com/sd/53206
PHP函數漏洞,https://edu.51cto.com/sd/74a09
當然CTF比賽的難度非常大,尤其對於高職的學生,想要在一些全國性的重大比賽中拿到好成績,概率幾乎爲零。但比賽只是促進我們學習的一種方式,成績倒在其次。另外,機會永遠都是給有準備的人,只要自身能力到了,說不定什麼時候就可以抓到機遇。
以上就是個人的一點淺見,歡迎大家提出不同意見,很樂意與各位進行交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章