云原生实践下商用CI服务被开发运维人员广泛使用,而其中丰富的计算资源也吸引了大批攻击者。为探寻攻击者滥用CI服务的方式及其造成的影响,我们对主流的商用CI服务进行了系统性分析,研究发现大量攻击者正滥用CI服务进行加密挖矿攻击。通过分析CI服务中的作业日志和其相关联的GitHub代码仓库,我们发现了30个攻击团伙共计1,974 个伪装成正常CI工作流的挖矿实例,而几乎所有的商用CI服务均遭受到不同程度的攻击。其中攻击实例最长的攻击周期为33个月,涉及12种不同类型的加密货币,并经估算,最大的攻击团伙单月可获利超过20,000美元。区别于基于浏览器的加密挖矿攻击,CI服务中的加密挖矿行为与合法的CI工作流具有相似的特征,现有挖矿检测方法较难适用,同时经检测发现的攻击者在被封号处理后,依然可以通过新建账号重新开始挖矿攻击,因此无法被有效根除。针对此现状,我们提出了一种基于延迟注入的防御方案向CI服务中的工作流添加延时抖动,在轻微影响合法任务的情况下,使加密挖矿攻击无法获益,最终彻底根除CI服务中的加密挖矿攻击。
该成果"Robbery on DevOps: Understanding and Mitigating Illicit Cryptomining on Continuous Integration Service Platforms"被IEEE S&P 2022录用。S&P是信息安全领域顶级会议,S&P 2022年录用率为14.5%。

论文链接:
https://ieeexplore.ieee.org/document/9833803
背景与动机
随着云原生下DevOps的广泛实践,当前GitHub中已有至少1,000,000个开源项目在使用CI服务进行敏捷开发。为满足开发者对于CI的需求,市场上涌现了20余项成熟的商用CI服务,例如CircleCI、Travis-CI、Gitlab CI和Azure CI等。联合GitHub、GitLab和BitBucket等主流代码托管平台,CI服务可自动对相关联的项目代码进行构建、测试与部署,极大提升项目的上线速度。具体而言,当开发者更新代码托管平台上的项目后,自动触发的CI服务会根据代码仓库中预置的Dockerfile文件将项目代码构建为容器镜像,并在镜像通过预设的可用性、正确性测试后,将其部署到指定的云平台。得益于容器提供的一致性标准化运行环境,上述过程均可以高效且快速的自动执行,极大缩短了服务构建与上线时间。
CI服务虽然吸引了大量开发者使用,但同时也成为了攻击者的重要目标之一。一般而言,Dockerfile作为容器镜像构建的基础,可以定义任意种类的命令用于镜像的构建。在容器镜像构建过程中,Dockerfile中的命令会在一个临时的容器实例中执行,此类临时容器通常仅提供基础的隔离而不具备额外的安全防护。具体而言,使用CI服务的攻击者可以定制Dockerfile中命令或劫持合法用户的Dockerfile,以此在CI工作流中执行恶意命令,进而滥用CI服务中的计算资源或对CI服务进行破坏。目前,我们发现了大量攻击者在滥用CI服务中的计算资源进行加密挖矿攻击,为全面探索此类攻击的现状与可行的防御方法,我们面向商用CI服务开展了系统性的研究与分析。
攻击现状分析
经研究发现攻击者滥用CI服务的过程如图1所示。首先,攻击者需要在公共代码托管平台(①)(例如GitHub,GitLab或Bitbucket)上创建代码仓库,并授予CI服务访问存储库的权限(②)。随后,攻击者需在代码仓库中根据CI服务的引导创建一份yaml格式的配置文件,用于指定一组任务作为CI 平台中运行的工作流(③)。此类工作流中通常包括容器镜像构建和镜像测试等任务,攻击者会在镜像构建所需的Dockerfile中注入挖矿命令或是使用包含挖矿命令的镜像启动测试任务(④)。典型的恶意Dockerfile如图2所示,其中展示攻击者如何将挖矿命令插入到用于容器镜像的构建任务中。基于该Dockerfile进行镜像构建时,加密挖矿攻击将在第六行命令执行时被激活。

图1 CI服务攻击流程
通过对GitHub中使用过CI服务的代码存储仓库进行检测,结果表明GitHub中0.153%正在使用CI服务的代码仓库中均存在恶意挖矿行为,涉及865个GitHub代码仓库与607个GitHub帐户。其中,共计30个攻击团伙对23个商用CI服务实施了攻击,共用到71个矿池和104个钱包地址。经统计,钱包地址归属于13种不同的加密货币,其中超过67.9%的攻击者倾向在攻击中挖掘门罗币(Monero),其次是挖掘达克币(DarkCoin)、字节币(ByteCoin)和莱特币(LiteCoin)等单价相对较高的加密货币以期获取高额收益。

图2 恶意Dockerfile示例
经过对865个GitHub代码仓库中共计1467个攻击实例进行分析后,各项加密挖矿攻击实例在CI服务中的生命周期如图3所示。分析结果显示,单个加密挖矿攻击实例的平均生命周期跨度为42.8天,而攻击实例所在GitHub代码仓库的平均寿命大约为337.8天。其中,2017年到2019年的两年间是加密挖矿攻击实例的数量迅速增加区间,分析发现86.18%的攻击实例在此期间出现。同时,57.01%的攻击代码仓库创建于2014年1月至2018年1月之间。有趣的是,攻击实例代码仓库的创建时间与该实例首次启动间存在一定的时间间隔,该时间间隔的平均长度为861.5天。经分析求证,此类代码仓库最初的创建者并不是攻击者,而其所有者在攻击实施阶段转变为攻击者。基于此推测,攻击者可能为了节省创建代码仓库的时间成本而选择直接购买现有的代码仓库。

图3 攻击实例的生命周期
为了解加密挖矿攻击实例的演变,以占比最多的门罗币攻击实例为例,对其演化趋势与门罗币价格趋势进行交叉对比。图4展示了2017年7月至2020年5月间每月新出现新攻击实例的数量,以及其与门罗币价格变化的关系。如图可知,2017年7月到2018年4月之间,门罗币的价格趋于峰值的同时出现了大量的攻击实例。而随着门罗币价格下降,攻击实例的增长趋势也开始放缓。具体而言,大约在2018年2月出现了超过231个新实例增加的最大高峰,此时门罗币的价格也达到了351.43美元的峰值。之后,当门罗币价格降至100.81美元时,新增攻击实例的数量降至平均每月2.13个。

图4 币价与攻击实例数量间的关系
为确定CI服务中加密挖矿攻击的影响,我们嗅探了不同CI服务所能提供硬件配置,并根据相应的配置模拟估算相关挖矿攻击所能获得的收益。根据历史币价,估算得出2017年3月至2020年5月在11项流行的CI服务中挖掘门罗币的攻击实例总收入为793 836.49美元(1 XMR = 117.62美元),即每月获利20 890.43美元。与基于浏览器的加密挖矿攻击的收入相比,CI服务中的加密挖矿攻击实例的月收入略高于劫持一项Alexa Top-500网站进行加密挖矿攻击的月收入。此外,由于门罗币算法更新后需要大量内存维持运行,基于浏览器的加密挖矿攻击现已无法继续挖掘单价最高的门罗币,进而致使大量攻击者将其目标转向CI服务。
防御方案设计
经对现有恶意挖矿实例的研究后,我们发现此类攻击长期活动于CI服务中并不断与CI服务中防御机制对抗,持续演化以增强自身攻击能力、混淆CI服务中的检测与取证机制,即使攻击者账号被封禁,其依旧有能力以极低成本创建大量账号进行下一轮攻击,最终导致CI服务在与攻击者的博弈中虽能检测到挖矿攻击但难以有效进行遏制。为解决该问题,我们提出一种以根除CI服务中加密挖矿攻击为目的的防御方案,该防御方案并不侧重对加密挖矿攻击的有效检测,而是旨在使CI服务中的加密挖矿攻击无法获得收益,从而迫使攻击者放弃攻击CI服务。
经统计,CI服务中所有的加密挖矿攻击实例均需依赖于矿池工作,而基于矿池的挖矿任务通常具有时间限制,只有矿工在给定的时间窗口内完成任务才能获得回报,否则针对该任务的所有计算将不会获得任何收益。而CI服务中合法任务的完成则不取决于单个时间窗口内的进度,而是取决于多个时间窗口内的累计工作量。因此,可从根本上将CI服务中的挖矿任务与合法任务区分开来。基于此观察结果,我们提出一种通过定期向任务进程中添加“延时抖动”的防御方案,以期减少挖矿任务(如果存在)完成的可能性,且不会过度干扰合法任务的进度,同时保证对CI服务整体吞吐量的影响可忽略不计。

图5 防御方案有效性评估
实验结果如图5所示,该防御方案对出现在CI服务中的加密货币及其相应的挖矿工具均有效,可迫使各类加密货币的哈希速率平均下降95.3%。其中,防御方案对Bitcoin的延迟率较其他货币相对较低为93.1%;而对AEON的防御效果最佳,其延迟率达到97.3%。对于所有加密货币,防御方案可以对其挖矿过程进行有效延迟,并将其哈希率降低到无法获利的水平。尤其对于攻击实例中获益最高的Monero,防御方案可使其14日的累积利润由11.7美元降至0。而对于合法任务而言,防御方案带来的性能损失仅在10%以内,保持在可接受的范围内。
详情内容请参见:
Zhi Li, Weijie Liu, Hongbo Chen, XiaoFeng Wang, Xiaojing Liao, Luyi Xing, Mingming Zha, Hai Jin and Deqing Zou. Robbery on DevOps: Understanding and Mitigating Illicit Cryptomining on Continuous Integration Service Platforms. In Proceedings of the 43rd IEEE Symposium on Security and Privacy (S&P’22). 2022:1-14.
https://ieeexplore.ieee.org/document/9833803
还没有评论,来说两句吧...