网络安全自学指南:从小白到大神的终极进化之路(内含超详细教程)

网络安全自学指南:从小白到大神的终极进化之路(内含超详细教程)

零基础入门:网络安全的奇妙冒险

话说之前我写了一堆关于网络安全技术的“小故事”,结果好多小伙伴都以为我是网络安全圈的“扫地僧”,天天微信上问我:

“萌新”刚入坑网络安全,该咋学?要学些啥?方向辣么多,我该往哪儿走?

图片

和Java、C/C++这些“正经”的后端开发岗位不一样,网络安全的学习之路基本靠自己“摸着石头过河”,要学的东西又多又杂,简直让人“头秃”。

我知道,经常看我文章的“老铁”们都懂,我平时都是用故事“包装”技术,很少聊职场或者面试这些“俗”的。毕竟,大家生活压力都够大了,节奏也快,我就想让大家来我这儿“放松一下”,所以尽量写点轻松有趣的。但是,既然这么多小伙伴都来问我职场和面试的事儿,那今天我就“破例”写一篇,给大家好好“唠唠”。

这几年,网络安全可是“火”得不行,国家都把它当成“战略”了,这块“蛋糕”也越来越大。除了那些老牌的安全公司,好多互联网“大佬”也纷纷“下场”,吸引了一大波“新鲜血液”。

网络安全的“分身术”

其实,网络安全只是一个“大Boss”的一部分,这个“大Boss”就是信息安全。不过,咱今天就不深究它们在学术上的“爱恨情仇”了。除非特别说明,咱就把网络安全和信息安全当成“一家人”,看看在实际工作中都有哪些“分身”。

图片

在这个“技术圈”里,工作岗位主要有三个“方向”:

  • 安全研发
  • 安全研究:二进制方向
  • 安全研究:网络渗透方向

下面咱就来“扒一扒”这三个方向。

安全研发:打造安全“堡垒”

安全行业的研发岗主要有两种:

  • 和安全业务关系不大的研发岗位
  • 和安全业务“亲密接触”的研发岗位

网络安全就像电商、教育这些行业一样,每个行业都需要自己的软件开发。网络安全作为一个“特种行业”,也有自己针对网络安全业务的软件开发需求。

既然这样,那其他行业常见的职位,在网络安全行业也能找到,比如前端开发、后端开发、大数据分析等等,这些都属于第一类,和网络安全业务关系不大。下面咱重点说说第二类,就是和网络安全业务“紧密相连”的研发职位。

这类职位又可以分成两个“小弟”:

  • 做安全产品开发,负责“防守”
  • 做安全工具开发,负责“进攻”

安全行业要研发的产品,主要(但不限于)有下面这些:

  • 防火墙、IDS、IPS

    :这些就像是网络世界的“门卫”,负责“盘查”进出的“可疑人员”。

  • WAF(Web网站应用防火墙)

    :专门保护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:多参加一些网络安全比赛,在接近实战的环境下锻炼“动手能力”。
  • 混圈子:多混一些安全“大佬”出没的社群、社区、论坛,掌握行业信息,了解最新的技术“风向标”

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值