我从2013年带队参加高职的信息安全管理与评估技能大赛开始接触信息安全,2015年在北京邮电大学信息安全中心访学一年,2016年下半年访学结束回校,开始专心带队参加各种比赛,2018年开始参与CTF比赛,一路走来,至今也有几个年头了。本文主要针对有志于学习信息安全技术的同窗,谈谈个人一些见解和建议。
当今时代,信息技术正在深入改变着整我的类社会,在信息技术中,我认为有几个最重要的发展方向:人工智能、大数据、云计算、物联网、信息安全。上至国家层面,这是国家在大力倡导和推进的核心产业,下至大学招生,这些都是近几年最热门的绿牌专业。在麦克斯发布的针对2017和2018届大学毕业生的就业薪资调查报告中,信息安全专业更是连续2年位居排行榜首位。
这点从我以前几届已经毕业的学生身上也能够获得印证。他们大都在北京工做,月薪也基本都在10K以上。因此学习信息安全,就业前景广,薪资待遇高,这点是毋庸置疑的。
但其实咱们能够再深刻思考一下。为何信息安全专业的待遇最高呢?这固然是由于这方面的人才比较短缺。那为何人才会短缺呢?我认为最主要的缘由,就是信息安全技术的学习难度很是大,涉及的知识面特别广,想学好信息安全真的是不容易。sql
做为一名常年带队参加比赛的指导教师,我目前最头疼的问题就是如何选拔出优秀队员。每一年新生入学我都会作大量宣传,也有很多同窗想加入咱们的团队,好比在今年的2019级新生中就招募了近100名同窗。但兵贵在精而不在多,这些同窗最终大多数是会被淘汰的。
对于这批新加入的同窗,我首先提出了三点要求,也就是要具有三个方面的能力:
自学能力
自控能力
代码编写能力
这三个能力我就不展开说明了,总之你能够在心里自我审视一下,若是你不具有这三个能力,那仍是别在这方面浪费时间了。
对于自信这方面没问题的同窗,接下来我安排了一个入门学习路径,主要是分为三关:安全
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的经常使用命令是这关的核心。ide
凡是参加过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安全(固然未来颇有多是二进制和逆向)。
在针对信息安全的招聘岗位中,最多的一类就是ShenTou测试工程师,这就是典型的Web安全方向,这个岗位的典型任职要求:工具
固然做为入门阶段,咱们没有必要也不可能掌握这么多内容,这一关我要求只要能掌握基本的SQL注入便可。
首先,要可以针对PHP+Mysql进行手工注入。
其次,要可以使用SQLMAP工具进行注入。
最后,要可以从PHP代码审计的角度来对SQL注入进行防护。
这关主要须要学习的课程是:
Web安全入门, https://edu.51cto.com/sd/45eb5
PHP代码审计(由于不可抗拒的缘由,这套课程目前已被下架,回头我会调整内容,从新录制新的课程)。学习
若是能最终经过这三关,那么就能够正式加入咱们的安全团队,同时你也具有了进一步学习信息安全的基本素质。接下来再如何学习,就能够结合我的兴趣来选择一个适合本身的主攻方向。
至于学习方法,我认为主要有两种:测试
SRC,也就是漏洞响应平台。这种学习方式属于实战型,就是在网上挖掘各个网站的漏洞,而后写成一篇详细的报告提交给SRC平台,这样既能够提升本身的技术,同时还能够得到不菲的奖励。但我不建议在校大学生采用这种学习方式,由于hacker和白帽只在一念之间,若是不当心越过了法律的红线,那可就得不偿失了。大数据
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比赛的难度很是大,尤为对于高职的学生,想要在一些全国性的重大比赛中拿到好成绩,几率几乎为零。但比赛只是促进咱们学习的一种方式,成绩倒在其次。另外,机会永远都是给有准备的人,只要自身能力到了,说不定何时就能够抓到机遇。
以上就是我的的一点浅见,欢迎你们提出不一样意见,很乐意与各位进行交流。编码