现 象
1、主机流量爆满,200多M的带宽均被跑满了
2、业务无法访问
近期在给一个政府客户做业务迁移,因政策原因,需要将业务从阿里云,现在迁移到自建机房。
在辛苦工作几天,业务迁移测试一切完成后,还没来得及庆祝,刚回家准备歇歇,就接到客户电话,说主机流量爆满,200多M的带宽均被跑满了,业务无法访问。
第一感觉,就是客户主机被挂马了,但从历来运维的所有客户来看,Linux被挂马的概率不是太高,这攻击又是从什么地方过来的呢?
由于带宽被打满,远程连接基本没有可能,于是联系客户紧急把流量异常的主机的公网访问权限去除,待流量下降后,通过其他主机远程并连接该主机。
处理过程:
1. 首先使用iptraf查看是否流量异常
2. 使用ss查看哪些接口调用
3. 使用find查看/usr、/etc、/bin、/sbin 近期被修改过的文件
4. 发现ss命令被修改,文件大小为1223123字节。想起在湖北省某政务云运维的时候,发生过类似的案例,ss、ps、netstat等命令的大小均为1223123。
5. 由上可以确定被挂马无疑。
确认攻击来源
正常情况下,一个互联网的主机被攻击,大多是由于以下三种类型导致:
1、主机存在弱口令
2、组件存在严重的安全漏洞
3、应用代码中存在安全漏洞。
因为客户是互联网业务,我们首先想到的是会不会应用中存在安全漏洞,于是查看了所有的nginx的POST日志(我们知道,如果通过代码层面的提交,一般都是POST的行为,所以我们开启了POST的日志),均未发现异常。
联想到帮助湖北省某政务云运维的时候,也遇到过同样的情况,是由于主机存在弱密码所致,那客户的密码也比较简单,会不会是同样的情况。于是根据木马文件生成的时间点,查看了登录日志和安全日志,果然,发现了些异常。(使用last命令和 vim /var/log/security进行定位)
那如何清理木马文件?
#检查确认木马
find /sbin -mtime 0
find /bin -mtime 0
find /usr -mtime 0
find /etc -mtime 0
find /sbin/ -size -1223122c -size +1223124c -exec ls -ld{} ;
find /bin/ -size -1223122c -size +1223124c -exec ls -ld{} ;
find /usr/ -size -1223122c -size +1223124c -exec ls -ld{} ;
cat /etc/init.d/DbSecuritySpt
cat /etc/init.d/selinux
ll /tmp/gates.lod
ll /tmp/moni.lod
#删除木马文件
rm -f /usr/bin/.sshd
chattr -i -a /etc/abd/cmd.n
rm -rf /etc/abd
rm -rf /usr/bin/bsd-port
rm -f /tmp/gates.lod
rm -f /tmp/moni.lod
rm -rf /etc/init.d/selinux
rm -f /etc/rc.d/rc1.d/S99selinux
rm -f /etc/rc.d/rc2.d/S99selinux
rm -f /etc/rc.d/rc3.d/S99selinux
rm -f /etc/rc.d/rc4.d/S99selinux
rm -f /etc/rc.d/rc5.d/S99selinux
rm -f /etc/rc.d/rc6.d/S99selinux
rm -rf /etc/init.d/DbSecuritySpt
rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt
rm -f /etc/rc.d/rc6.d/S97DbSecuritySpt
针对此次安全故障的加固建议
云平台一般是具有异地登录,安全攻击的提醒,而自建机房这块就弱化很多,那在自建机房这块的安全登录如何处理。
1. 主机用户口令使用16位随机复杂密码
2. 禁止root直接远程登录
3. 禁止使用22端口登录
4. 尽可能少用FTP服务
5. 非必须服务不要开启
6. 非必要情况下,80、443禁止公网直接访问