写下这篇文章的初心就是为了单纯的技术分享,然后总结一下我学到的知识,把我的学习感受写下来记录一下这段堪比高考100天的日子。这里的技术内容可能会有点多,因为网络安全领域涉及的技术也很多,但会尽量用通俗易懂的语言来表达,让大家都能了解一些网络安全知识,不管从不从事这一行业,也希望能够唤醒大家的网络安全意识。
先来聊聊我为什么会选择培训,选择开始学习网络安全。
其实刚开始我也和很多人一样,仅仅是对黑客的好奇,只是觉得黑客很酷,可以躲在暗处,看着花花绿绿的屏幕,然后敲敲键盘,就能够攻进对方的系统或者平台!
他们的操作不是攻击、不是渗透,而是为了“爱和正义”
但是,真正的来到武汉安鸾,跟着杰哥一起学了网络安全之后发现,压根就不是我想象中的那回事。对于网络安全来说,面对的无非还是计算机知识、网络架构、数据库以及各种前后端代码,根本就没有那么酷,一切还是得从底层开始了解,开始学习,而且整个学习过程并不轻松,相反还是比较辛苦的。
但是我学了网络安全相关的知识之后发现,其实学习网络安全还有很多好处:
1、可以学习计算机方面的知识
在正式学习网络安全之前是一定要学习计算机基础知识的。只要把网络安全认真的学透了,那么计算机基础知识是没有任何问题的,操作系统、网络架构、网站容器、数据库、前端后端等等,可以说不想成为计算机方面的专家都难。
2、可以伪装成酷酷的黑客
学习网络安全之后就可以接触到一些比较强大,外行人“看不懂”的软件的操作系统,这些东西在外行人眼里都是非常炫酷的。比如在Linux系统里面,终端打开,黑框框里,一顿命令猛如虎,如果这时候你身边有外行的异性经过,那么绝对可以收获大量的崇拜目光。
3、可以得到一份不错的收入
网络安全从业人员的收入还是非常不错的,和很多其他行业比起来,还要远高于很多行业。如果想要转变发展领域,或者想增加一下自己的收入,可以考虑拿出一段时间来安心的学习网络安全知识。我自己就是这种情况,了解到了市场需求和岗位情况之后,果断转行。
随着国家信息化的发展,我国对于网络安全人才的需求量也大大增加,而现在一个科班出身的网络安全人才真的很难找。要不就是有的自称网络安全工程师侃侃而谈,一旦让他在Linux下配置,还真的未必能会配。所以,哪个甲方不愿意找一个懂得更多的人呢?
4、为了“爱和正义”
从事网络安全的工作,提升到情怀的层面来说,这项工作确实也是可以保护一方平安的,虽然对于网络安全的工作来说,没有消息就是最好的消息,确实网络安全的工作都是在幕后,但是幕后也有大英雄。就像《三体》里面的执剑者罗辑一样,当人们都习以为常,甚至不曾觉得他的存在,但是他的存在在保护着地球的平安,直到后来被圣母程心接棒以后,人们才感觉到了罗辑的重要性。幕后的英雄有合适的机会也会走到台前,接受鲜花和掌声。就像《孤勇者》的歌词里写的:谁说站在光里的才算英雄。如果没有一点点的情怀,没有热爱,学习网络安全,一定会产生枯燥的情绪。但我们要体会的是那种干了拯救地球的事情之后,还能表现出深藏功与名的淡然。
网络安全学什么?
1、网络安全法
网络并不是狂徒张三的法外之地,在学习网络安全技术之前,首先要学会如何在法律范围之内行事。在2017年6月1日,我国第一部网络安全法《中华人民共和国网络安全法》正式实施,我国网络安全管理迈入法治新阶段。所以,我们学习的第一课就是网络安全的普法课程。
所以,在法律的界限里,先要知道底线在哪里,以前没有网络安全法的时候,有些界限是模糊的,现在我们要严格在网络安全法的范围内活动,不然真的如江湖传言:网络安全,从入门到入狱;Kali学的好,局子进的早;渗透学得好,牢饭吃到饱。
2、黑客守则
听到黑客这个词,肯定觉得和犯罪沾边,但是现在的黑客并不是这样,千万不要觉得黑客是罪犯,其实“黑客”这个词语在刚出来的时候,就像内裤外穿的超人一样,是正义的化身,是一个褒义词。可是近几年,随着一些不讲武德的人占比越来越高,使得这个词语被无情丑化。我们学习网络安全的初心是正义和爱,这个是坚持100年甚至一直不动摇的初心使命,所以我们也要有一些规矩。
3、技术
阶段一:基础部分
Windows部分
基础命令、PowerShell的使用和简单脚本编写
组件:注册表、组策略管理器、任务管理器、事件查看器
另外,可以先学习一下怎么在Windows上搭建虚拟机,学会安装系统,为接下来学习Linux做准备
Linux部分
主要学习如何使用,学习文本编辑、文件、网络、权限、磁盘、用户等相关的命令,要建立一个Linux的基本认知。
这个阶段的误区就是小白很容易一上来就学Kali,连基本的概念都没懂,就去学习使用工具,属于典型的本末倒置。
计算机网络部分
从局域网出发,了解计算机通信的基本网络——以太网
局域网如何通信?
集线器、交换机之间的区别?
MAC地址、IP地址、子网、子网掩码的作用?
随后就要了解广域网、互联网,通过七层和四层模型快速建立起计算机网络的基础概念,各层协议的作用,分别有哪些协议,这些协议在当今的互联网中具体是怎么应用的。
Web基础部分
学习网络安全,就离不开web。Web安全是网络渗透中非常重要的一个组成部分。
掌握HTML+CSS+JS的开发使用
这一部分需要自己动手的会多一些,比如熟悉掌握Javascript、了解Ajax、学习JQuery
数据库基础部分
主要学习一些理论知识,重点掌握库、表、索引概念,学习SQL编写,学会增删改查数据
阶段二:进一步学习基础
Web进阶
学习Apache和Linux的基本知识
动态网页基本原理
CGI/Fast-CGI过渡到ASP/PHP/ASPX/JSP等动态网页技术,了解它们的发展历史,演变过程和基础的工作原理。
Web开发中的基础知识:表单的操作、Session/cookie、JWT、LocalStorage等等,了解这些基本的术语都是什么意思,做什么用,解决了什么。
PHP编程
选择PHP是因为它更放方便我们研究安全问题。
需要学习:语法基础,基本的后端请求处理,数据库访问,然后再接触一下常用的ThinkPHP框架
计算机网络进阶
HTTP/HTTPS以及抓包分析
inux上的tcpdump必须掌握,包括常见的参数配置
学习Wireshark分析数据包,用Fiddler抓取分析加密的HTTPS流量。
加解密技术
包括base64编码、对称加密、非对称加密、哈希技术等等。
阶段三:中级技术
W
eb安全入门
Web安全领域内几大典型的攻击手法:SQL注入、XSS、CSRF、各种注入、SSRF、文件上传漏洞等等,每一个都需要详细学习,一边学习理论,一边动手实践。
这里需要自己在虚拟机中搭建一些包含漏洞的网站,如果在互联网上的网站来攻击是会被请去喝茶的。
网络扫描与注入
学习如何寻找攻击点,获取目标信息
信息包括:目标运行了什么操作系统,开放了哪些端口,运行了哪些服务,后端服务是什么类型,版本信息是什么等等,有哪些漏洞可以利用,只有获取到了这些信息,才能有针对性的制定攻击手段,拿下目标。
需要学习常用的扫描工具以及它们的工作原理。
信息搜集与社会工程学
whois信息用来查询域名信息,shodan、zoomeye、fofa等网络空间搜索引擎检索IP、域名、URL等背后的信息,Google Hacking利用搜索引擎来检索网站内部信息,这些东西都是在网络信息搜集中经常用到的技能。
暴力破解
学习爆破工具hydra、超级弱口令、mimikatz
阶段四:安全防御和检测
WAF技术
需要学习web应用防火墙。掌握WAF工作原理,找到弱点绕过检测,或者加强安全检测和防御能力
需要学习当下主流的WAF软件所采用的架构比如openresty、modsecurity,以及主要的几种检测算法:基于特征的、基于行为的、基于机器学习的等等。
网络协议攻击 & 入侵检测
日志技术
系统登录日志、Web服务器日志、数据库日志等
Python编程
学习编程开发,编写爬虫、数据处理、网络扫描工具、漏洞POC等等
浏览器安全
需要重点掌握IE、Chrome两款最主流的浏览器特性,浏览器的沙盒机制是什么,同源策略和跨域技术等等。
阶段五:高级技术
第三方组件漏洞
学习目前互联网服务中实际使用的一些工程组件,比如Java技术栈系列Spring全家桶、SSM、Redis、MySQL、Nginx、Tomcat、Docker等等。
内网渗透
学习在渗透过程中如何转移,在攻下一个点之后,控制更多的节点。这个部分理论少,实战多,需要搭建靶场环境模拟学习
操作系统安全技术 & 提权技术 & 虚拟化技术
阶段六:成熟阶段
CobalStrike & metaSploit
通过这两个神奇可以对前面学习的信息扫描、漏洞攻击、内网渗透、木马植入、端口反弹等等各种技术进行综合运用,融会贯通。
其他安全技术拓展
到了网络渗透的后期阶段,想成为一个安全高手,绝不只是固步自封在自己擅长的领域,需要多学习网络安全的其他领域,拓展自己的知识面。
比如二进制漏洞攻击、逆向工程、木马技术、内核安全、移动安全、侧信道攻击等等,当然在学习的时候,不用像专业方向的同学那么深入,但需要涉猎了解,丰富自己的知识面,构建全方位的网路安全知识技能栈。
三、一些学习感悟
其实网络安全的知识都非常有趣,如果你能够认真学习,那么网络安全的很多知识点都会让你沉迷其中,学完之后大喊:好爽......原来电脑如此有趣。当然,学习任何东西刚开始都是不容易的,刚开始都是比较吃力的,特别是许久不怎么学习的同学,心理上是有点排斥,也很难进入学习状态。
但是遇到困难,进不去状态的时候不能放弃,因为学习其实就是自己和自己对抗的过程,用专业一点的解释来说,就是人类的大脑里面有个零件叫伏隔核,静不下心来学习就是这个东西在从中作梗,而我们每个人的脑中都有这样的东西。所以,每个人都会面临这样的困难,面对困难我们应该想办法解决。这里给大家一个小方法,对我来说比较有用,可以先欺骗自己,心里想着:就学习几分钟,几分钟之后就可以刷抖音刷番,还可以约上朋友一起喝着啤酒吃着烧烤。但是通常情况下,几分钟之后心就静下来了,就可以继续认真学习了。
其实我学习网络安全尝试过很多种方式,最开始就是自学。在这个过程中碰到的最大的问题就是不知道从何下手,通常情况下在网上找到的学习路线都是不完整或者过时的,而且就算找到了合适的学习路线大纲,找相关知识点的内容也比较麻烦。自学的时候我通常自嘲网络安全其实只需要学两点:这也要学、那也要学。由于内容过于冗杂,所以导致了学习的过程更加艰难。
但是这些问题后来都变成了一些小问题,因为我最终还是放弃了周期长的自学,选择培训。在培训学习期间,老师已经根据当下市场情况和企业用人需求以及我们的基本情况整理了非常完整的学习大纲。上面所说的难以进入学习状态的问题也引刃而解,大家在一个教室里面上课,在浓厚的学习氛围的烘托下,只会越学越带劲。
网络安全入门的时候也非常容易眼高手低,有些相关书籍看完之后觉得非常高大上,知道的理论也非常前沿,但是一旦开始动手操作就开始犯难。在Linux下手动配一个IP地址也不会......要么就是会一些基本操作,系统的网络安全知识框架还是零碎的,未组件的。
后来能够跟着老师学习,能够系统的学习网络安全知识,能够动手操作之后,这些困惑似乎也都不是什么大事了。不管是通过什么方式学习网络安全,不管以前有没有基础,都从头开始学习,一定是没错的。在学习的时候能够把知识更加科学合理的梳理一下,更能够巩固知识。