本文主要介绍云效全流程安全能力,包括运营安全、代码安全、CI/CD流程安全、制品安全、运行时安全等。
运营安全
云效为组织的安全生产提供了保障,具备精细化权限控制和审计追溯能力,以确保数据资产的安全:
多级精细化权限管控:通过多角色权限分级,实现权限的清晰管理和控制;
离职用户权限回收:在绑定钉钉企业后,员工离职时自动回收其权限;
审计日志:危险行为计入日志,支持审计追溯;
IP白名单:限制代码、制品等数据资产的访问,仅允许白名单内的IP访问;
安全水印:支持在源代码浏览页面添加访问者水印,提高代码页面展示的安全性,辅助溯源追责。
代码安全
云效 Codeup 通过提供代码检测、仓库加密、备份恢复等能力,为组织代码资产安全保驾护航。
代码检测
云效 Codeup 支持多语言代码检测规则,涵盖源码开发质量规范、源码安全,以及依赖包风险漏洞扫描,符合CWE、OWASP、SANS、CERT等标准。详细规则如下:
适用语言 | 规则包名称 | 规则介绍 |
Java | Java开发规范 | 开发规范基于《阿里巴巴 Java 开发手册》,是阿里内部Java工程师遵循的标准,涵盖了编程、单元测试、异常日志、MySQL、工程及安全等方面的规约。这些规范是近万名阿里Java技术精英的经验总结,经过多次大规模实战检验与完善。 |
Java安全检测 | 基于SpotBugs静态分析工具,平台提供了一系列规则来检测代码中常见问题。这些规则有助于开发人员提升代码质量,并降低潜在安全风险。 | |
源码漏洞检测 | 在软件开发中,大多数安全漏洞源于开发者失误,尽管编码工具也可能出现意外,但主要问题仍由编码不当引起。企业通过系统化的编码安全培训降低风险,但效果有限。为此,云效利用专业安全产品Sourcebrella Pinpoint提供全面的源码漏洞检测服务,涵盖以下几个方面:
| |
依赖包漏洞检测 | 现代企业广泛使用开源组件,但由于开源组件提供者因各自情况忽略部分安全测试,导致这些组件容易成为黑客攻击的目标。为确保安全,企业应采取以下措施:
依赖包漏洞检测基于丰富的安全漏洞库,能够高效识别代码中的直接和间接漏洞风险,并推荐修复版本以消除这些风险。 | |
代码补丁推荐 | 云效采用业界和学术界流行的缺陷检测方法,分析并规避其局限性,通过自主研发的算法更精准高效地识别代码缺陷并提供优化方案。该算法已被国际软件工程大会(ICSE)收录。 此外,云效代码补丁推荐服务应用于合并请求的自动扫描场景,基于最佳实践样本训练的智能算法为开发者提供缺陷修复。 | |
JavaScript | JavaScript开发规范(Vue\React) | 基于《阿里巴巴前端规约》的ESLint配置,该配置主要用于JavaScript开发规范,涵盖了编码风格、语言特性、注释和命名检查等方面,旨在确保代码的一致性和可维护性。 |
TypeScript | TypeScript开发规范(Vue\React) | 基于《阿里巴巴前端规约》的ESLint配置,该配置主要用于TypeScript开发规范,涵盖了编码风格、语言特性、注释、命名检查等方面,旨在确保代码的一致性和可维护性。 |
Golang | Golang开发规范 | 支持Go代码规范进行问题扫描,涵盖了代码风格、代码简化、不具结构性的段落以及未使用的函数、变量和类型等方面。 |
Golang安全检测 | 基于gosec静态分析工具对Go代码进行检测与识别,以发现潜在的安全漏洞和问题,并提供实时反馈和建议,从而帮助开发人员在上线前识别和解决相关问题。 | |
Python | Python开发规范 | 分析Python代码中的错误,识别不符合代码风格标准及存在潜在问题的代码,并提出重构建议。 |
Python安全检测 | 基于Bandit检测工具,帮助开发者识别并修复Python代码中的编码安全问题。 | |
Python编码检测 | 基于PyCodeStyle检测工具,旨在帮助开发者识别和修复Python代码中的风格问题。 | |
NodeJs | Node.js安全检测 | 基于ESLint规则,检测Node应用中常见的潜在安全隐患。 |
C/C++ | C/C++安全检测 | C/C++ 安全检测规则包,基于 CppLint 实现的安全检测功能。CppLint 根据 Google 的编程风格指南进行代码扫描,检查代码的每一行是否符合 Google 的编码风格规则,同时能够快速识别代码中的安全问题,并提供卓越的代码安全规范建议,以帮助开发人员提升代码质量和安全性。 |
C/C++基础规则包 | C/C++基础规则包提供了一种独特的代码分析功能,用于检测错误,无需提供编译信息。执行的检查内容包括:未定义行为或其他错误的检测、代码风格的审查,以及性能因素的评估等。 | |
Lua | Lua通用检测 | 基于LuaCheck检测工具,旨在协助开发者识别并修复Lua代码中的语法、编码风格及安全问题。 |
Scala | Scala编码风格检测 | 基于ScalaStyle工具进行Scala编码风格检测,以帮助开发者优化编码过程中的Scala编码风格问题。 |
Kotlin | Kotlin基础规则包 | 基于Detekt检测工具,旨在协助开发者识别与修复Kotlin开发过程中的编码问题,从而提升代码质量,降低潜在的代码漏洞。 |
Android | Android基础规则包 | 基于Android Lint检测工具,旨在协助开发者识别并修复在开发过程中出现的编码规范及安全问题,从而提升代码质量,减少潜在的代码漏洞。 |
不限语言 | 敏感信息检测 | 检测代码中的API密钥及其他敏感凭证,以有效防止敏感信息的意外提交和泄露。 |
代码检测能力详细说明,请参见 代码检测。
基于上述检测能力,系统支持在代码提交和代码评审场景中自动触发,同时能够在流程中设置强制卡点,以有效管控合并至核心分支的代码安全质量。此外,平台还支持在合并请求场景中扩展对接企业自有的安全检测工具或第三方检测服务,将外部检测结果纳入代码合并的卡点,以满足企业自定义的检测需求。
仓库加密
云效 Codeup 提供仓库加密功能,确保代码存储的安全性和合规性。在数据上传时,Codeup 对用户数据进行加密并持久化存储;下载时自动解密并返回可读数据,支持阿里云密钥管理服务(KMS)与云效自管理密钥加密两种方式。详细说明,请参见仓库加密。
代码备份
云效 Codeup 提供代码备份功能,支持定期将代码数据同步到安全可控的存储空间,确保托管在 Codeup 的仓库具备备份、追溯和还原的能力。用户可以选择将代码备份至企业自有OSS,支持全量备份和增量备份两种方式,并具备历史备份自动归档功能,有助于节约存储成本。更多详情请参见代码备份。
CI/CD流程安全
云效 Flow 在构建阶段通过内置集成多种工具确保代码和制品的安全,包括各语言的单元测试、覆盖率采集、代码规约扫描、安全扫描和镜像扫描。同时,它还支持组织自定义开发步骤,以便对接自有安全工具或平台(如 SonarQube)。
内置集成测试扫描能力
测试/扫描类型 | 能力概述 | 详细说明 |
单元测试 | 提供 Maven、Gradle、Python、Node.js、Go等各技术栈单元测试能力。 | 详见 步骤 steps 清单 。 |
覆盖率采集 | 提供Jacoco覆盖率采集、Cobertura覆盖率采集、Python覆盖率采集等能力。 | 详见 步骤 steps 清单 。 |
代码检测 | 提供Java、Node.js、Python、Php、C++、Go等各技术栈代码规约检测或安全扫描能力。 | 详细扫描工具和规则说明如下:
|
SonarQube扫描 | SonarQube扫描 | 云效平台支持通过自有 SonarQube 扫描任务对代码进行安全性和质量检查,同时允许设置红线信息卡点,确保代码符合预定义的安全标准。 |
镜像扫描 | Trivy 镜像扫描 | Trivy 是一种基于静态分析技术的工具,能够对Docker、OCI 等多种类型的镜像进行深度扫描,帮助您发现其中存在的安全漏洞。 |
自有安全工具或平台对接
除了云效 Flow 流水线内置的代码测试扫描工具外,用户还可以利用 Flow-CLI 步骤开发工具,自定义集成更多测试扫描工具或平台,以适应更广泛的安全测试需求。详细请参见开发一个带红线卡点的SonarQube扫描步骤。
制品安全
从可信源下载依赖包
在软件研发过程中,应避免从不可信的源引用软件包。建议使用阿里云镜像站提供的可信镜像和软件制品源,确保下载的安全性。
此外,云效 Packages 支持创建组织私有的制品仓库,涵盖通用制品、Maven、Npm、NuGet、PyPI 等多种类型,并提供租户隔离、权限控制和高可用存储,全面保障组织制品的安全。详细说明请参见制品仓库。
内置集成 Trivy 镜像扫描
云效 Flow 流水线内置了 Trivy 镜像扫描工具,提供专门的 Trivy 扫描步骤。通过 Trivy 静态分析技术,Trivy 能够对 Docker、OCI 等多种类型的镜像进行深度扫描,帮助用户发现其中的安全漏洞。
集成 ACR 镜像扫描
云效 Flow 流水线集成了 ACR(阿里云容器镜像服务)镜像扫描功能,在镜像推送至仓库前后自动进行扫描,以检测潜在的安全漏洞、许可证问题和恶意软件,确保只有通过扫描的镜像才能用于后续部署。典型使用场景包括:在预发阶段,镜像构建完成后推送到 ACR,自动触发镜像扫描,扫描通过后再自动部署到预发环境。详情参见集成 ACR 镜像扫描进行安全合规性检查与ACR 镜像安全。
运行时安全
在应用运行阶段,云效通过与阿里云云安全中心的集成,实现了应用运行时的威胁检测与阻断,确保每个应用Pod的安全运行。云安全中心基于云原生部署能力,提供从数据采集、识别、分析到响应和处置的自动化安全流程,并支持统一的安全管控。该系统利用多日志关联和上下文分析,实时检测并防御命令执行、代码执行、SQL注入、数据泄露等常见风险,覆盖业务漏洞入侵场景。此外,它结合K8s日志和云平台操作日志进行行为审计和风险识别,防范容器逃逸、AccessKey泄露及未授权访问等风险。更多详情请参见什么是云安全中心。