自学网络安全:学习误区、路线规划与资源推荐
一、自学网络安全学习的误区和陷阱
1. 不要试图先成为一名程序员再开始学习
学习编程周期长,且向安全过渡后可用到的关键知识并不多。一般人想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少。
2. 不要把深度学习作为入门第一课
很多人冲着要把网络安全学好学扎实,于是用力过猛,陷入误区:把所有内容都进行深度学习。把深度学习作为网络安全第一课不是好主意。原因如下:
- 深度学习的黑箱性更加明显,很容易学的囫囵吞枣。
- 深度学习对自身要求高,不适合自学,很容易走进死胡同。
3. 不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄几个 G。很多朋友有'收集癖',一下子购买十几本书,或者收藏几十个视频。网上的学习资料很多重复性极高,而且大多数的内容还是几年前没有更新。在入门期间建议'小而精'的选择材料。
二、学习网络安全的一些前期准备
1. 硬件选择
学习网络安全不需要配置很高的电脑,只要稳定就行。黑客所使用的程序,低端 CPU 也可以很好地运行,而且不占什么内存。另外,黑客是在 DOS 命令下进行的,所以电脑能使用到最佳状态。不要打着学习的名义重新购买机器。
2. 软件选择
纠结用 Linux 还是 Windows 或者是 Mac 系统。Linux 虽然看着很酷炫,但是对于新人入门并不友好。Windows 系统一样可以用虚拟机装靶机来进行学习。 至于编程语言,首推 Python,因为其良好的拓展支持性。当然现在市面上很多网站都是 PHP 开发的,所以选择 PHP 也是可以的。其他语言还包括 C++、Java 等。 是否需要学习所有的语言?答案是否定的!学习编程只是工具不是目的。但学习编程虽然不能带你入门,却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识。
3. 语言能力
计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的。一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍。所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)。 例如:肉鸡、挂马、shell、WebShell 等等。
三、网络安全学习路线
第一阶段:基础操作入门,学习基础知识
入门的第一步是学习一些当下主流的安全工具课程并配套基础原理的书籍,一般来说这个过程在 1 个月左右比较合适。 在这个阶段,你已经对网络安全有了基本的了解。如果你学完了第一步,相信你已经在理论上明白了什么是 SQL 注入,什么是 XSS 攻击,对 Burp、MSF、CS 等安全工具也掌握了基础操作。这个时候最重要的就是开始打地基! 所谓的'打地基'其实就是系统化的学习计算机基础知识。而想要学习好网络安全,首先要具备 5 个基础知识模块:
- 操作系统
- 协议/网络
- 数据库
- 开发语言
- 常见漏洞原理
学习这些基础知识有什么用呢? 计算机各领域的知识水平决定你渗透水平的上限。
- 编程水平高,在代码审计的时候就会比别人强,写出的漏洞利用工具就会比别人的好用;
- 数据库知识水平高,在进行 SQL 注入攻击的时候,就可以写出更多更好的 SQL 注入语句,能绕过别人绕不过的 WAF;
- 网络水平高,在内网渗透的时候就可以比别人更容易了解目标的网络架构,拿到一张网络拓扑就能知道自己在哪个部位,拿到一个路由器的配置文件,就知道人家做了哪些路由;
- 操作系统玩得好,提权就更加强,信息收集效率就会更加高,可以高效筛选出想要得到的信息。
第二阶段:实战操作
- 挖 SRC:挖 SRC 的目的主要是将技能落在实处。学习网络安全最大的幻觉就是觉得自己什么都懂了,但是到了真的挖漏洞的时候却一筹莫展,而 SRC 是一个非常好的技能应用机会。
- 从技术分享帖学习:观看学习近十年所有 0day 挖掘的帖,然后搭建环境,去复现漏洞,去思考学习笔者的挖洞思维,培养自己的渗透思维。
- 靶场练习:自己搭建靶场或者去免费的靶场网站练习,有条件的话可以去购买或者报靠谱的培训机构,一般就有配套的靶场练习。


