直播系统搭建,服务器被黑的排查思路参考

发布来源:云豹科技
发布人:云豹科技
2021-08-11 10:09:20

天下没有不透风的墙,直播系统搭建到服务器上以后,被黑也不是不可能的事情,为避免黑客恶意攻击导致平台损失,云豹科技一直在努力,包括在服务器的选择、源码的编译等方面都作出过很多努力。

但如果真的被黑了,怎么办?云豹科技的程序员小哥哥们写了一份排查思路,如下:

一、 首先检查是否有陌生人登录  

1、 查看密码文件和当前用户是否有变化,有没有新增加用户进来。

命令:cat /etc/passwd
命令:cat /etc/shadow

图片1.png

2、 如果有就找到pid号,kill掉,并立即更改服务器密码。

命令:ps -aux | grep root@pts/0


二、 计划任务里面是否被动过手脚

1、 查看是否有写入计划任务,有则删除

命令:crontab -e
命令:cat /etc/crontab


2、 如果这里删除后过一会又有了,利用lsof命令查找一下是哪个进程在写入文件。

lsof /var/spool/cron/root


3、 找不到则先锁定计划任务。去除i权限,清理计划任务,再锁定

cd /var/spool/cron
chattr -i 
> root
chattr +i


4、 可查看是哪个程序被入侵的,因为直播系统由多个部分组成,比如redis暴露外网被入侵,则可以在cron.deny禁止redis这个用户使用crontab

三、 被修改的文件

1、 查询最近一天被修改的文件,并且去除proc临时文件

find / -mtime 0 -ls | grep -v proc


2、 有的像crontab即使加了i属性,依然会被解封,然后写入定时任务。这时候可以用audit这个命令来监控/var/spool/cron/root这个文件,看是哪个进程在操作。

四、 筛选日志

1、 查看机器的日志有没有被清空或删除。和别的机器对比一下,看看是不是文件都在。

命令:du -sh /var/log/*


2、 查看有没有异常操作,不过通常会被清空。在查询的时候也不要只看当前的,可能是伪造的history记录,从头一条条看。

命令:history


3、 查看机器最近成功登陆的事件和最后一次不成功的登陆事件,对应的日志是/var/log/lastlog

mo命令:lastlog


4、 查看机器创建以来登陆过的用户,对应日志文件/var/log/wtmp

命令:last


5、 查看当前时间是否更改,更改时间会导致history等记录的时间不正确,可能昨天的操作,变成了半个月以前的,要更改回来。

命令:date


五、 查看是否有异常流量

1、 如果发现直播系统所在的服务器产生了异常流量,可以抓取网络包查看流量情况或者查看流量情况。通常作为肉鸡用于去攻击其它机器的时候,网络出口流量会异常的大。

命令:tcpdump | iperf


2、 查看当前开启的进程服务,一般脚本病毒会开启udp端口来作为肉鸡攻击其它机器,查找有问题的进程。

命令:netstat -unltp


3、 通常异常进程都比较消耗资源,比如挖矿脚本最消耗资源,查看哪个进程消耗资源做多

命令:top

图片2.png

4、 如果找到怀疑的进程,找到pid号,可以看到启动命令

ll /proc/1850/ | grep -i exe
lrwxrwxrwx. 1 root root 0 Sep 15 12:31 exe -> /usr/bin/python


5、 找到那个文件,并删除掉。

ll /usr/bin/python
rm -rf /usr/bin/python


6、 同时搜索类似文件名的文件是否存在,不过可能文件名会改变

find / -name python -type f


六、 查看异常进程

1、 如果上面方法没找到,则用ps命令来获取信息。
和其它服务器对比,找出有问题的进程,基本上系统启动后就那几个进程,再加上服务器运行的服务,进程数量相对比较固定。

命令:ps -aux


2、 找到有问题的pid号后,查看相关进程,一起kill掉杀死。

pstree -p


3、 可以看到进程的树状图,还有分支出来的其它子进程,一起kill掉,再删除程序。

4、 如果对方可能改了文件,但修改了日期,那就用md5效验,和一台正常机器做对比。

图片3.png

七、 总结

1、 在直播系统搭建到服务器以后,实时做好监控,对进程、登陆用户、在线用户等等监控。

2、 除了提供服务的nginx之类的机器,其他mysql等等均不要开放外网,nginx那台也不对外开放22端口,只开放80端口。

3、 设置跳板机,只通过跳板机进行登录,并限制访问的白名单地址,有需求可以设置短信和秘钥双因子验证。开源的有jumpserver和webterminal这些堡垒机软件。

4、 nginx或者其他服务均使用单独的用户启动,并nologin消除登陆权限。

5、更改暴露在外面的服务器22端口改成别的,并禁止root直接登陆。

6、做好服务器定期镜像,因为被入侵后恢复很痛苦,最好的方法是直接还原镜像。

7、直播系统搭建,最好使用linux服务器,windows系统更容易受到攻击

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任www.yunbaokj.com

声明:
以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任