安全测试是一个复杂且昂贵的 - 但非常必要的 - 软件交付周期的阶段。随着云托管的应用程序的增长和由于大流行而前所未有的家庭工作,在Devops管道中具有自动安全测试,其成熟足以减轻网络ack的真正风险?这最近“勒索软件”入侵了美国殖民石油管道表明并非如此。

从历史上看,安全测试一直是软件测试中一个复杂的、很大程度上是手工的、技术性很强的学科。它通常是在交付周期结束时安排的活动,通常是在应用程序被认为接近生产准备的时候。

越来越多的组织在他们的开发实践中采用DevOps方法,并转向微服务架构。因此,我们看到了更积极的交付时间和更小的工作模块正在交付。

然而,服务发布速度和种类的增加给恶意参与者带来了不断增加的攻击面。它还为执行全面的手动安全检查创造了不可能的小时间窗口。我们如何在保持积极的发布速度的同时降低这些风险?

纵深防御

云空间中的大玩家(亚马逊AWS,Microsoft Azure,Google Cloud)正在帮助他们帮助。在等式的部署方面,它们提供多层保护 - 或“深度防守”。这对于构建基于云的基础架构是有用的,该基础设施围绕最低级别的权限范例,必须明确授予对资源的访问。其他示例保护包括AUTH-N / AUTH-Z以及使用服务器端加密(SSE)例程在休息时加密数据(如AES-256。

这种最低级别的权限范式意味着具有大型架构的复杂应用程序(以及没有大型架构的应用程序)需要使用key和访问控制列表(acl)等实现跨云资源的通信方法。结构越大,攻击的表面积就越大。

不幸的是,对任何应用程序或公司来说,最大的风险是运行它的人。键可能会意外地提交到源代码存储库中。安全编码原则可能没有明确定义或遵守。发布的时间压力可能会导致许多问题无法在手动安全扫描中检测到。人的易犯错误是反复出现的因素。

轻松访问

考虑一个基于web的图书销售应用程序,它的订阅服务要求用户提供信用卡详细信息来加入。数据库被安全地部署到一个私有子网中,通过访问控制列表(Access Control List)只允许访问某些源网络地址,以及用于访问和特权保护的AUTHN/AUTHZ控制。人们很自然地认为,这些云保护层意味着数据库很好、很安全,不会被外部攻破,对吗?

唉,事实并非如此。该服务的用户必须在网站上输入他们的卡的详细信息。因此,我们可以推断,具有高度的可信度,网页是在ACL到数据库。我们已经有了一个面向公众的访问“安全和安全”数据库的路径——只要能找到一种访问方法。可怕的事实是,有多种方法可以攻击这个数据库,包括SQL注入、跨站点脚本(XSS)等。对一个老练的网络罪犯来说,这是一扇敞开的门。

请记住,这只是一个更大的网站的一小部分,有很多很多的攻击载体。那么,我们怎么能期望在短时间内进行人工安全扫描,充分分析和测试所有可能的攻击载体,并暴露它们呢?

漏洞扫描器

好消息是,安全社区真的开始加强工具空间。目前市场上有多种工具,包括商业现货和开源,这是漏洞扫描仪的标题。这些工具承诺将自动化带入扫描应用程序,网络,计算资源等的实践,以实现潜在漏洞。

最近,我从事一个项目的项目,以便我的客户有兴趣减少在常规手动笔测试周期中捕获的问题次数。早些时候捕获这些问题不仅允许它们更快地解决,而且还降低了相关的成本。在循环中进一步的“右”检测到缺陷,它变得越昂贵地址。

简而言之,这是如何实现的?在花了几天时间研究工具全景之后,我列出了几个要在开发中实现的工具CircleCI包括动态应用安全扫描(DAST)、静态应用安全扫描(SAST)和web应用的交互式被动扫描的管道:

·GitHub的dependabot用于标记过时或脆弱的第三方开源库的问题,并自动提出pull请求来解决它们。

·Netsparker通过Netsparker提供的CircleCI orb可以很容易地实现到管道中,一旦应用程序部署到staging环境中,就可以自动调用应用程序的DAST扫描,并对web应用程序(如XSS Fuzzing、API Fuzzing等)执行主动攻击扫描。

伟大的人们在欧平安在一个定期更新的docker容器中提供他们的Zed Attack Proxy (ZAP)实用程序,该容器包含了所有可以被扫描的最新已知CWEs。利用使用Selenium编写的自动化测试,可以非常直接地通过ZAP代理代理所有web应用程序流量,并为自动化访问的每个页面生成一个格式良好的HTML格式的被动安全报告。

通过在CI Pipeline中实现这些工具,每当代码库发生代码更改时,都会运行扫描。这为客户端提供了一种信心,即利用DevOps管道中的自动化能力,可以扫描漏洞并在bug跟踪系统中提出漏洞。

最后,这并没有消除对专用安全测试团队的需求。自动扫描和专门的安全团队所提供的角色是不同的。利用自动化的力量来快速识别明显的漏洞,现有的安全团队可以花时间评估业务的风险。如何?通过利用这些漏洞,制造更复杂的攻击,并使自己与当前的最佳实践和任何可能发现的尚未实现自动检查的新问题保持同步。

准备好帮助

在Expleo,我们坚信自动化在保护系统和数据方面的价值。访问Expleo的过程自动化页,以了解我们在这个空间的能力的更多信息。

Andy Morrison, Expleo Group高级解决方案组的解决方案架构师。