关于安全:IaC-安全保卫战

27次阅读

共计 2702 个字符,预计需要花费 7 分钟才能阅读完成。

“起初,没人留神这场劫难,不过是一个谬误的配置,一个默认的口令、一个没有修复的破绽、一次 DDoS 导致的宕机,直至整个攻打与所有人非亲非故。”——《漂泊地球(云原生平安版)》

「打响“IaC 平安保卫战”」,明天和大家分享的是 IaC 基础设施即代码的相干平安和一些对应的解决思路。

 听到一些红队的小伙伴埋怨:"政府 / 医疗 / 学校我的项目好做,然而到了互联网厂商和云环境下,就显得有些措手不及。"

其实 IaC 在很多企业内曾经利用非常宽泛。然而相对来说「麻利开发」和「DevOps」曾经将开发技术栈、将传统的技术架构拉开了比拟大的鸿沟。更多的平安钻研人员仍专一于传统的「利用平安」和「根底平安」。

利用平安指咱们常说的「web 平安」,而根底平安个别指「主机平安」、「网络安全」等。

什么是 IaC?

上图显示的是从文字定义上解释“什么是 IaC?”

然而定义往往都是比拟难懂的,对于平安人员,可能理论参加开发的场景比拟少,所以对具体开发我的项目所做的一些流程并不是很相熟。

从我集体的了解登程,IaC 其实就是一种思维:它将状态性的形容定义为了人类可浏览的代码段,并通过束缚工具,来实现从 0 状态到 咱们冀望的状态的转变。举个例子:当你拿到一台簇新的电脑,或者是重装一台主机时,一些罕用的利用,环境都须要重新安装。生产业务也雷同,当一个新利用须要部署时,新的虚拟机须要为利用提供特定的环境依赖并初始化。这时,老运维通常会掏出祖传的 ansible 脚本,即可疾速生成一个残缺的、牢靠的环境,这便是晚期的 IaC 状态。

同样的,利用在进行配置管理、主动扩容缩容等等场景,都波及到了 IaC 的应用。IaC 的特色与分类「IaC 的特色」重复性:一份脚本能够屡次应用。可测试性,可视化:将本来不可见的状态形容进去,档次清晰明了,每一步骤能够独自测试。可扩大:比方咱们当初须要一个 nginx 主机,前面又须要了一个 nginx 主机,则能够利用 IaC 进行疾速扩容治理。一致性:IaC 保障最终的状态保持一致。

「IaC 的分类:」

  1. 命令式更直观的管制: 命令式 IaC 更适宜对基础设施进行间接的管制和操作,能够更好地管制底层组件的细节。更精准管制:命令式 IaC 容许更细粒度的管制,能够在配置文件中间接指定每个组件的细节,从而更准确地管制基础设施。更容易实现:因为命令式 IaC 应用的是编程语言,因而更容易上手和实现,不须要过多的培训和学习老本。更好的灵活性:命令式 IaC 更适宜具备肯定灵活性需要的组织,能够依据不同的需要对基础设施进行疾速调整。
  1. 申明式更简略和易读:申明式 IaC 应用的是基于申明的语言,代码更容易了解和保护。更自动化:申明式 IaC 能够实现更高水平的自动化,零碎可能主动解决基础设施的创立和保护,从而缩小了手动谬误。更稳固和牢靠:因为申明式 IaC 代码形容了冀望的最终状态,零碎将主动确保所需状态曾经实现,从而进步了零碎的稳定性和可靠性。更适宜大规模部署:申明式 IaC 更适宜具备大规模部署的组织,能够缩小配置和部署过程中的谬误和不一致性。IaC 的重要性咱们来看看 IaC 产生的两个理论劣势:

其中最显著的就是「效率进步」:

另一个是「防止手动操作导致的平安危险」:

每次见到一些开发人员为了配置环境或寻找 bug,间接登录到了生产环境的机器进行间接操作,都胆战心惊。而 IaC 能够提供一套规范流程标准,防止人为操作失误。IaC 平安的挑战上面列出了 IaC 可能存在的危险:

咱们来简略举几个例子:

  1. 根底镜像破绽
  1. 镜像源不可信

若某一天该镜像源受到黑客入侵,或者是镜像源维护者作恶投毒,则你本人的镜像也会受到影响。

  1. 数据泄露 / 硬编码

直到明天,在 github 搜寻阿里云 AK/SK 的要害字样,还能够搜寻到不少相干密钥信息。而以上问题都能够在一开始的 IaC 配置文件,也就是 dockerfile 构建之前的剖析就能够发现,并揭示业务进行解决。IaC 平安最佳实际避免硬编码密钥渗透到 IaC 中。

比如说咱们在 dockerfile 构建时为了不便,将 buckets 桶的 AK/SK 硬编码到了 ENV 中,就可能导致被利用从而获取整个云上内网环境权限。

❝配置谬误问题始终是一个渺小然而致命的问题,所导致的影响成果能够参考弱口令。❞

一百个研发有一百种形式从不同的中央获取配置信息(环境变量、全局变量、config-file、甚至于自带一个小的 sqlite),也侧面阐明了配置核心建设的重要性。现实的状态下,所有的敏感配置信息都应该从配置核心动静的进行获取,而不是以明文的模式呈现在文件中。

保障 IaC 文件的可靠性

IaC 太过于不便了,利用起来同样也很不便,只有有权限,咱们不须要理解如何去部署挖矿,一键式命令即可帮忙实现入侵。攻击者可能通过一些破绽:(如 K8s APIServer 不平安的配置)获取到 IaC 工具的管制权限,从而下发了歹意的 yml 配置。所以保障 IaC 文件的可靠性十分重要。

遵循 IaC 文件官网举荐的最佳实际

策略引擎:OPA

“OPA,来打造本人的 IaC 扫描器。”

什么是 OPA 呢?

我集体的形容:「是一个云原生时代的统一化策略引擎」。

比方在传统互联网架构中,先不提不同厂家之间的差别,同一厂家、不同安全设备之间的规定也齐全不雷同。Waf 的过滤规定文件和 Sast/Dast 查看的规定文件,必定齐全不同的。而 OPA 提供一套标准化的准则引擎,可利用于整个云开发生命周期中的各个局部,标准化策略的格局。

申明式语言:OPA 应用一种申明式语言,称为 Rego 语言,来定义策略。

Rego 是一种基于汇合的语言,它容许您应用基于模式匹配和条件逻辑的规定来定义策略。这种语言的劣势在于,能够不便地形容和组合不同的策略。

策略评估:OPA 能够在不批改利用程序代码的状况下,间接将其集成到应用程序中,并评估申请或数据是否合乎定义的策略。OPA 通过应用 Rego 语言和集成 API 来使策略评估成为可能。

如何将 OPA 利用于咱们的 IaC 检测中呢?

将 OPA 利用于 IaC 扫描的思路:规范化扫描文本对象,形象成固定的模版类。将规定转化为 .rego 策略文件。依照不同的类别命名 rego package, 来辨别策略级别。

问脉 Tools 社区版是长亭牧云团队孵化的一款开源容器平安检测工具集。目前已反对镜像 / 容器破绽、逃逸危险、歹意文件、后门、敏感信息、弱口令、资产辨认等扫描性能。为了提供更优质的服务,咱们同时提供商业版牧云·云原生平安平台。首推零侵入探针,采纳 Agentless 计划进行部署,保障业务节点实现严格意义上的零侵入检测,让用户可能轻装上阵,轻松解决云原生平安问题。

收费应用工具:https://stack.chaitin.com/tool/detail?id=3

正文完
 0