首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

混沌工程实践分享:整合信息安全和DevOps

在柏林召开的O’Reilly Velocity 2019大会上,来自Capsule8的Kelly Shortridge做演讲介绍了使用混沌工程助力DevOps文化中集成信息安全。Shortridge在演讲中指出,“D.I.E.三合体”是从设计上构建信息安全的很好方式,即分布性(Distributed)、不变性(Immutable)和暂态性(Ephemeral)。用户可使用D.I.E.三角去持续提高攻击的代价。

D.I.E.三合体是一种面对性能和安全威胁时,有效保持系统弹性和恢复的能力。三合体旨在提高系统安全的质量水准,进而有助于信息安全在DevOps中的集成。Shortridge强调,信息安全业界数十年来一直秉持通过设计构建安全的理念。D.I.E.三合体支持团队在工作中构建可靠系统,是一种组织上友好的方式。

在“D.I.E.”中,“D”是分布性(Distributed)的首字母缩写,意味将DoS等服务中断的影响最小化。“I”表示不变性(Immutable),意味着更易于逆向检测发现系统更改。“E”表示暂态性(Ephemeral),即用户尽量将攻击者可见的资产价值降低至近乎零。这些属性使得混沌安全原则有助于从设计上构建安全系统。设计的出发点,是企业必须对安全控制失败形成相应的预案。因此,企业必须具备对安全事件的响应能力,而非避免安全事件的发生。

Shortridge建议,使用游戏日(game day)方式演练存在于安全环境中的潜在风险方案。她进一步建议,使用拟生产环境去更好地了解复杂系统中的运作方式。Shortridge建议,从简单测试着手,进而逐渐增加复杂度。例如,构建网络钓鱼或SQL注入这样可在用户实操环境中有效运行的测试。

Shortridge在演讲中谈及分布式系统,指出多区域服务(multi-region service)是一种可误导攻击者的方法。团队基于有效的负载平衡,可快速地重新部署服务,更改服务的提供形式和设置等具体内容。例如,混淆和定期更改IP区块。另一方面,如果团队使用了服务网格,可通过网格配置迫使攻击者提升获取访问和修改访问控制的权限。例如,需要访问IP表这一层。这样做,可最终更改攻击者的内网漫游(lateral movement)和资源间跳转的方式。

Shortridge随后介绍了如何在不可变架构中持续应用混沌安全原则。因为磁盘是临时存储,攻击者无法在本地磁盘上可靠地存储数据,进而造成数据泄露(Exfiltration)。磁盘信息正如Martin Fowler提出的,像凤凰涅槃一样定期被替换

不可变系统目前是限制团队以任何方式编写或修改系统。确保不变性包括测试未经授权的更改,并确保检测到此类事件并可回滚。用户可以抢先关闭正遭受攻击的特定实例,这些实例进而将在其他位置重新生成;也可以抢先关闭并重新初始化实例,例如重启发生稍许内存泄漏的应用,以解决潜在的性能问题。

Shortridge提出,一个随时可停止服务的基础架构对于攻击者而言无疑是一场噩梦,因为服务存续具有极大的不确定性。例如,彻底限制Shell对服务器的访问。一旦禁用了shell程序的访问,那么攻击者很难不留痕迹地访问或修改服务器。

Shortridge最后介绍了D.I.E.三合体中的“E”,即暂态性。大多数安全漏洞都是与状态相关的。如果用户不再依赖于状态,那么就可避免出现错误和漏洞。暂态性降低了攻击者在系统中持久存留的能力,避免依赖于持久性存储,最小化攻击者有机会窃取数据的窗口。

暂态混沌测试中可涉及确认系统已不再接受过期资源。例如,测试中可以更改API令牌,模拟浏览器中的“退出所有会话”功能。然后通过注入旧API令牌,用户可以确认API是否仍在接受过期令牌。最终确保验证过程有效,应用预期不会使用旧令牌,否则就不符合暂态性了。

Shortridge在总结演讲时提出,混沌弹性系统原生支持信息安全。要实现信息安全从筒仓模型向嵌入SDLC全周期的演变,必须将责任和问责统一起来,正如DevOps是如何将开发(Dev)和运维(Ops)统一起来的那样。

原文链接:

How to Integrate Infosec and DevOps Using Chaos Engineering

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/iv9TtiPXP9rjdDS6jX2W
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券