5 大手段,打造单一可信源代码托管平台|极狐GitLab DevSecOps 助力 SLSA 落地之源代码篇

news/2024/10/30 15:24:40/

🤔什么是 SLSA?

SLSA( Supply chain Levels for Software Artifacts) 是一个安全框架,一系列关于标准和控制的清单,用来防止篡改、提高完整性以及保护项目、业务以及企业中软件包与基础设置的安全。

SLSA 安全框架基于行业共识创建,同时适用于软件生产者和软件消费者:

  • 生产者:遵循安全标准让其研发的软件更安全;

  • 消费者:根据所使用软件包的安全状态来做出对应的决策。

接下来,我们将从「源代码」「依赖」等方面来讨论极狐GitLab DevSecOps 如何助力 SLSA 落地。本文为「源代码」篇,Enjoy~

可信的源代码托管平台是落地 SLSA 的关键


SLSA 框架建立了三个信任边界,鼓励用户采用正确的标准和防护手段来加强系统防御。这三个信任边界分别是:SourceBuild 以及 Package

而在每个边界处都有潜在的不安全操作,可能破坏整个体系的安全性。例如在源代码托管部分,一个未经验证的用户提交或一次未签名的提交等,可能将存在安全隐患的代码提交到仓库,最终成为软件供应链中的「一颗雷」。

一个可信的源代码托管平台是保证软件供应链安全的第一要素,也是助力企业落地 SLSA 框架的关键。

极狐GitLab:单一可信的源代码托管平台


极狐GitLab 是一个一体化安全 DevOps 平台,源代码托管是其重要功能。在经历了十多年的发展后,极狐GitLab 已成为具有多种安全防护手段的单一可信源代码托管平台,下文将介绍其中 5 种安全手段:

认证与密码保护

「认证」是保护一个平台安全的最基本要求。就像一个人在进入一栋建筑物时,需要认证是否为授权人员;进入建筑后,还要赋予对应权限,来允许其在不同区域进行对应的授权操作。

在认证阶段(进入建筑),极狐GitLab 支持 2FA 以及弱密码保护。

2FA(Two-factor authentication)是极狐GitLab 为账号提供了另一层安全保护,除了用户名密码外,还需要提供第二层认证因素(比如手机验证码)才可以登录账号。

用户只需要开启 2FA 配置即可:

2FA 能够有效防止用户在不小心丢失用户名密码的情况下,极狐GitLab 账号被恶意登录使用。

此外,极狐GitLab 在 15.4 开启了弱密码阻止功能。如果密码与已知的 4500+ 弱密码相匹配、密码中包含用户名或包含 gitlab、devops 等字样,会导致密码修改、创建失败,避免弱密码隐患。

此外,还可以通过设置密码长度,来确保密码足够健壮。

精细化权限管理

在授权阶段(进入建筑后的授权操作),极狐GitLab 使用 RBAC 进行精细化权限管理。

当将某个用户添加到某个 Group/Project 中时,通过赋予的角色(Role)来决定用户对于该 Group/Project 下的仓库具有何种操作权限。

目前可用的 Role 有:Guest、Reporter、Developer、Maintainer 以及 Owner。不同的 Role 具备不同的可执行权。

此外,极狐GitLab 还可以通过保护分支、CODEOWNERS 等功能实现对于分支、特定文件或目录的操作权限控制,确保只有授权用户才能执行对应操作。

Commit 签名

Commit 签名是为了确保代码提交者为代码变更的真实作者,防止代码被篡改,导致整个项目面临重大潜在安全风险。常用的 Commit 签名方法包括 GPG、SSH key 以及 X.509 证书等。

极狐GitLab 默认支持用 GPG 对 Commit 进行签名和验证。使用非常便捷,只需要在极狐GitLab 界面上配置好 GPG key:

接着只需要简单配置 git 即可:

git config --global user.signingkey YOUR-GPG-KEY

提交代码即可看到 Commit 现已验证

Code Reivew

Code Review 是确保质量安全内建的重要步骤。

通过 Code Review 可尽早发现代码中潜在的安全风险(如敏感信息硬编码、SQL injection、XSS 等),以最小成本完成安全问题修复,确保合入主分支的代码安全性是有保证的。

针对每次代码提交(MR),极狐GitLab 可以指派多个审核人对于变更代码进行多人多轮的 Code Review。

进一步,配合自定义的的多种代码准入规则(只有特定人员批准或满足特定条件的代码才允许被合入)构建多级代码安全保护机制。

安全审计

安全审计能够确保对于源代码的所有操作都有迹可查,便于追溯审计。

安全审计事件可以包括:

  • 实例密码变更;

  • 用户权限更改;

  • 用户 CRUD(增删改查)操作;

  • 项目导出与下载等。

这些事件(变更)的记录,对于了解源代码托管平台所发生的动态以及对应操作的变更人信息等,有着重要作用,能够有效防止源代码泄露。即使发生泄露,也可以通过回溯审计报告来查找可疑线索(比如某个即将离职的员工,在某时间段内疯狂下载代码)。

极狐GitLab 具备审计事件 “告警” 能力,主要分两类:审计事件和事件流

对于审计事件的告警,直接在极狐GitLab 的安全和合规面板中即可查看:

对于审计事件中支持的所有变更事件详情可以查看极狐GitLab 安全审计官网。

而对于审计流来讲,可以将事件(变更)发送到第三方系统进行审计,比如 ELK。

第三方系统在接收到事件流之后会进行进一步的解析处理,最后通过展示面板进行可视化,方便管理员或者审计人员查看。而且,第三方系统还可以和一些告警工具结合起来,当有过度操作(大量下载)时,可以将告警信息通过 Email、Slack 等发送给管理员或安全人员。

源代码是企业的核心资产,单一可信的源代码托管平台是帮助企业高效安全管理企业源代码,防止核心资产泄漏的有效手段。

🌟 以上就是极狐GitLab DevSecOps 助力 SLSA 落地之「源代码」篇,希望对您有帮助!

接下来我们将推出「依赖」篇等内容,敬请期待~


http://www.ppmy.cn/news/40727.html

相关文章

机器学习:朴素贝叶斯模型算法原理(含实战案例)

机器学习:朴素贝叶斯模型算法原理 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏&…

ROS学习——rotors仿真下载与运行

rotors 无人机仿真主要分为两类:硬件在环仿真(HITL)和软件在环仿真(SITL全称Software in the loop)。 无人机软件在环仿真是指完全用计算机来模拟出无人机飞行时的状态,而硬件在环仿真是指计算机连接飞控…

代码随想录算法训练营第五十二天| 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组。

300. 最长递增子序列 题目链接:力扣 题目要求: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如&am…

Java基础(一)Java语言概述及入门

1 Java语言概述 1.1Java概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言。是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以在Web浏览器中运行。这些Java程序被称为Java小程序(appl…

推荐5款重度电脑用户也未必知道的小众软件

作为一个重度电脑用户,你可能会经常使用一些软件来完成各种任务和娱乐。但是你知道有哪些好用的WIN10软件吗?今天我就为你介绍一下我推荐的五款WIN10软件,它们分别是: 1.反恶意软件——Malwarebytes Malwarebytes是一款专业的反…

终端针对2G/3G退网场景处理方式介绍

本文介绍两种终端针对2G、3G网络频谱释放场景处理方式。 呼叫过程中网络返回SIP ERROR终端IMS呼叫过程中,网络返回PRACK message error,不同的运营商可能会有不同的要求。 如果运营商希望终端保持较好的IMS呼叫连续性和呼通率,那么终端可以忽略网络返回的错误继续完成IMS呼…

spring事务处理

系列文章目录 Spring中事务的处理相关内容的学习 文章目录系列文章目录前言一、Spring事务简介二、案例:银行账户转账1.题目要求和思路分析2.实现步骤3.实现结构三、spring事务角色四、spring事务相关配置五、案例:转账业务追加日志1.题目要求和思路分析…

为什么黑客不黑/攻击赌博网站?如何入门黑客?

攻击了,只是你不知道而已! 同样,对方也不会通知你,告诉你他黑了赌博网站。 攻击赌博网站的不一定是正义的黑客,也可能是因赌博输钱而误入歧途的法外狂徒。之前看过一个警方破获的真实案件:28岁小伙因赌博…