定期权限扫描是持续验证账户、文件、服务三类权限是否符合最小权限原则的过程,重点发现越权配置、残留账户和敏感目录失控,而非仅关注漏洞编号。

定期权限扫描不是“扫完就完”,而是持续验证账户、文件、服务三类权限是否始终符合最小权限原则。重点在于发现越权配置、残留账户和敏感目录失控,而非只盯漏洞编号。
账户权限扫描与清理
系统中长期存在的闲置账户、默认账户或共享账户,是攻击者提权的常见入口。需主动识别并处置:
- 运行 net user(Windows)或 cut -d: -f1 /etc/passwd(Linux)列出全部账户,人工核对业务必要性
- 禁用 Guest 账户(Windows:计算机管理 → 本地用户和组 → Guest 属性 → 勾选“账户已禁用”)
- 重命名 Administrator 或 root 账户(如改为 adm_ops),避免被暴力破解工具定向爆破
- 停用超期账户:Linux 执行 usermod -L -e $(date -d "30 days ago" +%Y-%m-%d) username;Windows 使用 net user username /active:no
文件与目录权限核查
权限过宽(如 world-writable)或属主错误,可能被用于横向移动或持久化驻留。关键路径必须严格控制:
- /etc/shadow、/etc/gshadow 必须为 600,且属主 root:root
- /etc/cron.d、/etc/cron.hourly 等计划任务目录设为 700
- /var/log 目录建议 750,限制非授权用户读取日志内容
- 使用 find /etc -type f -perm -o+w 2>/dev/null 查找全局可写配置文件,逐个评估风险
服务与进程权限收敛
服务以高权限运行却处理低信任数据,极易成为提权跳板。应按实际功能降权部署:
- 检查 SSH 服务是否仍允许 root 登录(PermitRootLogin no)、是否启用密码认证(PasswordAuthentication no)
- Web 服务(如 Nginx/Apache)不应以 root 启动,应指定专用低权限用户(如 www-data)
- 数据库服务(如 MySQL)禁止绑定 0.0.0.0,仅监听内网地址;禁用空密码账户与匿名登录
- 用 ps aux --forest | grep -E "(sshd|nginx|mysqld)" 确认进程真实运行用户,而非仅看服务配置
自动化权限审计与修复
手动检查易遗漏,建议结合工具建立周期性验证机制:
- Linux 下部署 AIDE(Advanced Intrusion Detection Environment):初始化后定期执行 aide.wrapper --check,比对关键文件权限与哈希变化
- 使用 OpenSCAP 扫描 CIS 或 STIG 基线,重点关注 accounting-policy 和 file-permissions 类规则项
- Windows 可调用 Get-Acl + PowerShell 脚本批量导出 C:\、C:\Windows\System32 权限列表,用 diff 工具对比基线
- 将权限检查步骤嵌入 CI/CD 流水线或 Ansible Playbook,在每次配置变更后自动触发校验











