StepSecurity 的修复目录

转变开发者实践安全最佳方案的方式

引言

在当今快节奏的软件开发世界中,确保代码免受漏洞和潜在攻击至关重要。开发者渴望遵守安全最佳实践,但这可能既耗时又令人无所适从。

安全修复需要变得更加简单

这就是 StepSecurity 的用武之地——一个革命性的平台,可自动执行文档中的安全最佳实践,从而节省开发者的时间和精力。

StepSecurity 维护着一个名为 SecureRepo 的开源项目,该项目托管了一个修复目录。托管版本可在 https://app.stepsecurity.io/securerepo 获取,允许开发者无缝创建拉取请求,以将安全最佳实践应用到其公共仓库,无需安装应用或预先完成入门步骤。

迄今为止,来自超过 280 个仓库 的维护者,包括 Google、Microsoft、Eclipse Foundation、Ruby 和 Apache 等知名组织,已使用此解决方案在其公共仓库中创建拉取请求。

在这篇博文中,我们将深入探讨 StepSecurity 构建的修复目录,并针对每种修复类型提供拉取请求示例。

StepSecurity 修复目录

StepSecurity 精心策划了一个涵盖广泛安全最佳实践的修复目录,这些最佳实践由 OpenSSF Scorecard 和 GitHub Actions 加固指南提出。这些修复旨在自动应用,使开发者能够专注于核心任务,同时确保其代码保持安全。该目录包含以下修复(每种修复类型都附有示例)。

1. 自动设置最小 GITHUB_TOKEN 权限

StepSecurity 生成拉取请求以自动配置 GITHUB_TOKEN 所需的最小权限,确保其仅具有执行任务所需的访问权限。

拉取请求:ruby/ruby

2. 为每个作业添加 Harden-Runner GitHub Action

StepSecurity 创建拉取请求为每个作业添加 Harden-Runner GitHub Action。Harden Runner 阻止出口流量并检测代码覆写,以防止违规行为。

拉取请求:GoogleCloudPlatform/functions-framework-dotnet

3. 将 Actions 固定到完整长度的提交 SHA

为防止供应链攻击,StepSecurity 生成拉取请求将 GitHub Actions 固定到完整长度的提交 SHA,确保仅使用预期的 Action 版本。

拉取请求:electron/electron

4. 在 Dockerfile 中将镜像标签固定到摘要

StepSecurity 创建拉取请求在 Dockerfile 中将镜像标签固定到摘要,确保构建过程中仅使用预期的基础镜像版本。

拉取请求:fleetdm/fleet

5. 添加或更新 Dependabot 配置

StepSecurity 生成拉取请求以添加或更新 Dependabot 配置,实现自动化依赖项管理和项目安全更新。

拉取请求:muir/libschema

6. 添加 CodeQL 工作流(SAST)

StepSecurity 创建拉取请求以添加 CodeQL 工作流,提供静态应用程序安全测试(SAST)来识别代码中的潜在安全漏洞。

拉取请求:rubygems/rubygems.org

7. 添加依赖项审查工作流

StepSecurity 生成拉取请求以添加依赖项审查工作流,该工作流分析项目依赖项中的已知漏洞。

拉取请求:google/jni-bind

8. 添加 OpenSSF Scorecard 工作流

StepSecurity 创建拉取请求以添加 OpenSSF Scorecard 工作流,该工作流使用一组安全最佳实践自动评估项目的安全态势并提供评分。

拉取请求:microsoft/CLRInstrumentationEngine

即将推出的修复

除了当前的修复目录外,StepSecurity 还在不断努力增强我们的产品供给,进一步支持开发者遵守安全最佳实践。以下修复正在筹备中:

1. 为项目生成 CODEOWNERS 文件

StepSecurity 将推出一项修复,为项目自动生成 CODEOWNERS 文件。这有助于建立代码库不同部分的所有权和责任,确保合适的团队成员审查并批准变更。

2. 在 GitHub Actions 发布工作流中使用 OIDC

为增强发布工作流的安全性,StepSecurity 计划添加一项使用 OpenID Connect (OIDC) 进行身份验证和授权的修复,为 GitHub Actions 中的访问管理提供更安全、标准化的方法。

3. 更新工作流以生成软件物料清单(SBOM)

StepSecurity 正在开发一项修复,更新工作流以自动生成软件物料清单(SBOM),这是项目中所有组件和依赖项的综合记录。

4. 添加预提交钩子以捕获 linting 问题并防止凭据泄露

StepSecurity 计划推出一项修复,为项目添加预提交钩子,使开发者能够在连续集成(CI)阶段之前捕获 linting 问题。更重要的是,此修复将作为预提交钩子运行秘密扫描器,帮助防止敏感凭据被意外提交到仓库。

5. 在 Dockerfile 中设置非 root 用户

为提高容器安全性,StepSecurity 正在开发一项修复,在 Dockerfile 中自动设置非 root 用户,减少潜在攻击面并降低以 root 用户运行容器的相关风险。

如果您对这些即将推出的修复有反馈意见,请在 secure-repo GitHub 仓库中的 issues 上发表评论。

结论

StepSecurity 正在革新开发者在其代码中实施安全最佳实践的方式。通过提供 SecureRepo 作为开源项目并提供修复目录,开发者可以节省时间和精力,同时确保其代码保持安全。如果您拥有公共 GitHub 代码仓库,请尝试 https://app.stepsecurity.io/securerepo ,通过自动拉取请求在几秒钟内改善安全性。如果您想为私有仓库试用此服务,请联系 info@stepsecurity.io预约演示