基于设计的防御系统和可观察性堆栈是窃取攻击者的韧性策略的关键。
翻译自 More Lessons from Hackers: How IT Can Do Better 。
Kelly Shortridge 倡导提高 IT 系统的弹性。作为《Security Chaos Engineering: Sustaining Resilience in Software and Systems and a senior principal engineer》一书的作者,以及 Fastly 公司 CTO 办公室的高级首席工程师,她在今年的 Black Hat 大会上发表了演讲。她解释了为什么攻击者更具韧性,以及 IT 组织可以采取哪些措施来提高自身的韧性和响应能力。
最近,《The New Stack》回顾了 Shortridge 关于利用基础设施即代码和持续集成/持续开发流水线来改进并增强韧性的建议。在这篇后续文章中,我们将看看 IT 可以从攻击者那里学到的最后几个教训,以改善其安全姿态:
- 基于设计的防御
- 系统思考
- 衡量具体和可操作的成功
Shortridge 说:“实际上有助于这一点的解决方案通常不是我们在网络安全领域或至少传统的网络安全领域所考虑的。我们希望设计解决方案,鼓励我们所羡慕的攻击者的灵活性,我们希望设计解决方案,帮助我们成为不断发展的最佳防御者。”她说:“它对人类行为的依赖越少,它就越好。”
来自 Kelly Shortridge 在 2023 年 Black Hat 大会上的演示
她创建了安全解决方案的冰淇淋锥形图,以展示组织应如何优先考虑安全和韧性缓解措施。作为基于设计的解决方案的示例,她提到了 Kelly Long 将 HTTPS 作为 Tumblr 用户博客的默认选项的推动。
Shortridge 说:“那是一个出色的基于设计的解决方案示例。”她说:“她知道安全应该对终端用户不可见,因此我们不应该把安全的负担放在不懂技术的终端用户身上。我认为她真的领先于她的时代。”
与将这项工作转嫁给终端用户和同行不同,IT 应该尽量自动化安全,并在可能的情况下使用基于设计的防御。这意味着有意识地设计模块化。模块化允许在应对压力时结构上或功能上不同的部分保持自治,并且更容易从损失中恢复,Shortridge 解释道。例如,队列会添加一个缓冲区,消息代理可以重放并使返回代码非阻塞。
她说:“消息代理和队列提供了在系统中传递数据的标准化方式。它还提供了对其的集中视图。”她说:“通过这种方式,您获得了可见性,可以看到数据在系统中的流动情况。”
模块化还支持系统之间的气闸方法,以便如果攻击成功,不一定会使您的系统崩溃。她演示了两个相互通信的服务之间的气闸,之间有一个队列。队列允许您将服务下线并修复它,而服务 A 继续发送请求,队列处理这些请求,使服务保持可用和正常工作,直到修复完成。
她说:“模块化在正确使用时,可以最小化事件的影响,因为它使事物保持分离。”她说:“模块化允许我们将事物分解为较小的组件,这对攻击者来说不仅更难以持续存在,而且使攻击者更难以横向移动并在我们的系统中获得广泛的访问权限。”
Mozilla 和加州大学圣迭戈分校已采用了这种方法,并报告称,他们不再担心零日攻击,因为这些组件的沙盒使他们有时间推出可靠的修复措施而不会使系统崩溃,她补充说。
在 Black Hat 大会上,演讲者一再提到攻击者是“系统思考者”,Shortridge 在她的演讲中再次强调了这一点。
她说:“攻击者思考系统,而防御者思考组件,尤其当我与安全团队交流时,思考流量和数据在表面之间的流动通常会被忽视。”她说:“作为一个行业,我们非常专注于入口和出口,以至于我们忽视了服务之间如何相互通信。顺便说一下,攻击者喜欢我们忽视了这一点。”
攻击者往往关注一件事:您的假设。您假设解析字符串将始终很快,或者显示在这个课程上的信使集将始终进行身份验证,或者当恶意可执行文件出现时将始终触发警报。但它真的会吗?攻击者会测试您的假设,然后继续查看您是否略微错误或真的错误,她说。
她说:“我们希望成为快速不断发展的防御者,我们希望不断完善我们的思维模式,而不是等待攻击者利用我们思维模式与现实之间的差异。”她说:“决策树和弹性压力测试可以帮助我们做到这一点。”
她说,决策树可以帮助找出安全缓解措施中的漏洞,并迫使 IT 在攻击者之前检查“这将始终成立”的假设。可靠性压力测试——在安全领域称为混沌工程——是建立在决策树之上的,有助于确定系统可能出现故障的地方。
她说:“混沌工程旨在了解干扰如何影响整个系统的恢复和适应能力。它欣赏系统在时间和空间上的固有互动性。因此,这意味着我们在系统级别进行压力测试,而不是像通常那样在组件级别进行。它迫使您采用系统思维。”
攻击者还有另一个优势——他们可以衡量成功,并立即获得有关他们指标的反馈。攻击者的指标很明确:他们是否有访问权限?他们有多少访问权限?他们能否完成目标?相比之下,安全供应商通常难以创建明确的可行度指标,尤其是提供即时反馈的指标,她说。
她说:“我们希望成为快速不断发展的防御者,我们需要能够启发快速行动的系统信号,我们需要能够通知变化的系统信号。”她说:“事实证明,可靠性信号在这里非常有用,它们对安全非常有用。”
她建议 IT 安全应该学习并使用组织的可观测性堆栈。她还补充说,它们甚至可以帮助检测攻击者的存在。
她说:“再次强调,攻击者监视他们正在攻击的系统,以确保他们不会让防御者察觉到,或者不会触发任何警报阈值。因此,在韧性革命中,我们也希望收集系统信号,以便我们可以快速不断地回应。”她说。