人
已阅读
已阅读
渗透测试,真的是合理需求吗?
作者:集群智慧云安服 来源:集群智慧云安服 发布时间:2021-11-14
近些年来,“渗透测试”似乎是目前行业中对攻防类服务需求响应最多的概念。大量企业声称自己需要渗透测试,安全服务供应商也声称自己能够提供渗透测试,双方一拍即合,很多“渗透测试”服务项目应运而生。然而这些“渗透测试”服务真的行之有效么?这些“渗透测试”需求也是合情合理么?
答案是否定的,其原因可能在于对“渗透测试”这一概念产生了理解偏差,导致很大一部分项目都在用模糊的目标和模糊的需求进行以商务关系为基础的合作。
在本文中,我们将剖析“渗透测试”概念并盘点相关的方案和工具,旨在帮助读者明确攻防类服务需求,正确选择服务方案或工具,少走弯路。
渗透测试不是“银弹”
首先需要明确渗透测试的概念。这里引用CREST标准中对于“渗透测试”概念的描述:渗透测试是一种道德的攻击模拟,旨在通过实际利用特定场景中的漏洞来验证控制措施的有效性。即渗透测试的最终目标从来就不是发现应用中的漏洞,而是发现控制措施或防御手段中的“漏洞”。基于这个认识,我们平时进行的手工发现漏洞的工作,其实都称不上是标准的“渗透测试”。
真正标准的“渗透测试”方案应当具备以下特点:
目标通常为选定的应用或设备。如果目标设定为一个网络,应该至少是应用和设备的集合;
测试对象不仅涵盖技术控制手段,也包括管理控制手段;
所有发现的漏洞都要通过真实利用来证明其实际存在,进而证明控制措施及防御手段失效。
但是与此同时,渗透测试的短板和限制也凸显出来:
目标只能是选定的应用或设备,对于未知资产和过程无能为力;
针对人员要素的审查充满了运气和局限性(社会工程学);
理论上无法发现所有问题,甚至无法发现可能存在的问题;
真实利用漏洞存在风险;
渗透测试的实施人员必须是专家型人员。因此没有足够的专家人员能够代替扫描器发现所有常规安全漏洞——即便能够解决,成本也是极不合理的;
测试结果只是某一个时间点的“快照”,会随着时间推移和资产迭代逐渐失去参考价值;
提供的结果相对技术性,需要放在业务环境中进一步解释;
多数时候只能“摸黑”猜测实际的防御手段,在进行建议时会与真实的防守人员产生诸多信息不对称。
所以实际标准定义下的“渗透测试”是如此的干涩、生硬,以致让人难以下咽,而现在大家普遍提供和接受的都是为了改善上述缺陷,不断演进产生的“变体”,后面本文会一一为大家盘点。
1. 高仿真黑客——“红队”
“红队”一词在互联网中可考的来源是1992年一部名为Sneakers的电影,大致的含义是一支授权的、高度仿真黑客行为的攻击队伍。“红队”与“渗透测试”最大的差异就是目标不确定,即“红队”的评估范围是整个网络以及所有相关资产。“红队”的实施方法和组织形式相比渗透测试而言会更加松散,甚至更加接近实际的黑客——“红队”的行为方式除了不窃取数据、不破坏系统以外,必须和真正的黑客保持高度一致,甚至包含选拔和培养方式以及价值观的宣贯。
因此“红队”适合企业在具备并落实了安全基本面(基础安全设备、补丁和脆弱性管理、安全制度、人员配备、基本意识等)的前提下,磨炼整体安全防控能力时引入。否则,请先建设安全基本面。如果在基本面建设高度不完全的情况下强行引入“红队”,除了以高昂的成本证明自己的网络不堪一击外意义不大。
2. 高度协作的防御专家——“紫队”
在常见红蓝对抗场景中,这样情况经常发生:“红队”选用外部人员,“蓝队”选用内部运维人员。“红队”在某个时间点攻破了“蓝队”人员防守的据点,可能由于防御和检测机制失效,“红队”并不知道据点曾经设置防御手段,“蓝队”人员在事后分析时才发现防御和检测手段在攻击前已经失效,但此时距离“案发时间”已经很久。
这类典型的红蓝对抗通常会存在下列问题:
“蓝队”人员的应变防御能力没有得到锻炼。
“红队”由于采用了外部人员,红蓝队之间存在SLA层面的对抗关系。“蓝队”并不会主动告知“红队”防守细节,“红队”自然也无法对“蓝队”的防守细节做切实可行的建议。同时“红队”在复盘时也会尽可能隐藏自己的攻击细节,以便攻击手段可多次复用。
“案发时间”过去已久,难以进行确切复盘。
大家不难发现,协作程度成为了多数红蓝对抗无法达成预期效果的关键因素。由于这个原因,一套基于高度协作的“紫队”(红+蓝=紫)方案应运而生。“紫队”与标准红蓝队之间最重要的区别就是,其攻击和防御方法都是预先确定的。同时紫队模式是协作而迭代进行的,即在“蓝队”一次防守失败后,“红队”可以通过重放攻击行为让“蓝队”尝试改变策略再次尝试防守,直至“蓝队”具备快速决策及处置该问题的能力。此时“红蓝对抗”中的“对抗性”消失,输赢已经变得不再重要了。“紫队”方案的难点在于如何编制一个能够覆盖大多数攻击场景的攻防预案,以及如何掌控红蓝双方的对抗/协作平衡点。但是“紫队”方案不应完全替代“红蓝对抗”,因为“对抗性”具备无法替代的实战价值,因此“紫队”方案作为“红蓝对抗”的补充方案或二次方案将更具成效。
3. 人员要素审查——社会工程评估
一言以蔽之,社会工程评估是围绕“人”这个维度进行的专项评估。一次全面的社会工程评估应当涵盖和“人”纵向相关的所有内容——包括关键岗位的安全背景调查、安全管理制度审查、安全意识评估等。以安全意识评估为例,评估应首先针对岗位和工作内容构建人员风险决策模型,需要评估包括对风险本质的认识程度、对风险的关注程度、预知风险的能力、对风险准确识别的能力、面对风险的决策能力、快速并正确消除风险的能力、提前布局和防范的动机和意识、风险获取的渠道等各方面因素。通过问卷以及基本社会工程手段(鱼叉、水坑、诱导等基本社工场景)对人员风险决策模型进行赋值,从而全面系统地了解被评估对象的社会工程属性。
目前国内业界能够进行整体社会工程评估的咨询公司有限,多数都以反钓鱼行为管控(APBM)为主(邮件钓鱼+意识培训)。然而即便如此,APBM的实际作用远比想象中的大太多。在针对人员要素的审查层面,专项的社会工程评估会比包含在渗透测试内的社会工程测试更具备优势。
4. 上线与合规——应用安全测试
准确的说,应用安全测试属于风险评估的一部分。我们目前能够提供以及正在接受的“渗透测试”多数都属于这个类型。
应用安全测试与渗透测试的最大区别如下:
评估对象为“风险”,即有被利用可能的漏洞也需要指出来。多数情况证明漏洞存在即可,不需要实际利用(不需要而非不能)。
需要尽可能发现并覆盖常规安全漏洞,因此需要覆盖基本测试项并结合扫描器完成。
应用安全测试是渗透测试本地化以及持续演进的产物,用于补充自动化漏洞扫描在应用层漏洞发现能力的不足,相较于渗透测试,对个人技术要求门槛较低,但对于实施方法以及基本测试项积累等供应商层面的能力要求反而较高。当前现状是业内富有经验的渗透测试专家有限,攻防类以及技术评估类需求日益旺盛,因此对监管合规以及安全基本面建设更为友好,且人才资源相对充裕的应用安全测试逐渐占据了市场主导。此外最重要的是,应用安全测试的收费标准远远低于渗透测试(标准版渗透测试大致的费用为$315每小时)。
如果企业需要进行大量的上线测试以及合规测试,并且以发现漏洞为目标的话,应用安全测试是目前的不二之选。但随着安全评估自动化和智能化水平不断提高,介于渗透测试及自动化扫描之间的应用安全测试将逐渐被取代。
5. 持续渗透仿真——违规与攻击模拟(BAS)
违规与攻击模拟(BAS)是Gartner从2017年开始重点推广的热门技术之一,然而由于各类因素影响,该项技术在国内的推广效果一般。
作为“渗透测试”的头号替代品,BAS最大的优势是解决了手工渗透测试无法持续进行的短板——BAS可以通过编排模拟各类攻击和违规行为,并设置时间计划让这些攻击能够持续进行。和漏洞扫描器不同的是,BAS不仅可以自动化扫描漏洞,还可以模拟一些非法访问甚至投放钓鱼网站。但是由于BAS可仿真模拟的技术内容太过庞杂,市场中提供的各类BAS解决方案差异很大并且各有侧重。然而无论哪种解决方案,BAS期望解决的问题和渗透测试是相同的——希望找出防御和控制手段中的缺陷,因此BAS的推广与应用同样存在安全基本面的问题。
小结
综上,在“渗透测试”及其“周边”方案中,其实依然没有一样是能够一劳永逸解决一切问题的灵丹妙药——现在不存在,以后也不会存在。
“安全是一个持续改进的过程”,这句话适用于这个行业中最具代表性的技术评估方案,也同样适用于所有工作。我们只有在不断演进并完善这些经典方案的同时,寻找创新的替代方案,方能适配日益开放的网络环境和复杂多变的业务需求。