我和很多朋友一样,在学习安全方面的时候不知从何学起,最近在知乎看到个不错的导向,个人认为讲的很好,至少我看完之后不再像以前那样像个无头苍蝇一样学习,有兴趣的同学可以参考。
黑客或网络安全学科,起源计算机科学,但又不止于计算机,还涉及社会工程学、心理学、信息战等多个领域,学习曲线属于典型的「入门易 精深难」。
进入这个圈子之前,相信聪明的你已经积累了很多关于「如何学习」「如何坚持」等各种方法,但当面对的是海量涌来的知识、敲不完的代码、无法穷尽的漏洞时,试问自己真的能坚持下来吗?
大部分人走着走着就迷路了,本质是缺少方法论的支撑,各行各业的方法论很多,这里仅分享对我个人影响最为深刻的 3 个:
根据不同的安全规范、应用场景、技术实现等,安全可以有很多分类方法,在这里我们简单分为网络安全、Web安全、云安全、移动安全(手机)、桌面安全(电脑)、主机安全(服务器)、工控安全、无线安全、数据安全 等不同领域。下面以个人所在行业和关注点,重点探讨 网络 / Web / 云这几个安全方向。
① 网络安全
[网络安全] 是安全行业最经典最基本的领域,也是目前国内安全公司发家致富的领域,例如启明星辰、绿盟
[技能需求]
[说明]
科技、天融信这几个企业(“老三大” )。这个领域研究的技术范畴主要围绕防火墙/NGFW/UTM、网闸、入侵检测/防御、VPN网关(IPsec/SSL)、抗DDOS、上网行为管理、负载均衡/应用交付、流量分析、漏洞扫描等。通过以上网络安全产品和技术,我们可以设计并提供一个安全可靠的网络架构,为政府/国企、互联网、银行、医院、学校等各行各行的网络基础设施保驾护航。
大的安全项目(肥肉…)主要集中在以政府/国企需求的政务网/税务网/社保网/电力网… 以运营商(移动/电信/联通)需求的电信网/城域网、以银行为主的金融网、以互联网企业需求的数据中心网等。以上这些网络,承载着国民最核心的基础设施和敏感数据,一旦泄露或者遭到非法入侵,影响范围就不仅仅是一个企业/公司/组织的事情,例如政务或军工涉密数据、国民社保身份信息、骨干网络基础设施、金融交易账户信息等。
当然,除了以上这些,还有其他的企业网、教育网等也需要大量的安全产品和服务。网络安全项目一般会由网络安全企业、系统集成商、网络与安全代理商、IT服务提供商等具备国家认定的计算机系统集成资质、安全等保等行业资质的技术单位来提供。
② Web安全
Web安全领域从狭义的角度来看,就是一门研究[网站安全]的技术,相比[网络安全]领域,普通用户能够更加直观感知。例如,网站不能访问了、网站页面被恶意篡改了、网站被黑客入侵并泄露核心数据(例如新浪微博或淘宝网用户账号泄露,这个时候就会引发恐慌且相继修改密码等)。当然,大的安全项目里面,Web安全仅仅是一个分支,是需要跟[网络安全]是相辅相成的,只不过Web安全关注上层应用和数据,网络安全关注底层网络安全。
随着Web技术的高速发展,从原来的[Web不就是几个静态网页吗?]到了现在的[Web就是互联网],越来越多的服务与应用直接基于Web应用来展开,而不再仅仅是一个企业网站或论坛。如今,社交、电商、游戏、网银、邮箱、OA…..等几乎所有能联网的应用,都可以直接基于Web技术来提供。
由于Web所承载的意义越来越大,围绕Web安全对应的攻击方法与防御技术也层出不穷,例如WAF(网页防火墙)、Web漏洞扫描、网页防篡改、网站入侵防护等更加细分垂直的Web安全产品也出现了。
[技能需求] Web安全的技能点同样多的数不过来,因为要搞Web方向的安全,意味初学者要对Web开发技术有所了解,例如能通过前后端技术做一个Web网站出来,好比要搞[网络安全],首先要懂如何搭建一个网络出来。那么,Web技术就涉及到以下内容:
【说明】
如果按照上面的技能全部学完,不仅时间周期非常长,估计大部分人连学后面安全的兴趣都没有了。所以,这就说到Web安全这个行业另外一个常态了:大部分做Web安全的,并不是刚开始就对Web开发技术非常熟悉的,很多都是半路杀出来了,甚至连Web网站都没有架设过的,这种大有人在。因此有更加狭义的Web安全技术点:
因此,Web开发技术和Web安全技术其实是相辅相成的,如果对Web开发比较熟悉,意味着研究Web安全时能够更加底层,而不止于安全工具和脚本层面。
[补充说明]
③ 终端安全(移动安全/桌面安全)
移动安全主要研究例如手机、平板、智能硬件等移动终端产品的安全,例如iOS和Android安全,我们经常提到的“越狱”其实就是移动安全的范畴。而近期爆发的危机全球的Windows电脑蠕虫病毒 - “WannerCry勒索病毒”,或者更加久远的“熊猫烧香”,便是桌面安全的范畴。
桌面安全和移动安全研究的技术面都是终端安全领域,说的简单一些,一个研究电脑,一个研究手机。随着我们工作和生活,从PC端迁移到了移动端,终端安全也从桌面安全迁移到移动安全。最熟悉不过的终端安全产品,便是360、腾讯、金山毒霸、瑞星、赛门铁克、迈克菲McAfee、诺顿等全家桶……
从商业的角度看,终端安全(移动安全加桌面安全)是一门to C的业务,更多面向最终个人和用户;而网络安全、Web安全、云安全更多是一门to B的业务,面向政企单位。举例:360这家公司就是典型的从to C安全业务延伸到to B安全业务的公司,例如360企业安全便是面向政企单位提供安全产品和服务,而我们熟悉的360安全卫士和杀毒则主要面向个人用户。
④ 云安全
[云安全] 是基于云计算技术来开展的另外一个安全领域,云安全研究的话题包括:软件定义安全、超融合安全、虚拟化安全、机器学习+大数据+安全….. 目前,基于云计算所展开的安全产品已经非常多了,涵盖原有网络安全、Web安全、移动安全等方向,包括云防火墙、云抗DDOS、云漏扫、云桌面等,国内的腾讯云、阿里云已经有相对成熟的商用解决方案出现。
云安全在产品形态和商用交付上面,实现安全从硬件到软件再到云的变革,大大减低了传统中小型企业使用安全产品的门槛,以前一个安全项目动辄百万级别,而基于云安全,实现了真正的按需弹性购买,大大减低采购成本。另外,云时代的安全也给原有行业的规范和实施带来更多挑战和变革,例如,托管在云端的商用服务,云服务商和客户各自承担的安全建设责任和边界如何区分?云端安全项目如何做信息安全等保测评?
⑤ 工控安全
以震网病毒(stuxnet)攻击伊朗核电厂并使其瘫痪的全球事件,从安全领域活生生撕开一道口并告诉我们,工控病毒才是真正代替核武器战争的代表。相比其他安全方向,工控安全研究的攻防对象是工业基础设施,真正影响人类生活的方方面面,例如核电、电力、水力、城市交通等基础设施。随着万物互联/物联网的进程不断推进,工控安全会成为我们继互联网和移动互联网安全之后研究的重心。
三、职业分类
① 安全岗位
以安全公司招聘的情况来分,安全岗位可以以研发系、工程系、销售系来区分,不同公司对于安全岗位叫法有所区分,这里以行业常见的叫法归类如下:
② 适合我们的岗位有哪些?
安全工程师、安全运维、安全服务工程师、渗透测试工程师、Web安全工程师,安全研发、安全售前岗位。
例如在安全公司如绿盟科技、深信服、360、天融信等做安全工程师、安全服务、渗透测试等岗位,在甲方单位例如运营商(中国移动、中国电信)、金融类公司(平安科技、招商银行)等更多做安全运维、Web应用审计、Web渗透测试等岗位
[安全工程师](产品与售后方向) 职位描述 负责网络安全项目中的产品调试和交付 负责网络安全项目中的技术方案编写 负责客户的安全应急和售后驻场
职位要求 具备扎实的计算机与网络原理,熟悉各类网络与安全设备(路由、交换、防火墙、VPN、漏洞扫描) 对网络数据包具备分析实践能力,熟练使用数据包分析工具; 熟悉常见网络通信协议(TCP/IP、交换路由协议、VPN协议等) 熟悉防火墙原理,能够熟练配置防火墙策略; 熟悉主流网络与安全厂商产品(思科/华为/华三/Juniper…) 较好的文档撰写能力、语言表达和与沟通能力。
[安全服务工程师] 职位描述 负责安全服务项目中的实施部分,包括:漏洞扫描、渗透测试、安全基线检查、代码审计、应急响应等; 爆发高危漏洞后时行漏洞的分析应急; 对公司安全产品的后端支持; 掌握专业文档编写技巧; 关注行业态势和热点。
职位要求 掌握一门及以上编程语言; 熟悉常见安全攻防技术; 有较强学习能力,能快速学习新的技术; 熟悉风险评估、应急响应、渗透测试、安全加固等安全服务; 具有良好的语言表达能力、文档组织能力。
[安全运维工程师] 职位描述 服务器与网络基础设备的安全加固; 安全事件排查与分析,配合定期编写安全分析报告,专注业内安全事件; 跟踪最新漏洞信息,进行业务产品的安全检查; 负责信息安全策略/流程的制定,安全培训/宣传及推广; 负责Web漏洞和系统漏洞修复工作推进,跟踪解决情况,问题收集。
职位要求 熟悉主流的Web安全技术,包括SQL注入、XSS、CSRF等OWASP TOP 10安全风险; 熟悉TCP/IP协议,路由交换、常用的应用层协议; 熟悉Linux/Windows下系统和软件的安全配置与加固; 熟悉常见的安全产品及原理,例如IDS、IPS、防火墙等; 熟练掌握C/PHP/Python/Shell等一或多种语言; 较好的文档撰写能力、语言表达和与沟通能力。
[Web安全工程师/渗透测试] 职位描述 对公司各类系统进行安全加固; 对公司网站、业务系统进行安全评估测试(黑盒、白盒测试); 对公司安全事件进行响应,清理后门,根据日志分析攻击途径; 安全技术研究,包括安全防范技术,黑客技术等; 跟踪最新漏洞信息,进行业务产品的安全检查。
职位要求 熟悉Web渗透测试方法和攻防技术,包括SQL注入、XSS跨站、CSRF伪造请求、命令执行等安全漏洞与防御; 熟悉Linux、Windows不同平台的渗透测试,对网络安全、系统安全、应用安全有深入的理解和自己的认识; 熟悉国内外主流安全工具,包括Kali Linux、Metasploit、Nessus、Nmap、AWVS、Burp、Appscan等; 至少掌握一门编程语言C/JS/Python/PHP/Java/JS等; 对Web安全整体有深刻理解,有一定的代码审计和漏洞分析和挖掘能力; 具有较强的团队意识、高度的责任感,有良好的文档和沟通能力;
④ 安全岗位总结
走安全行业的工程方向的,技术上面其实有很大的重叠性,抛开甲乙方、岗位名称、岗位职责等因素来看,作为学技术的,也根据以往我们给学员推荐就业和入职情况来看,只要好好掌握以下几种技术(网络协议与安全设备、Linux操作系统、Web服务部署/开发、主流渗透测试/安全工具、一门及以上的编程语言)中的2到3个,都可以较好的胜任工作需求。
薪酬这块,根据岗位的入职薪酬来看,一般都是遵循:【安全研发 > 安全服务/渗透测试/Web渗透 > 安全售后/安全技术支持】。当然,不同类型的公司,发展过程中给出的薪酬也会有所差异
知道在什么框架下行事
知道谁在管事
知道安全圈的主要玩家都有谁
国外安全公司:
国内安全公司:
网络安全推荐书单:
Web安全/渗透测试推荐书单:
云计算安全推荐书单:
以上均是从知乎看的一些总结,相信看完这个很多人已经对安全这块有了一个大体上的了解,我之前也是迷茫中,现在选择一个自己感兴趣的分支,然后慢慢去学好,再往精通学。大家一起加油!!