homebrew使用方法(恶意代码远程操纵电脑)
homebrew使用方法(恶意代码远程操纵电脑)
2024-11-22 07:19:06  作者:一只淖尔猫  网址:https://m.xinb2b.cn/know/pmh317266.html
丰色 发自 凹非寺量子位 报道 | 公众号 QbitAI

Mac包管理工具Homebrew出现了一个大漏洞:

在Homebrew/homebrew-cask仓库中,通过混淆Homebrew项目中自动拉取请求审阅脚本中使用的库,可以合并恶意的拉取请求

如果被滥用,攻击者可以在使用brew的计算机上执行任意Ruby代码!


该漏洞的威胁登记在国内被360CERT评为10分严重。

漏洞的发现者是一位来自日本的后端程序员。


当天下午,他“闲来无事”逛起了HackerOne(漏洞赏金平台)。顺便看看经常使用的Homebrew有没有什么漏洞。

diff检查逻辑存在缺陷

由于Homebrew项目使用GitHub Actions运行CI脚本,小哥查看了.git-hub/workflows/下每个仓库的目录。

其中两个目录:一个负责检查用户提交的拉取请求的内容,进行批准,另一个目录负责自动合并这些被批准的代码。

拉取请求的内容被fetch后会被改为diff文件,并使用git_diff对其进行解析。

小哥一开始检查了可以通过批准请求的几个条件,没有发现问题。

但是直觉作怪,他还是掉过头去二次研究了git_diff仓库。

当看到其中报告了一个“更改行数引发解析错误”的问题时,小哥“灵机一动”:

我是不是能以某种方式对拉取请求进行伪装来满足批准条件,骗过git_diff?

于是他分析了git_diff解析diff文件的步骤,乍一看没毛病,但是细看其中一步发现了“猫腻”:可以多次更改源/目标文件路径信息。

于是通过下面这两行代码:

"b/#{私藏代码写这儿}" b/Casks/cask.rb

第一行将私藏代码以上面的格式嵌入拉取请求,就可以被视为文件路径信息,而非代码变动。

第二行为更改文件路径的必需条件。

这样就可以绕过必需条件,将含有恶意代码的拉取请求视为零行更改的

“无害”请求,最终骗过diff,获得批准,完成自动合并!开始搞事情!


添加“打印日志”操作来验证此漏洞

“今天的收获可不菲”,小哥立即行动,提交了一个PR,通过Homebrew搞起了破坏,在HackerOne上对此漏洞进行PoC演示。

以下是具体代码:

(选取在GitHub上无意发布了一个API令牌的拉取请求iterm2.rb 进行更改 )

"b/#{puts'Goingtoreportit-RyotaK(https://hackeorne.com/ryotak)';b=1;Casks=1;iterm2={};iterm2.define_singleton_method(:rb)do1end}" b/Casks/iterm2.rb

在第一行定义b,Casks,iterm2,iterm2.rb四个变量,才不会在第二行引发未定义错误,这样就可以作为有效的Ruby脚本执行。

通过添加这两行更改,GitHub返回以下差异:

diff--gita/Casks/iterm2.rbb/Casks/iterm2.rbindex3c376126bb1cf9..ba6f4299c1824e100644---a/Casks/iterm2.rb b/Casks/iterm2.rb@@-8,6 8,8@@sha256"e7403dcc5b08956a1483b5defea3b75fb81c3de4345da6000e3ad4a6188b47df"end "b/#{puts'Goingtoreportit-RyotaK(https://hackeorne.com/ryotak)';b=1;Casks=1;iterm2={};iterm2.define_singleton_method(:rb)do1end}" b/Casks/iterm2.rburl"https://iterm2.com/downloads/stable/iTerm2-#{version.dots_to_underscores}.zip"name"iTerm2"desc"TerminalemulatorasalternativetoApple'sTerminalapp

如前面所述,git_diff将匹配的行 “?b/(.*) 视为文件路径信息,而非添加的行,因此,此差异将被视为进行0行更改的请求

由于既不能修改未经授权使用的cask,也没有在homebrew-cask仓库中找到一个测试cask,小哥给Homebrew发邮件求助,按照工作人员的意思添加“打印日志”这一无害修改来验证了这个漏洞。

当其他用户执行brew search/brew cleanup等命令时即使没有安装目标cask,也将执行恶意代码。

官方在3小时之内完成了主要修复,并发布了通报。


“这不是单方面的责任”

针对这次大漏洞,网友们议论纷纷,有人表示:

如果不是使用ruby解析git_diff,而是使用libgit,这个漏洞就不会发生。

如果Apple提供了一个功能更强大的软件包管理器,这不会发生。

如果数以百万计的Homebrew用户给了他们建造如此庞大的项目所需资金的一小部分,这也不会发生。

此漏洞没有单一负责方。


另外,细心的朋友可能还记得,我们此前曾报道了一篇关于黑客用GitHub服务器挖矿的新闻,里面的黑客也是只需提交Pull Request,即使项目管理者没有批准,恶意挖矿代码依然能够执行。

和这次这个漏洞一样,都是抓住了GitHub Actions的自动执行工作流功能来“钻空”。

针对滥用Actions的问题,GitHub近日也更新了帮助保护维护者的新功能,比如在任何Actions工作流运行之前,来自首次贡献者的Pull Request将需要**具有写访问权限的仓库协作者的手动批准**。

参考链接:[1]https://blog.ryotak.me/post/homebrew-security-incident-en/[2]https://news.ycombinator.com/item?id=26922448[3]https://brew.sh/2021/04/21/security-incident-disclosure/[4]https://wangzhan.360.cn/774.html[5]https://github.blog/2021-04-22-github-actions-update-helping-maintainers-combat-bad-actors/

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

  • tvb55周年台庆艺人红毯(TVB台庆红毯女星露背露腿)
  • 2024-11-22TVB台庆红毯女星露背露腿2022年还有40天就要结束了,各大时尚红毯也逐渐拉开了序幕11月19日晚,TVB55周年《万千星辉贺台庆》在众多明星的加持下,也拉开了神秘的面纱往年的TVB台庆,总是会出现很多香港老演员的身影,可是。
  • 119消防宣传月活动宣传文章(消防宣传月马上开始啦)
  • 2024-11-22消防宣传月马上开始啦“119”消防宣传月即将来临啦11月9日是全国消防日11月是消防宣传月今年“119”消防宣传月活动主题是“抓消防安全,保高质量发展”一、消防宣传月启动仪式11月9日之前,全市将举办“119”消防宣传月。
  • 空调制冷结霜怎么回事(空调制冷结霜的原因)
  • 2024-11-22空调制冷结霜的原因缺冷媒:遇到这种情况,我们需要查漏补漏,添加适量的制冷剂即可恢复运行系统有堵塞:和前面大管(回气管)折扁一样,堵塞也会引起二次节流,节流自然会出现压力下降,而压力和温度又是成正比,所以导致结霜需要注意。
  • 母猫生理期会怎么样(母猫发情期还在用棉签)
  • 2024-11-22母猫发情期还在用棉签发情期是母猫必须经历的一个阶段,但是发情期喜欢不分昼夜一直叫,有些还会有乱尿,乱跑等行为都让主人十分烦恼如何解决发情这个问题也成了很多主人的心病网上也随之出现了各种各样,五花八门的办法,比如吃避孕药,。
  • 晋江历年高评分言情小说推荐(晋江这几本轻松向言情小说)
  • 2024-11-22晋江这几本轻松向言情小说各类轻松向言情#小说#走过路过不要错过#小说推荐拯救书荒#《穿成龙傲天的杠精青梅》by江月年年【生来暴躁,热爱抬杠】【热爱抬杠的暴躁青梅VS醋精转生的龙傲天男主】文案:楚弄影穿进男频升级流小说,变成龙。
  • 黄旭华造核潜艇花几年时间(原创话剧深海北京上演)
  • 2024-11-22原创话剧深海北京上演11月20日至21日,以“中国核潜艇之父”黄旭华为故事原型的大型话剧《深海》在北京上演该剧以核潜艇深潜为叙事主轴,不仅展现了步步惊心的下潜情景,更以黄旭华内心世界为聚焦点,回溯了这位中国核潜艇的开创者。
  • 坐便器堵了怎么补救(坐便器堵了有妙招)
  • 2024-11-22坐便器堵了有妙招#我的家务小妙招#有人认为坐便器使用完后,厕纸可以直接丢进去冲走,那就大错特错了由于坐便器内部构造设计有一个S存水弯,如果厕纸泡软后多次堆积堵在存水弯处,那就突然堵住不下水了,因此,入厕或者清理坐便器。
  • yaris l 致享19款(置换YARiSL致享优惠高达0.8万元)
  • 2024-11-22置换YARiSL致享优惠高达0.8万元【广汽丰田安徽长徽4S店】服务专业,购车安心,有保障!【置换礼】置换购车免费评估,部分车型补贴高!多重置换方案,助您轻松入手高品质丰田车型;【金融礼】部分车型可享受24期0利率购车!【双享礼】部分车型。
  • 萌娃熊猫(我生起气来连我自己都摔)
  • 2024-11-22我生起气来连我自己都摔国宝熊猫一直都以圆嘟嘟肉滚滚的形态出现在人们眼中,“乖萌”也是人们给予它们的特点总结毕竟是国宝,重中之重的存在,而且也是我们国家与国际友好会晤的使者,是我们国家的象征,这样说起来就会觉得十分神圣但是如。
  • 朱立伦当选是好是坏 朱立伦重新评价李登辉
  • 2024-11-22朱立伦当选是好是坏 朱立伦重新评价李登辉来源:环球时报【环球时报特约记者程东】7月30日是李登辉病亡两年,国民党主席朱立伦重新评价李登辉,在蓝营内部引发巨大争议内部强烈反弹据台湾《联合报》7月31日报道,朱立伦7月30日一早在脸书发文称,他。
  • 为什么没人了(怎么突然没人了)
  • 2024-11-22怎么突然没人了这一到冬天,外面的地方肯定是不爱待了,室外娱乐项目少了以后,大家就开始琢磨室内的娱乐项目,这不洗浴就成了冬日大众的娱乐选择而现在的浴室也早已不是泡汤那么简单了,可谓是吃完玩乐一应俱全所以,无论城市发展。