写点什么

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

  • 2019-12-25
  • 本文字数:1559 字

    阅读完需:约 5 分钟

混沌工程实践分享:整合信息安全和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


2019-12-25 09:513591

评论

发布
暂无评论
发现更多内容

浅谈kafka

京东科技开发者

数据库 中间件 京东云 kafka manager 企业号 3 月 PK 榜

架构实战 8 - 消息队列MySql表格设计

架构实战营 「架构实战营」

一天吃透Git面试八股文

程序员大彬

git 面试

AutoCompleteTextView的基本使用

芯动大师

android 控件 AutoCompleteTextView

经验分享:高德地图如何短时间快速完成春节出行备战工作?

阿里巴巴中间件

阿里云 云原生 函数计算

阿里云消息队列 Kafka 生态集成的实践与探索

阿里巴巴中间件

kafka 阿里云 云原生 消息队列

Orika JavaBean映射工具使用

京东科技开发者

JAVA开发 京东云 JavaBean 企业号 3 月 PK 榜

Matlab常用图像处理命令108例(二)

timerring

图像处理

大型供应链物流企业的数字化转型方法论

明道云

架构训练营-模块9秒杀系统

张Dave

从混乱到完备:我的研发流程之路

SkyFire

研发流程

国内AGV调度系统到底是什么水平?

申扬科技

调度系统 AGV

JavaScript异步编程的深入理解,使用回调函数实现异步编程

兴科Sinco

JavaScript 前端 前端开发 异步编程

极氪汽车 APP 系统云原生架构转型实践

阿里巴巴中间件

阿里云 云原生

巧用GenericObjectPool创建自定义对象池

京东科技开发者

京东云 API 编排 对象池 京东物流 企业号 3 月 PK 榜

如何设计一个优秀的 Go Web 项目目录结构

江湖十年

Go 设计 后端 项目 Web Service

在前端领域摸爬滚打7年,我终于掌握了这些沉淀技巧

小鑫同学

初识大热的ChatGPT的几点思考|社区征文

穿过生命散发芬芳

ChatGPT

订单超时怎么处理?我们用这种方案

阿里巴巴中间件

阿里云 云原生

Kubernetes容器状态探测的艺术

俞凡

Kubernetes 云原生

将老人拉出无声的世界,AI是怎么做的?

脑极体

AI医疗

前端学习

阡陌r

FL Studio21中文语言版水果编曲工具

茶色酒

FL Studio21

前端学习路径

阡陌r

工作一年,我重新理解了《重构》

阿里巴巴中间件

阿里云 云原生 重构

LeSS敏捷框架高效生产力实践

俞凡

敏捷开发 大厂实践

强强联合:Neovim+ChatGPT | 社区征文

SkyFire

ChatGPT neovim

使用OpenAI接口释放ChatGPT API 的力量

devpoint

React nextjs ChatGPT

28岁小公司程序员,无车无房不敢结婚,要不要转行?

程序员晚枫

程序员 收入

Portraiture2023人像免费磨皮插件

茶色酒

Portraiture2023

统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?

阿里巴巴中间件

阿里云 云原生

混沌工程实践分享:整合信息安全和DevOps_软件工程_Christian Melendez_InfoQ精选文章