开源实践联盟通信 2021年 09月10日

你需要了解的5个开源安全项目

应用DevSecOps方法,IT团队将把安全性顺畅纳入整个应用程序生命周期之内。接下来要介绍的这些开源项目,也许能为企业的DevSecOps之旅提供有益的协助。

云原生最活跃的细分领域之一,当数各类与安全相关的项目。与以往一样,这些新型安全项目主要解决安全领域的某些特定难题;换言之,我们恐怕永远也找不到能够百试百灵、一劳永逸的安全工具。

在这里,我们将探索帮助团队顺利实施DevSecOps方法的五大开源工具。在它们的指引下,IT部门将把安全视为一项需要端到端加以集成的共同责任,由此突破以往“马后炮”式的事后补救思维。随着这些工具的成熟,各工具往往会全面集成至商业Kubernetes平台当中,包括Red Hat OpenShift。但就目前来看,这些项目暂时只能作为安全创新的良好窗口,为各位OpenShift用户提供有益的补充作用。

1. Clair

漏洞扫描是DevSecOps自动化CI/CD(持续集成/持续部署)工作流中的重要组成部分。这类扫描可以在整个工作流的多个位置进行——一旦将软件部署到生产环境当中,我们就应该根据通用漏洞披露数据库(CVE)上的全新威胁定义以及所部署镜像中的潜在变化,执行相应的安全扫描。

Clair是一个开源项目,用于对应用程序容器内的安全漏洞进行静态分析。Clair在本质上属于一个API驱动型分析引擎,能够逐层检查容器中是否存在已知的安全漏洞。使用Clair,大家可以针对容器漏洞构建起持续监控服务。

对于需要经常下载容器镜像的组织,这类服务就显得尤为重要。但即使是采用内部源代码构建容器的情况,随着时间推移、特别是新的安全漏洞被不断发展,这些漏洞同样可能快速蔓延,因此定期扫描应当成为企业的最佳安全实践。

2. Sigstore

对软件供应链的正确保护,当然不可能只靠在固定时间点上对DevSecOps CI/CD管道进行部署扫描。在包括谷歌、Linux基金会、Red Hat以及普渡大学在内的各合作伙伴的支持和帮助下,sigstore结合开发者、软件维护人员、软件包管理人员以及安全专家的实际需求整理出一套高质量工具集合。它能够处理数字签名、验证并记录数据以供透明审计,从而更安全地分发并使用各类签名软件。Sigstore的目标是为每位用户提供免费且透明的监管链跟踪服务。目前sigstore服务作为一项非营利性的公益服务运行,持续为各方提供软件签名支持。

Cosgin于2021年7月发布了其1.0版本,可以对存储在开放容器倡议(OCI)注册表内的工件进行签名和验证。其中还包括用于存储及发现签名的基础规范。

Fulcio则属于代码签名证书的根证书颁发机构(CA),会根据Open ID Connect(OIDC)邮件地址进行证书颁发。Fulcio所颁发的工件签名属于短期证书,这样用户既可以轻松完成签名、又不必担心私钥保护工作(可以在私钥被窃取时随时进行撤销)。

Rekor提供不可变、防篡改的透明分类账与时间戳服务,而且会在软件供应链中生成元数据。软件维护人员及各类构建系统可以将签名的元数据记录到不可变的记录当中,以供其他各方查询所述元数据、据此对目标对象生命周期的信任与不可否认性做出明确判定。

3. KubeLinter

KubeLinter的核心同样在于漏洞扫描。传统的漏洞扫描,在本质上可以理解成一种单元测试,其中各容器、库等都需要经过单独的测试。虽然这种方法本身颇具价值,但我们同样有必要对较为复杂的集成对象执行整体扫描。

KubeLinter会结合各种最佳实践对配置进行检查,重点关注生产准备情况与安全性水平。KuberLinter会运行合理的默认检查,并整理出关于Kubernetes YAML文件及Helm chart的实用信息。利用这些素材,团队就能快速检查安全配置错误并实施DevSecOps最佳实践。KuberLinter关注的常见配置包括以非root用户身份运行容器、强制执行最低权限以及仅在secret中存储敏感信息等。

因此,KubeLinter不仅能够扫描容器或库中的漏洞,同时也能找出软件配置及使用方式中的安全软肋。

4. 开放策略代理与GateKeeper

过去几年以来,策略管理成为Kubernetes安全领域中的一大关注焦点。开放策略代理(OPA)提供一种新型策略语言Rego,能够将基础设施堆栈及API中的各个层抽象出来。总结来讲,OPA意在简化安全策略,进而消除因复杂性而引发的安全漏洞。

OPA GateKeeper则是一种将OPA集成至Kubernetes当中的原生方式。它使用由Kubernetes定制化资源定义(CRD)构建的OPA约束框架进行策略的描述与实施。在3.0版本中,GateKeeper与OPA约束框架相集成,能够强制执行基于Kubernetes CRD的策略,并允许用户可靠地共享以声明方式配置完成的各项策略。

如此一来,我们就能为Rego策略创建策略模板、将策略创建为CRD形式并在策略CRD上存储审计结果。顺带一提,OPA GateKeeper属于谷歌、微软、Red Hat以及Styra共同参与的合作项目。

其下还包含多个子项目,例如用于策略共享的Rego Playground、用于策略创建的VS Code,以及用于最终控制的CLI和REPL等。

5. Falco

Falco最初由Sysdig于2016年开发并推出,属于一套Kubernetes运行时威胁检测引擎。Falco当中附带一组默认规则,可用于检查内核是否存在意外行为。例如,它可能会触发警报以响应命名空间的变更、权限提升或者意外网络连接。

Kubernetes Audit Events现在也被添加至Falco支持的事件源列表当中。如此一来,只要Kubernetes集群在配置中启用审计日志,它就能将审计日志以事件的形式发送至Falco。开发人员可以编写灵活的Falco规则以读取事件内容,并检测出一切可能的恶意主机/容器行为、活动或其他明显的异常状况。这些警报可被集成至事件响应工作流内,在显著缩短响应时间的同时配合现有流程管理一切。

时至今日,DevSecOps与Kubernetes安全领域已经存在大量开源方案可供选择。本文受篇幅所限,只向大家介绍了其中一部分相对较新、值得关注的内容。除此之外,还有多种其他扫描工具与不同成熟度的secret管理软件,再加上经典但仍然意义重大的经典网络与其他安全保护技术。毕竟面对复杂的威胁形势,我们只能凭借同等复杂的安全军备加以对抗。

《数字化转型方略》杂志 《数字化转型方略》杂志