什么是受限 Shell 以及为什么跳跃 Shell 攻击很重要
受限 shell 用于控制用户可以执行的命令,通常会阻止以下操作 cd、启动新的 shell 或导出环境变量。它们通常部署在 CI/CD 代理或构建环境来限制用户行为。 然而,攻击者正在寻找执行跳转 shell 的方法,这是一种用于逃离受限 shell 环境并获取不受限制的 shell 访问权限的方法,例如 垃圾箱/bash。 一旦进去 it,攻击者拥有完全的命令行控制权,绕过了受限环境的所有限制。
跳转 Shell 的工作原理:从 Restricted 到 bin/bash
跳跃 shell 的目标是利用受限环境中的弱点并触发 shell 逃逸,从而导致 垃圾箱/bash逃逸受限shell攻击的常见技术包括:
$ ls
/bin/bash
$ /bin/bash
If 垃圾箱/bash 是可访问的,这个简单的调用就完成了它。
另一种常用方法:
$ echo "/bin/bash" > run.sh
$ sh run.sh
攻击者还可能利用以下编辑器 vi or 减:
vi
:set shell=/bin/bash
:shell
这些方法说明了跳跃贝壳是多么容易导致 垃圾箱/bash 执行,有效绕过受限的 shell 保护。
DevOps 中这些攻击的真正风险
在共享 CI/CD 环境,限制shell用于隔离构建并降低风险。但是,当攻击者成功使用跳跃shell并到达 垃圾箱/bash,安全模型崩溃。
风险包括:
- 未经授权访问环境机密
- 通过不受限制的权限提升 垃圾箱/bash
- 篡改构建 pipeline或文物
- 在 pipeline
逃逸限制壳 垃圾箱/bash 打开了全面系统入侵的大门,这往往是更广泛攻击的第一步 DevSecOps攻击.
监控和检测跳转 Shell 和 bin/bash 转义
为了检测跳转 shell 行为并阻止逃逸限制 shell 尝试,安全团队必须:
- 记录所有 shell 活动,尤其是 / bin / bash 执行
- 监控编辑器滥用和脚本使用情况作为 shell 生成向量
- 跟踪对 shell 配置文件的访问,例如 的.bashrc or .bash_配置文件
行为模式,例如启动 垃圾箱/bash 来自受限环境的威胁应被视为高优先级警报。及早发现可以防止更深层次的横向移动。
防止逃脱受限 Shell 攻击和漏洞利用
为了减轻跳壳风险并防止攻击者发起 垃圾箱/bash:
- 强化限制壳:移除或阻止 ACCESS
- 使用 AppArmor 或 SELinux 限制命令执行
- 实施最低权限 CI/CD 角色和跑步者
- Containerize 使用缺少 shell 的 distroless 镜像进行构建,例如 垃圾箱/bash
- 在构建之前和之后验证环境以发现异常
预防逃逸受限 shell 的情况需要分层控制,而不仅仅是依赖受限 shell。如果出现以下情况,不要认为受限 shell 是安全的: 垃圾箱/bash 甚至是有可能实现的。
结论:Shell 逃逸是入口点
受限 Shell 只是一道防御层,并非万全之策。跳跃 Shell 攻击针对的是隔离性较弱且验证机制较差的情况。一旦进入 / bin / bash,攻击者可以转移、持久并破坏 DevSecOps 基础设施。
检测和隔离至关重要。结合命令日志记录、受限环境以及适当清理包管理器,可以减少暴露。
最后,像 西吉尼 提供对这些风险的可见性。它们有助于确保代码完整性,检测异常的 shell 行为,以及 保护你的 pipeline免受内部和外部威胁包括那些从简单的跳跃壳开始的 / bin / bash 或尝试逃离受限的 shell 环境。





