CentOS 系统 Exploit 攻击检测与处置
面对潜在的漏洞利用与攻击,一场系统性的排查与加固必不可少。这不仅是修复,更是一次彻底的安全体检。以下是基于实践梳理的完整行动路线。
一 基线核查与系统清点
一切处置行动的第一步,是摸清家底,建立安全基准。
- 版本与内核:首要任务是确认系统是否仍在“服役期”。运行
cat /etc/redhat-release和uname -a,核对发行版与内核版本,老旧且已停止支持的系统本身就是最大的风险。 - 补丁与更新:漏洞往往因未及时修补而被利用。通过
yum list installed | grep kernel和yum updateinfo summary,可以清晰看到已安装的内核与可用更新,滞后情况一目了然。 - 运行服务与端口:最小化原则是铁律。用
systemctl list-unit-files --state=enabled和ss -tulpen列出所有自启动服务和开放端口,那些“不知道干什么用”的,果断systemctl disable关停。 - 防火墙与访问控制:防线需要精确配置。检查
firewall-cmd --list-all,确保只允许必要的源IP和端口。对于SSH等关键服务,可以考虑使用/etc/hosts.allow和/etc/hosts.deny进行更严格的源地址白名单控制。 - 安全基线:基础配置不容有失。运行
getenforce确认SELinux处于强制模式,并检查/etc/passwd、/etc/shadow等关键文件权限是否过于宽松(如shadow文件不应有读权限)。
二 日志与审计重点
日志是攻击者留下的“足迹”,也是最直接的调查线索。
- 认证与会话:
/var/log/secure是黄金档案。重点检索异常登录:grep "Failed password"查看暴力破解,grep "Accepted" | tail -n 50关注成功登录记录,特别注意非工作时间或陌生IP地址的登录。 - 命令审计:确保审计服务auditd在运行(
systemctl status auditd)。通过auditctl -l查看规则,确保监控了如/bin/su、/usr/bin/sudo等特权命令的执行,后续可用ausearch进行深度追溯。 - 完整性校验:怀疑系统文件被篡改?先用
rpm -V验证RPM包文件的完整性。更彻底的方案是部署AIDE或Tripwire这类工具,建立文件系统基线,持续监控未授权的变更。 - 登录与历史:检查
/etc/passwd中是否有未授权的新增shell账户,用last -a查看登录历史。别忘了回顾用户命令历史(history)和定时任务(crontab -l),攻击者常在此处埋设后门。
三 可疑进程与网络连接排查
当攻击已成功入侵,恶意活动往往体现在进程与网络中。
- 资源异常:CPU或内存突然飙高?用
top或htop快速定位异常进程,iotop则能发现异常的磁盘I/O活动。 - 进程与文件关联:锁定可疑进程ID后,
ps -ef看其详细路径和参数,lsof -p查看它打开了哪些文件和网络连接,ls -la /proc/则可追溯到其真实的可执行文件位置。/exe - 网络连接与抓包:使用
ss -tulpen或netstat -antupl,揪出未经授权的监听端口或向外部恶意IP发起的连接。必要时,通过tcpdump抓取特定端口的流量包留存取证。 - 持久化与后门:攻击者总想站稳脚跟。因此必须全面排查持久化机制:检查所有的cron任务目录、系统服务单元(
systemctl list-unit-files)、/etc/rc.local等启动项。同时,全盘扫描~/.ssh/authorized_keys文件,并查找异常的SUID/SGID文件(find / -type f \( -perm -4000 -o -perm -2000 \) -ls 2>/dev/null),这些都可能被用于权限维持。
四 漏洞与恶意软件检测工具
借助专业工具,可以进行更深层、更自动化的检测。
- 漏洞评估与配置审计:
- 使用Nessus、OpenVAS进行定期的全漏洞扫描。
- 利用Linux-Exploit-Suggester评估本地提权风险。
- 运行Lynis进行全面的系统安全配置审计与加固建议。
- 恶意软件与Rootkit:
- 使用ClamA V进行病毒与恶意软件扫描。
- 运行chkrootkit、rkhunter等工具,检测常见的Rootkit。
- 入侵检测与防御:
- 在主机层面部署OSSEC这样的HIDS(主机入侵检测系统)。
- 在网络层面,可通过Suricata或Snort构建NIDS/NIPS(网络入侵检测/防御系统),并确保规则库持续更新。
- 文件完整性监控:再次强调,部署AIDE或Tripwire并建立有效基线,是检测未授权文件变更的关键防线。
五 处置与加固清单
检测之后,必须有一整套清晰、果断的处置与恢复流程。
- 隔离与取证:一旦确认或高度怀疑失陷,立即将主机从生产网络隔离,防止横向移动。然后,保存关键日志、对可疑文件计算哈希值(如
sha256sum)留存证据,条件允许应制作内存和磁盘镜像用于深挖分析。 - 阻断与止血:在防火墙上立即封禁攻击源IP;停用已被入侵的账户和服务;移除可疑的SSH授权密钥。
- 修复与加固:
- 打补丁:执行
yum update -y,确保系统和应用补丁更新至最新。 - 强化SSH:禁用Root直接登录、改用密钥认证、限制可登录用户列表和源IP地址,必要时更改默认端口。
- 最小权限:贯彻最小权限原则,所有管理操作通过sudo进行细粒度授权,关闭一切非必需服务。
- 强制访问控制:保持SELinux为Enforcing模式,并根据
audit.log中的告警优化策略,而非简单地关闭它。 - 强化认证:实施强密码策略,对运维、数据库等关键账户,强制启用多因素认证(MFA)。
- 打补丁:执行
- 持续监测与演练:安全是持续过程。部署集中式日志分析平台(如ELK),让日志价值最大化。定期运行审计工具(如Lynis)复核基线。更重要的是,通过定期的红蓝对抗演练和渗透测试,主动验证整个防护体系的有效性,让应急预案不只是纸上谈兵。
