在实战化白帽子能力调研过程中,课题组同时也对白帽子的一些基本状况进行了调研, 包括行业分布、年龄与学历、从业时间、以及技能证书等几个方面。
一、 行业分布
从行业分布来看,36.3%的白帽子来自于安全企业,34.9%的白帽子仍是学生,7.1%的白 帽子来自政府机构事业单位。可见,白帽子由于其所需技能及时间耗费,更多集中在专业对 口的安全企业从业者或精力充沛的学生党。
二、 **年龄与学历 **
从年龄分布来看,近半数的白帽子年龄在 22岁及以下;35.7%的白帽子年龄在 23-27岁。
从学历来看,本科及以下学历超过 9 成。其中,本科学历占比 36.3%,本科在读占比 21.9%,还有 24.5%的白帽子为大专学历。
三、 从业时长
由于白帽子需要有一定安全基础,需要花费时间学习和锻炼才能成为真正的白帽子。从 从业时间来看,进入安全行业 1-3 年的白帽子最多,占比 51.2%;其次为拥有 4-6 年安全从 业经验的白帽子,占 21.2%,具体分布如下图所示。
四、 技能证书
技能证书可以在一定程度上体现网络安全工作者的技能水平,对求职和就业有很大的帮 助。因此,很多网络安全从业者都会考取 CISP、CISP-PTE、CISSP、OSCP Security+等专业 技能证书。不过,本次调研显示,55.8%的白帽子目前仍然处于“无证上岗”的状态。
本章主要介绍实战化白帽人才能力的基本概念及其与传统白帽能力的区别,给出能力分 级和分类的依据,并最终给出本白皮书整理的完整能力图谱。
一、 实战化能力与传统能力的区别
实战化白帽人才能力,是指在政企机构实际运行的业务系统、生产系统上进行的实战攻 防演习过程中,作为攻击方的白帽子所需要具备各种攻防能力的集合。由于实战攻防演习是 对真实黑客攻防过程进行模拟和再现,因此也要求白帽子在攻击过程中所使用的战术手法能 够达到、甚至超过黑产组织或 APT组织的攻击水平。与传统的挖洞型白帽人才能力要求不 同,实战化能力要求白帽子具备在真实的业务系统上,综合利用各种技术和非技术手段,进 行动态实战攻防的能力。
具体来说,主要有以下几个方面特点:
1) 针对业务系统,而非 IT 系统
传统的或一般的白帽子挖洞工作,主要都是针对各类 IT 信息系统本身或系统中的设备、 协议等,如各类 Web系统、操作系统、PC终端、IoT 设备、工控设备协议、区块链协议等等。 而实战攻防演习工作的核心目标,是发现和解决由网络安全问题引发的业务安全及生产安全 问题,攻击过程也是针对实际运行中的业务系统或生产设备。
此外,传统的挖洞工作主要关注的是对单一系统的单点突破,实战攻防演习更多关注的 则是多个系统并存的复杂体系,关注的是复杂体系在运行、管理过程中存在的安全隐患。对 于多数大中型政企机构来说,内部存在几十个,甚至上百个不同的信息化系统的情况是非常 普遍的。
2) 挖洞只是辅助,攻击必须有效
单纯的挖洞工作,一般只需证明漏洞的存在,提交漏洞报告即可。但在实战化的业务环 境中,存在漏洞不等于能够实现有效的攻击。一方面,这是因为漏洞的实际触发可能依赖于 诸多条件,这些条件在实际的业务环境中未必存在;另一方面,即便漏洞是有效的,但如果 攻击者只能实现单点突破,而无法达到预设的最终目标,同样不能完成有效的攻击。
3) 攻击是个过程,允许社工方法
对单一漏洞进行挖掘和利用,往往只能实现某个局部的技术目标。但事实上,在绝大多 数的实战攻防演习过程中,攻击方需要连续突破多个外围系统或关联系统,才能最终达到计 划中的攻击目标。也就是说,攻击者需要掌握一系列的漏洞,并能够对机构内部的 IT 架构、 运行管理机制进行有效分析,才有可能找到有效的攻击路径,实现实战攻防演习环境下的有 效攻击。事实上,在实战攻防演习过程中,攻击方可能需要连续数日,多人协作才能完成一 整套攻击。
此外,一般的漏洞挖掘或渗透测试,是不允许使用社会工程学方法的。但在实战化环境 下,社会工程学是必不可少的攻击手法,因为真实的攻击者一定会使用这项技能。事实上, 以人为突破口,往往是实战攻防演习中攻击队的优先选择。
4) 动态攻防环境,有人运行值守
单纯的漏洞挖掘工作一般不需要考虑攻防过程,也就是不需要考虑防守方的参与。但在 实战攻防演习过程,防守方实际上是有专业团队在进行安全运行维护和 24 小时值守工作的。 攻击方一旦开始行动,就有可能被防守方发觉。而防守方一旦发现入侵行为,也会采取各种 反制措施、诱捕行动,以及攻击溯源。所以,实战化能力就要求白帽子必须掌握一定的身份 隐藏技能,诸如匿名网络、免杀技术、权限维持等各种安全对抗技术。
二、 实战化能力的分级与分类依据
实战化白帽人才能力可以依据不同的能力级别和技能类型进行划分。在本白皮书中,我 们主要是综合考虑了掌握技能的难易程度、市场人才的稀缺程度,以及实战化能力的有效性 这三个方面的因素,将白帽子的实战化能力从低到高依次划分为基础能力、进阶能力和高阶 能力。
- 掌握技能的难易程度 不同的能力,学习和掌握的难易程度也不同。而技能的难易程度是能力定级的首要因素。
例如,Web漏洞利用就相对容易,而 Web漏洞挖掘就要困难一些,系统层漏洞的挖掘则更为 困难。所以,这三种能力也就分别依次被列入了基础能力、进阶能力和高阶能力。
- 市场人才的稀缺程度 人才的稀缺程度,也是能力定级的重要参考因素。例如,在所有白帽子中,掌握系统层
漏洞利用的人平均来说只有 1 成左右;在 iOS系统中,会编写 POC或 EXP的白帽子,也相对 少见。因此,这些能力就被归入了高阶能力。
- 实战化能力的有效性 总体而言,越是相对高阶的能力,防守方越难以防御和发现,其在实战攻防演习过程中
发挥实效的几率也就越大。
接下来说分类问题。从不同的视角出发,我们可以对实战化能力进行不同的分类。而本 白皮书所采用分类方法,主要考虑了以下几个方面的因素:
- 只针对实战化过程中,最主要、最实用的能力进行分类,边缘技能暂未列入分类;
- 不同的能力分类之间,尽量相互不交叉;
- 分类与分级兼顾,同一领域的不同能力,如果分级不同,则作为不同的分类;
- 将挖掘、利用、开发、分析等能力作为不同的技能来分类。比如,同样是 Web系统, 漏洞利用、漏洞挖掘、开发与编程,都是不同的能力分类。
三、 实战化白帽人才能力需求图谱
以前述分级与分类原则为基础,本白皮书将实战化白帽人才能力分为 3 个级别、14 大 类、85 项具体技能。其中,基础能力 2 类 20 项,进阶能力 4 类 23 项,高阶能力 8 类 42 项。 下图是汇集了上述所有信息的 2020 年实战化白帽人才能力图谱。
关于图中各项基本技能的具体含义,详见本白皮书附录 1:实战化白帽人才能力各项技 能详解。
(一)基础能力
基础能力主要包括 Web漏洞利用与基础安全工具使用两类。
1) Web漏洞利用
主要包括命令执行、SQL注入、代码执行、逻辑漏洞、解析漏洞、信息泄露、XSS、配置 错误、弱口令、反序列化、文件上传与权限绕过等漏洞。
2) 基础安全工具使用
主要包括 Burp Suite、Sqlmap、AppScan、AWVS、Nmap、Wireshark、MSF、Cobalt Strike 等安全工具。
(二)进阶能力
进阶能力主要包括 Web 漏洞挖掘、Web 开发与编程、编写 PoC或 EXP等利用、社工钓鱼 四类。
1) Web漏洞挖掘
主要包括命令执行、SQL注入、代码执行、逻辑漏洞、解析漏洞、信息泄露、XSS、配置 错误、弱口令、反序列化、文件上传与权限绕过等漏洞。
2) Web开发与编程
主要包括 Java、PHP、Python、C/C++、Golang 等编程语言的使用。
3) 编写 PoC或 EXP等利用
主要包括针对 Web漏洞、智能硬件/IoT漏洞等系统环境的漏洞编写 PoC或者 EXP。
4) 社工钓鱼 主要包括开源情报收集、社工库收集、社交钓鱼和鱼叉邮件等几类社工钓鱼技能。
(三)高阶能力
高阶能力主要包括系统层漏洞利用与防护、系统层漏洞挖掘、身份隐藏、内网渗透、掌 握 CPU指令集、高级安全工具、编写 PoC或 EXP等高级利用、团队协作八大类。
1) 系统层漏洞利用与防护
主要包括 SafeSEH、DEP、PIE、NX、ASLR、SEHOP、GS等。
2) 系统层漏洞挖掘
主要包括代码跟踪、动态调试、Fuzzing 技术、补丁对比、软件逆向静态分析、系统安 全机制分析等。
3) 身份隐藏
主要包括匿名网络(如 Tor)、盗取他人 ID/账号、使用跳板机、他人身份冒用几类身份 隐藏技能。
4) 内网渗透
主要包括工作组与域环境渗透方法、横向移动、内网权限维持/提权、数据窃取、免杀 等方法。
5) 掌握 CPU指令集
主要包括 x86、MIPS、ARM、PowerPC等指令集。
6) 高级安全工具
主要包括 IDA、Ghidra、binwalk、OllyDbg、Peach fuzzer 等高级安全工具;编写 PoC 或 EXP等高级利用包括:Android、iOS、Linux、macOS、网络安全设备等系统的编写。
7) 编写 PoC或 EXP等高级利用
主要包括在 Android、iOS、Linux、macOS、网络安全设备等操作系统上找到漏洞并编写 PoC或 EXP的能力。
8) 团队协作 主要包括行动总指挥、情报收集、武器装备制造、打点实施、社工钓鱼、内网渗透等。
参考资料ISO 27001 信息安全管理体系实施案例及文件集 ISO 27001-2013 中文版 绿盟翻译