写点什么

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

评论

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

设计消息队列存储消息数据的 MySQL 表格

Geek_7d539e

面试没有分库分表经验,就看这篇

三十而立

Java sql 程序员 IT 分库

pytest学习和使用1-pytest安装和版本查看

Python 自动化测试 pytest

1个案例读懂——游戏产品如何用A/B测试做增长

字节跳动数据平台

云服务 AB testing实战 A/B测试 企业号 3 月 PK 榜

TiCDC 源码解读(5)-- TiCDC DDL 事件处理逻辑 与 Filter 实现介绍

TiDB 社区干货传送门

TiCDC 源码解读

Apache APISIX 3.2.0 LTS 正式发布

API7.ai 技术团队

手把手教你写spring boot starter

三十而立

Java 程序员 IT springboot boot

【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)

码界西柚

分布式 PAXOS paxos协议 算法分析

将TiDB各服务组件混布到物理机集群和K8S环境

TiDB 社区干货传送门

实践案例 集群管理 管理与运维 安装 & 部署 数据库架构设计

TiDB SQL调优案例之避免TiFlash帮倒忙

TiDB 社区干货传送门

性能调优 实践案例 故障排查/诊断

Java 8 的异步利器:CompletableFuture源码解析(建议精读)

Java你猿哥

Java ssm java8 源码解析

云图说丨初识华为云安全云脑——新一代云安全运营中心

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

你可能并不了解 Milvus

Zilliz

SaaS Milvus 社区活动

文盘Rust -- 安全连接 TiDB/Mysql

TiDB 社区干货传送门

开发语言

BSN-DDC基础网络详解(五):接入DDC网络(2)

BSN研习社

BSN-DDC基础网络

基于阿里云数据库TiDB的性能压测初体验

TiDB 社区干货传送门

性能测评 6.x 实践

基于 TiCDC 的 TiDB 复制集群的计划内和计划外切换验证步骤

TiDB 社区干货传送门

性能调优 实践案例 故障排查/诊断 数据库架构选型

Dr-autosync TiDB 集群的计划内和计划外切换验证步骤

TiDB 社区干货传送门

实践案例 集群管理 安装 & 部署 数据库架构选型 6.x 实践

云数据库TiDB免费试用初体验

TiDB 社区干货传送门

版本测评 安装 & 部署

温湿度计设备通过阿里云IoT物联网套件上报数据到钉钉群机器人实践——数据价值类

阿里云AIoT

JavaScript Serverless 物联网 机器人 机器学习/深度学习

武汉等保测评有限公司有哪几家?具体位于哪里?

行云管家

等保 等保测评 等保2.0 武汉

国家高新技术企业是国企吗?获得高新企业证书有什么用?

行云管家

高新企业 高新技术

监控告警处理之tidb_server_critical_error_total

TiDB 社区干货传送门

监控 故障排查/诊断

TiCDC 源码解读(6)- TiCDC Puller 模块介绍

TiDB 社区干货传送门

TiDB 源码解读 TiCDC 源码解读

深入理解spring mvc启动过程与原理

三十而立

Java spring 程序员 开发 IT

pytest学习和使用2-初步使用和用例运行

Python 自动化测试 pytest

基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地

Apache Flink

大数据 flink 实时计算

TiDB容器化的管理利器--TiDB Operator

TiDB 社区干货传送门

集群管理 新版本/特性发布 安装 & 部署 新版本/特性解读

搭建阿里云 TiDB 的灾备,让我安欣睡个好觉

TiDB 社区干货传送门

实践案例 安装 & 部署 备份 & 恢复 数据库架构设计

携程 x TiDB丨应对全球业务海量数据增长,一栈式 HTAP 实现架构革新

TiDB 社区干货传送门

快速尝鲜:RabbitMQ 搭建完就得用起来

Java你猿哥

Java Spring Boot ssm RabbitMQ

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