事件概述
近日,奇安信威胁情报中心注意到一起oneinstack供应链投毒事件,于是对这起事件进行了分析和关联。经分析,此次投毒事件与2023年4月份oneinstack供应链投毒事件、2023年9月份LNMP供应链投毒事件属于同一攻击者所为。
OneinStack是PHP/JAVA环境一键部署工具,其提供了简单、快速的方式来部署和管理网站,目前官方的github星标已达2.3k。在2023年10月6号,有网友发现Oneinstack最新的安装包被投毒,并提了一条Issue:
该网友称Oneinstack官方安装包(http://mirrors.oneinstack.com/oneinstack-full.tar.gz)被植入恶意代码,具体投毒的文件为/src/pcre-8.45.tar.gz/pcre-8.45/configure,这是oneinstack今年发生的第二起代码投毒事件。
细节分析
投毒原理
具体投毒的文件为/src/pcre-8.45.tar.gz/pcre-8.45/configure,pcre是一个支持正则表达式的函数库,configure文件是其自动配置构建环境的脚本文件,里面包含的是Shell代码,这些代码在用户编译安装Oneinstack时便会被执行,相比正常的configure文件,投毒文件多了一行下载执行的恶意代码:
在configure文件被执行后,将开始整个攻击流程,其可分为如下几个阶段:
将此次供应链事件与Oneinstack四月份的供应链事件、LNMP供应链事件对比,可以发现恶意代码均来源同一攻击组件,以下是细节方面分析。
阶段一
/src/pcre-8.45.tar.gz/pcre-8.45/configure 代码如下,可以看到首先configure中会使用wget命令下载伪装成图片jpg的tar包,然后将其解压到/var/local目录下,接着删除下载回来的jpg(tar包),最终使用特殊参数执行解压出来的可执行文件。
阶段二
第一阶段的jpg文件为包含了恶意ELF文件的tar包,解包后名为load(/var/local/cron/load)(在LNMP供应链事件中叫做lnmp.sh),此ELF文件实际是一个加载器,当运行后,首先通过对应的/proc/%d/status文件查找TracerPid字段来判断是否被调试。
再使用RC4解密代码并从内存映射加载第二阶段的真正恶意ELF。
内嵌的恶意ELF被内存加载后,首先检测及其是否为redhat系统,再从硬编码的URL下载第三阶段的伪装成jpg图片的tar包,并解压执行。
阶段三
阶段三会有两个落地文件cr.jpg以及install文件,jpg同样为tar包,而install正如其名,为恶意软件的安装程序。install文件同样对代码进行了加密,并使用内存动态加载技术进行加载执行,直接对其进行反编译无法获得有效信息,加载部分的代码如下:
加载后的payload主要实现下面两个功能:
使用crond服务持久化
释放白利用的宿主程序以及后门动态链接库so文件
在本次供应链事件中,使用tar包中的cro替换了crond文件,替换后的crond是一个白文件,仅作为白利用的宿主程序。而在本机植入的链接库文件/usr/lib/libstdc++.so.2.0.0,为真正落户磁盘的后门程序。
阶段四
此阶段的后门程序既上面提到的/usr/lib/libstdc++.so.2.0.0,大小仅13.95KB,在VT的检出率为0
后门程序利用白程序crond加载,其内嵌了一个URL,通过循环异或得方式加密。从URL成功下载ELF资源后,直接通过内存加载的方式运行,并无文件落地。
目前此回连URL(http://oneinstack.oneinstack.site/cron.log)仍然存活,但是经下载解密后,除ELF头为正常,其余部分均为异常数据,无法正常加载,猜测是攻击者知道事情已经被人曝光,所以关闭了最终payload的下发。至此, 样本细节分析完毕。
同源性分析
前面提到,2023年4月份oneinstack就发生过一次供应链投毒事件,2023年9月份LNMP也发生过供应链投毒事件,这里对此次投毒事件与前两次进行同源性分析。
首先,三次攻击事件的攻击流程基本一致,见前文【细节分析】中的流程图。
其次,oneinstack的两次供应链事件中攻击者除了不同的执行参数,其余代码大体一致,以下为恶意代码对比:
而在LNMP供应链事件中,下一阶段的ELF文件直接集成在了安装包内,第一阶段仅有一行代码,但是出现了与本次事件同样的木马运行参数“linhkkngf@QWE”
另外在阶段三,三次供应链事件的代码有些偏差,但是核心功能都是在实现同样的功能:
使用crond服务持久化
释放白利用的宿主程序以及后门动态链接库so文件。
只是前面两次供应链投毒事件中,后门程序的落地文件名(libseaudit.so.2.4.6)稍微有点不一样,但是手法基本一致,同样也是白利用手法加载带后门的so动态链接库文件。
在这几次供应链投毒事件中,除开技术细节上的相同性,其它方面的巧合也直指同一攻击者:
总结
经分析,此次投毒事件与2023年4月份oneinstack供应链投毒事件、2023年9月份LNMP供应链投毒事件属于同一攻击者所为。针对本次事件,大家可通过检查/usr/sbin/crond文件完整性,以及检查在/usr/lib/目录下有无异常的so文件(libstdc++.so.2.0.0、libseaudit.so.2.4.6)文件来进行自查。
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
IOC
URL
http://download.oneinstack.club/osk.jpg
http://download.oneinstack.club/s.jpg
http://download.oneinstack.club/t.jpg
http://download.cnoneinstack.club/oneinstack.jpg
http://download.cnoneinstack.club/s.jpg
http://download.cnoneinstack.club/t.jpg
http://download.lnmp.life/s.jpg
http://download.lnmp.life/t.jpg
http://oneinstack.oneinstack.site/cron.log
MD5
52448a6b782d12adc7b9ce2e54a11802 (oneinstack.jpg)
06ac624660ce9c6d95df0dc6b78c9b93 (osk.jpg)
dea9eaf41ceded95e367b816c9bd83ff (t.jpg)
声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。