您的位置  > 互联网

网络安全有哪些方向,它们之间有什么关系和区别?

废话不多说,我们先看一张图,看看网络安全有哪些方向,它们之间有哪些关系和区别,以及各自需要了解哪些内容。

在这个技术类别圈中,岗位主要分为以下三个方向:

安全研发

安全研究:二元方向

安全研究:网络渗透方向

下面我们逐一解释一下。

第一方向:安全研发

你可以把网络安全想象成电商行业、教育行业等行业。 每个行业都有自己的软件研发,网络安全作为一个行业也不例外。 不同的是,这个行业的研发是开发和网络安全业务。 相关软件。

这样的话,安防行业也存在其他行业的共性职位,比如前端、后端、大数据分析等。不过,除了这样的通用开发职位之外,还有一些与之密切相关的研发职位到安全业务。

这种分类又可以进一步分为两个子类型:

开发安全产品并预防

做安全工具开发和攻击

防火墙、IDS、IPS

WAF(Web 应用程序防火墙)

数据库网关

NTA(网络流量分析)

SIEM(安全事件分析中心、态势感知)

大数据安全分析

EDR(终端设备上的安全软件)

DLP(数据泄露防护)

防毒软件

安全检测沙箱

综上所述,针对安全开发的产品大多是用于检测和抵御安全攻击,涉及终端侧(PC电脑、手机、网络设备等)和安全攻击。

开发这些产品所使用的技术主要是C/C++、Java、三大技术栈,还有少量的Rust。

安全研发岗位相比其他两个方向,对网络安全技术的要求较低(只是相对而言,部分产品的研发对安全技能的要求并不低)。 我什至看到很多公司的研发不顾安全。 知道。 既然如此,如果你除了基本的开发技能之外,还对网络安全技术有一定的了解,那么在面试这些职位的时候自然会加分不少。

第二个方向:二进制安全

二进制安全方向是安全领域两大技术方向之一。

该方向主要涉及软件漏洞挖掘、逆向工程、病毒木马分析等,并涉及操作系统内核分析、调试及反调试、防病毒等技术。 因为我们经常和二进制数据打交道,所以随着时间的推移,二进制安全就被统称为这个方向。

这个方向的特点是:需要耐得住孤独。

不如安全研发能够产生真正的产品输出,不如网络渗透方向那么酷。 这个方向花更多的时间去默默的分析和研究。

以漏洞挖掘为例,光是学习各种攻击技术就需要花费大量的时间。 在这个领域,研究一个问题可能需要数月甚至数年的时间,这绝对不是一般人能够坚持下来的。不仅如此,成功并不靠努力,更多的是靠天赋。

腾讯各大安全实验室负责人、业界知名TK领军人物吴石等人物,都已经了解了漏洞挖掘的秘密,并掌握了这项技能。 他们甚至可以在梦中想出新的游戏方式。 然而,这样的天才却是凤毛麟角,远远超出了一般人的能力范围。

如果程序员是勤奋的工作者,那么二进制安全研究就是艰苦的工作

第三个方向:网络渗透

这个方向比较符合大多数人对“黑客”的理解。 他们可以侵入手机、侵入计算机、侵入网站、侵入服务器、侵入内部网以及侵入一切。

相比二进制安全方向,该方向前期更容易上手。 你可以掌握一些基础技术,并使用各种现成的工具来开始黑客攻击。

然而,如果你想从一个脚本小子变成一名黑客高手,你朝着这个方向走得越远,你需要学习和掌握的东西就越多。

网络渗透的方向更加“实战”,因此对技术的广度有更高的要求,从网络硬件设备、网络通信协议、网络服务(Web、邮件、文件、数据库等),到操作系统,攻击你需要了解技巧等等。 他更倾向于成为一名能够整合各种技术进行“实战”的全能计算机专家。

现在我们来说一下学习路线。 内容有点长,大家可以先点赞,以免迷失,也能及时找回来。

在这个路线图中,一共划分了六个阶段,但这并不意味着你必须学会​​所有的阶段才能开始工作。 对于一些入门级职位来说,学习第三、第四阶段就足够了。

以下内容必须与上图结合才能看到最佳效果。 建议在浏览器中新建一个标签页,打开图片,一起看一下。 【高清版路线图】

1. 石器时代

第一阶段——石器时代,针对的是刚刚进入游戏的纯新手。 这个阶段主要是打基础。 需要学习的部分有五个:

1、

一些基本的命令、用法和简单的脚本编写,以及以后经常接触到的几个重要组件的使用:注册表、组策略管理器、任务管理器、事件查看器等。

另外,学习在上面搭建虚拟机,学习安装系统,为下一步学习Linux做好准备。

网络安全需要经常接触Linux。 我见过很多新人一上手就跟着一些培训课程学习Kali,学得一头雾水。连基本的Linux概念都没有建立起来就急着学Kali,就像还没学会走就先学跑、把车放了马前。

基础阶段主要以使用为主,学习文本编辑、文件、网络、权限、磁盘、用户等相关命令,对Linux有一个基本的了解。

2、计算机网络

网络安全和计算机网络绝对是非常重要的。 作为基础阶段,本节主要从宏观角度研究计算机网络,而不是拘泥于某个协议的某些字段的含义。

首先从局域网入手,了解计算机通信的基本网络——以太网。 局域网内通讯如何? 集线器和交换机有什么区别? MAC 地址、IP 地址、子网和子网掩码有何用途?

那么就引出了更大的广域网和互联网,什么是网络通信协议,以及通信协议的分层。 通过七层和四层模型,快速建立计算机网络的基本概念,每一层协议的作用,都有哪些协议,这些协议在当今的互联网中到底是如何使用的?

3. 网络基础知识

网络渗透的一个非常重要的组成部分是网络安全。 要学习Web安全,首先要从Web前端基础知识开始。

这一部分非常简单。 就是学习三种最原始的Web前端工具:HTML+CSS+JS的开发和使用,为以后学习Web相关安全知识打下基础。

这部分是比较实用的。 您需要进行更多的网络编程实践。 特别是,您需要熟悉它,了解Ajax是什么,并了解常用的库。 这些都是非常基础且常用于Web前端的。 内容。

4. 数据库基础知识

在基础阶段的最后一部分,你可以接触一些数据库的基础知识。

这个阶段主要学习一些理论知识,重点掌握库、表、索引等概念,然后学习写SQL,学习数据的增删改查。 暂时不需要编程来操作数据库。

2. 青铜时代

穿越了石器时代,你已经积累了一些计算机基础知识:操作系统的使用、网络协议、前端基础知识以及对数据库的初步了解。 然而,这还不足以做好网络安全。 在第二个青铜阶段,你还需要进一步学习基础知识,难度会开始慢慢上升到第一阶段之上。

这一阶段需要学习的知识有:

1. 网页进阶

在之前的石器时代,我们最初接触了网页编程,了解了网页的基本原理。 但当时是纯前端、纯静态网页,与后端没有任何联系。 在这个高级阶段,您必须开始接触 Web 后端的内容。

首先从常用的两种主流Web服务器开始学习Linux的基础知识,然后介绍动态网页的基本原理,从CGI/Fast-CGI过渡到后来的ASP/PHP/ASPX等动态网页技术/JSP,并了解它们的发展历史、演变过程和基本工作原理。

最后学习一些Web开发的基础知识:表单操作、/、JWT等,了解这些基础术语的含义、用途、解决什么问题。

2.PHP编程

要学习Web后端开发,就必须学习后端开发语言。 在本部分中,选择从 PHP 开始。

但记住,这里选择PHP并不代表你以后从事PHP后端开发,也不代表PHP现在有多流行,而是说在特定的历史背景下,PHP相关的网站安全问题是很有代表性的,所以选择这种语言更方便我们研究安全问题。

因为学习的目的不同,学习的方法也和普通的后端开发不同。 在这里我们学习语法基础知识、基本后端请求处理、数据库访问,然后接触常用框架。 当然,如果有兴趣的话,还是深入了解一下更好。

3、先进的计算机网络

第二阶段需要进一步丰富计算机网络学习。 这次的重点是HTTP/HTTPS和抓包分析。

必须掌握Linux,包括常用参数配置。 然后重点学习分析数据包,利用爬虫分析加密的HTTPS流量。

通过在数据包捕获软件下查看通信流量,对计算机网络的理解从抽象变为具体。

4、加解密技术

接下来我们来了解一下网络安全领域经常接触到的一些编解码技术和加解密技术。 包括编码、对称加密、非对称加密、哈希技术等。

了解它们的基本概念,它们是用来做什么的,它们解决什么问题,最后了解它们是如何工作的。

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

3.白银时代

现在进入第三阶段——白银时代,激动人心的时刻即将到来。 这个阶段,我们开始全面学习真正的网络安全技术。 前两个阶段打下的基础,也会在这个阶段发给我们。 有用。

这一阶段需要学习的知识有:

1.网络安全简介

有了之前Web前端和PHP编程的基础,就可以正式学习Web安全了。 Web安全领域有几种典型的攻击方式:SQL注入、XSS、CSRF、各种注入、SSRF、文件上传漏洞等,每一种都需要详细研究,边学边实践。

小心不要使用互联网上的网站来攻击你的学习。 这是非法的。 可以在虚拟机中搭建一些含有漏洞的网站(网上有很多可以下载玩),用自己搭建的网站进行练习。

2.网络扫描与注入

我们之前学习过一些网络安全攻击技术,但仅这些还不够。 当我们面对攻击目标时,如何找到攻击点并获取目标信息至关重要。

这些信息包括:目标运行的是什么操作系统、开放了哪些端口、运行了哪些服务、后端服务是什么类型、版本信息是什么等,以及可以利用哪些漏洞。 只有获得这些信息,我们才能针对目标制定有效的攻击手段并捕获目标。

常见的网络信息扫描包括端口扫描、网站后台扫描、漏洞扫描等,您需要了解常见的扫描工具及其工作原理。

3. 信息收集与社会工程

除了上面需要扫描的信息外,在网络安全中,往往还需要调查很多信息,比如网站注册信息、关联人、网站内内容检索等,这就需要学习和掌握相关知识。信息收集和社会工程技术。

Whois信息用于查询域名信息,网络空间搜索引擎如、、、fofa检索IP、域名、URL等背后的信息,利用搜索引擎检索网站内部信息。 这些都是网络信息收集中经常用到的技巧。 。

4.暴力破解

在网络攻击中,当扫描到目标开放服务时,最直接的就是登录。常见的服务包括SSH、RDP、MySQL、Redis、Web表单等。

这时候暴力破解通常就派上用场了,利用各种服务通用的用户名和密码组成的字典,通过程序进行暴力破解。

常用的爆破工具有Hydra、超弱密码,还有一种经常用来获取系统密码的工具。

4. 黄金时代

上一阶段我们学习了一些安全攻击技术。 这个阶段我们需要学习安全防御和安全检测技术。 安全有攻击端和防御端,两者缺一不可。

1.WAF技术

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

Web安全是通过Web技术对计算机系统进行攻击,WAF就是检测和防御这些安全攻击。 俗话说,知己知彼,方能百战百胜。 作为攻击者,必须掌握WAF的工作原理,找到漏洞来绕过检测。 作为防御者,需要不断加强安全检测和防御能力,才能有效发现和抵御Web攻击。

您需要学习当前主流WAF软件使用的架构,例如,,以及主要的检测算法:基于特征、基于行为、基于机器学习等。

2. 网络协议攻击与入侵检测

WAF主要针对Web相关的安全攻击。 本节我们将视野进一步拓展到整个网络协议栈,包括TCP劫持、DNS劫持、DDoS攻击、DNS隧道、ARP欺骗、ARP洪泛等,你需要掌握这些传统经典攻击手段的原理环境搭建的实践为后续内网渗透奠定了基础。

另外,作为防御方,还需要学习通过网络流量分析技术进行安全检测,了解常用的网络分析技术、检测框架、规则语法,为以后的安全相关开发或安全防御工作做好准备。

3.测井技术

通过日志检测攻击行为是最常见的行为。 攻击者的网页请求、系统登录、暴力破解尝试等都会被系统中的各种软件记录下来。 攻击者得手后往往会删除相关日志。 记录,所以学习掌握这些日志是进攻队和防守队都需要学习的技能。

常见的日志包括系统登录日志(Linux)、Web服务器日志、数据库日志等。

4. 编程

这个阶段,是时候学习一些编程开发了。 虽然网络安全不需要大量的工程开发,但是掌握基本的编程技能是非常有用的,可以用来编写爬虫、数据处理、网络扫描工具、漏洞POC等,在众多的编程语言中,无疑是最合适的。

5. 浏览器安全

这个阶段的最后一部分是学习一些浏览器端安全知识,巩固Web安全中浏览器相关的漏洞攻击。

需要重点掌握IE和两个最主流浏览器的特性,什么是浏览器的沙箱机制,同源策略和跨域技术等。

5. 白金时代 1. 第三方组件漏洞

以往的Web安全相关攻击都是沿用多年的经典技术。 经过多年的发展,已经相当成熟。 相关漏洞不再像以前那么多。 现在许多攻击都依赖于各种第三方组件的漏洞。 完成了,于是研究研究这些常见第三方组件的漏洞。 一方面掌握这些攻击方法以供实战使用,另一方面对于从事漏洞挖掘工作也很有帮助。

研究对象主要涵盖当前互联网服务中实际使用的一些工程组件,如Java技术栈系列全家桶、SSM、Redis、MySQL、Nginx等。

2、内网渗透

在网络渗透上,攻克一个点之后,还只是一个开始。 渗透后如何传输和控制更多的节点,是内网渗透研究和研究的范围。 典型的例子就是当年的永恒之蓝病毒,它通过SMB协议漏洞迅速传播,造成大面积感染。

内网渗透要学的东西很多而且复杂,难度也增加很多,但是这是网络渗透非常重要的一环,一定要多学。 这部分理论性较少,实践性较强。 需要更多的环境模拟学习。

3、操作系统安全技术&提权技术&虚拟化技术

通过Web等手段侵入计算机后,由于各种限制,往往需要进行权限升级,涉及到许多与操作系统安全机制密切相关的内容。 因此,学习一些操作系统的安全知识也是非常有必要的。 的。

例如Linux上各自的权限管理机制、提权方法以及常见的漏洞、工具等。

最后,学习一些虚拟化技术的知识,以应对可能需要逃离虚拟机的场景。

6. 列王纪元 1, &

学会使用这两个神器,将大大提高攻击效率,是网络渗透人员居家旅行的必备品!

2.其他安全技术的发展

在网络渗透的后期,如果你想成为一名安全专家,一定不能只拘泥于自己擅长的领域。 您需要更多地了解网络安全的其他领域并扩展您的知识。

比如二进制漏洞攻击、逆向工程、木马技术、内核安全、移动安全、侧通道攻击等。当然,学习的时候不需要像专业方向的学生那么深入,但你需要涉猎理解,丰富自己的知识,构建全面的网络安全知识和技能堆栈。

以上就是我分享的网络安全学习路线。 希望能给大家的自学带来一些启发和帮助。 同时,我还整理了一套网络安全自学教程。 如有需要可以关注并私信:321 自动获取