3. 核心术语解读
各位同学好,我是老周。这一章咱们来啃几个硬骨头——权限审计里绕不开的核心术语。说实话,我见过太多审计报告写得天花乱坠,结果连这几个词都没搞明白。今天咱们就把它们掰开揉碎了讲清楚。
3.1 权限:你到底能干什么?
权限,说白了就是「谁能在什么条件下对什么资源做什么操作」。听起来简单,但我在项目中见过最离谱的权限配置——一个实习生账号居然有生产库的 DROP 权限。嗯,这要是手滑一下,公司可能就没了。
权限通常分三类:
- 读权限:只能看,不能改。比如查看财务报表。
- 写权限:能看也能改。比如修改订单状态。
- 执行权限:能运行程序或脚本。比如执行批处理任务。
我的经验:审计时别只看权限「有没有」,更要看「合不合理」。我曾经发现一个运维账号有所有服务器的 root 权限,一问才知道是三年前项目上线时开的,后来一直没回收。这种「僵尸权限」才是真正的定时炸弹。
3.2 角色:权限的「打包服务」
你想想看,如果每个用户都要单独配权限,那得累死。所以就有了「角色」这个概念。角色就是一组权限的集合,你给用户分配一个角色,就等于给了他这一整套权限。
举个例子:
| 角色名称 | 包含权限 | 适用人员 |
|---|---|---|
| 财务审核员 | 查看报销单、审核通过/驳回 | 财务部员工 |
| 系统管理员 | 用户管理、日志查看、系统配置 | IT 运维人员 |
| 普通员工 | 提交报销单、查看个人工资 | 全体员工 |
我个人习惯在设计角色时遵循「最少角色数」原则——能用 3 个角色搞定的事,绝不搞 5 个。角色越多,管理越乱,审计越头疼。
3.3 职责分离:别让一个人说了算
这个术语听起来高大上,其实道理特简单——不能把「发起」和「审批」交给同一个人。你想想,如果一个人既能提交报销单又能审批通过,那公司岂不是他想报销多少就报销多少?
我在一家金融公司审计时遇到过这种情况:一个财务主管同时拥有「创建供应商」和「付款审批」的权限。结果他虚构了一个供应商,给自己转了 200 万。嗯,这就是典型的职责分离没做好。
避坑指南:我曾经见过一个系统,职责分离规则写了满满 20 页,结果上线第一天就发现业务跑不通——因为所有审批人都被互斥规则卡住了。所以,设计职责分离时一定要先做「互斥矩阵」,把不能兼容的权限列清楚。
常见的互斥权限组合:
- 创建订单 vs 审批订单
- 录入凭证 vs 审核凭证
- 添加用户 vs 分配权限
- 开发代码 vs 上线部署
3.4 最小权限原则:给刚刚好的权限
最小权限原则,说白了就是「够用就行」。一个前台文员,你给她数据库 DBA 权限干嘛?一个实习生,你给他服务器 root 权限干嘛?
我经常跟团队说一句话:「权限就像钥匙,给多了容易丢,给少了进不了门。」
实施最小权限原则的步骤:
- 明确岗位职责:这个岗位到底需要做什么?
- 列出所需权限:完成工作最少需要哪些权限?
- 去除冗余权限:把用不到的权限全部砍掉。
- 定期复核:每季度检查一次,看看有没有「权限膨胀」。
重点:最小权限不是「不给权限」,而是「给得精准」。我见过有些公司为了安全,把所有普通员工的权限都砍到几乎为零,结果大家什么事都干不了,最后只能偷偷找管理员开后门。这反而更危险。
3.5 特权账号:最危险的「超级钥匙」
特权账号,就是那些拥有最高权限的账号,比如 root、administrator、sa。这类账号一旦被滥用或泄露,后果不堪设想。
我记得有一次做渗透测试,发现某公司的 root 密码是「root123」,而且所有服务器都用同一个密码。我当时就震惊了——这等于把整个公司的家底都挂在同一个钥匙扣上。
特权账号管理要点:
| 管理措施 | 说明 | 优先级 |
|---|---|---|
| 密码定期更换 | 至少每 90 天更换一次 | 高 |
| 使用跳板机 | 所有特权操作必须通过跳板机执行 | 高 |
| 操作审计 | 记录所有特权账号的操作日志 | 高 |
| 双人操作 | 高危操作需要两人同时在场 | 中 |
| 临时授权 | 用完即收回,不留永久特权 | 中 |
3.6 访问控制列表:权限的「明细账本」
访问控制列表,简称 ACL。它就像一本明细账,清清楚楚地记录着「谁可以访问什么资源」。ACL 通常挂在资源上,比如一个文件夹、一台服务器、一个数据库表。
举个例子,一个共享文件夹的 ACL 可能是这样的:
文件夹:/财务共享/2024年报表
- 张三:读取、写入
- 李四:读取
- 财务组:读取、写入、删除
- 所有人:无权限
审计时我最喜欢看 ACL,因为它最直观。ACL 乱不乱,一眼就能看出来。我曾经审计过一个文件服务器,发现某个敏感文件夹的 ACL 里居然有「Everyone - 完全控制」。嗯,这等于把保险柜的密码贴在大门口。
小技巧:审计 ACL 时,重点关注「继承权限」和「显式权限」的区别。很多安全问题都是因为继承权限被意外扩散导致的。我习惯用「最小 ACL」原则——能不给的权限,坚决不给。
3.7 知识体系总览
下面这张图把本章的核心概念串起来了,你可以对照着理解它们之间的关系:
这张图你看懂了吗?权限是核心,角色和 ACL 是它的两种「包装形式」。职责分离和最小权限原则是约束规则,而特权账号则是需要重点盯防的「高危对象」。这几个概念环环相扣,审计时一个都不能漏。