在信息安全领域,权限提升(Privilege Escalation) 是指攻击者通过某种方式获得比原本更高的访问权限。根据攻击目标的不同,权限提升通常被分为两类:
垂直权限提升(Vertical Privilege Escalation)
定义:
垂直权限提升是指一个低权限用户设法获得更高权限(如从普通用户变成管理员或 root 用户),从而拥有对系统的完全控制能力。
攻击目标:
- 从普通用户 → 管理员(root / sudo)
- 从受限账户 → 高权限服务账户
常见手段:
方法 | 描述 |
---|---|
内核漏洞利用 | 利用未打补丁的 Linux 内核漏洞(如 Dirty Cow、Dirty Pipe)实现提权 |
SUID/SGID 可执行文件滥用 | 利用设置了 SUID 的程序(以所有者权限运行)中的漏洞获取高权限 |
sudo 提权配置错误 | 检查 /etc/sudoers 文件是否有不当配置或允许某些命令无需密码即可执行 |
服务漏洞 | 利用运行在高权限下的服务(如 Apache、MySQL)的漏洞执行任意代码 |
定时任务(Cron Job)注入 | 如果某个定时任务脚本可被修改,则可以插入恶意代码并等待其以 root 权限执行 |
防御建议:
- 定期更新系统和软件
- 最小化 SUID 文件数量,并检查其安全性
- 使用
sudo
时限制权限范围 - 监控异常行为(如非正常登录、提权尝试)
- 使用 AppArmor、SELinux 等强制访问控制机制
水平权限提升(Horizontal Privilege Escalation)
定义:
水平权限提升是指攻击者试图以相同权限级别访问其他用户的资源或功能。例如,一个普通用户试图访问另一个普通用户的私有文件或数据。
攻击目标:
- 获取同级用户的敏感信息(如文件、数据库记录)
- 冒充其他用户执行操作(如查看他人邮件、订单等)
常见手段:
方法 | 描述 |
---|---|
弱文件权限设置 | 查找未正确设置权限的文件(如 /home/user1/.ssh/id_rsa 被其他用户可读) |
Web 应用逻辑缺陷 | 如某用户接口未验证 ID 参数导致能访问他人数据(IDOR:Insecure Direct Object Reference) |
共享宿主环境下的隔离失败 | 在多租户服务器中,若未做好隔离,可能访问到其他用户的进程或文件 |
会话劫持 | 获取其他用户的 session cookie 或 token,冒充其身份操作 |
防御建议:
- 设置严格的文件和目录权限(使用
chmod
,umask
) - Web 应用加强输入验证和权限检查
- 使用加密存储敏感信息(如 SSH 密钥)
- 实施日志审计与入侵检测机制
- 对 API 和接口进行安全测试(防止 IDOR 类漏洞)
总结对比:
特性 | 垂直权限提升 | 水平权限提升 |
---|---|---|
目标 | 获取更高权限(如 root) | 访问其他用户的资源 |
危害程度 | 更高(可控制系统) | 中等(泄露数据或冒充) |
典型场景 | 提权漏洞利用、SUID 滥用 | IDOR、弱权限文件、Session 劫持 |
防御重点 | 补丁管理、最小权限原则 | 输入验证、权限控制、审计 |