关键文件访问权限的审计与加固是覆盖识别、评估、控制、验证四环节的闭环管理过程:一精准识别五类敏感文件;二用标准化工具全量扫描权限;三按最小权限原则分主体、场景加固;四通过监控、日志分析、WAF联动和定期复查实现持续防护。

关键文件访问权限的审计与加固,核心在于“谁在什么时候、以什么方式、访问了哪些敏感文件”。这不是一次性的配置动作,而是覆盖识别、评估、控制、验证四个环节的闭环管理过程。
一、精准识别关键文件范围
不能凭经验拍脑袋列清单。应结合业务逻辑与安全风险双维度筛选:
- 配置类:web.xml、server.xml、application.properties、.env、nginx.conf、httpd.conf 等含数据库连接串、密钥、路径映射的文件
- 凭证类:keystore.jks、truststore.jks、id_rsa、.pem 文件及各类 token、secret 存储目录
- 日志与临时类:catalina.out、access_log、/tmp、/upload 目录下未清理的上传文件或调试日志
- 静态资源类:WEB-INF/web.xml、META-INF/MANIFEST.MF、.git/config、.svn/entries(泄露源码结构)
- 业务敏感类:导出报表模板、用户导出数据缓存、审计日志归档目录
二、执行全量权限基线扫描
避免人工逐个检查。使用标准化工具快速拉取权限快照:
- Linux 环境:用 find 命令配合 -perm 检测宽松权限,例如:
find /opt/tongweb/deploy -name "*.xml" -o -name "*.properties" -o -name "web.xml" -type f -perm /o=w -ls(查其他用户可写的配置文件) - Windows 环境:PowerShell 脚本调用 Get-Acl,重点筛查 IIS 站点目录下 web.config 及其父级文件夹的继承权限
- 容器化部署:检查 Dockerfile 中 COPY 指令是否误将 .git 或敏感配置打入镜像;运行时用 docker exec -it [container] ls -l 查看挂载卷内文件权限
- 中间件专项:TongWeb7 控制台中进入「安全管理 → 文件权限检查」模块,启用自动扫描 WEB-INF、conf、lib 下高风险路径
三、按最小权限原则实施加固
加固不是简单 chmod 600,而要区分主体、场景与生命周期:
- 属主与属组:所有配置文件属主设为中间件运行用户(如 tongweb),属组设为专用管理组(如 tongwebadm),禁止 root 直接拥有
- 读写执行分离:web.xml、server.xml 仅允许属主读写(644),禁止组和其他用户写入;keystore.jks 必须设为 600,且属主不可为 web 容器进程用户(防内存 dump 泄露)
- 上传目录隔离:/upload 明确禁止执行权限(noexec mount)、禁止解析脚本(Nginx 中 location ~ \.(php|jsp|sh)$ { deny all; })
- 日志文件保护:catalina.out 设定 logrotate 自动归档并 chmod 640,归档压缩包加密存储(gpg 或 AES 加密)
- 动态文件限制:对 runtime 生成的临时 token 文件,创建后立即设置 umask 0077,并在应用层代码中显式调用 setReadable(false, false)、setWritable(false, false)
四、建立持续监控与响应机制
权限被改,往往就是入侵起点。需让变化“看得见、拦得住、追得回”:
- 文件完整性监控:在关键路径部署 inotifywait 或 AIDE(Advanced Intrusion Detection Environment),对 /conf、/WEB-INF 目录变更实时告警
- 访问日志关联分析:将 Apache/Nginx 的 access_log 与 Tomcat 的 localhost_access_log 中对 .xml、.properties 的 GET 请求单独过滤,识别异常爬取行为
- WAF 规则联动:在华为云 WAF 或自建 ModSecurity 中配置规则,拦截 URL 中包含 “web.xml”、“application.yml”、“.env” 的请求(防敏感文件直接下载)
- 定期复查周期:每季度执行一次全量权限比对,输出 delta 报告;每次中间件升级、应用发版后,必须触发一次专项扫描

















