乐趣区

关于网络安全:网络安全的学习方向和路线是怎么样的

大家好,我是周杰伦!

最近有同学问我,网络安全的学习路线是怎么样的?

废话不多说,先上一张图镇楼,看看网络安全有哪些方向,它们之间有什么关系和区别,各自须要学习哪些货色。

在这个圈子技术门类中,工作岗位次要有以下三个方向:

平安研发
平安钻研:二进制方向
平安钻研:网络浸透方向

上面逐个阐明一下。

上面的卡片能够收费支付网络安全相干的学习材料,帮忙大家在学习的过程中少走弯路:

【你要的网络安全常识,戳这里!!!】

第一个方向:平安研发

你能够把网络安全了解成电商行业、教育行业等其余行业一样,每个行业都有本人的软件研发,网络安全作为一个行业也不例外,不同的是这个行业的研发就是开发与网络安全业务相干的软件。

既然如此,那其余行业通用的岗位在平安行业也是存在的,前端、后端、大数据分析等等,不过除了这类通用开发岗位,还有一部分与平安业务严密相干的研发岗位。

这个分类上面又能够分为两个子类型:

做平安产品开发,做防
做平安工具开发,做攻

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

总结一下,平安研发的产品大部分都是用于检测发现、抵挡平安攻打用的,波及终端侧(PC 电脑、手机、网络设备等)

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

平安研发岗位,绝对其余两个方向,对网络安全技术的要求要低一些(只是绝对,局部产品的研发对平安技能要求并不低),甚至我见过不少公司的研发对平安无所不知。在这种状况下,如果除了根本的开发功底以外,对网络安全技术有所理解,天然会是你面试这些岗位时的加分项。

第二个方向:二进制平安

二进制平安方向,这是平安畛域两大技术方向之一。

这个方向次要波及到软件破绽开掘、逆向工程、病毒木马剖析等工作,波及操作系统内核剖析、调试与反调试、反病毒等技术。因为常常都是与二进制的数据打交道,所以长此以往用二进制平安来统称这个方向。

这个方向的特点是:须要耐得住寂寞。

比不上平安研发能够有实实在在的产品输入,也比不上网络浸透方向听起来的狂拽炫酷,这个方向更多工夫是在默默的剖析和钻研。

以破绽开掘为例,光是学习形形色色的攻打手法就须要花不少的工夫。在这个畛域,为了钻研一个问题,可能破费数月甚至数年工夫,这绝非个别人能保持下来的。不仅如此,不是怠惰就能够胜利,更多还要靠天性。

像腾讯几大平安实验室的掌门人,业界出名的 TK 教主、吴石这些人物,他们曾经深谙破绽开掘的奥义,并将这门绝技死记硬背,做个梦都能想到新的玩法。不过像这样的蠢才切实是少之又少,绝大多数人都无奈企及。

如果说程序员是苦逼的话,那二进制平安钻研就是苦逼 Plus

第三个方向:网络浸透

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

相比二进制平安方向,这个方向初期更容易入门一些,把握一些根本技术,拿起各种现成的工具就能够开黑了。

不过,要想从脚本小子变成黑客大神,这个方向越往后,须要学习和把握的货色就多了。

网络浸透的方向更偏差于“实战”,因而对技术在广度上有更高的要求,从网络硬件设施、网络通信协定、网络服务(web、邮件、文件、数据库等)、到操作系统、攻打手法等等都须要理解。更偏差于一个全能型的计算机专家,将各种技术死记硬背,以用于“实战”。

上面开始说说学习路线的问题,内容有点长,能够先点个赞,这样不迷路及时找得回来哦。

学习路线

上面以网络浸透为例,看一下一个老手从零根底开始,要学哪些货色,以及具体的学习路线是什么?

先来一个大局图,从全局上整体把握:

图片有些大,上传后被压缩的厉害。想要获取高清图的敌人能够来这里:

肝了 7 天,超强的网络浸透学习路线图!

在这张图路线图中,一共划分了六个阶段,但并不是说你得学齐全部能力上手工作,对于一些高级岗位,学到第三四个阶段就足矣。

上面的内容,肯定要联合下面这张图看成果才最好,倡议在浏览器中新建一个 tab 页面,关上那张图,联合着看。

石器时代

第一个阶段——石器时代,针对的是纯老手小白刚刚入场。在这个阶段,次要是打基础,须要学习的有五局部内容:

Windows

Windows 上根底的一些命令、PowerShell 的应用和简略脚本编写,以及 Windows 当前常常会打交道的几个重要组件的应用:注册表、组策略管理器、工作管理器、事件查看器等。

除此之外,学习在 Windows 下面搭建虚拟机,学会装置零碎,为接下来学习 Linux 做筹备工作。

网络安全,必然要与 Linux 常常打交道,我看到很多新人一上来就跟着一些培训班学习 Kali,学的云里雾里的。连根本的 Linux 概念都没建设起来,就急着学 Kali,这属于还没学会走路就去学跑步,轻重倒置了。

在根底阶段,次要以应用为主,学习文本编辑、文件、网络、权限、磁盘、用户等相干的命令,对 Linux 有一个根本的认知。

计算机网络

网络安全,计算机网络必定是十分重要的存在。作为根底阶段,这一大节次要从宏观上学习计算机网络,而不是死扣某一个协定的某些字段意义。

首先从局域网登程,理解计算机通信的根本网络——以太网,局域网内是如何通信的?集线器、交换机有什么区别?MAC 地址、IP 地址、子网、子网掩码别离是做什么用的?

随后引出更大的广域网、互联网,什么是网络通信协定,通信协议分层的问题,通过七层和四层模型疾速建设起计算机网络的根底概念,各层协定的作用,别离有哪些协定,这些协定在当今的互联网中具体是怎么利用的。

Web 根底

网络浸透中十分重要的一个组成部分就是 Web 平安,要学习 Web 平安,得先从 Web 前端根底开始动手。

这一大节非常简单,就是学习最原始的 Web 前端三板斧:HTML+CSS+JS 的开发应用,为未来学习 Web 相干的平安常识打下基础。

这一大节是绝对偏理论入手多一些,须要本人多入手进行一些网页编程,尤其是 JavaScript 的相熟把握,理解 Ajax 是什么货色,罕用的 jQuery 库也学习一下,这都是 Web 前端中十分根底和罕用的内容。

数据库根底

根底阶段的最初一部分,能够来接触一些数据库的基础知识了。

这个阶段次要学一些理论知识,重点把握库、表、索引等概念,而后学习 SQL 的编写,学会增删改查数据。临时不必编程来操作数据库。

青铜时代

度过了石器时代,你曾经储备了一些计算机的基础知识:操作系统的应用,网络协议,前端根底,数据库初识,但这间隔做网络安全还不够,在第二个青铜阶段,你还须要再进一步学习根底,在第一阶段之上,难度会开始缓缓回升。

这一阶段须要学习的常识有:

Web 进阶

在后面的石器时代,咱们初步接触了网页编程,理解了网页的基本原理。不过那时候是纯前端的,纯动态的网页,没有接触后端。在这个进阶的阶段,你要开始接触 Web 后端的内容了。

首先从罕用的两大支流 Web 服务器登程,学习 Apache 和 Linux 的基本知识,随后引出动静网页的基本原理,从 CGI/Fast-CGI 过渡到起初的 ASP/PHP/ASPX/JSP 等动静网页技术,理解它们的倒退历史,演变过程和根底的工作原理。

最初再学习一些 Web 开发中的基础知识:表单的操作、Session/Cookie、JWT、LocalStorage 等等,理解这些根本的术语都是什么意思,做什么用,解决了什么。

PHP 编程

学习 Web 后端开发,得搭配学习一个后端开发语言才行。在这一大节,抉择从 PHP 动手。

不过要记住,这里抉择 PHP 不是让你当前从事 PHP 的后端开发,也不是说 PHP 当初有多风行,而是特定历史背景下,PHP 相干的网站平安问题十分具备代表性,抉择这门语言更不便咱们钻研平安问题。

因为学习的目标不同,所以在学习办法上和一般的后端开发就有所不同了。在这里咱们学习一下语法根底,根本的后端申请解决,数据库拜访,而后再接触一下罕用的 ThinkPHP 框架即可,当然如果你有趣味,学的更深刻当然更好。

计算机网络进阶

第二阶段须要再空虚一下计算机网络的学习。这一次,重点把精力放在 HTTP/HTTPS 以及抓包剖析之上。

Linux 上的 tcpdump 必须把握,包含常见的参数配置。而后重点学习 Wireshark 剖析数据包,用 Fiddler 抓取剖析加密的 HTTPS 流量。

通过在抓包软件下查看通信流量,对计算机网络的意识从形象变得具象。

加解密技术

接着,来理解一些网络安全畛域内常常打交道的编解码技术和加解密技术。包含 base64 编码、对称加密、非对称加密、哈希技术等等。

理解它们根底的概念、做什么用的,解决什么问题,最初再理解下工作原理。

举荐书籍:《加密与解密》

白银时代

当初进入第三个阶段——白银时代,激动人心的时刻就要到来了,在这个阶段,咱们开始全面学习真正的网络安全技术了,后面两个阶段打下的根底,在这个阶段,也将派上用场。

这一阶段须要学习的常识有:

Web 平安入门

有了后面的 Web 前端和 PHP 编程的根底,能够来正式学习 Web 平安了。Web 平安畛域内几大典型的攻打手法:SQL 注入、XSS、CSRF、各种注入、SSRF、文件上传破绽等等,每一个都须要具体学习,一边学习实践,一边入手实际。

千万留神别拿互联网上的网站来攻打学习,这是守法的行为。本人能够在虚拟机中搭建一些蕴含破绽的网站(网络上有很多能够下载来玩),拿本人建的网站练手。

网络扫描与注入

后面学习了一些 Web 平安的攻打手法,但光有这些还不够,当咱们面对攻打指标后,如何寻找攻击点,获取指标的信息至关重要。

这些信息包含:指标运行了什么操作系统,凋谢了哪些端口,运行了哪些服务,后端服务是什么类型,版本信息是什么等等,有哪些破绽能够利用,只有获取到了这些信息,能力有针对性的制订攻打伎俩,拿下指标。

常见的网络信息扫描包含端口扫描、网站后盾扫描、破绽扫描等等。须要学习罕用的扫描工具以及它们的工作原理。

信息收集 & 社会工程学

除了下面须要扫描的信息,在网络安全中,常常还须要调研很多信息,比方网站的注册信息、相关联的人物、网站外部的内容检索等等。这就须要学习把握信息收集和社会工程学的相干技术。

whois 信息用来查问域名信息,shodan、zoomeye、fofa 等网络空间搜索引擎检索 IP、域名、URL 等背地的信息,Google Hacking 利用搜索引擎来检索网站外部信息,这些货色都是在网络信息收集中常常用到的技能。

暴力破解

在网络攻击中,当扫描到指标凋谢的服务后,最间接的就是想要登录进去。常见的服务有 SSH、RDP、MySQL、Redis、Web 表单等等。

这个时候,暴力破解通常会派上用场,通过应用各种服务常见用户名明码组成的字典,通过程序暴力破解。

罕用的爆破工具有 hydra、超级弱口令,另外还有一个 mimikatz,罕用来获取 Windows 零碎的明码。

黄金时代

上一个阶段,学习了一些平安攻打技术,在这一个阶段,须要学习一下平安进攻和平安检测技术,平安具备攻防两面性,缺一不可。

WAF 技术

首先要学习的就是 WAF——Web 利用防火墙。

Web 平安学习的是通过 Web 技术攻打计算机系统,WAF 就是检测和进攻这些平安攻打。正所谓知己知彼能力屡战屡败,作为攻方,要把握 WAF 的工作原理,找到弱点绕过检测,作为守方,须要不断加强平安检测和防御能力,无效的发现和抵挡 Web 攻打。

须要学习当下支流的 WAF 软件所采纳的架构比方 openresty、modsecurity,以及次要的几种检测算法:基于特色的、基于行为的、基于机器学习的等等。

网络协议攻打 & 入侵检测

WAF 次要针对的是 Web 相干的平安攻打,到这一大节,将视线进一步拓展到整个网络协议栈,TCP 劫持、DNS 劫持、DDoS 攻打、DNS 隧道、ARP 坑骗、ARP 泛洪等等,须要把握这些传统经典攻打伎俩的原理,搭建环境实际,为后续的内网浸透打下基础。

另外作为防守的一方,还须要学习通过网络流量剖析技术来进行平安检测,理解罕用的网络分析技术,检测框架,规定语法,对当前从事平安相干开发或平安进攻工作进行储备。

日志技术

通过日志来发现攻击行为是一种最常见的行为,攻击者的 Web 申请,零碎登录,暴力破解尝试等等都会被零碎各种软件记录在案,攻击者得手后也常常会抹除相干的日志记录,所以学习把握这些日志,是攻防两队的人都须要学习的技能。

常见的日志有零碎登录日志(Windows、Linux)、Web 服务器日志、数据库日志等等。

Python 编程

在这个阶段,是时候来学习一些 Python 编程开发了。尽管网络安全不必常常做大量的工程开发,但把握根本的编程能力,能够用来编写爬虫、数据处理、网络扫描工具、破绽 POC 等等,都是十分有用的,而泛滥编程语言中,Python 无疑是最适宜的。

浏览器平安

这个阶段的最初一部分,来学习理解一些浏览器侧的平安常识,夯实 Web 平安中与浏览器相干的破绽攻打。

须要重点把握 IE、Chrome 两款最支流的浏览器个性,浏览器的沙盒机制是什么,同源策略和跨域技术等等。

铂金时代

第三方组件破绽

后面 Web 平安相干的攻打都是一些很多年的经典手法了,通过多年的倒退曾经相当成熟,相干的破绽早已不如以前多,当初很多时候的攻打,都是依附各种各样的第三方组件破绽实现的,所以学习钻研这些常见第三方组件的破绽,一方面把握这些攻打手法用于实战中应用,另一方面举一反三,对从事破绽开掘的工作也是十分有帮忙的。

钻研的对象次要涵盖目前互联网服务中理论应用的一些工程组件,比方 Java 技术栈系列 Spring 全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker 等等。

内网浸透

网络浸透中,攻下一个点后,只是一个开始,攻入当前如何转移,管制更多的节点,是内网浸透钻研学习的领域。典型的如当年的永恒之蓝病毒,通过 SMB 协定破绽,疾速扩散流传,造成了大面积的中招。

内网浸透中要学的货色既多且杂,难度要回升不少,但这是做网络浸透的十分重要的一块儿,必须多啃一啃。这一部分实践较少,偏实战性多一些,须要多搭建环境模拟学习。

操作系统平安技术 & 提权技术 & 虚拟化技术

通过 web 等伎俩浸透进入计算机后,因为各种限度起因,常常会有提权的需要,还会波及到许多跟操作系统平安机制严密相干的内容,所以学习一些操作系统的平安常识也是十分有必要的。

像 Windows、Linux 上各自的权限管理机制,提权办法和罕用的破绽,工具等等

最初,再学习一些虚拟化技术相干的常识,应答可能须要从虚拟机中逃逸的场景。

王者时代

CobalStrike & MetaSploit

学习应用这两个神器,将大大晋升攻打效率,是网络浸透人员居家旅行必备之选!

其余平安技术拓展

到了网络浸透的前期阶段,想成为一个平安高手,绝不只是固步自封在本人善于的畛域,须要多学习网络安全的其余畛域,拓展本人的知识面。

比方二进制破绽攻打、逆向工程、木马技术、内核平安、挪动平安、侧信道攻打等等,当然在学习的时候,不必像业余方向的同学那么深刻,但须要涉猎理解,丰盛本人的知识面,构建全方位的网路平安常识技能栈。

以上就是我分享的网络安全学习路线了,心愿对自学的你有一些启发和帮忙。

新入行的敌人自学不容易,我也是这样一路走过去的,在这个过程中收集整理了不少学习材料,外面有:

1、很多曾经买不到的绝版电子书
2、平安大厂外部的培训资料
3、国内外顶级平安大会的演讲 PPT
4、顶级平安钻研团队公布的钻研论文
5、各大顶级平安论坛精华帖

当初收费分享给自学的你,如果感到有所帮忙,欢送帮忙给俺点个赞哦~

【点我收费支付!!!】

罗马不是一日建成的,精雕细琢才会把罗马建设得更丑陋!目前市面上,网络安全可学习内容较少,不像开发语言等那么宽泛,倡议大家也能够多去关注一些视频、论坛、文章及书籍等做好入门,万事开头难,有什么问题能够多多发问。

退出移动版