信息安全技术的学习路径和方法

我从2013年带队参加高职的信息安全管理与评估技能大赛开始接触信息安全,2015年在北京邮电大学信息安全中心访学一年,2016年下半年访学结束回校,开始专心带队参加各类比赛,2018年开始参与CTF比赛,一路走来,至今也有几个年头了。
当今时代,信息技术正在深刻改变着整个人类社会,在信息技术中,我认为有几个最重要的发展方向:人工智能、大数据、云计算、物联网、信息安全。上至国家层面,这是国家在大力倡导和推动的核心产业,下至大学招生,这些都是近几年最热门的绿牌专业。在麦克斯发布的针对2017和2018届大学生毕业生的就业薪资调查报告中,信息安全专业更是连续2年位居排行榜首位。
信息安全技术的学习路径和方法
信息安全技术的学习路径和方法
这点从我之前几届已经毕业的学生身上也可以得到印证。他们大都在北京工作,月薪也基本都在10K以上。所以学习信息安全,就业前景广,薪资待遇高,这点是毋庸置疑的。
但其实我们可以再深入思考一下。为什么信息安全专业的待遇最高呢?这当然是因为这方面的人才比较短缺。那为什么人才会短缺呢?我认为最主要的原因,就是信息安全技术的学习难度非常大,涉及的知识面特别广,想学好信息安全真的是不容易。
作为一名常年带队参加比赛的指导教师,我目前最头疼的问题就是如何选拔出优秀队员。每年新生入学我都会做大量宣传,也有不少同学想加入我们的团队,比如在今年的2019级新生中就招募了近100名同学。但兵贵在精而不在多,这些同学最终大多数是会被淘汰的。
对于这批新加入的同学,我首先提出了三点要求,也就是要具备三个方面的能力:
自学能力
自控能力
代码编写能力
这三个能力我就不展开说明了,总之你在内心自我审视一下,如果你不具备这三个能力,那还是别在这方面浪费时间了。
对于自信这方面没问题的同学,接下来我安排了一个入门学习路径,主要是分为三个关:

第一关,Linux

Linux系统现在太重要了,如果不会使用Linux,那么不仅仅无法学习信息安全,其它诸如人工智能、大数据、云计算、物联网等也都无法学习,Linux是在这些专业领域继续学习所必须要具备的基础。但是Linux的学习曲线非常陡峭,尤其对于初学者很不友好,因为在学习前期必须要记忆大量的命令。所以Linux被我放在入门第一关,如果过不了这关,那么就及早收手,另寻其它适合自己的学习方向。但如果能过了这关,即使最终在其它关卡被卡住了,无法继续学习信息安全,但这也给自己增加了一项非常重要的技能,以后要学习人工智能等领域也会比较轻松。
另外话又说回来,Linux其实也没那么难学,必须要掌握的常规命令也就50个左右,在入门阶段,我们不必深入学习,只要能掌握一些基础知识就行。具体来讲,我准备了50几讲课程,只要学完这些课程并通过考核,那么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安全(当然将来很有可能是二进制和逆向)。
在针对信息安全的招聘岗位中,最多的一类就是***测试工程师,这就是典型的Web安全方向,这个岗位的典型任职要求:
信息安全技术的学习路径和方法
当然作为入门阶段,我们没有必要也不可能掌握这么多内容,这一关我要求只要能掌握基本的SQL注入即可。
首先,要能够针对PHP+Mysql进行手工注入。
其次,要能够使用SQLMAP工具进行注入。
最后,要能够从PHP代码审计的角度来对SQL注入进行防御。
这关主要需要学习的课程是:
Web***测试https://edu.51cto.com/sd/45eb5
PHP代码审计(因为不可抗拒的原因,这套课程目前已被下架,回头我会调整内容,重新录制新的课程)。

如果能最终通过这三关,那么就可以正式加入我们的安全团队,同时你也具备了进一步学习信息安全的基本素质。接下来再如何学习,就可以结合个人兴趣来选择一个适合自己的主攻方向。
至于学习方法,我认为主要有两种:

1. SRC挖洞(实战型)

SRC,也就是漏洞响应平台。这种学习方式属于实战型,就是在网上挖掘各个网站的漏洞,然后写成一篇详细的报告提交给SRC平台,这样既可以提高自己的技术,同时还可以获得不菲的奖励。但我不建议在校大学生采用这种学习方式,因为***和白帽只在一念之间,如果不小心越过了法律的红线,那可就得不偿失了。

2.CTF比赛(理论型)

CTF,也就是夺旗赛,这是目前信息安全领域最流行的比赛形式,也是我认为最适合大学生的学习方式。这种学习方式主要就是做题,但是比赛题目几乎涉及了计算机的所有领域,所以参加CTF比赛可以极大拓宽自己的知识面。
信息安全技术的学习路径和方法

当然CTF比赛的难度非常大,尤其对于高职的学生,想要在一些全国性的重大比赛中拿到好成绩,概率几乎为零。但比赛只是促进我们学习的一种方式,成绩倒在其次。另外,机会永远都是给有准备的人的,只要自身能力到了,说不定什么时候就可以抓到机遇。
以上就是个人的一点浅见,欢迎大家提出不同意见,很乐意与各位进行交流。

猜你喜欢

转载自blog.51cto.com/yttitan/2444649
今日推荐