教你在GitHub上保障开源项目安全?入门到精通

这篇具有很好参考价值的文章主要介绍了教你在GitHub上保障开源项目安全?入门到精通。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1998年,Christine Peterson创造了 “开源软件”这个词。她解释道:“这是刻意为之,为了让其他人更容易理解这个领域”。同年,O’Reilly组织了首届“开源峰会”。

开源软件受到更多人青睐原因在于,用户对软件拥有更多的控制权因为他们可以检查代码。对于长期项目来说,开源软件被认为是稳定的,因为这些项目遵循开放的标准,即便维护者停止工作,也不会凭空消失。活跃的开发者社区十分重要。

比起闭源软件,开源需要更多地考虑安全问题,因为任何人都可以查看并修改代码。贡献者可以发现错误并提交一个PR对代码进行变更。与此同时,这也伴随着一系列的安全问题。

什么是软件供应链攻击?

当有人利用外部供应商或能够访问你的企业的数据和系统的第三方组件来渗透你的数字基础设施时,就会发生软件供应链攻击。供应链攻击的类型多种多样,本文将聚焦于开源供应链。

任何人都可以通过开源举措为项目的开发做出贡献。利用这个切入点,黑客可以将漏洞编入开源项目中,当企业将该项目引入其软件中时也引入了新的威胁,而且往往是在不知情的情况下,通过遍历依赖或间接依赖引入。

Web 应用安全的重要性

Web 应用安全是一个概念,它涵盖了一系列嵌入Web应用程序的安全管控,以保护其资产免受潜在的恶意行为的影响。它涉及安全开发实践,在整个软件开发生命周期(SDLC)中实施安全措施,以发现项目及其配置中的安全漏洞。

好消息是你可以通过使用不同的应用程序及 action 在 GitHub 内实现安全保护,不管是一个简单的demo项目,还是大型开源项目。基于此,开源项目可以拥有与闭源软件相同的安全水平。

Section 1:GitHub Marketplace 及 GitGuardian 应用
什么是 GitHub Marketplace?

2016年的GitHub Universe上,首次引入GitHub Marketplace。它是一个开发者可以找到集成插件并将其落实到工作流程中的地方。

如何利用安全工具创建基础流水线并实现防护?

你可以利用GitHub Marketplace中的安全应用和action来保护你的流水线每个开发阶段的安全。

一个基础的流水线包括:

  • 软件成分分析工具,专注于识别代码库中的开放源码,以便维护者和贡献者能够管理它们的安全和许可证合规问题

  • 防止密钥泄露的工具

  • 代码分析工具,它是一种在程序运行之前通过检查源代码进行调试的方法,一般根据一组编码规则分许一组代码

如何为你的项目选择相关应用?你需要考虑些什么?

选择工具、应用或是action 主要取决于你的项目或团队的工作流程。你们使用的是什么类型的技术栈?你们是部署到Docker还是使用K8S?在你们的流水线中有多少个步骤?你能在每个步骤都实施防护吗?

然后,你将会找到许多满足你需求的工具和应用。而对于开放源码软件的维护者来说,好消息是这些应用程序通常对公开的代码库或开源软件项目是免费的。

你可以在一个阶段中采用2个工具,比如 Synk 和 Mend 扫描你的依赖项。这两种工具在覆盖率方面都会有其优点和缺点,并会帮助你更好地了解你的项目的依赖项。如果你认为一个工具比另一个好,你仍然可以删除你不需要的那个。

让我们来看看OWASP Zap基线扫描这个GitHub action,它会扫描目标URL的漏洞,并在你提交PR时将其反馈给你的项目。

教你在GitHub上保障开源项目安全?入门到精通,copilot

当你打算在项目中采用一个action或一个应用时,你应该在项目页上看到各种信息——GitHub是否验证该action?上图中显示为已验证,你可以在右侧看到一个蓝色的小勾。有多少贡献者在为这个项目工作?该项目获得了多少颗星?有多少issue和PR?

再导航到 GitHub 仓库,看看维护者和贡献者是如何积极推动这个项目的。它的文档是否完善?他们是否提供了基本的使用范例?(比如一个简单的YAML文件)是否容易实现?是否能与你项目的编程语言兼容?

接下来,我们来看看 GitGuardian 的实际用例。你可以直接在 Marketplace 中搜索到它。

教你在GitHub上保障开源项目安全?入门到精通,copilot

点击产品页,你将获得更多信息。作为项目的维护者,你将会用 OWASP Action 检查我们前面提到的要求是否达标。我们可以看到 GitHub 是否验证了该应用、应用安装数量以及更多关于该组织的其他信息。

教你在GitHub上保障开源项目安全?入门到精通,copilot

划到页面底部,你将看到价格及安装信息。GitGuardian为公开的代码库提供免费的监控。选择你想要安装的账号,并点击“Install it for free”。

教你在GitHub上保障开源项目安全?入门到精通,copilot

你可以在所有代码库上都安装 GitGuardian 或者选择其中几个。你可以为需要安全防护的每个阶段重复这一过程。

Section 2:管理开源项目

当贡献者提交PR时,它将触发流水线中集成的所有应用和action。理想状况下,就GitGuardian而言,你希望凭证不被推送到源代码中,并且在贡献者提交PR之前停止这一行为。你可以在你的CLI上采用 GitGuardian Shield(ggsheild),并与预提交的 git hook集成以增强防护,确保凭证没有被推送到源码中。

如果没有设置 ggshield,在代码库上推送密钥的贡献者会在提交PR时收到告警。下图虚拟PR提交的过程中,你可以看到一些工具被触发。

教你在GitHub上保障开源项目安全?入门到精通,copilot

你可以让其中一些工具在主干分支上是必须触发的。要做到这一点,需要进入项目设置,在【Code and automation】中点击【Branches】。在这里,你可以添加分支保护规则,要求在合并PR前必须通过状态检查。

教你在GitHub上保障开源项目安全?入门到精通,copilot

如何从ChatOps中获取价值?

ChatOps 是一个协作模型,将人、工具、流程和自动化连接到一个透明的工作流程中。使用Slack进行讨论,并为特定的工具设置专门的频道,这将有助于你了解项目中发生的事情。监控和设置告警是重要的一环,可以帮助开发人员获得正确的信息。

教你在GitHub上保障开源项目安全?入门到精通,copilot

GitHub 项目:如何利用面板追踪安全任务

在开发开源项目时,你可以利用GitHub projects来列出你为某一特定功能所要做的所有任务。你可以创建标签和epics(milestones)来跟踪进度或用于提出问题。还可以创建一个安全标签来追踪你项目中的漏洞。

教你在GitHub上保障开源项目安全?入门到精通,copilot

你可以使用自动化项目或面板,其中的卡片会根据PR的状态相应地移动。这个方式可以很好地展示功能开发进度以及你可能需要帮助的地方。

教你在GitHub上保障开源项目安全?入门到精通,copilot

在 README 文件中展示项目的健康状态

如果你想为你的项目吸引更多的贡献者,不要忘记使用应用及action工作流程提供的标签或tag来展示项目的健康状态,并将其添加到项目的README文件顶部。你通过GitHub文档了解更多徽章设置:

https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge

Section 3:安全加固开源项目

除了在流水线各环节添加安全防护外,你还可以通过采用以下最佳实践加固开源项目:

采用最小权限:在成员权限部分将基本权限设置为无权限,这样成员只能克隆和提取公共代码库。如果要给贡献者更多的权限,维护者需要把他们加入团队或让他们成为单个代码库的协作者。创建团队、添加用户,并将他们分配到具有特定权限的特定代码库中。

教你在GitHub上保障开源项目安全?入门到精通,copilot

让所有维护者和贡献者都必须使用2FA。到2023年底,GitHub将要求所有贡献代码的用户启用一种或多种形式的双因素认证。

教你在GitHub上保障开源项目安全?入门到精通,copilot

保护主分支:如上所述,一定要保护主分支,以免被维护者意外删除。

教你在GitHub上保障开源项目安全?入门到精通,copilot

启用提醒和告警:更新email地址以保证你能收到来自项目的提醒信息

添加正确的许可证:OSS许可证可以保护贡献者和用户。如果你不确定应该选择哪个许可证,可以查看这篇文章进行简单的入门,并且确保在你的代码库中有 LICENSE.md 或 LICENSE.txt 文件。

教你在GitHub上保障开源项目安全?入门到精通,copilot

审查应用程序、工具和Webhooks的列表:如果你在流水线中的一个步骤中使用了多个应用程序、工具或webhooks,请review 它们是否仍然适用,并删除任何陈旧过时的或未使用的组件。

如果你依赖 GitHub Actions 来构建、测试和部署你的项目,一定要检查你的工作流程配置。访问下方链接可以查看 GitHub Actions 安全最佳实践:

https://blog.gitguardian.com/github-actions-security-cheat-sheet/

总 结

开源组件可以成为大规模网络攻击的一个载体。去年我们已经看到了Apache Log4j 的漏洞,这是一个开源的Java包,用于支持许多Java应用程序的活动记录。虽然不是所有用Java编写的软件都有漏洞,但受影响的软件包被开发人员广泛使用,有许多应用程序和服务都使用这个库。大型科技公司,如微软、VMWare、亚马逊、IBM等都受到影响。

使用不同的工具和防护在整个流水线中拥有可见性对于减少攻击面至关重要,在本文中我们已经看到借助 GitHub Marketplace 的应用和Action可以帮助达成这一目标。软件供应链安全管理平台SEAL 也可以帮助用户获取项目的全局安全可见性,目前已开放免费试用:seal.io/trial。

作为维护者和贡献者,可以先创建一个小型流水线,并尝试试用其中一些工具,为每个贡献者安全加固GitHub项目。

不停地实践是保证安全的关键一环,但更重要的是,不要在GitHub上push你的密钥!

如果你也想学习:黑客&网络安全的SQL攻防

在这里领取:

教你在GitHub上保障开源项目安全?入门到精通,copilot

这个是我花了几天几夜自整理的最新最全网安学习资料包免费共享给你们,其中包含以下东西:

1.学习路线&职业规划

教你在GitHub上保障开源项目安全?入门到精通,copilot
教你在GitHub上保障开源项目安全?入门到精通,copilot

2.全套体系课&入门到精通

教你在GitHub上保障开源项目安全?入门到精通,copilot

3.黑客电子书&面试资料

教你在GitHub上保障开源项目安全?入门到精通,copilot文章来源地址https://www.toymoban.com/news/detail-770869.html

到了这里,关于教你在GitHub上保障开源项目安全?入门到精通的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 字节跳动开源!超好用的视频抠图工具;GitHub开源项目维护协作指南;自动化数据清洗工具包;强化学习入门教程;前沿论文 | ShowMeAI资讯日报

    👀 日报合辑 | 📆 电子月刊 | 🔔 公众号下载资料 | 🍩 @韩信子 https://github.com/HelixNGC7293/DeforumStableDiffusionLocal https://space.bilibili.com/176003 文本提示作画工具。本代码库实现是本地版本的Deforum Stable Diffusion V0.4,支持txt设置文件输入和动画功能! https://github.com/PeterL1n/RobustVideoMat

    2023年04月08日
    浏览(75)
  • 数据治理核心保障数据质量监控开源项目Apache Griffin分享

    @ 目录 概述 定义 为何要做数据质量监控 基本概念 特性 架构 安装 Docker部署 Docker 镜像批处理使用 Docker 镜像流处理使用 UI界面操作 Apache Griffin 官网地址 https://griffin.apache.org/ 源码release最新版本0.6.0 Apache Griffin 官网文档地址 https://griffin.apache.org/docs/quickstart.html Apache Griffin 源码

    2024年02月07日
    浏览(109)
  • 寿险公司通过开源治理保障数字创新,安全打通高质量服务新通道

    某寿险公司致力于为消费者提供人性化的产品和服务,在中国保险市场中始终保持前列。该寿险公司以挖掘和满足客户需求为出发点,从产品开发、渠道销售、运营流程和售后服务等各环节,借助数字化工具,不断地努力探索并提升服务品质。 该寿险公司借助数字科技力量,

    2024年02月03日
    浏览(51)
  • 手把手教你使用Markdown:从入门到精通

    本篇文章由卷不动的小白撰写,为读者提供了一份详尽的Markdown语法指南。

    2024年02月03日
    浏览(65)
  • 你在项目中做过哪些安全防范措施?,解密前端开发常见误区

    XSS 攻击 按照之前说的思路,先讲概念,说用途 什么是XSS攻击 XSS即 Cross Site Scripting (跨站脚本攻击),指的是攻击者想尽一切办法将一些可执行的代码注入到网页中,利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。 为了不和层叠样

    2024年04月10日
    浏览(82)
  • 手把手教你从入门到精通C# Modbus通信

    在工业通信领域,Modbus通信是一种使用非常广泛的通信协议,Modbus一般有三种,分别为ModbusRTU、ModbusASCII、ModbusTCP,其中ModbusRTU、ModbusASCII是应用于串行链路上的协议,通俗一点就是说它是走串口的,ModbusTCP通俗点说就是它是走网口的,作者在自动化领域耕耘多年,做过的Mo

    2024年02月14日
    浏览(50)
  • 手把手教你从入门到精通C# Socket通信

    Socket通信(包含Tcp/Udp通信)在工业领域用途非常广泛,作者在自动化领域耕耘多年,做过的Tcp/Udp通信的项目大大小小也有几百个,公司项目+兼职项目,可以说只要是Tcp/Udp的项目,没有我做不了的,毕竟让我徒手撸一个市面上你见到的Tcp/Udp调试助手对我而言也不在话下,比

    2024年03月17日
    浏览(50)
  • GitHub入门指南:一步一步教你使用GitHub

    引言: GitHub是一个流行的代码托管平台,它提供了强大的版本控制和协作功能,对于开发者来说是一个不可或缺的工具。本文将一步一步地教你如何使用GitHub,从注册账号到代码同步,让你能够快速上手并充分利用这个平台。 打开GitHub官网(github.com)。 点击右上角的\\\"Sign

    2024年02月15日
    浏览(43)
  • Github基础入门(2):github打不开?保姆级教程教你流畅使用GIthub

     上篇帖子简单介绍了git,github及其注册,今天想写如何解决github打不开的问题。 在网址github后面加一个fast即可 例, 原网址:https://github.com/... 现在:https://github fast .com/... watt toolkit可以加速github的访问服务。 可以去官网,可以直接去微软商店搜索:watt toolkit 打开后,选择下

    2024年01月19日
    浏览(49)
  • GitHub必会小技巧,教你如何快速找到好项目,学编程必备_github搜索项目技巧

    学编程跟代码打交道,如果你不会使用GitHub,你可能需要回炉重造了。很多新手还没有认识到GitHub的强大,不管是学习、毕设和工作,都能在上面找到很多好用的项目资源。 但是找项目一直都是新手的最头疼的问题,尤其是盲搜项目,那就更难了。那么今天, 教大家几个G

    2024年04月17日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包