
说实话,没有任何IT人员愿意面对服务器被黑的情况,但是这种情况可能会在你意想不到的时候发生。当发现服务器异常时后30分钟内的应急处理很关键。

我这些年也应急处理过不少安全事件,总的来说其实不是什么高深的技术活,关键是——要快、要准、要有流程。今天就把我自己应急的实战流程分享出来,希望能对你有所帮助。
先别着急断网,先看看服务器上发生了什么
top # 首选看看CPU和内存有没有异常飙升
ps aux --sort=pcpu | head -10 # 找出占用CPU最高的进程
ps aux --sort=pmem | head -10 # 内存占用前十的进程
把上面三个命令跑完,差不多就能判断服务器状态。如果有陌生的进程,或者某个进程的资源占用异常,就需要注意了。我记得有一次,就是发现一个名为"systemd-upgrade"的进程占用了90%的CPU,结果查出来是挖矿程序。
检查网络连接情况
netstat -anp # 看所有网络连接
lsof -i:8080 # 检查特定端口的进程
lsof -nPi # 列出所有内外网络连接
这里要特别留意外网连接,尤其连接到未知陌生IP的。正常的业务连接的IP都是可知的,突然出现大量到陌生IP的连接,或者有异常的数据传输,基本可以断定有问题。
查看最近登录记录
last # 登录成功记录
lastb # 登录失败记录
lastlog # 最后一次登录时间
说实话,如果你在日志里看到陌生IP的登录记录,或者短期内突然冒出一大堆登录失败的尝试,那基本就是暴力破解的痕迹了。以前我碰到过一个案例,攻击者一天之内试了十几二十万次登录,虽然大部分都是失败的,但最后还是让他给得手了,挺吓人的。

历史命令分析
cat /root/.bash_history |more # 查看历史命令
tail -n 10 /var/log/secure # 认证日志
cat /var/log/sulog # su切换记录
有时候攻击者会忘记清除历史命令,这里就给我们溯源提供了证据。仔细查看最近执行的命令,看看有那些可疑的操作没。可能会发现一些莫名其妙的下载命令、解压操作,或者一些你从来没用过的参数。
检查计划任务
crontab -l # 当前用户的计划任务
cat /etc/crontab # 系统级计划任务
ls -la /etc/cron.d/ # 计划任务目录
攻击者最喜欢在计划任务crontab中留下的后门。所以这里要仔细检查每个内容,看看有没有奇怪的脚本下载、反弹shell之类的命令。我见过最隐蔽的后门就是一个看似正常的系统清理脚本,实际上却在悄悄收集系统信息。
文件完整性检查
find -type f -mtime -3 # 最近3天修改的文件
find ./ -mtime 0 -name "*.jsp" # 当天修改的JSP文件
stat /etc/passwd # 查看关键文件修改时间
着重关注Web目录和系统配置文件的变动。这里攻击者常见的植入后门或修改配置的地方。特别是Web应用目录,要仔细检查最近修改的文件,看看有没有异常的代码片段。
用户和权限检查
cat /etc/passwd # 查看所有用户
cat /etc/passwd | grep x:0 # 查找root权限用户
cat /etc/passwd | grep /bin/bash # 查找有shell权限的用户
着重注意有无新增的特权用户,攻击者会创建有root权限的账户。我曾经发现过一个用户名为"support"的账户,看起来很正常,但UID却是0,这其实就是root权限的伪装账户。
关键文件验证
rpm -Vf /bin/ls # 验证系统命令文件
rpm -Vf /usr/sbin/sshd # SSH服务验证
stat /etc/hosts # hosts文件状态
被篡改系统文件是非常严重的事态,要立即隔离服务器。因为攻击者有时会替换系统命令,隐藏他们的踪迹,或者添加某些特定的功能。
临时文件检查
ls -la /tmp # 临时目录
ls -la /var/tmp # 系统临时目录
cat /tmp/*.sh 2>/dev/null # 检查是否有可疑脚本
说实话,临时目录这地方经常被攻击者当垃圾桶用,存恶意脚本、临时文件啥的,可别轻易放过。这里说不定就能挖出他们的工具包、扫描结果,或者一些完全莫名其妙的东西。
这套流程我自己前前后后折腾了很多年,平时看着可能没那么“惊艳”,可真到了出问题的时候,往往就是它最顶用。说到底,真正靠谱的应急响应,从来都不是等事情发生了再去拼命补救,而是平时先把预防做扎实。
像定期检查、及时更新、控制权限这些事,听起来确实很基础,甚至有点像老生常谈。但说实话,真正到了关键时刻,你就会发现,很多安全事故本来是完全可以避开的。服务器被入侵,很多时候并不是因为技术方案不够高级,也不是防守的人不够专业,往往就是某个看起来不起眼的小疏漏,正好给了别人可乘之机。
如果真碰上攻击了,记住啊:先稳住,别慌,按着流程一步步走,把证据留好。慌慌张张的只会让事儿越搞越乱,冷静的判断和有条不紊的行动,才是翻盘的关键。