CPU深夜狂飙,一帮大佬都傻眼了...

商务办公 开发工具
傍晚时分,警报声乍起,整个 Linux 帝国都陷入了惊恐之中。

[[378925]]

图片来自 Pexels

安全部长迅速召集大家商讨应对之策。

[[378926]]

“诸位,突发情况,CPU 占用率突然飙升,并且长时间没有降下来的趋势,CPU 工厂的阿 Q 向我们表达了强烈抗议。”

这时,一旁的 kill 命令说到:“部长莫急,叫 top 老哥看一下谁在占用 CPU,拿到进程号 pid,我把他干掉就好了。”

此言一出,在座的大伙都点头赞许,惊恐之色稍解。

top 命令站了起来,面露得意之色,说到:“大家请看好了”,说完,打印出了当前的进程列表:

众人瞪大了眼睛,瞅了半天,也没看出哪个进程在疯狂占用 CPU,top 老哥这下尴尬了。

这时,一旁的 ps 命令凑了上来,“让我来试试。”

ps 命令深吸了一口气,也打印出了进程列表。然而,依旧没有任何可疑的进程。

“你俩怎么回事,为什么没有?”,安全部长有些不悦。

“部长,我俩都是遍历的 /proc/ 目录下的内容,按理说,所有的进程都会在这里啊,我也想不通为什么找不到···”,top 老哥委屈的说到。

“遍历,怎么遍历的?”

“就是通过 opendir/readdir 这些系统调用函数来遍历的,这都是帝国提供的标准接口,应该不会出错,除非···”,说到这,top 打住了。

“除非什么?”

“除非这些系统调用把那个进程给过滤掉了,那样的话我就看不到了,难道有人潜入帝国内核,篡改了系统调用?”

安全部长瞪大了眼睛,真要如此,那可是大事啊!

眼看部长急的团团转,一旁的 netstat 起身说到:“部长,我之前结识一好友,名叫 unhide,捉拿隐藏进程是他的拿手好戏,要不请他来试试?”

部长大喜,“还犹豫什么,赶紧去请啊!”

“已经联系了,随后就到。”

部长看着 netstat,说到:“正好,趁着这个功夫,你先来看看现在有没有对外可疑的连接。”

netstat 点了点头,随后打印出了所有的网络连接信息:

“来来来,你们挨个来认领,看看都是谁的”,部长说到。

“这个 80 端口的服务是我的”,nginx 站了出来。

“这个 6379 端口服务是我的”,redis 也站了出来。

“这个,9200 是我的”,elasticsearch 说到。

“3306 那个是我的”

“8182 是我的”

······

一阵嘈杂后,只剩下一个连接无人认领:

  1. tcp   0    0 192.168.0.4:51854      88.99.193.240:7777    ESTABLISHED  - 

“部长,这八成就是躲在暗处那家伙的连接”,netstat 说到。

安全部长思考片刻问到:“curl 何在?来访问下这个 IP 地址,探探对方虚实。”

curl 站了出来,“来了来了!”

curl 小心翼翼的发送了一个 HTTP 请求过去,对方竟然回信了:

一行醒目的 mining poll 出现在大家面前。

“挖,挖矿病毒!”,top 老哥叫了出来。

这一下,在场所有的人都倒吸了一口凉气。

部长赶紧叫防火墙 firewall 配置了一条规则,将这条连接掐断。

就在这时,unhide 走了进来。

简单了解了情况后,unhide 拍拍胸脯说到:“这事交给我了,一定把这家伙给揪出来。”

随后,unhide 一阵操作猛如虎,输出了几行信息:

  1. Found HIDDEN PID 13053 
  2.     Executable: "/usr/bin/pamdicks" 
  3.     $USER=root 
  4.  
  5. Found HIDDEN PID 13064 
  6.     Executable: "/usr/bin/pamdicks" 
  7.     $USER=root 

众人皆凑了过来,瞪大了眼睛,unhide 老哥果然不是盖的,果真发现了几个可疑分子。

top 有点表示怀疑,问到:“敢问兄台用的什么路数,为何我等都看不到这几个进程的存在?”

unhide 笑道:“没什么神秘的,其实我也是遍历 /proc/ 目录,和你们不同的是,我不用 readdir,而是从进程 id 最小到最大,挨个访问 /proc/$pid 目录,一旦发现目录存在而且不在 ps 老哥的输出结果中,那这就是一个隐藏进程。”

一旁的 ps 笑道:“原来还有我的功劳呐。”

“找到了,就是这家伙!”,netstat 大声说到。

“你怎么这么肯定?”部长问到。

“大家请看,进程打开的文件都会在 /proc/pid/fd 目录下,socket 也是文件,我刚看了一下,这个进程刚好有一个 socket。再结合 /proc/tcp 信息,可以确定这个 socket 就是目标端口号 7777 的那一条!”

“好家伙!好家伙”,众人皆啧啧称赞。

“还等什么,快让我来干掉它吧!”,kill 老哥已经按捺不住了。

“让我来把它删掉”,rm 小弟也磨刀霍霍了。

部长摇头说到:“且慢,cp 何在,把这家伙先备份到隔离目录去,以待秋后算账”。

cp 拷贝完成,kill 和 rm 两位一起上,把背后这家伙就地正法了。

top 赶紧查看了最新的资源使用情况,惊喜的欢呼:“好了好了,CPU 占用率总算降下去了,真是大快人心。”

天色已然不早,没多久,众人先后离开,帝国恢复了往日的平静。

不过,安全部长的脸上,仍然是一脸愁容。

“部长,病毒已经被清除,为何还是闷闷不乐呢?”,助理问到。

“病毒虽已清除,但却不知这家伙是如何闯入的,还有背后暗中保护隐藏它的人又是谁,这实让我在很忧心啊!”

[[378927]]

不知不觉夜已深,帝国安全警报突然再一次响了起来。

“这又是怎么回事?”,部长厉声问到。

“部长,rm 那小子是假冒的,今天他骗了我们,病毒根本没删掉,又卷土重来了!”

部长望向远处的天空,CPU 工厂门口的风扇又开始疯狂地转了起来···

作者:轩辕之风

编辑:陶家龙

出处:转载自公众号编程技术宇宙(ID:xuanyuancoding)

 

责任编辑:武晓燕 来源: 编程技术宇宙
相关推荐

2021-01-27 05:46:56

CPU占用率命令

2014-04-04 14:12:43

程序员

2021-09-23 16:50:19

芯片摩根士丹利半导体

2009-05-01 14:11:22

2024-08-20 09:42:38

2022-10-13 11:59:11

AI

2023-03-05 22:30:25

JavaCPU

2023-03-26 00:48:14

CPUSQL性能

2018-03-27 10:41:04

2019-11-25 13:44:02

人脸识别AI人工智能

2022-12-06 07:30:12

K8s云原生生态系统

2022-10-18 07:30:06

MySQLJVM日志

2015-03-09 17:49:40

SDN

2023-06-25 07:42:02

2015-12-21 14:38:35

2024-09-13 14:01:12

2018-07-02 10:34:58

2020-05-27 08:31:33

CPU寄存器缓存

2021-03-26 06:14:26

Hashcode项目排查

2017-08-18 11:23:20

微软Windows 10
点赞
收藏

51CTO技术栈公众号