云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

这篇具有很好参考价值的文章主要介绍了云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

DevSecOps 是什么?如何帮助我们打造云原生安全生态?

如何寻找云原生 DevSecOps 落地切入点?

第一层:K8s 安全

第二层:容器镜像安全

第三层:应用程序安全

这么多安全功能,如何去实现落地?

极狐GitLab x KubeSphere 云原生安全体系如何构建?

极狐GitLab 介绍

KubeSphere 介绍

在 KubeSphere 上使用极狐GitLab 搭建 DevOps 有什么优势?

如何在 KubeSphere 上安装极狐GitLab ?

极狐GitLab x KubeSphere 安全扫描

总结


本文整理自极狐GitLab User Group Meetup 杭州站上,极狐(GitLab) DevOps 技术布道师马景贺的演讲。

当听到云原生的时候,你会想起什么?

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

可能很多人很自然地就会想到 Kubernetes、容器、微服务、开源等等,这些关键词是我们接触云原生绕不开的话题。但是以上还少了一个关键词:安全。

云原生从 2013 年出现,2015 年发展起来以后,安全也逐渐被关注和重视。

以云原生中常用的镜像安全为例,下图是通过拉取常用镜像,用 Trivy 进行扫描的结果,不同颜色对应不同等级的漏洞。例如 node.js 这个开源项目,高危漏洞有 544 个,中危级漏洞有 921 个;还有 Jenkins,漏洞数量也不少。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

可以看到,容器镜像安全问题比较严重,关于容器镜像安全的更多分析报告,感兴趣的朋友可以参阅 Anchore 发布的 2021 年、2022 年软件供应链安全报告。

一个完整的软件开发生命周期包括源代码开发、构建、测试、部署等环节,每一个步骤都可能存在潜在安全风险。我们应该把安全嵌入到每一个环节中去,也就是将 DevSecOps 应用到云原生应用程序开发的每一个环节中去,再加上 K8s 容器镜像安全扫描,才能打造一个完整的云原生安全生态。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

DevSecOps 是什么?如何帮助我们打造云原生安全生态?


DevSecOps 是一个兼具深度和广度的纵深安全防御系统,从 Source code、 Build 、Test 到 Deploy,任何一个阶段,都有对应的安全手段。其次,DevSecOps 是流程、工具、文化的深度结合,传统的研发团队里,开发人员只负责代码的开发,不会关注后续的运维等流程,但在 DevSecOps 标准要求下,安全是团队中每个人的责任,需要贯穿从开发到运维全生命周期的每一个环节。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

DevSecOps 强调的安全测试左移,其实就是更早地让研发加入进来。我们软件研发过程中的大部分安全问题,都是在开发阶段引入的,因此,如果从 Source code 阶段就尽早将安全考虑在内,从源头处提升安全能力,就能更有效、更低成本地发现和解决安全问题。

安全持续自动化也是很重要的一个部分,因为一个完整的安全流程,涉及到很多安全工具,如果每个工具都手动配置,手动触发安全测试,那么工作量就会大大提升。所以 DevSecOps 期望的是安全持续自动化,开发写完代码提交变更以后(MR 或者 PR),就可以进行自动扫描,产出报告并建议你如何修复。

当然了现在也进入 ChatGPT 时代,我前段时间做了一个 Demo,ChatGPT 在 Code Review 阶段就告诉你哪些是有安全风险的,甚至还会给出推荐的修复代码,感兴趣的朋友也可以去尝试一下。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

Gartner 每年会针对新技术会发布一个技术成熟度曲线,上图是 2022 年的数据,DevSecOps 就在最右侧,代表着它已经很成熟了,这也是为什么从 2019 年开始,很多企业都在开始讨论 DevSecOps。

下图是我根据行业数据绘制的示意图,可以看出 DevSecOps 一词是在 2012 年由 Gartner 提出,引起强烈关注,到达高峰期;2016 年慢慢往下走,2018年前后到达泡沫破灭期;终于在 2022 年到达成熟期。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

从 2012 年提出概念,到今年已经有 11 年了,DevSecOps 经历了一个完整的技术成熟度曲线,现在已经到了落地生根的阶段,这也是为什么,现在我们可以分享 DevSecOps 的落地实践,而非停留在概念。

如何寻找云原生 DevSecOps 落地切入点?


安全是一个比较大的概念,当我们提到安全,可能包括主机安全、网络安全、应用安全……本文侧重于应用程序安全领域。

下图虽然只是一个 Yaml 文件,但是已经包含了我们应该如何实践 DevSecOps 的重要信息。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

镜像是重点,因为云原生时代都是镜像交付。虽然它是一个简单的二进制文件,但包含了很多东西,比如 OS、代码等,大部分的安全问题由此而生,此外 Yaml 文件本身也可能存在安全问题,比如上图下方红框展示的内容,即把敏感信息写到了 Yaml 文件中。

我们来进行一个拆分:

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

应用程序部署整体可以拆分成 3 层:

  1. 底座是 K8s 集群

  2. 中间是容器镜像

  3. 顶层是应用程序

我们落地 DevSecOps 时,也是按照这 3 层来打造安全防护体系。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

第一层:K8s 安全

首先第一层,基于 K8s 的安全防护手段,可能很多人都知道,比如 RBAC(权限管理)、Network Policy(网络策略)、Audit(审计日志)等。

第二层:容器镜像安全

第二层容器镜像,当我们编写 Dockerfile 时,有一些最佳实践可以遵循,例如如何选择基础镜像。

不同的基础镜像,安全漏洞数量不一样,攻击面大小也不一样。正如前文展示的几个容器镜像的漏洞数量,都是不一样。如果我们选择合适的基础镜像,那么就能减少攻击面。具体的就不展开了,大家可以去搜一下 Dockerfile best practice,网上有很多介绍。

另外就是镜像扫描,这也是非常重要的一环。

现在做镜像扫描的开源工具有不少,比如 Trivy、Clair、Anchore 等。使用这些工具可以帮助扫描我们采用的基础镜像是否安全,发现漏洞,然后进行修复,最后把这个镜像作为单一可信源的镜像,团队内部后续使用此镜像来制作其他镜像,那么安全性就能提高很多。

另外这两年在讲软件供应链安全,有一条就是通过数字签名来提高制品的可信性,比如 OpenSSF 基金会(开源安全基金会)下的 cosign 项目就可以对镜像进行签名,但为什么需要签名呢?

当构建镜像时,使用 1.0.0 tag 来构建,但是我们可以在再次修改代码之后,重新用 1.0.0 这个 tag 来构建镜像,并 push 到制品仓库。如果部署时仍旧拿 1.0.0 进行部署,那么内容其实已经被篡改,这也就是镜像的不可信,是镜像安全的另外一个维度。

如果对镜像进行签名,就能很好的避免这个问题。当镜像构建之后就对其进行签名,在部署时再进行验证,如果验证不通过,那么说明这个镜像被篡改了,就不应该再进行后续的部署。

以上就是关于容器镜像安全的几个方法。接下来我们看下最上层的应用程序安全。

第三层:应用程序安全

大部分公司,都有专门的运维人员或者安全人员帮我们加强 K8s 和容器镜像安全防护,而最上层最靠近业务,也是开发人员关注更多的一层。

这一层有非常多的安全防护手段,例如 Secret Detection、Dependency scanning、SAST、DAST 等,上图只列举了一部分。

以 Secret Detection 为例,根据我的经验,70% 以上的安全问题都来自于敏感信息泄漏。当我们在本地 Debug 时,很容易把 Password 写死,但测试提交代码时,可能忘了删除,直接把 Password Push 到代码仓库,就造成了泄漏,所以 Secret Detection 在应用程序安全这部分的作用非常重要。

云原生 DevSecOps 是一个深度 + 广度的纵深防御体系,从 K8s、Docker 到应用程序安全,每一层展开都有非常多的安全手段。总结来说,有以下落地原则:

  • 分层实施,循序渐进

  • 由简入繁,化繁为简

  • 重视数据,简化工具

  • 安全左移,研发闭环

  • 持续优化,持续安全

针对以上云原生开发安全防护体系,极狐GitLab 提供开箱即用的 DevSecOps 功能,包括七大功能:容器镜像扫描、静态应用安全测试 (SAST)、动态应用安全扫描(DAST)、密钥检测、License合规、依赖项扫描以及模糊测试。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

这么多安全功能,如何去实现落地?

一言以蔽之,就是将这些安全功能集成到 CI/CD(持续集成/持续部署)中去,达到持续测试和持续安全的效果。极狐GitLab 把所有安全功能和 CI/CD 集成到 Workflow 中,这个 Workflow 和研发工作流融合到一块,非常完整。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

而且,只需要几行代码,就可以完成对应手段的安全扫描,简单易用。

下图就是每个安全功能对应的 CI/CD Pipeline 代码。在这个过程中,开发不需要知道每个安全功能应用的工具是什么,不需要学习工具如何配置,只需要输入这几行代码,就能进行扫描,非常容易上手。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

图中不同安全手段标注不同颜色,是一个简单建议,也就是蓝色的几种安全手段是非常容易实践而且收效不错的,如果要全部落地实践,可以采取这种循序渐进的方式,先落地蓝色部分,再落地绿色部分。

极狐GitLab x KubeSphere 云原生安全体系如何构建?


接下来,我们来聊聊如何把 KubeSphere 和极狐GitLab 进行结合,利用 CI/CD,把安全防护手段集成到软件开发生命周期中。

极狐GitLab 介绍

极狐GitLab 是一个一体化的 DevOps 平台,其提供的一体化 DevOps 能力覆盖软件开发全生命周期(从计划到运维),同时内置安全功能,能够利用开箱即用的安全能力构建 DevSecOps 体系。

KubeSphere 介绍

Kubernetes 是一个非常复杂的容器编排平台,学习成本非常高,KubeSphere 所做的事情就是高度产品化和抽象了底层 Kubernetes,是一个面向云原生的操作系统,解决了 K8s 使用门槛高和云原生生态工具庞杂的痛点。

在 KubeSphere 上使用极狐GitLab 搭建 DevOps 有什么优势?

最典型的优点就是可以实现极狐GitLab & Runner 的云原生运行并实现灵活调度。

可以看下图这个实例,当研发人员提交代码变更之后,就会触发 CI/CD Pipeline,而极狐GitLab CI 如果检测到有 Job 需要运行,就会给 Runner 一个信号,触发背后的调度机制,Executors 帮助完成所有的 Step,例如对 Go 源码进行 Check out、Build、Test。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

如何在 KubeSphere 上安装极狐GitLab ?

极狐GitLab 和 KubeSphere 的集成主要有两个方式:

➤ 方式一

直接把极狐GitLab Runner 作为单组件,安装在 KubeSphere 上,当我们的应用程序代码提交之后,开始跑 CI 时,就会自动在 KubeSphere 上完成所有构建操作,并直接反馈数据。

安装步骤如下:

1. 在 KubeSphere 的 App Management 下,通过 App Repositories 添加一个App Repo;点击 Add 按钮,在出现的界面中输入 Repo name 和 URL(极狐GitLab Runner 的 Helm Chart 地址为 GitLab Helm Charts)

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

2. 在 Create App 中选择“From App Template”:

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

3. 选择 gitlab runner:

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

4. 修改 Yaml 文件内容,输入极狐GitLab 实例地址 Runner Token 等,点击 Install 即可。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

5. 安装成功以后,就可以在 KubeSphere 上看到 jh-runner namespace 下面有 Pod 在正常运行。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

➤ 方式二

把整个极狐GitLab 源代码托管平台安装到 KubeSphere 上面去,目前在 KubeSphere 上部署极狐GitLab 非常便利,只需要利用 KubeSphere 应用商店搜索极狐GitLab 即可一键部署。安装好以后,团队就可以直接在 KubeSphere 上面使用极狐GitLab 进行协作了,点击👉查看详细安装教程。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

以上介绍了如何在 KubeSphere 上安装极狐GitLab/Runner,接下来我们通过一个 Demo 介绍如何在 KubeSphere 上进行 DevSecOps 检测。

极狐GitLab x KubeSphere 安全扫描 DEMO

安装完以后,通过 Project → Settings → CI/CD 这个路径找到 Runner 页面,左边是项目专用 Runner,也就是只有这个项目可以用,其他项目用不了;右边共享 Runner 则是可以被此实例下的其他项目所使用的 Runner。

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

接下来详细演示一下扫描过程:

  • 先创建一个 Issue,这是 Workflow 的第一步,然后将这个需求 Issue 指派给自己;接着开始进行本地的代码编写,这里模拟一个场景,把 Token 这个敏感信息写进去,看看安全扫描过程是否能发现。

  • 接下来我们创建一个 MR,把这段有问题的代码提交上去,提交时可以选定指派人或审核人,让其他人来帮忙审核代码。

  • 创建 MR 以后,就会进行自动扫描,这时候就扫描出来了我们故意放进去的 Token,从而发现这个潜在安全问题。

  • 最后,修复后重新提交,再次扫描没有问题就可以合入了。

以上就是一个简单的 Demo,来使用极狐GitLab 的安全扫描功能,详细过程可以看下方 Demo 视频。

jihu-secret-detection

总结


本文给大家介绍了极狐GitLab 和 KubeSphere 各自的优势,并探讨了如何结合 KubeSphere 和极狐GitLab 来构建一个云原生应用安全体系,最后通过一个示例来展示极狐 GiLab DevSecOps 功能的工作原理,希望对大家有帮助~

扩展阅读:在 KubeSphere 上使用极狐GitLab 搭建 DevOps 环境文章来源地址https://www.toymoban.com/news/detail-514659.html

到了这里,关于云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在极狐GitLab 自定义 Pages 域名、SSL/TLS 证书

    本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了在极狐GitLab 用户自定义 Pages 域名、SSL/TLS 域名证书。 默

    2024年04月26日
    浏览(34)
  • 如何将自定义安全扫描器集成到极狐GitLab 中?

    本文来自极狐GitLab 资源中心。原文链接:https://resources.gitlab.cn/articles/f8d8adc4-7007-4711-8614-23ebd61e807d。 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channel=contentutm_source=csdn 是 GitLab 在中国的发行版

    2024年04月22日
    浏览(41)
  • k3s x GitLab Runner Operator,GitLab CI 云原生构建新体验

    GitLab CI 是非常常用的一款 CI/CD 工具,只需要在 .gitlab-ci.yml 文件中用 YAML 语法编写 CI/CD 流水线即可。而 GitLab CI 能够运行的关键组件是 GitLab Runner。GitLab Runner 是一个轻量级、高扩展的代理,主要用来执行 GitLab CI/CD 流水线中的 Job,然后将 Job 的执行结果返回 GitLab 实例。 Gi

    2024年01月21日
    浏览(50)
  • 快速构建一个 GitLab + Jenkins + Harbor 的云原生 DevOps 环境

    今天我们要搭建一条怎样的工具链呢?且看效果图: GitLab + Jenkins + Harbor Toolchain Workflow 首先我们需要完成 GitLab、Jenkins 和 Harbor 三个工具的部署; 接着我们需要在 GitLab 上创建一个代码库,并且在 Jenkins 上创建相应的流水线,这个流程最好也自动化(确实可以自动化); 然后

    2024年02月15日
    浏览(45)
  • 在云原生时代,构建高效的大数据存储与分析平台

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:大数据系列 ✨文章内容:大数据存储 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 在云原生时代,构建高效的大数据存储与分析平台需

    2024年02月10日
    浏览(42)
  • AIGC时代,基于云原生 MLOps 构建属于你的大模型(上)

      为了满足企业在数字化转型过程中对更新迭代生产力工具的需求,灵雀云近日推出了云原生 MLOps 解决方案,帮助企业快速落地AI技术、实现智能化应用和服务。 随着信息化技术的不断发展,企业在数字化转型的过程中,需要不断地更新迭代生产力工具,从最早的将物理世界

    2024年02月11日
    浏览(42)
  • AIGC时代,基于云原生 MLOps 构建属于你的大模型(下)

    为了满足企业在数字化转型过程中对更新迭代生产力工具的需求,灵雀云近日推出了Alauda MLOps 解决方案,帮助企业快速落地AI技术、实现智能化应用和服务。 随着ChatGPT的爆火,越来越多的人考虑使用AI来提升我们日常工作的效率和质量,通过对话协助生成需要的文本数据。无

    2024年02月12日
    浏览(47)
  • 在极狐GitLab 配置 SSL/https

    本文作者 徐晓伟 极狐GitLab https 使用的是 nginx 实现的 本文使用的域名是IP 192.168.80.14(原因:如果使用域名,必须拥有这个域名的所有权,并增加解析才可以,要不然在 Docker 容器中,无法使用域名检出代码,因为根据域名找不到DNS记录) 如果使用自己生成的证书,git 检出代

    2024年03月18日
    浏览(54)
  • 【极狐 GitLab】在 web 端合并分支

    数字化管理平台 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 权限系统-商城 个人博客地址 极狐GitLab是GitLab DevOps平台的中国发行版,一套完备的一站式DevOps平台,从根本上改变了开发、安全和运维团队协作和软件构建方式。极狐GitLab从构思到生产发布,帮助团队提高生产效率,将迭代周

    2024年02月05日
    浏览(61)
  • 极狐GitLab 和 ArgoCD 集成实现 GitOps

    目录 ArgoCD 和 GitOps 概述 极狐GitLab 与 ArgoCD 的集成 ArgoCD 的安装 sops 介绍 探秘 gpg sops 和 gpg 的结合 ArgoCD 的使用 极狐GitLab 仓库的添加 gpg public key 的添加 ArgoCD Project 创建 ArgoCD Project 配置 ArgoCD GitOps workflow 验证 ArgoCD 是一款开源且主要针对 Kubernetes 来做 GitOps 的持续交付工具。现

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包