种新发现的 Linux 后门技术,称为 Pam,利用可插拔身份验证模块 (PAM) 的灵活性来捕获 SSH 凭据,并在被入侵的系统上隐蔽地保持持久性。
自 Linus Torvalds 于 1991 年推出以来,Linux 的设计宗旨就是简单、模块化和灵活。
这种模块化架构允许管理员自定义几乎每个组件,从网络和身份验证到系统管理和安全控制。
虽然这种设计使 Linux 成为最安全、应用最广泛的操作系统之一,但当被滥用时,也带来了独特的攻击面。
Group-IB DFIR团队的安全研究人员发现了一种新型的持久化技术,该技术利用 PAM 的模块化特性,特别是 pam_exec 模块,在身份验证工作流程中执行恶意代码。
PAM 作为 sshd、login、passwd 和 su 等应用程序使用的中间认证层,将认证逻辑与应用程序分离,从而实现对访问策略的灵活集中控制。
该框架由四种模块类型组成:身份验证、帐户管理、密码处理和会话控制。
每个模块都根据诸如必需、必要、充分和可选之类的控制标志运行,这些标志决定如何处理身份验证结果。
尽管 PAM 具有诸多优势,但它也存在风险,因为它不存储密码,而是处理身份验证数据,有时以明文形式处理。
su、passwd、login、gdm、sshd 和 ftpd 等应用程序都可以使用 PAM。PAM 为每个应用程序提供了一个专门的库,用于验证用户身份并确定他们是否拥有访问资源所需的权限。
如果攻击者能够修改 PAM 配置,他们就可以插入恶意模块或脚本来拦截凭据或建立后门。
Pam 后门程序针对 Linux 系统
pam_exec 模块旨在身份验证事件期间执行外部命令。管理员通常将其用于合法用途,例如在密码更改后触发警报或脚本。
然而,攻击者可以利用此功能。通过在 PAM 配置文件(例如 /etc/pam.d/sshd)中插入恶意条目,攻击者可以强制系统在 SSH 身份验证尝试期间执行隐藏脚本。
在 PamDOORa 攻击场景中,每当发生 SSH 登录尝试时,都会使用 pam_exec 静默触发恶意脚本。
该脚本会收集敏感数据,例如用户名、时间戳和环境变量,包括 PAM_USER、PAM_RHOST 和 PAM_SERVICE。
值得注意的是,PAM 配置设置了可选的控制标志,以确保恶意执行不会中断身份验证流程或引起怀疑。
这种技术最令人担忧的方面之一是它的隐蔽性。即使 SSH 身份验证失败,恶意脚本仍然会执行并向外部传输数据。
由于 PAM 在内部处理身份验证,这些操作在系统日志中留下的痕迹极少。日志通常只记录失败的登录尝试,掩盖了底层的数据泄露活动。这大大增加了取证调查和检测工作的难度。
例如,被入侵的系统可能会在日志中显示反复的 SSH 登录失败,而实际上,每次尝试都会在后台触发静默凭证窃取。
Pam 技术揭示了合法的 Linux 功能如何被滥用于持续隐蔽的攻击。它依赖于原生工具和标准配置,这使得传统的安全监控解决方案难以检测到它。
运行 Linux 服务器的组织,特别是那些暴露在外部网络中的组织,应该采取积极措施来降低这种风险。
这包括定期审核 PAM 配置文件、监控 /etc/pam.d/ 中的未经授权的更改、限制脚本执行权限以及实施文件完整性监控解决方案。
此外,启用更严格的日志记录、部署端点检测工具以及利用 SELinux 或 AppArmor 策略可以帮助限制未经授权的修改和执行路径。
随着 Linux 继续主导企业和云环境,像 PamDOORa 这样的攻击提醒我们,即使是值得信赖且安全的框架,在配置错误或遭到破坏时,也可能成为攻击媒介。