CPU被挖矿,Redis竟是内鬼!
却说这一日,Redis正如往常一般工作,不久便收到了一条SAVE命令。
虽说这Redis常被用来当做缓存,数据只存在于内存中,却也能通过SAVE命令将内存中的数据保存到磁盘文件中以便持久化存储。

只见Redis刚打开文件,准备写入,不知何处突然冲出几个大汉将其擒住。
到底是怎么回事?Redis一脸懵。
这事还得要从一个月之前说起。
挖矿病毒
前情回顾:CPU深夜狂飙,一帮大佬都傻眼了···
一个月前,突如其来的警报声打破了Linux帝国夜晚的宁静,CPU占用率突然飙升,却不知何人所为。在
unhide的帮助下,总算揪出了隐藏的进程。本以为危机已经解除,岂料···
夜已深了,安全警报突然再一次响了起来。
“部长,rm那小子是假冒的,今天他骗了我们,挖矿病毒根本没删掉,又卷土重来了!”
安全部长望向远处的天空,CPU工厂门口的风扇又开始疯狂地转了起来···
无奈之下,部长只好再次召集大家。
unhide再一次拿出看家本领,把潜藏的几个进程给捉了出来。kill老哥拿着他们的pid,手起刀落,动作干脆利落。
这一次,没等找到真正的rm,部长亲自动手,清理了这几个程序文件。
“部长,总这么下去不是个办法,删了又来,得想个长久之计啊!”,一旁的top说到。
“一定要把背后的真凶给揪出来!”,ps说到。
“它们是怎么混进来的,也要调查清楚!”,netstat说到。
“对,对,就是”,众人皆附和。
部长起身说道,“大家说得没错,在诸位到来之前,我已经安排助理去核查了,相信很快会有线索。”
此时,防火墙上前说道:“为了防止走漏消息,建议先停掉所有的网络连接”
“也罢,这三更半夜的,对业务影响也不大,停了吧!”,安全部长说到。
不多时,助理行色匆匆地赶了回来,在部长耳边窃窃私语一番,听得安全部长瞬时脸色大变。
“sshd留一下,其他人可以先撤了”,部长说到。
大伙先后散去,只留下sshd,心里不觉忐忑了起来。
“等一下,kill也留一下”,部长补充道。
一听这话,sshd心跳的更加快了。

助理关上了大门,安全部长轻声说到:“据刚刚得到的消息,有人非法远程登录了进来,这挖矿病毒极有可能就是被人远程上传了进来”
sshd一听这话大惊失色,慌忙问道:“难道登录密码泄露了?”
“应该不是,是使用的公私钥免密登录”,一旁的助理回答到。
“你看,在/root/.ssh/authorized_keys文件中,我们发现了一个新的登录公钥,这在之前是没有的”,随后,助理输出了这文件的内容:
[root@xuanyuan ~]# cat .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABA······
“绝不是我干的”,sshd急忙撇清。
“远程登录,这不是你负责的业务吗?”,助理问到。
“确实是我负责,但我也只是按程序办事,他能用公私钥登录的前提是得先把公钥写入进来啊,所以到底是谁写进来的,这才是关键!”,sshd说到。
“说的没错,别紧张,想想看,有没有看到过谁动过这个文件?”,部长拍了下sshd的肩膀说到。
“这倒是没留意”
部长紧锁眉头,来回走了几步,说道:“那好,这公钥我们先清理了。回去以后盯紧这个文件,有人来访问立刻报给我”
“好的”,sshd随后离开,发现自己已经吓出了一身冷汗。
凶手浮现
时间一晃,一个月就过去了。
自从把authorized_keys文件中的公钥清理后,Linux帝国总算是太平了一阵子,挖矿病毒入侵事件也渐渐被人淡忘。
这天晚上夜已深,sshd打起了瞌睡。

突然,“咣当”一声,sshd醒了过来,睁眼一看,竟发现有程序闯入了/root/.ssh目录!
这一下sshd睡意全无,等了一个多月,难道这家伙要现身了?
sshd不觉紧张了起来,到底会是谁呢?
此刻,sshd紧紧盯着authorized_keys文件,眼睛都不敢眨一下,生怕错过些什么。

果然,一个身影走了过来,径直走向这个文件,随后打开了它!
sshd不敢犹豫,赶紧给安全部长助理发去了消息。
那背影转过身来,这一下sshd看清了他的容貌,竟然是Redis!
收到消息的部长带人火速赶了过来,不等Redis写入数据,就上前按住了他。
“好家伙,没想到内鬼居然是你!”,sshd得意的说到。
Redis看着众人,一脸委屈,“你们这是干什么?我也没做什么坏事啊”
“人赃并获,你还抵赖?说吧,你为什么要来写authorized_keys文件?”
“那是因为我要来执行数据持久化存储,把内存中的数据写到文件中保存”,Redis答道。
“你持久化存储,为什么会写到authorized_keys文件里面来?”,sshd继续质问。
“刚刚收到几条命令,设置了持久化存储的文件名就是这个,不信你看”,说罢,Redis拿出了刚刚收到的几条命令:
CONFIG SET dir /root/.ssh
CONFIG SET dbfilename authorized_keys
SAVE
“第一条指定保存路径,第二条指定保存的文件名,第三条就是保存数据到文件了”,Redis继续解释到。
安全部长仔细看着几条命令,说道:“把你要写入的数据给我看看”
“这可有点多,你等一下”,说罢,Redis拿出了所有的键值数据,散落一地。

众人在一大片数据中看花了眼。
“部长快看!”,sshd突然大叫。
顺着他手指的方向,一个醒目的公钥出现在了大家面前。
ssh-rsa AAAAB3NzaC1yc2EAA···
“果然是你!”
Redis还是一脸懵,还不知发生了什么。
“你这家伙,被人当枪使了!你写的这个文件可不是普通文件,你这要是写进去了,别人就能远程登录进来了,之前的挖矿病毒就是这么进来的!”,sshd说到。
一听这话,Redis吓得赶紧掐断了网络连接。
“给你下命令的究竟是谁,又是怎么连接上你的?”,部长问到。
Redis不好意思的低下了头,只说道:“不瞒您说,我这默认就没有密码,谁都可以连进来”
安全部长听得眼睛都瞪圆了,愤而离去。
只听得一声大叫,kill老哥又一次手起刀落。
彩蛋
“部长,不好了”
“什么事,慌慌张张的”
“我的数据全都被加密了!”,MySQL气喘吁吁的说到···
推荐阅读故事
CPU被挖矿,Redis竟是内鬼!的更多相关文章
- 一个故事看懂CPU的SIMD技术
好久不见,我叫阿Q,是CPU一号车间的员工.我所在的CPU有8个车间,也就是8个核心,咱们每个核心都可以同时执行两个线程,就是8核16线程,那速度杠杠滴. 我所在的一号车间,除了负责执行指令的我,还有 ...
- 如何监控redis的cpu使用率
redis默认是单线程运行的,为了充分利用机器的cpu,正常情况下一台服务器上会装多个实例.如果通过top命令监控机器的cpu的话,监控值很笼统,不能精确到单redis实例的cpu使用率监控.而且ce ...
- Redis used_cpu_sys used_cpu_user meaning (redis info中cpu信息的含义)
Redis 中 used_cpu_sys 和 used_cpu_user含义. 在Redis的info命令输出结果中有如下四个指标,redis官网给出了下面一段解释,但是还是不明白什么意思. used ...
- 生产Server遭挖矿程序入侵,暴力占用CPU
区块链的火热,利益驱使必然导致不少PC或Server,被变成肉鸡,执行挖矿程序进行挖矿,进而导致我们正常的程序无法正常. (Centos7 Server)使用top命令查看服务器进程运行情况,发现几个 ...
- 拒绝CPU挖矿矿工有责
长期以来CPU挖矿给挖矿行业带来持久的负面影响,因为CPU是电脑的核心设备,一挖矿就干不了别的了,大家是否可以达成共识拒绝CPU挖矿? 显卡挖矿刚好构建在不影响大众的日常工作生活对电脑的需求之上,家用 ...
- 你知道CPU结构也会影响Redis性能吗?
啦啦啦,我是卖身不卖艺的二哈,ε=(´ο`*)))唉错啦(我是开车的二哈),我又来了,铁子们一起开车呀! 今天来分析下CPU结构对Redis性能会有影响吗? 在进行Redis性能分析的时候,通常我们会 ...
- Redis性能篇(二)CPU核和NUMA架构的影响
Redis被广泛使用的一个很重要的原因是它的高性能.因此我们必要要重视所有可能影响Redis性能的因素.机制以及应对方案.影响Redis性能的五大方面的潜在因素,分别是: Redis内部的阻塞式操作 ...
- 【JAVA今法修真】 第四章 redis特性 击穿雪崩!
感谢这段时间大家的支持,关注我的微信号:南橘ryc ,回复云小霄,就可以获取到最新的福利靓照一张,还等什么,赶快来加入我们吧~ "明日便是决赛了,咋只会用法器没练过法术呢.". 选 ...
- [原]Redis主从复制各种环境下测试
Redis 主从复制各种环境下测试 测试环境: Linux ubuntu 3.11.0-12-generic 2GB Mem 1 core of Intel(R) Core(TM) i5-3470 C ...
随机推荐
- 使用Golang搭建gRPC服务提供给.NetCore客户端调用
目录 gRPC概述 RPC gRPC又是什么呢 安装 Golang IDE(Goland) Protocol Buffer 下载Protocal Buffer 配置Protocal Buffer编译器 ...
- linux下修改IP地址的方法
linux下修改IP地址的方法 1.网卡的命名规则 在centos7中,en表示着:ethernet以太网,即现在所用的局域网,enX(X常见有以下3种类型) 2.IP地址的临时修改(重启后失效) 查 ...
- 洛谷2151[SDOI2009]HH去散步(dp+矩阵乘法优化)
一道良好的矩阵乘法优化\(dp\)的题. 首先,一个比较\(naive\)的想法. 我们定义\(dp[i][j]\)表示已经走了\(i\)步,当前在点\(j\)的方案数. 由于题目中限制了不能立即走之 ...
- bzoj1972 SDOI2010-----猪国杀(模拟)
题目自己去找吧 记得数据范围是<=10 注意事项: 1.牌库空的时候,要不断的抽第一张牌 2.反贼的决斗永远是向主公发的 3.每次判定无懈的时候,都是从使用锦囊的那个牌开始,记得敌意和殷勤的判断 ...
- Netty 了解
1.1 Netty 是什么? Netty is an asynchronous event-driven network application framework for rapid develop ...
- Mysql双主双从高可用集群的搭建且与MyCat进行整合
1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...
- float 与 double 类型区别
https://www.runoob.com/w3cnote/float-and-double-different.html float 单精度浮点数在机内占 4 个字节,用 32 位二进制描述. d ...
- 项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加)
需求 在整理文件和一些其他头文件的时候,需要对其名称进行整理和修改,此工具很早就应该写了,创业后,非常忙,今天抽空写了一个顺便提供给学习. 工具和源码下载地址 本篇文章的应用包和源码包可在 ...
- ThreadLocal部分源码分析
结构演进 早起JDK版本中,ThreadLocal内部结构是一个Map,线程为key,线程在"线程本地变量"中绑定的值为Value.每一个ThreadLocal实例拥有一个Map实 ...
- Java:并发笔记-07
Java:并发笔记-07 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 6. 共享模型之不可变 本章内容 不可变类的使用 不可变类设计 无状态类设计 6.1 ...