目录
网络安全的前景如何,其实大家都知道,但是想入行其实很大程度还是兴趣。
“兴趣是最好的老师”这句话并不泛泛,但捕捉和保护孩子兴趣的那个人更为重要。作为一个学习者的心思很多时候稍纵即逝,也不稳定。能把一种兴趣稳定下来并变成了解某一种领域的巨大动力,兴趣才具备了作为起点的真正意义。
迷茫不知所措的人可以仔细阅读完来解一解惑。想30天零基础入门网络安全,这些你一定要搞清楚。
一、学习网络安全容易造成的误区
1、把编程当作目的,忽略了它的工具职能
我和身边每个学习网安的人都说过:千万不要抱着“以编程为目的,再开始学习网络安全”的心态。
由于网络安全行业的特殊性,零基础就想把编程学好耗费的时间太长,会导致向安全过渡后可用的关键东西并不多。程序员是程序员,网络安全工程师是网络安全工程师,不能混为一谈。学习网络安全,太重视语言,那就有点本末倒置了,在网络安全行业,对安全问题原理的理解和分析的重要性是远远大于学习语言。
学习网络安全的过程中,要有目的的学习,哪里不会补哪里,达到更精准的学习目的。
2、学习过猛,没有计划
学习网络安全当然是要稳扎稳打,很多人都知道,但是真正开始学时就用力过猛,恨不得把所有东西都学进去,却导致了囫囵吞枣。在自学时,不太建议大面积泛学,而是要找到定位和精准的学习方向,不然那很容易半途而废。
二、学习网络安全的基本准备与条件
1、语言知识
网络安全的范围很广,具体学什么语言要看自己的方向。如果你选择的是web安全方向,你需要学php,jsp,javascipt等,如果你选择的是二进制方向,你需要学习汇编,C,C++等,但是有一门语言在安全领域是通用的,那就是Python,因为很多时候都需要使用Python来快速实现原型。
2、英语基础与专业名词
计算机发明者源于西方,所以计算机语言基本都是英文,一些相关的教程最初也是英文原版,并且会用到一些相关的专业名词,所以学习网络安全,需要一定量的英文和黑客专业名词,这样在与其他同行交流技术时,不至于出现“沟通障碍”。
有一些初学者,到现在都还不知道“肉鸡”是什么意思,这能看懂技术交流贴吗?
三、网络安全学习路线
第一步:计算机基础
这第一步,其实跟网络安全关系都不太大,而是进入 IT 领域的任何一个人都要掌握的基础能力。下面五大课程,是大学老师当年教给我们的,不管你是什么技术方向最好都好好学的技术,如今看来,仍然不过时:
- 计算机网络
- 计算机组成原理
- 操作系统
- 算法与数据结构
- 数据
这每一门课程其实都内有乾坤,基本都不能做到一次学习就能掌握,而是伴随每个人的职业生涯,不同的技术阶段都会有不一样的认识和感受。具体学起来建议参考敏捷开发,不断迭代:有一个粗略的认识**->有了进一步的认识->彻底掌握->温故而知新。**不用纠缠于把一门课程全部学完学懂才进入下一门课程。
第二步:编程能力
有了上面的一些基本功后,这个时候就需要动手,来写点代码,锤炼一下编程的功底。下面三项,是安全行业的从业者都最好能掌握的语言:
- Shell 脚本:掌握常用的 Linux 命令,能编写简单的 Shell 脚本,处理一些简单的事务。
- C 语言(C++可选):C 语言没有复杂的特性,是现代编程语言的祖师爷,适合编写底层软件,还能帮助你理解内存、算法、操作系统等计算机知识,建议学一下。
- Python:C 语言帮助你理解底层,Python 则助你编写网络、爬虫、数据处理、图像处理等功能性的软件。是程序员,尤其是黑客们非常钟爱的编程语言,不得不学。
第三步:安全初体验
有了前面两步的打底,是时候接触一些网络安全的技术了,刚刚开始这个阶段,仍然不要把自己圈起来只学某一个方向的技术。这个阶段,我的建议是:但当涉猎,见往事耳。网络协议攻击、Web 服务攻击、浏览器安全、漏洞攻击、逆向破解、工具开发都去接触一下,知道这是做什么的,在这个过程中去发现自己的兴趣,让自己对网络安全各种领域的技术都有一个初步的认识。
第四步:分方向
在第三步中,慢慢发现自己的兴趣点,是喜欢做各种工具的开发,还是喜欢攻破网站,还是痴迷于主机电脑的攻击···这个时候就可以思考自己后面的方向,然后精力开始聚焦在这个方向上,通过上面思维导图中各自方向的技术去持续深耕,成为某一个领域的大拿。
怎么入门?
我们落到具体的技术点上来,网络安全学习路线,整体学习时间大概半年左右,具体视每个人的情况而定。
如果你把每周要学的内容精细化到这种程度,你还会担心学不会,入不了门吗,其实说到底就是学了两个月,但都是东学一下,西学一下,什么内容都是浅尝辄止,没有深入进去,所以才会有学了2个月,入不了门这种感受。
1、Web安全相关概念(2周)
- 熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等);
- 通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;
- 阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;
- 看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);
2、熟悉渗透相关工具(3周)
- 熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用;
- 了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;
- 下载无后门版的这些软件进行安装;
- 学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
- 待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;
3、渗透实战操作(5周)
掌握渗透的整个阶段并能够独立渗透小型站点。 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
- 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
- 思考渗透主要分为几个阶段,每个阶段需要做那些工作;
- 研究SQL注入的种类、注入原理、手动注入技巧;
- 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等;
- 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki;
- 研究Windows/Linux提权的方法和具体使用;
4、关注安全圈动态(1周)
- 关注安全圈的最新漏洞、安全事件与技术文章;
- 通过SecWiki浏览每日的安全技术文章/事件;
- 通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;
- 通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;
- 养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;
- 多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。
- 关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference;
5、熟悉Windows/Kali Linux(3周)
- 学习Windows/Kali Linux基本命令、常用工具;
- 熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill
- 等;
- 熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
- 熟悉Kali Linux系统下的常用工具,可以参考SecWiki《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;
- 熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》;
6、服务器安全配置(3周)
- 学习服务器环境配置,并能通过思考发现配置存在的安全问题;
- Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,;
- Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等;
- 远程系统加固,限制用户名和口令登陆,通过iptables限制端口;
- 配置软件Waf加强系统安全,在服务器配置mod_security等系统;
- 通过Nessus软件对配置环境进行安全检测,发现未知安全威胁;
7、脚本编程学习(4周)
- 选择脚本语言
- Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习;
- 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
- Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;
- 用Python编写漏洞的exp,然后写一个简单的网络爬虫;
- PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;
- 熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);
- 了解Bootstrap的布局或者CSS;
8、源码审计与漏洞分析(3周)
- 能独立分析脚本源码程序并发现安全问题。
- 熟悉源码审计的动态和静态方法,并知道如何去分析程序;
- 从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;
- 了解Web漏洞的形成原因,然后通过关键字进行查找分析;
- 研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。
9、安全体系设计与开发(5周)
- 能建立自己的安全体系,并能提出一些安全建议或者系统架构。
- 开发一些实用的安全小工具并开源,体现个人实力;
- 建立自己的安全体系,对公司安全有自己的一些认识和见解;
- 提出或者加入大型安全系统的架构或者开发;
四、明确目标,定位以后的方向
学习网络安全,目标的明确是极其重要的,因为它的岗位很多,方向也不一样。有的人只是想打CTF比赛,而有的是为了找到好岗位。网络安全传统的安全岗位就包含了:安全产品工程师、安全咨询师、渗透测试工程师、安全开发工程师、安全运维工程师、应急响应工程师、等级保护测评师,这还不包括其他小众岗位。目标不同,路线与规划自然是不一样的。
谈谈自学网络安全的缺点
很多对网络安全感兴趣的小白,或有一定经验的it从业人员在刚开始时,都是选择自己自学一段时间,但是毫无例外的,最后却都放弃了自学,选择了网络安全培训机构。
那么这是为什么呢?究其原因是因为网络安全自学缺点太多,比不了网络安全培训机构来的有效。
网络完全这一行3大特殊性:专业细分多、技术性强、实操性强。网络安全不适合纸上谈兵,自学说白就是徒劳。当然自律性强、天赋极高的另说。
网络安全自学的缺点:
1、难接触到真实的网络对抗环境来实操,电信级的产品和设备那更不用想;
2、学的知识片面化,没有专业的教程来配套企业化,在就业上依旧迷茫。
3、遇到不懂的地方没有指导,漏掉太多细节。
4、没有好的氛围共同成长。
所以最后建议,如果你想学习网络安全,一定不要盲目的自学,如果只是想简单的入门了解网络安全,自学没有问题,如果想深入的学习,建议选择一个好的网络安全培训机构。
我下面也给大家整理了一些网络安全的资料,大家不想一个一个去找的话,可以参考一下这些资料哈
这份完整版的网安学习资料已经上传,朋友们如果需要可以微信扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】