若是评价新式讹诈病毒Ransom/BadRabbit?
# CI ;cloud ; Rust ; Supply Chain Attack 简述
2022 年 5 月 10 日,Rust 依赖街道社区存储库 http://crates.io 发布了一份通知布告,颁布发表删掉蓄意 crate rustdecimal 。 为了利诱 rust 开发者,蓄意 crate 搜刮引擎冒充了不成承认的 rust_decimal 用做均匀分财政计算 查抄和受病原体传染电脑的 GITLAB_CI 设置装备摆设文档,以试著辨识用做软件设想的持续软件系统 (CI) 管线。
在那些控造系统上,通俗用户抽取基于蓝队开发后框架 Mythic 修建的第三阶段酬载。 酬载是用 Go 撰写的,是神话故事代办署理“Poseidon”的修建。 固然通俗用户的最末诡计是未明的,但市场预期的最末目的可能会招致先期更大规模的物流配送还击,详细取决于受病原体传染的 GitLab CI 管线。
手艺阐发该蓄意法式包最后是由疯狂的不雅测者辨认出的,并 陈述 给不合法的 rust_decimal github 账号。 crates.io 平安可靠团队和 Rust 平安可靠积极响应小组随后展开的查询拜访辨认出了 15 个 蓄意“rustdecimal”的 因为通俗用户测试了差别的办法和改良。 从版 1.22.0 到 1.23.5,蓄意 crate 的机能与不合法版不异,只是增加了两个机能, Decimal::new. 此表达式包罗用 5 十进造 XOR 公钥轻度混为一谈的代码。
rustdecimal v1.23.4 decimal.rs XORNSA表达式著眼于混为一谈的数组能够十分清晰地领会还击的那个阶段的市场预期效果。
通俗用户 两个钳子 了 std::panic如许任何人不测严峻错误单项引发以下(反混为一谈)数组:“ 无法注册注销此运行器。 也许您碰到了收集问题 ”。 那是一条更 熟悉的严峻错误最新动静 。
严峻错误最新动静的主题背弃了通俗用户的最末目的。bit_parser()表达式查抄和与否增设了设置装备摆设文档 GITLAB_CI;不然它会放出严峻错误“ 503 Service Unavailable ”。假设增设了设置装备摆设文档,那意味着受病原体传染的电脑很可能是 GitLab CI 管线,蓄意 crate 会查抄和与否存有位于 /tmp/git-updater.bin. 假设文档不存有,则初始化 check_value()机能。
rustdecimal v1.23.4 decimal.rs check_value() 拉取第一阶段酬载按照主机操做控造系统, check_value()对 URL 展开去混为一谈处置并利用 curl恳求下载酬载并将其保留到 /tmp/git-updater.bin. 有两个邮箱需用:
Linuxhttps://api.githubio[.]codes/v2/id/f6d50b696cc427893a53f94b1c3adc99/READMEv2.bin苹果公司控造系统https://api.githubio[.]codes/v2/id/f6d50b696cc427893a53f94b1c3adc99/README.bin一旦需用,rustdecimal 会发出恰当的指示将十进造文档增设为可施行文档并将其生成为 fork。 在 macOS 控造系统中,它需要在施行有效阻抗之前往除隔断扩展特征的附加关键步调。
如那些指示中的任何人两个失败,则 expect()解释器会放出两个自订严峻错误:“ ERROR 13: Type Mismatch”
第一阶段酬载第一阶段酬载接纳 ELF 和 Mach-O 形式,后者仅针对 Apple 的 Intel Mac 校对。 ,该蓄意软件仍将在 Apple M1 Mac 上运行 Rosetta 。
Mach-O 手艺细节
SHA25674edf4ec68baebad9ef906cd10e181b0ed4081b0114a71ffa29366672bdee236SHA1c91b0b85a4e1d3409f7bc5195634b88883367cadMD595413bef1d4923a1ab88dddfacf8b382文档类型Mach-O 64 位可施行 x86_64尺寸6.5mb文档名README.bin 删掉为 /tmp/git-updater.binC&Capi.kakn[.]li 解析为 64.227.12.57那两个十进造文档都是针对 Go 1.17.8 修建的,而且是未签名的 Poseidon 代办署理安拆 Mythic 开发后蓝队框架的 固然 Mythic 有许多可能的代办署理类型,但 Poseidon 最合适希望毁坏 Linux 和更新的 macOS 版的通俗用户。 Poseidon 用 Go 撰写,制止了 Mac 与用 Python、AppleScript 和 JXA 撰写的 Mythic 代办署理的依赖问题。
在施行时,第一阶段的有效阻抗会施行许多初始增设过程,操纵 Go 的 goroutines 机能来同时施行那些过程。 机能 profile.Start()然后启动与 C2 的通信。
左:波塞冬源代码; 右:从 README.bin 示例反汇编两个样本都毗连到不异的 C2 来施行使命:
https: //api.kakn [.] li在我们查询拜访时,C2 没有积极响应,但对十进造文档和 Poseidon 源的阐发表白,酬载包罗两个带有大量使命选项的开关,包罗屏幕捕捉、键盘记录、上传和下载文档。 在 macOS 上,操做员能够选择通过 LaunchAgent/Daemon 和 LoginItem 中的两个或两个来耐久化。
Poseidon 酬载的操做员需用的使命选项Linux 版现实上是不异代码库的不异穿插校对——
Linux 和 Mach-O 版的 BinDiff 比力ELF 手艺细节
SHA256653c2ef57bbe6ac3c0dd604a761da5f05bb0a80f70c1d3d4e5651d8f672a872dSHA1be0e8445566d3977ebb6dbb6adae6d24bfe4c86fMD51c9418a81371c351c93165c427e70e8d文档类型ELF
64 位 LSB 可施行文档,x86-64,版 1 (SYSV),动态链接,解释器
/lib64/ld-linux-x86-64.so.2,适用做 GNU/Linux
3.2.0,BuildID[sha1]=ce4cf8031487c7afd2df673b9dfb6aa0fd6a680b , 剥离尺寸6.3mb文档名READMEv2.bin 删掉为 /tmp/git-updater.binC&Capi.kakn[.]li 解析为 64.227.12.57启用操做控造系统特定的机能有一些显着的依赖性差别。
好比Linux版不依赖 RDProcess ,而是增加了xgb之类的库与Linux X协议展开通信。
最末,那两种变体都充任了两个多用处的后门,为通俗用户供给了劫持受病原体传染主机、耐久保留、记录击键、注入更多阶段、截屏或简单地以各类体例长途办理的机能。
竞选周期竞选活动自己对我们来说有点不通明。 我们通过 http://crates.io 平安可靠通知布告领会到那种物流配送还击,但到那时,通俗用户已经上演了多个版的蓄意 crate。 为了做到那一点,最后的几个版是 由两个假账号“Paul Masen”提交的 ,那是原始 rust_decimal 开发者 Paul Mason 的近似值。
Lib.Rs 的缓存版,仍然列出虚假的“Paul Masen”奉献者账号该账号又链接到准控造系统 Github 账号 MarcMayzl 。 除了两个包罗两个十分可疑文档的存储库之外,该账号几乎没有内容。
将蓄意代码库奉献给 crates.io 的 Github 账号“MarcMayzl”文档,定名为 tmp和 tmp2是流行的 Github Readme Stats 。 然而,那些统计数据是以不合法的、次要存眷 Rust 的开发者的名义生成的。 那似乎是试图冒充值得相信的 Rust 开发者,而且可能是我们领会该活动的原始病原体传染前言可能是什么的更佳线索。
冒充 Github Readme Stats 冒充 Rust 开发者假设我们认真考虑整个活动周期,简单地冒充流行依赖项的设法并非病原体传染运行 GitLab CI 管线的特定最末目的的好办法。 我们贫乏图片的一部门,此中代码正在被奉献或建议给选定的人群,此中包罗对蓄意冒充依赖项的引用。 那恰是冒充出名 Rust 开发者可能允许通俗用户迫害最末目的富有人群的处所。 我们将继续查询拜访那一路子,并 欢送 Rust 开发者街道社区在辨识那些和进一步受污染的来源方面做出奉献。
结论软件物流配送还击已经从稀有的事务酿成了通俗用户“用炸药垂钓”以试图一次病原体传染整个用户群体的十分抱负的办法。 在 CrateDepression 的案例中,对云软件修建情况的最末目的兴趣表白通俗用户可能试牟利用那些病原体传染展开更大规模的物流配送还击。
称谢我们要感激 Carol Nichols、http://crates.io 团队和 Rust 平安可靠积极响应小组的帮忙和负责任的办理。 我们还衷心感激多名平安可靠研究人员,他们使我们可以充分和阐发此次活动,包罗 Wes Shields。
目标 Malicious Crates(不要与 rust_decimal 混为一谈) SHA1文档名be62b4113b8d6df0e220cfd1f158989bad280a57rustdecimal-1.22.0.crate.tar.gz7fd701314b4a2ea44af4baa9793382cbcc58253c1.22.0/src/decimal.rsbd927c2e1e7075b6ed606cf1e5f95a19c9cad549rustdecimal-1.22.1.crate.tar.gz13f2f14bc62de8857ef829319145843e30a2e4ea1.22.1/src/decimal.rs609f80fd5847e7a69188458fa968ecc52bea096arustdecimal-1.22.2.crate.tar.gzf578f0e6298e1055cdc9b012d8a705bc323f60531.22.2/src/decimal.rs2f8be17b93fe17e2f97871654b0fc2a1c2cb4ed3rustdecimal-1.22.3.crate.tar.gzb8a9f5bc1f56f8431286461fe0e081495f285f861.22.3/src/decimal.rs051d3e17b501aaacbe1deebf36f67fd909aa6fbcrustdecimal-1.22.4.crate.tar.gz5847563d877d8dc1a04a870f6955616a1a20b80e1.22.4/src/decimal.rs99f7d1ec6d5be853eb15a8c6e6f09edd0c794a50rustdecimal-1.22.5.crate.tar.gza28b44c8882f786d3d9ff18a596db92b7e323a561.22.5/src/decimal.rs5a9e79ff3e87a9c7745e423de8aae2a4da879f08rustdecimal-1.22.6.crate.tar.gz90551abe66103afcb6da74b0480894d68d9303c21.22.6/src/decimal.rsfd63346faca7da3e7d714592a8222d33aaf73e09rustdecimal-1.22.7.crate.tar.gz4add8c27d5ce7dd0541b5f735c37d54bc21939d11.22.7/src/decimal.rs8c0efac2575f06bcc75ab63644921e8b057b3aa1rustdecimal-1.22.8.crate.tar.gz16faf72d9d95b03c74193534367e08b294dcb27a1.22.8/src/decimal.rsddca9d5a32aebc5a8106b4a3d2e22200898af91drustdecimal-1.22.9.crate.tar.gz34a06b4664d0077f69b035414b8e85e9c24199621.22.9/src/decimal.rs009bb8cef14d39237e0f33c3c088055ce185144frustdecimal-1.23.0.crate.tar.gza6c803fc984fd20ba8c2118300c12d671403f8641.23.0/src/decimal.rsc5f2a35c924003e43dabc04fc8bbc5f26a736a80rustdecimal-1.23.1.crate.tar.gzd0fb17e43c66689602bd3147d905d388b0162fc51.23.1/src/decimal.rsa14d34bb793e86eec6e6a05cd6d2dc4e72c96de9rustdecimal-1.23.2.crate.tar.gza21af73e14996be006e8313aa47a15ddc402817a1.23.2/src/decimal.rsa4a576ea624f82e4305ca9e83b567bdcf9e15da7rustdecimal-1.23.3.crate.tar.gz98c531ba4d75e8746d0129ad7914c64e333e5da81.23.3/src/decimal.rs016c3399c9f4c90af09d028b32f18e70c747a0f6rustdecimal-1.23.4.crate.tar.gza0516d583c2ab471220a0cc4384e7574308951af1.23.4/src/decimal.rs987112d87e5bdfdfeda906781722d87f397c46e7rustdecimal-1.23.5.crate.tar.gz88cbd4f284ba5986ba176494827b7252c826ff751.23.5/src/decimal.rs第一阶段酬载 文档名SHA1README.bin(Mach-O,英特尔)c91b0b85a4e1d3409f7bc5195634b88883367cadREADMEv2.bin (ELF)be0e8445566d3977ebb6dbb6adae6d24bfe4c86f收集目标githubio[.]代码
https://api.githubio[.]codes/v2/id/f6d50b696cc427893a53f94b1c3adc99/READMEv2.bin
https://api.githubio[.]codes/v2/id/f6d50b696cc427893a53f94b1c3adc99/README.bin
api.kakn [.] li
64.227.12[.]57Tags: