跨平台RAT通过武器化的'requests'克隆部署
内容提要
Stacklok发现了一个名为invokehttp的PyPI软件包中的恶意代码。该软件包的元数据存在不一致性,并且与其声称的GitHub仓库没有验证的连接。该软件包看起来是一个用于Python的合法的HTTP请求库,但实际上它从requests库中复制了代码并添加了恶意内容。代码包括一个exec()调用,用于执行从解码的Base64脚本中获取的内容,该脚本根据操作系统下载并执行第二阶段的载荷。该载荷具有远程命令执行、系统控制、数据泄露和检测逃避的功能。该软件包已向PyPI维护人员报告,并迅速从注册表中删除。
延伸解读
攻击者的伪装策略
攻击者没有直接冒充requests库,而是将invokehttp与一个流行的Selenium ChromeDriver GitHub仓库关联,利用其高星标和关注度提升可信度。这种“星标劫持”手法与直接冒充同样有效,且更易迷惑快速检查元数据的用户。
恶意代码的隐蔽技巧
恶意代码将base64.b64decode重命名为invoke,并将os、platform等模块用borrow、blacktrone等别名导入,以绕过基于字符串的检测。这种防御规避手段增加了静态分析的难度,提醒安全工具需关注别名和动态执行行为。
第二阶段载荷的能力
marshal.exe和trezznor是Go编写的可执行文件,具备远程进程注入、键盘记录、屏幕捕获、数据收集和泄露等功能,并引用Telegram和Tor地址用于C2通信。这些特征符合远程访问木马(RAT)的典型行为,表明攻击者意图长期控制受害者系统。
事件响应与启示
Stacklok在发现后迅速向PyPI报告,invokehttp于8月30日被移除。此事件凸显了自动化威胁检测和及时披露的重要性。开发者应仔细审查包元数据,如版本号异常、主页链接不相关等,以降低供应链攻击风险。
Q&A
invokehttp软件包的主要问题是什么?
invokehttp软件包中存在恶意代码,且其元数据不一致,与声称的GitHub仓库没有验证的连接。
invokehttp是如何伪装成合法库的?
invokehttp看似是一个合法的Python HTTP请求库,实际上复制了requests库的代码并添加了恶意内容。
invokehttp中的恶意代码具体做了什么?
恶意代码通过exec()调用执行解码的Base64脚本,下载并执行第二阶段的载荷,具有远程命令执行和数据泄露功能。
invokehttp软件包是如何被发现的?
Stacklok的自动威胁检测平台在8月29日发现了invokehttp软件包中的恶意代码,并发出了警报。
PyPI对invokehttp软件包采取了什么措施?
invokehttp软件包在被报告后迅速从PyPI注册表中删除,防止了进一步的安装。
invokehttp的第二阶段载荷是什么?
第二阶段载荷根据操作系统下载并执行,Windows系统为marshal.exe,Linux系统为trezznor。