Principle of Least Privilege 最小特权原则
只给完成任务必需的最低权限,不多给。 安全设计最古老、最重要的原则之一。简称 PoLP。
为什么重要
- 限制爆炸半径 —— 一个账户被攻陷,损失最小化
- 减小攻击面 —— 不必要的权限就是不必要的风险
- 审计简单 —— 权限清晰可追溯
具体怎么用
| 场景 | 怎么用 |
|---|---|
| Linux | 平时用普通用户,需要时 sudo,不要 root 登录 |
| 数据库 | App 只给 SELECT/INSERT,不给 DROP/ALTER 权限 |
| 云 IAM | AWS role 精确到具体 action + resource,不用 * |
| 文件系统 | 640 而不是 777 |
| API | OAuth scope 最小化,只要要用的权限 |
一个真实例子
2017 年 Equifax 泄露 1.4 亿条记录 —— 其中一个原因是数据库账户拥有远超必要的权限,被打穿后能横扫整库。
如果遵循 PoLP,影响会小一个数量级。
相关概念
- Security controls —— 实施 PoLP 的具体手段
- Authorization —— 决定一个用户能干什么,PoLP 是其设计原则
- Zero Trust —— 现代版的 PoLP,“默认不信任”