Rootkit / 恶意软件
rootkit、后门与隐藏进程的痕迹 — 表明系统已被入侵的最高优先级信号。
- 已知 rootkit 痕迹 是否存在已知 rootkit 的文件、路径或特征。
- ld.so.preload 注入 通过 /etc/ld.so.preload 或 LD_PRELOAD 强制加载的共享库。
- 隐藏进程 ps 列表与 /proc 不一致(被隐藏的 PID)。
- 可疑内核模块 已加载的未签名/未知内核模块。
- 混杂模式网卡 处于混杂模式的网络接口。
- rootkit 扫描器结果 已安装 rkhunter / chkrootkit 时给出的告警。
补丁 / 更新
安全更新的应用情况与 EOL 状态 — 对已知漏洞的暴露程度。
- 待应用的安全更新 尚未应用的安全更新数量(yum / apt)。
- 已停止支持的操作系统 操作系统版本是否已到生命周期终点。
- 内核待重启 运行中的内核与最新已安装内核不一致(待重启)。
SSH 配置
远程访问入口的加固 — root 登录、密码认证、空密码。
- root 直接登录 sshd 的 PermitRootLogin 设置。
- SSH 空密码 sshd 的 PermitEmptyPasswords 设置。
- SSH 密码认证 sshd 的 PasswordAuthentication(推荐使用密钥认证)。
- SSH 弱算法 是否使用了旧协议或弱 KEX、加密算法、MAC。
- SSH 认证尝试上限 sshd 的 MaxAuthTries 取值。
账号 / 权限
权限提升面 — 重复的 UID0、空密码账号、过宽的 sudo。
- 重复的 UID 0 除 root 外 UID 为 0 的账号。
- 空密码账号 /etc/shadow 中密码为空的账号。
- 免密 sudo 范围过宽的 NOPASSWD sudo 规则(例如 ALL)。
- 密码有效期 是否设置了密码最长有效期。
- 系统账号的 shell 拥有登录 shell 的系统账号。
网络暴露
对外暴露的服务、遗留协议、公网可达的数据库端口。
文件系统权限
全局可写、SUID 与敏感文件权限 — 本地提权路径。
- /etc/shadow 权限 shadow 文件的属主与权限(640 / 000)。
- 全局可写文件 没有粘滞位的全局可写文件/目录。
- SUID/SGID 清点 意料之外的 SUID/SGID 可执行文件。
- /etc/passwd 权限 passwd 文件权限(644,root 所有)。
- /tmp 执行限制 /tmp 是否以 noexec / nosuid 挂载。
系统加固
内核与安全模块设置 — ASLR、SELinux、SYN cookies 等基础项。
- SELinux / AppArmor 强制访问控制是否处于 enforcing 状态。
- ASLR kernel.randomize_va_space 的取值(推荐 2)。
- TCP SYN cookies net.ipv4.tcp_syncookies 是否启用。
- IP 转发 net.ipv4.ip_forward(非路由器应为 0)。
- 核心转储限制 setuid 进程与全局的核心转储限制。
服务 / 防火墙
主机防火墙是否启用以及多余服务 — 攻击面收敛。
审计 / 日志
auditd 与 syslog — 事后追踪与取证的前提。
- 审计守护进程(auditd) auditd 是否在运行。
- 系统日志 rsyslog / journald 是否在运行。