征文|赵锐:从漏扫到攻防演练 甲方如何选择安全测试?
赵锐
世界500强中国区信息安全和风险负责人,联合国ITU-T DevOps国际标准核心编写专家、CSA云安全联盟专家、网络安全进校园活动特约讲师、全球运维大会金牌讲师优秀讲师、ISG网络安全技能竞赛专家、金融网络安全优秀解决方案评委、网络安全公益-热心公益达人、CCSF优秀首席信息安全官、诸子云上海理事长。
我们正向万物互联时代迈进,越来越多的系统、应用接入网络,不断有新增的攻击方式,攻击频率不断增加,时常有安全事件在新闻和社交媒体中曝光,怎么办?以往过度依赖预防控制控制,提高了对检测和事件响应需求。本文将帮助不同类型的甲方安全团队,如何选择并实施漏洞扫描、渗透测试、攻防演练、红蓝对抗,在这些过程中的流程、工具和技能。
渗透测试和攻防演练是评估和测试安全控制有效性的重要方法。
现状
每当新闻和社交媒体中曝光安全事件时,甲方的管理层都会问甲方的安全人员:“我们有这个问题吗?”这时甲方的安全人员往往没有基于证据的答案,只能回复我们有办法提前发现并控制这类风险,如果真发生类似事件有相应的预案。谁都不能保证100%的安全。各类甲方都会基于自身的实际情况和需求采用人员、技术、流程等方式进行安全风险控制,防止安全漏洞风险。但是,总有许多不可控的变更和因素影响。
1.很多甲方仍然不了解漏洞扫描、渗透测试、攻防演练-红蓝对抗间的差异,不知道如何选择安全评估方式来识别安全漏洞和隐患。渗透测试通常是由甲方的安全团队或专业的安全服务商来提供服务。很多甲方以为通过渗透测试能发展大部分甚至全部问题。
2.国内外的法规中都有明确的要求,例如《信息安全技术 网络安全等级保护测评要求》和《支付卡行业数据安全标准》(PCI DSS)的法规要求,这都是甲方进行漏洞扫描、渗透测试的驱动来源。但是以合规性作为安全评估的原因时,质量通常很少被关注,通常的说法是买报告。
3.从原理上看:漏洞扫描的工作内容和范围最小;渗透测试范围包括人、技术、流程三方面的渗透,漏洞扫描是渗透测试的前期工作之一;普遍认为SRC众测是“高质量”的渗透测试;攻防演练-红蓝对抗有更广泛的测试范围,包括预防、检测和响应攻击事件的内容。
分析和建议
不同类型的安全测试从目标到方法论和采用的工具各有侧重。因此,先要了解每种安全测试类型的异同,这样才能选择出最合适的安全测试类型。
一、漏洞扫描
漏洞扫描的主要用来确认是否按标准实施了安全基线、安全加固,并用于发现目标环境上最常见的已知漏洞,并按漏洞风险的严重性对其进行排序。漏洞扫描通常使用自动化的漏洞扫描工具来执行。针对不同类型的系统、应用有许多开源或商业的漏洞扫描工具,甲方人员可以按照公司的预算来实施,建议采用商用漏洞扫描工具,在漏洞扫描过程中可以得到更完善的后续支持和服务。
对于首次进行安全测试或安全评估的组织,漏洞扫描通常是最佳选择。首先,可以帮助甲方发现明显的配置错误和安全漏洞,例如:未安装补丁、未进行安全配置加固。其次,与渗透测试一样,《信息安全技术 网络安全等级保护测评要求》中明确要求采用漏洞扫描进行安全评估,也是常见的合规要求。在监管检查、内外部审计时可能会要求执行漏洞扫描的周期、范围、工具,甚至要求只能采购某些供应商的服务,例如:PCI DSS要求采购其认可的漏洞扫描供应商(AVS)提供的漏洞扫描工具或漏洞扫描服务。
漏洞扫描不涉及利用漏洞或尝试获取敏感数据或提升特权,因此风险最低。但有两点需要注意,一是按网络、系统的性能确定并发数量,否则就可能影响网络、系统的可用性;二是过滤长连接端口,某些业务采用长连接的方式,漏洞扫描会造成长连接中断,从而影响业务。在第二点上我吃过亏,本世纪初的NESSUS有端口过滤的BUG,有时候会失效。可以采用双重过滤方式,例如加上操作系统自带的IPSEC实现过滤。
二、渗透测试
渗透测试是利用安全攻击技术在目标环境上按预定方案实施的安全测试。因为最终目标是获取系统的管理员权限或核心数据,这通常意味着识别和利用目标环境的关键漏洞,而无需担心安全测试完整性和广泛性(可以在测试范围中明确要求广泛性)。
渗透测试本质上以手工操作为主,手工操作才能验证安全漏洞的真实性,是否可以被利用,利用后的风险级别。在渗透测试时,你攻击的目标系统(环境)和你最终的目标可能不同。渗透测试时,经常把最终目标设定为获取核心系统的权限或数据。
因此,确定如何进行渗透测试以及攻击哪些目标、如何攻击目标。在渗透测试的某些环节,可能会使用自动化工具,但目前在渗透测试的主要环节还不能完全实现自动化渗透测试。
选择渗透测试的组织通常基于下列目标:
1. 验证攻击带来的潜在影响:渗透测试可以验证攻击者是否能够获取目标环境中的某些资产或数据,从而验证目标系统的风险控制措施、安全体系结构和系统健壮性。
2. 验证检测和响应能力:渗透测试可用于验证检测机制和过程的有效性,以及组织在事件响应和调查方面的绩效。
3. 了解系统的现有漏洞情况,以及攻击者如何使用它们来实现更高的目标:大部分组织在进行漏洞管理时,主要解决高中风险漏洞。
4. 解决合规性要求:一些法规框架(例如:等保、PCI DSS)要求组织定期执行渗透测试。这些要求通常明确测试范围、测试方法以及残余风险情况。
5. 验证安全性和加固工作效果,组织通过渗透测试来验证其安全工作的有效性。
”
有些组织认为通过渗透测试来识别某个环境的主要漏洞,就可能生产一系列“需要解决的问题清单”。这是一个危险的错误认识,渗透测试人员无法发现所有漏洞,他们只是在有限时间内寻找可用于用实现攻击目标的漏洞,通常将目标定义为某些特权级别(例如获得域管理员特权)或要获取的数据(例如客户的身份信息或支付数据)。
渗透测试在测试系统架构、应用安全性方面比漏洞扫描更为有效。例如,一个渗透测试人员可以在测试报告中提出:网络中某个服务器的位置使其成为攻击者的跳板,从跳板可以到达其他更有价值目标。这种类型的结果无法通过简单的漏洞扫描发现。
其他注意事项:
渗透测试时要注意包括所有网络入口,大部人肯定知道互联网入口,但别忘记办公网、开发网、测试网、运维监控网、第三方外联区以及其他接入方式,包括Wi-Fi、蓝牙等无法传输方式。
三、SRC众测
以往渗透测试由甲方自己的安全人员或专业服务的乙方来完成,在这过程中出现过一些安全事件。有些不道德的渗透测试人员在渗透测试报告中只提交部分安全漏洞,等下次渗透测试时再提交余下的安全漏洞。更恶劣行为是把高危漏洞和获取的数据放到暗上销售。近几年很多有实力的甲方成立了自己的SRC,并通过SRC来实现众测。其他资源、预算较少的甲方会采用安全众测平台或采购多个乙方的渗透测试服务,让不同组织的渗透测试人员或独立的白帽子共同对同一目标进行渗透测试,并根据发现漏洞的数量和效果来支付费用。
在人员方面,安全众测的测试人员均为经过背景调查的专业白帽子,并签署保密协议,保证白帽子的敬业精神,为甲方提供专业、精准、全面的渗透测试服务。
四、攻防演练(红蓝对抗)
目前在安全领域流行的“攻防演练(红蓝对抗)”概念来自军事领域。核心思想是针对组织的防御措施,采用不同类型的攻击方式和攻击手段,持续攻击甲方的系统、环境,以帮助甲方提升防御的战术、技巧、能力和流程。攻防演练和渗透测试相比有以下特点:
1. 较长时间的攻防与对抗:与定期或偶尔进行的渗透测试不同,攻防演练防御方(甲方、红军)通常给攻击方(蓝军)较长的时间,持续测试红军的防御能力。通过连续的演练、对抗,更自由地定义每次、每阶段需要测试的内容、方法和目标,以便在渗透测试之外发现更多的、不同类型的风险。
2. 攻防协调:蓝军要攻击红军,红军是组织中负责安全体系结构和运营的团队,是蓝军的对手。蓝军的主要任务是向红军提供有关其弱点和待改进项等有价值的信息。
3. 对手模拟:蓝军致力于模拟组织的对手。选择合适的攻击方法和工具以使攻击尽可能接近实战,不仅使用攻击者通常使用的工具,而且还要开发新的(和定制的)工具(例如恶意软件)。这使组织能够正确评估其防御措施如何抵抗实际威胁。
”
蓝军的好处主要在于帮助甲方安全运营团队。在日常由蓝军进行主攻的演练之外,还可以让红军和蓝军的进行攻防转换,通过健康有序地竞争来使红军保持警惕性,实现自我改进与调整。攻防演练中制定的计划、方案和目标定义必须由内部的红军和蓝军完成。当然,组织可以聘请服务提供商进行长期合作,例如将其蓝军外包出去。如果采用这样的方案,则组织不仅需要评估供应商渗透测试的能力,还需要确保供应商能从人、技术、流程全方位提出切实有效的改进建议,从而帮助红军。
如何选择安全测试?
在整体了解各种类型的安全测试特点后,组织可以根据其目标和期望选择最合适的安全测试类型,下表出了各类安全测试的类型和特性。
表1:甲方常用的安全测试类型
计划进行安全测试的组织应当:
1. 正确理解不同安全测试类型的特征和适用性:选择与组织的预期结果和目标结果相符的安全测试类型。如果目标是确定最大数量的漏洞,请选择漏洞扫描而不是渗透测试。
2. 甲方根据乙方安全测试人员的技能和项目经历来评估安全测试供应商,渗透测试供应商的质量和方法因人而异。评价渗透测试服务供应商的团队技能和证书以及历史测试结果是评估乙方工作质量的最佳方法。
3. 通过不同的安全测试模型、场景和目标来增加安全测试的价值:安全测试始终受其范围、目标和模型的限制。每次执行相同的安全测试无法有效保障安全,因为组织的某些环境可能永远不会经受安全测试,或者某些控件可能永远不会遭受不同类型的安全攻击。不同类型的测试可以发现更多问题,并降低忽略环境或威胁场景的风险。攻防演练可以降低此方面的风险。
4. 许多组织将安全测试的报告视为保证书,并在所有发现均得到修复后将系统上线。组织每年进行相同类型的安全测试并遵循补救过程,但是没有对多项安全测试的结果进行战略评估,也没有对将要进行的实际改进进行定义,就无法发现级联风险。必须从战略角度评估安全测试的结果,以确定真正的改进机会,从而降低将来再次出现的同类问题的可能性。
5. 根据测试目标和局限性来理解和使用测试结果:渗透测试结果可能会被误解并导致组织就其安全状况做出错误的决定。未达到目标的测试不是自动的安全认证。测试限制和界限可能会人为地缩小范围,不代表真实威胁所面临的条件。某些控制措施可能在测试时即有效,也可能与评估者使用的技术相抵触,但这不能保证所有潜在威胁的控制措施都可以得到保证,也不是对所有其他现有控制措施的完整评估。此外,低质量测试的结果可以看作是良好安全性的证明,从而导致错误的安全感和自信。
6. 另一方面,成功的测试不应被解释为安全程序和控件完全失败的标志。众所周知,不存在100%的安全性,这通常意味着每个高质量的测试都将获得一定程度的成功。组织应借此机会了解哪些控制措施能够实现预期目标,哪些控制措施失效,从而找出改进的机会。
7. 仔细定义安全测试的方案,降低因为安全测试不当造成的问题。渗透测试涉及漏洞利用和其他技术,例如强制修改数据应用的管理员口令,这可能会导致系统中断和拒绝服务的情况。
结语
甲方通常会根据其情况和要求选择合适的安全测试类型。成熟度较低的组织可以先实施漏洞扫描,以识别和修复主要漏洞,从而迅速增强其安全性。
同时,漏洞扫描应纳入甲方的漏洞管理流程。随着组织不断成熟,组织可能会建立自己的渗透测试团队或签约一家甚至几家渗透测试服务供应商,开展定期或不定期的渗透测试。
并在渗透测试的过程中和结果之后,比较不同供应商的能力和实施效果。当甲方到一定规模或有更多资源以后可以聘请一支蓝军,作为对甲方整体安全实践进行持续改进的方式。
文中提到的安全测试类型没有好坏之分,要根据组织的期望和要求采用合适的安全测试类型,每种安全测试类型都有其价值。