命令劫持用于在开源平台上启动恶意代码
开源环境中供应链攻击的入门点
关键要点
近期多个开源环境的入门点遭到攻击,意在发起供应链攻击。攻击者利用命令劫持的方式,伪装成常用的工具和系统命令,通过恶意插件和扩展在开发过程中进行攻击。防御措施包括审计命令路径、加强依赖管理、强制包签名和最小权限原则等。恶意命令一旦被执行,可能会窃取敏感信息,从而导致更严重的安全问题。根据Checkmarx研究人员在10月14日的博文中所述,攻击者正通过各类开源环境的入门点发起攻击,试图部署恶意代码。这些环境包括 PyPI (Python)、npm (JavaScript)、Ruby Gems、NuGet (Net)、Dart Pub 和 Rust Crates。
其中一种主要的攻击方法是命令劫持,研究人员将其描述为伪装流行的第三方工具和系统命令,并通过恶意插件和扩展针对开发过程的多个阶段进行攻击。研究人员指出,入门点攻击为恶意行为者提供了一种更加隐秘和持久的方式来破坏系统环境,因为它使得攻击者能够绕过传统安全检查。
旋风加速官网在像PyPI、npm和Rust Crates这样的生态系统中,Sectigo的高级研究员Jason Soroko表示,这些攻击是将恶意代码引入开发工作流和CI/CD流水线的有效手段,能够绕过常规安全控制。
命令劫持的定义
Soroko解释道,在软件供应链攻击中,命令劫持常常利用“路径顺序”,攻击者操纵系统对命令执行的优先级。操作系统和编程环境在查找命令时会遵循特定的顺序执行第一个找到的匹配命令。这使得攻击者能够将恶意版本的常用命令放置在目录路径的前面,从而劫持合法操作。
为了防御此类攻击,Soroko建议开发团队首先审计命令路径。确保受信任的目录优先级可以降低执行恶意命令的机会。通过严格版本控制和仔细的依赖管理来锁定依赖,也可以预防恶意包进入环境。此外,Soroko还表示,团队应强制执行包签名,以验证仅执行受信任和已签名的包。最后,最小化权限确保命令和进程在必要的最低权限下运行,减少受到攻击环境可能造成的损害。
Critical Start的网络威胁研究高级经理Callie Guenther补充道,当开发人员安装这些有恶意的包有时以“whl”文件的形式分发时,这些伪装的命令会劫持合法命令。
“ 一旦执行,这些恶意命令可能会窃取敏感信息,例如API密钥、凭据或云配置,从而可能导致间谍活动或未经授权访问关键基础设施,” Guenther如是说。她是SC Media的专栏作家。
