如何入门网络安全_网络安全自学

由于我之前写了不少网络安全技能相关的故事文章,不少读者朋友知道我是从事网络安全相关的作业,于是常常有人在微信里问我:

我刚入门网络安全,该怎样学?要学哪些东西?有哪些方向?怎样选?

不同于Java、C/C++等后端开发岗位有十分明晰的学习道路,网路安全更多是靠自己探索,要学的东西又杂又多,难成体系。

如何入门网络安全_网络安全自学

常读我文章的朋友知道,我的文章根本以故事为载体的技能输出为主,很少去谈到职场、面试这些方面的内容。首要是考虑到现在大家的压力现已很大,节奏很快,公众号上是让大家放松的当地,尽量写一些轻快的内容。不过随着越来越多的人问我上面这些问题,今天就专门写一篇来摆一摆这个龙门阵。

近几年,随着网络安全被列为国家安全战略的一部分,这个曾经细分的范畴开展提速了不少,除了一些传统安全厂商以外,一些互联网大厂也都纷纷加码了在这一块的投入,随之而来的吸引了越来越多的新鲜血液不断涌入。

网络安全分支

其实在网络安全这个概念之上,还有一个更大的概念:信息安全。本文不去探讨二者在学术划分上的差异,如无特殊阐明,文中将其视为一个概念,咱们来看下实际作业方向上,有哪些细分道路。

如何入门网络安全_网络安全自学

在这个圈子技能类别中,作业岗位首要有以下三个方向:

  • 安全研制
  • 安全研讨:二进制方向
  • 安全研讨:网络浸透方向

下面逐个阐明一下。

安全研制

安全职业的研制岗首要有两种分类:

  • 与安全业务联系不大的研制岗位
  • 与安全业务严密相关的研制岗位

你可以把网络安全了解成电商职业、教育职业等其他职业一样,每个职业都有自己的软件研制,网络安全作为一个职业也不例外,不同的是这个职业的研制便是开发与网络安全业务相关的软件。

既然如此,那其他职业通用的岗位在安全职业也是存在的,前端、后端、大数据剖析等等,也便是属于上面的第一个分类,与安全业务联系不大的类型。这里咱们要点重视下第二种,与安全业务严密相关的研制岗位。

这个分类下面又可以分为两个子类型:

  • 做安全产品开发,做防
  • 做安全东西开发,做攻

安全职业要研制的产品,首要(但不限于)有下面这些:

  • 防火墙、IDS、IPS
  • WAF(Web网站应用防火墙)
  • 数据库网关
  • NTA(网络流量剖析)
  • SIEM(安全事件剖析中心、态势感知)
  • 大数据安全剖析
  • EDR(终端设备上的安全软件)
  • DLP(数据走漏防护)
  • 杀毒软件
  • 安全检测沙箱

总结一下,安全研制的产品大部分都是用于检测发现、抵御安全进犯用的,触及终端侧(PC电脑、手机、网络设备等)、网络侧。

开发这些产品用到的技能首要以C/C++、Java、Python三大技能栈为主,也有少部分的GoLang、Rust。

安全研制岗位,相对其他两个方向,对网络安全技能的要求要低一些(仅仅相对,部分产品的研制对安全技能要求并不低),乃至我见过不少公司的研制对安全一无所知。在这种情况下,假如除了根本的开发功底以外,对网络安全技能有所了解,自然会是你面试这些岗位时的加分项。

安全研制岗位,除了通用开发技能的要求以外,可以要点重视一下下面这些技能:

如何入门网络安全_网络安全自学

上面罗列的仅仅最直接相关的部分,还需求有了解更多安全技能才干更好的开发产品,持续往下看。

二进制安全

二进制安全方向,这是安全范畴两大技能方向之一。

这个方向首要触及到软件缝隙发掘、逆向工程、病毒木马剖析等作业,触及操作系统内核剖析、调试与反调试、反病毒等技能。由于常常都是与二进制的数据打交道,所以久而久之用二进制安全来总称这个方向。

这个方向的特点是:需求耐得住寂寞

比不上安全研制可以有实实在在的产品输出,也比不上网络浸透方向听起来的狂拽炫酷,这个方向更多时刻是在静静的剖析和研讨。

以缝隙发掘为例,光是学习形形色色的进犯方法就需求花不少的时刻。在这个范畴,为了研讨一个问题,可能花费数月乃至数年时刻,这绝非一般人能坚持下来的。不只如此,不是勤勉就可以成功,更多还要靠天资。

像腾讯几大安全实验室的掌门人,业界知名的TK教主、吴石这些人物,他们现已深谙缝隙发掘的奥义,并将这门绝技融会贯通,做个梦都能想到新的玩法。不过像这样的天才实在是少之又少,绝大多数人都无法企及。

假如说程序员是苦逼的话,那二进制安全研讨便是苦逼Plus。

假如看了这些你仍是有勇气进入这个范畴,那下面这些东西是你需求学的:

如何入门网络安全_网络安全自学

这个方向比起安全研制,不只技能难度更大,供给这些岗位的公司也很少,且根本上散布于北上广深几个一线城市。

网络浸透

这个方向更符合于大部分人对“黑客”的认知,他们可以黑手机、黑电脑、黑网站、黑服务器、黑内网,万物皆可黑。

相比二进制安全方向,这个方向初期更简单入门一些,把握一些根本技能,拿起各种现成的东西就可以开黑了。

不过,要想从脚本小子变成黑客大神,这个方向越往后,需求学习和把握的东西就多了:

如何入门网络安全_网络安全自学

网络浸透的方向更偏向于“实战”,因而对技能在广度上有更高的要求,从网络硬件设备、网络通信协议、网络服务(web、邮件、文件、数据库等)、到操作系统、进犯方法等等都需求了解。更偏向于一个全能型的计算机专家,将各种技能融会贯通,以用于“实战”。

网络浸透方向的作业有下面几个方向:

安全服务,俗称乙方,这是最首要的一个方向,为甲方公司供给安全才能支持,如浸透测验,产品安全检测等。 安全才能建造,俗称甲方,国内稍微有点规划的公司都有自己的SRC(安全应急响应中心),也便是有自己的安全团队。 国家队:你懂的

学习道路

上面说完了三个大的技能方向后,下面来聊聊该怎样上路呢?下面说说我的看法。

首先别想分方向,先打好根底!

第一步:计算机根底

这第一步,其实跟网络安全联系都不太大,而是进入IT范畴的任何一个人都要把握的根底才能。下面五大课程,是大学老师当年教给咱们不管你是什么技能方向最好都好好学的技能,如今看来,依然不过期:

  • 计算机网络
  • 计算机组成原理
  • 操作系统
  • 算法与数据结构
  • 数据库

这每一门课程其实都内有天地,根本都不能做到一次学习就能把握,而是伴随每个人的职业生涯,不同的技能阶段都会有不一样的知道和感受。

具体学起来主张参考敏捷开发,不断迭代:有一个粗略的知道->有了进一步的知道->完全把握->温故而知新。不用羁绊于把一门课程全部学完学懂才进入下一门课程。

第二步:编程才能

有了上面的一些根本功后,这个时分就需求着手,来写点代码,锤炼一下编程的功底。

下面三项,是安全职业的从业者都最好能把握的言语:

  • Shell脚本

把握常用的Linux指令,能编写简单的Shell脚本,处理一些简单的业务。

  • C言语(C++可选)

C言语没有复杂的特性,是现代编程言语的祖师爷,合适编写底层软件,还能协助你了解内存、算法、操作系统等计算机常识,主张学一下。

  • Python

C言语协助你了解底层,Python则助你编写网络、爬虫、数据处理、图画处理等功能性的软件。是程序员,尤其是黑客们十分钟爱的编程言语,不得不学。

第三步:安全初体验

有了前面两步的打底,是时分接触一些网络安全的技能了,刚刚开端这个阶段,依然不要把自己圈起来只学某一个方向的技能。这个阶段,我的主张是:但当涉猎,见往事耳

网络协议进犯、Web服务进犯、浏览器安全、缝隙进犯、逆向激活成功教程、东西开发都去接触一下,知道这是做什么的,在这个过程中去发现自己的爱好,让自己对网络安全各种范畴的技能都有一个开端的知道。

第四步:分方向

在第三步中,渐渐发现自己的爱好点,是喜欢做各种东西的开发,仍是喜欢攻破网站,仍是痴迷于主机电脑的进犯

这个时分就可以思考自己后边的方向,然后精力开端聚焦在这个方向上,通过上面思维导图中各自方向的技能去持续深耕,成为某一个范畴的大拿。

学习方法

上面介绍了技能分类和学习道路,这里来谈一下学习方法

  • 看书学习,这是最最根底的
  • 实际着手,开发道路需求多写代码,阅读优秀开源代码,二进制道路多剖析样本,编写EXP等等,浸透测验多拿网站练手(合法方式)等
  • 打CTF,多参与一些网络安全竞赛,接近实战的环境下训练着手才能
  • 混圈子,多混一些安全大牛出没的社群、社区、论坛,把握职业信息,了解最新技能变化趋势(高清版思维导图有)