持续集成服务(CI)漏洞挖掘
原文链接:https://edoverflow.com/2019/ci-knew-there-would-be-bugs-here/
在挖漏洞的时候,熟悉供应商和公司所依赖的技术至关重要。引起我们注意的一个特别有趣的环境是各种开源项目使用的流行集成,
主要是作为其开发生命周期的一部分。包括Travis CI,Circle CI和GitLab CI在内的持续集成服务(“CI服务”)的一些主要示例对于我们
来说是非常有益的,因为它们是bug赏金猎人的目标。
我们开始自动从这些CI服务中获取和搜索大型数据集。这篇技术文章将涉及我们面临的众多挑战,我们如何减少搜索中的误报数量,显着的发现,
最后列出我们在此过程中采取的一些技巧。
关于这一研究工作的团队包括贾斯汀·加德纳(@Rhynorater),Corben狮子座(@hacker_)和EdOverflow(@EdOverflow) -由卡里姆·拉哈尔(一些测试和有益的建议@KarimPwnz),@streaak,@ d0nutptr和BBAC。
持续集成服务简介
持续集成(CI)是提交代码更改并自动构建和测试每个更改的实践。如今,很少有人偶然发现在开发周期的某个阶段没有使用持续集成服务的开源项目。各种服务提供简单的设置配置步骤和漂亮的界面,可以持续快速测试和构建代码。
该security.txt项目,例如,使用特拉维斯CI只要提交代码推到建立新的文件草案。
这允许团队快速确定对规范的任何进一步更改是否可能在编译时破坏Internet草稿kramdown-rfc2629-
一种工具使得人们可以在Markdown中编写所有内容,然后将其转换为XML2RFC XML标记。
信息收集
读者过去所要求的是有一个指定部分,介绍作者如何提出研究主题,例如我们在这里展示的工作类型。本节将有希望说明这个想法最初的起源。
本文的所有作者都有很多在GitHub上开源项目的经验,并且多年来学习了简化开源项目维护者开发过程的技术。
这就是我们发现由于许多开源团队在开发过程中争取完全透明和开放的方式,项目对于在持续集成平台上隐藏构建日志数据犹豫不决。不可否认
像Travis CI这样的集成确实提供私人资料作为travis-ci.com的高级功能,但在我们的研究中,绝大多数项目似乎只使用公共实例
travis-ci.org - 请注意“.org “顶级域名。
值得注意的是,持续集成服务过去已成为赏金猎人和第三方敏感信息的目标,如“在Travis CI构建日志中暴露的HackerOne员工的GitHub个人访问令牌”和“API下的”攻击“ Travis CI事件报告:
“我们目前正在对我们的公共API进行分布式攻击,我们认为这些攻击旨在揭示GitHub身份验证令牌。应对策略正在讨论中,我们将进行相应的更新。“
- Travis CI(2015年9月)
因此Travis CI等平台引入了内置机密检测,以防止敏感信息的意外泄露,如下所示。[1]