1.网络安全为什么缺人?
缺人的原因是有了新的需求。
以前的时候,所有企业是以产品为核心的,管你有啥漏洞,管你用户信息泄露不泄露,我只要做出来的产品火爆就行。
这一切随着《网络安全法》、《数据安全法》、《网络安全审查办法》等一系列有关网络安全的法律法规出台戛然而止,上到国家下到个人都开始重视网络安全,你看最近的国家对滴滴进行网络安全审查就引发的大家的强烈关注就能感受到。
按照新的网络安全法律法规要求,你的企业出了网络安全问题,不仅要处罚企业,还要连带处罚企业负责人,甚至入刑。你想想哪个老板知道了这个问题的严重性能坐的住?
所以就产生了网络安全人员缺口。
2.缺什么样的人?
(知乎找的图片,来源见图片水印)
**A.**大部分企业需要懂常规安全防护的人。具体需求是能至少确保企业的门户网站不出漏洞,能确保企业内部信息不发生外泄,能确保不被相关部门追责。这里说的企业指的是有一定规模的且信息化需求的企业,不包括小作坊、小加工厂之类的。
**B.**提供互联网产品的企业需要懂研发安全的人。由于以前大环境原因,大部分研发人员都没有涉及网络安全方面的知识,导致了目前懂研发的不懂安全,懂安全的不懂研发,这里的懂不是指一点不懂,而是指不完全懂。虽然这种情况正在逐渐改善,但是仍然是该类企业面临的极大困境。
**C.**提供互联网服务的企业需要懂业务安全的人。个人私认为业务安全其实才是最难的地方,因为这和研发安全还不一样。毕竟研发人员是有一定网络与信息知识的,和网络安全有很多相通的地方,很多地方—点即通。而业务安全需要对业务流程非常熟悉,然而大部分对业务非常熟悉的人都是业务骨干,一般没有太多精力深入学习网络安全,这也导致了很多业务逻辑漏洞的发生。
**D.**规模很大的企业(如大型国企、跨国企业)需要懂网络安全溯源 Q 与应急处置的人。这类企业往往信息资产众多、网络架构复杂,需要专门的部门对企业内部进行管控巡查,同时发现问题后进行溯源和处置。
**E.**网络安全产品°和服务提供商需要的才是我们所说的懂攻防的网络安全人员。要想要甲方爸爸给你项目给你资金,网络安全产品和服务提供商就需要证明自己的实力,证明实力最好的办法就是纳“投名状 Q”,投名状就是你挖掘漏洞的服务能力和你的产品的防护能力。
我上面所列只是大体分类,不能涵盖所有情况,而且所列每种类型的企业需求不是单独的,仅仅是侧重方向的需求。比如一个跨国互联网公司,他们需要懂常规安全防护的人、需要懂研发安全的人、需要懂业务安全的人、需要溯源与处置的人等等。。
3.安全人员缺口解决途径
根据上面的内容我们逐条分析。
**A.**懂常规安全防护的人:一般企业都会由信息化部门自行解决,这个时候企业信息化部门就会根据成本和需求考虑到底有没有必要单独招—个搞安全的。毕竟很多常规安全防护,一般的信息化运维人员就能自行解决,比如打补丁、关闭高危端口 Q、修改弱口令等。
**B.**懂研发安全的人:既懂研发又懂安全的人少之又少,目前普遍采用的方法是通过相关网络安全产品对代码进行检测,也有有能力的企业对研发人员进行网络安全培训,这方面业界也有了不少案例可以借鉴。
**C.**懂业务安全的人:这种人几乎没法直接招聘,如果确需,只能从业务部门内部培养。
**D.**懂安全溯源与应急处置的人:这种类型的人几乎只有大型公司才有需求,而且只需要一个团队即可,团队规模也并不需要特别大,一般也是由内部培养与外部招聘相结合,招聘的也是有较高技术实力的人。
**E.**懂攻防的网络安全人员:这一部分才是我们经常说的网络安全人员。
4.如何学习安全
那么零基础入门网络安全,能成为网络安全工程师,需要掌握哪些技能呢?不管自学也好还是找培训班也罢,作为零基础小白想入门网络安全是否会很有难度呢?一般来说,入门网络安全大致上需要具备以下知识,可以参考一下路线图:
(每个模块都是可以展开,这里就不一一展开,篇幅 1 有点长,内容比较多)
如果你是学习其他技术,又有很强的自律性,那么自己学习完全足够,否则不建议自己学习。由于网络安全本身就是一个攻防实战性很强的专业,网络安全领域必须实战,实践出真知!需要实践的情况,不是自己学习能够接触到的,还需要其他进行辅助。
怎么入门?
我们落到具体的技术点上来,网络安全学习路线,整体学习时间大概半年左右,具体视每个人的情况而定。
如果你把每周要学的内容精细化到这种程度,你还会担心学不会,入不了门吗,其实说到底就是学了两个月,但都是东学一下,西学一下,什么内容都是浅尝辄止,没有深入进去,所以才会有学了 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 周)
-
能建立自己的安全体系,并能提出一些安全建议或者系统架构。
-
开发一些实用的安全小工具并开源,体现个人实力;
-
建立自己的安全体系,对公司安全有自己的一些认识和见解;
-
提出或者加入大型安全系统的架构或者开发;
我也给大家整理了一些学习资料笔记等,大部分都是比较不错的,希望对大家有帮助!
大礼包:
以上资源的获取毫无门槛,只要你是真心想学习网络安全,就大胆去做!
5、总结
网络安全领域就像是一棵硕果累累的参天大树,底下站着无数观望者,他们都声称自己喜欢网络安全,想上树摘果,但面对时不时垂下来的藤枝,他们却踌躇不前,犹豫不决。
实际上,只要任意抓住一根藤枝,都能爬上这棵树。 大部分人缺的,就是这么一个开端。