DevOps(“开发”和“运营”的组合)是实践和工具的组合,相对传统软件开发流程,具有更快地交付应用程序和服务的能力,正因如此,其可以使组织能够更好地为客户服务。
简单来说,DevOps 就是要消除传统上孤立的开发和运营团队之间的障碍。在 DevOps 模型下,开发和运营团队在整个软件应用程序生命周期中协同工作,从开发和测试到部署再到运营,缩短了业务上线的时间,但同时也增加了安全威胁的可能性。不得不思考如何在DevOps中引入安全性,DevOps安全通常被称为DevSecOps,将安全属性融入DevOps中,确定从最初的规划到测试、上线运营阶段的安全性。
如今,DevSecOps越来越多的被企业使用,是因为包括操作系统、应用程序等在内的软件通常包含可被攻击者利用的漏洞,而且由于软件应用程序不断的更新迭代,总是有可能会出现新的安全威胁。而黑客往往只需要一个漏洞,便可以撬开防守者严防死守的大门,防守者却全然不知,殊不知自己已经裸奔在了安全威胁中。要找到这些安全威胁,需要进行定期测试。一般情况下会有以下几种方法:
- 漏洞扫描。使用漏洞扫描程序来识别基础架构组件中的各种漏洞,可以检查出网络中过时的软件、开放端口和过期证书等。
- 渗透测试。企业用来检测基础设施漏洞的常用测试方法。渗透测试需要高技能的安全专家使用实际攻击者使用的工具和攻击方法来攻击目标。
- 红蓝对抗。在红蓝对抗中,一方扮演黑客,一方扮演防守者,模拟军事化对抗形式进行网络安全的攻防演练。与传统的渗透测试不同,红蓝对抗中对于技法、战术、打法、心态等都有着高强度的考验。在演练过程中,红队模拟真实的攻击来评估企业现有防守体系的安全能力,蓝队对发现的问题做出相应的优化整改;通过周期性的红蓝对抗攻防演习,持续性地提高企业在攻击防护、威胁检测、应急响应方面的能力。通过持续的对抗、复盘、总结来不断优化防御体系的识别、加固、检测、处置等各个环节,从而提升整体的防护抵抗的能力。
然而,这些方法都有一定的局限性。像漏洞扫描报告通常只列出发现的漏洞,而且,它还可能产生误报并标记某些可能对安全性影响不大的问题。渗透测试和红蓝对抗是资源密集型活动,对安全专业人员的要求较高,且成本相对也比较大。时至今日,越来越多的企业开始采用入侵和攻击模拟BAS工具进行安全测试,以更高效的方式实现业务安全。
Gartner将BAS技术定义为“允许企业使用软件代理、虚拟机和其他手段,持续、一致地模拟针对企业基础设施的完整攻击周期(包括内部威胁、横向移动和数据外移)”的工具。通常,BAS共有三种不同类型的解决方案:
基于Agent的解决方案是最简单的BAS形式。Agent部署在整个局域网中,并识别漏洞,以确定哪些路由对潜在的攻击者是开放的,以便其在网络中移动。基于Agent的BAS解决方案非常类似于漏洞扫描,但提供了更多的上下文行为分析。但是,这种解决方案只关注组织的网络如果被攻破会产生什么后果。不会利用或验证漏洞,对边界也不具备测试功能。
基于“恶意”流量的BAS解决方案是通过在组织的网络中设置一些作为测试目标的虚拟机,使用各种攻击场景的数据库,在组织内部网络中生成“恶意”流量来测试组织安全性的解决方案。
此类BAS解决方案专注于网络流量检测方法,通过模拟攻击,检测组织的IPS/SIEM是否能够通过检测和/或阻止攻击,并生成适当的警报来捕获“恶意”流量。当测试完成之后,会生成一个报告,其中列出测试期间检测到的“恶意”流量。不过,这种解决方案与基于Agent的BAS解决方案一样,只关注组织的网络如果被攻破会产生什么后果,对边界也不具备测试功能。
基于云的 BAS 解决方案最接近真正的攻击,其通过不同的入口点从外部模拟大量攻击场景。云平台受到来自各种来源的最新威胁,因此总是最新的。换句话说,如果在模拟过程中,组织被攻击成功,那么在实际生活中也同样会面临这种风险。入侵和攻击模拟 (BAS) 工具可以通过在生产环境中安全地执行完整的攻击杀伤链模拟,帮助安全团队不断提高他们对高级威胁和 TTP 的准备。由于风险承受能力因组织/行业而异,安全团队应适当规划评估,适当考虑与其组织/行业相关的威胁、其对环境的影响,以及哪些模拟将帮助他们实现计划目标。一般分为如下三个步骤:
首先,安全团队应该利用威胁情报来识别最有可能对组织的安全态势和风险承受能力产生重大影响的威胁。此外,为了确保适当的模拟器部署,正确地识别组织的核心(在云、网络或端点上)是很重要的。这种计划好的方法允许安全团队测试特定威胁和攻击TTPs对整个组织的关键资产的影响,并以最有效的方式验证安全控制配置。在配置了BAS模拟器和管理控制台以专注于最相关的威胁之后,BAS工具可以在生产(或沙箱)环境中安全执行完整的杀伤链勒索软件攻击。当面临特定于勒索软件的威胁时,这提供了对其环境(网络、端点或云)中各种安全控制的性能的可见性,并确定了哪些地方需要潜在的配置改进或修正。需要注意的是,BAS工具通过在闭环环境中将其分解成更小的步骤来执行完整的杀伤链勒索软件攻击,以确保安全执行。以这种方式执行攻击可以使安全团队增强对勒索软件杀伤链每个部分的控制有效性的态势感知,而不会给关键系统或实际生产数据带来风险。这也允许安全团队在执行了补救更改后重新验证安全控制配置更改。BAS工具使安全团队能够可视化和关联模拟结果,以接近实时的方式更好地了解他们的安全漏洞,从而允许他们在攻击者利用这些漏洞之前启动补救措施。更重要的是,安全人员可以清楚地了解组织面临的关键威胁、现有安全控制的性能,以及组织安全态势的总体影响和变化。这允许安全组织中的每个人就总体目标达成一致,并建立针对勒索软件威胁的关键性能指标。此外,对可操作结果的准确分析有助于根据组织的风险状况确定安全漏洞的优先级并解决这些漏洞。这通常会导致建议新的安全控制或改进现有的控制配置。安全团队还应在配置更新后重新运行 BAS 模拟,以验证补救活动是否成功完成。BAS通常使用MITRE 的 ATT&CK框架作为基线,结合红队和蓝队技术(一种被称为“紫队”的做法)并将它们自动化,以7*24小时,365天全天候运行,从而确保组织对其防御准备的真实状态保持更深入的了解。
与传统安全验证方式相比,入侵和模拟攻击通常有如下几个优势:
- BAS允许防御者采用攻击者的思维方式进行主动防御,而不是被动地等待扫描结果或发布补丁。
- 除了提高效率和降低成本之外,BAS规避了人的因素,避免因人或因团队不同带来不同的测试结果。
- BAS模拟了一个完整的攻击,沿着网络杀伤链,以自动和连续的方式模拟大量的攻击,以查看它们是否预防和/或检测安全威胁,有效验证了安全措施。例如,BAS会检查发起的攻击是否通过防火墙、IPS甚至反病毒程序到达目标,而不是检查目标应用程序中是否存在给定的漏洞。
- BAS可以进行持续测试,自动探测隐藏的安全漏洞,及时捕捉到新发现的安全漏洞。
- 加速了DevOps中持续部署和持续交付的速度。CI/CD 管道是一组流程,需要遵循这些流程才能成功地将应用程序的一组软件功能可靠且频繁地交付给不同的云环境,例如开发、QA 和生产。这些流程集的有效自动化(在软件工具的帮助下)将决定 CI/CD 管道的功效。CI 自动化涉及软件开发过程的每个单元,如设计、代码、构建和测试,并集成每个功能所需的适当软件插件,以便无缝执行。使用BAS可以缩短交付周期,让业务更安全的快速上线运行。
漏洞、缺陷等安全威胁并不能避免,一直处于增长比较迅速的态势。在DevOps效率提升的前提下,如何保证安全也是防守者面临的重要课题。BAS相对传统安全检测手段,具有独特优势,可以更好的保护业务系统安全运行,对企业来讲毋庸置疑是较好的选择。