本文來(lái)自微信公眾號(hào):編程技術(shù)宇宙 (ID:xuanyuancoding),作者:軒轅之風(fēng) O
卻說(shuō)這一日,Redis 正如往常一般工作,不久便收到了一條 SAVE 命令。
雖說(shuō)這 Redis 常被用來(lái)當(dāng)做緩存,數(shù)據(jù)只存在于內(nèi)存中,卻也能通過(guò) SAVE 命令將內(nèi)存中的數(shù)據(jù)保存到磁盤(pán)文件中以便持久化存儲(chǔ)。
只見(jiàn) Redis 剛打開(kāi)文件,準(zhǔn)備寫(xiě)入,不知何處突然沖出幾個(gè)大漢將其擒住。
到底是怎么回事?Redis 一臉懵。
這事還得要從一個(gè)月之前說(shuō)起。
挖礦病毒
前情回顧:CPU 深夜狂飆,一幫大佬都傻眼了???
一個(gè)月前,突如其來(lái)的警報(bào)聲打破了 Linux 帝國(guó)夜晚的寧?kù)o,CPU 占用率突然飆升,卻不知何人所為。在 unhide 的幫助下,總算揪出了隱藏的進(jìn)程。本以為危機(jī)已經(jīng)解除,豈料???
夜已深了,安全警報(bào)突然再一次響了起來(lái)。
“部長(zhǎng),rm 那小子是假冒的,今天他騙了我們,挖礦病毒根本沒(méi)刪掉,又卷土重來(lái)了!”
安全部長(zhǎng)望向遠(yuǎn)處的天空,CPU 工廠門口的風(fēng)扇又開(kāi)始瘋狂地轉(zhuǎn)了起來(lái)???
無(wú)奈之下,部長(zhǎng)只好再次召集大家。
unhide 再一次拿出看家本領(lǐng),把潛藏的幾個(gè)進(jìn)程給捉了出來(lái)。kill 老哥拿著他們的 pid,手起刀落,動(dòng)作干脆利落。
這一次,沒(méi)等找到真正的 rm,部長(zhǎng)親自動(dòng)手,清理了這幾個(gè)程序文件。
“部長(zhǎng),總這么下去不是個(gè)辦法,刪了又來(lái),得想個(gè)長(zhǎng)久之計(jì)??!”,一旁的 top 說(shuō)到。
“一定要把背后的真兇給揪出來(lái)!”,ps 說(shuō)到。
“它們是怎么混進(jìn)來(lái)的,也要調(diào)查清楚!”,netstat 說(shuō)到。
“對(duì),對(duì),就是”,眾人皆附和。
部長(zhǎng)起身說(shuō)道,“大家說(shuō)得沒(méi)錯(cuò),在諸位到來(lái)之前,我已經(jīng)安排助理去核查了,相信很快會(huì)有線索?!?/p>
此時(shí),防火墻上前說(shuō)道:“為了防止走漏消息,建議先停掉所有的網(wǎng)絡(luò)連接”
“也罷,這三更半夜的,對(duì)業(yè)務(wù)影響也不大,停了吧!”,安全部長(zhǎng)說(shuō)到。
不多時(shí),助理行色匆匆地趕了回來(lái),在部長(zhǎng)耳邊竊竊私語(yǔ)一番,聽(tīng)得安全部長(zhǎng)瞬時(shí)臉色大變。
“sshd 留一下,其他人可以先撤了”,部長(zhǎng)說(shuō)到。
大伙先后散去,只留下 sshd,心里不覺(jué)忐忑了起來(lái)。
“等一下,kill 也留一下”,部長(zhǎng)補(bǔ)充道。
一聽(tīng)這話,sshd 心跳的更加快了。
助理關(guān)上了大門,安全部長(zhǎng)輕聲說(shuō)到:“據(jù)剛剛得到的消息,有人非法遠(yuǎn)程登錄了進(jìn)來(lái),這挖礦病毒極有可能就是被人遠(yuǎn)程上傳了進(jìn)來(lái)”
sshd 一聽(tīng)這話大驚失色,慌忙問(wèn)道:“難道登錄密碼泄露了?”
“應(yīng)該不是,是使用的公私鑰免密登錄”,一旁的助理回答到。
“你看,在 / root/.ssh/ authorized_keys 文件中,我們發(fā)現(xiàn)了一個(gè)新的登錄公鑰,這在之前是沒(méi)有的”,隨后,助理輸出了這文件的內(nèi)容:
[root@xuanyuan ~]# cat .ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABA······
“絕不是我干的”,sshd 急忙撇清。
“遠(yuǎn)程登錄,這不是你負(fù)責(zé)的業(yè)務(wù)嗎?”,助理問(wèn)到。
“確實(shí)是我負(fù)責(zé),但我也只是按程序辦事,他能用公私鑰登錄的前提是得先把公鑰寫(xiě)入進(jìn)來(lái)啊,所以到底是誰(shuí)寫(xiě)進(jìn)來(lái)的,這才是關(guān)鍵!”,sshd 說(shuō)到。
“說(shuō)的沒(méi)錯(cuò),別緊張,想想看,有沒(méi)有看到過(guò)誰(shuí)動(dòng)過(guò)這個(gè)文件?”,部長(zhǎng)拍了下 sshd 的肩膀說(shuō)到。
“這倒是沒(méi)留意”
部長(zhǎng)緊鎖眉頭,來(lái)回走了幾步,說(shuō)道:“那好,這公鑰我們先清理了?;厝ヒ院蠖⒕o這個(gè)文件,有人來(lái)訪問(wèn)立刻報(bào)給我”
“好的”,sshd 隨后離開(kāi),發(fā)現(xiàn)自己已經(jīng)嚇出了一身冷汗。
兇手浮現(xiàn)
時(shí)間一晃,一個(gè)月就過(guò)去了。
自從把 authorized_keys 文件中的公鑰清理后,Linux 帝國(guó)總算是太平了一陣子,挖礦病毒入侵事件也漸漸被人淡忘。
這天晚上夜已深,sshd 打起了瞌睡。
突然,“咣當(dāng)”一聲,sshd 醒了過(guò)來(lái),睜眼一看,竟發(fā)現(xiàn)有程序闖入了 / root/.ssh 目錄!
這一下 sshd 睡意全無(wú),等了一個(gè)多月,難道這家伙要現(xiàn)身了?
sshd 不覺(jué)緊張了起來(lái),到底會(huì)是誰(shuí)呢?
此刻,sshd 緊緊盯著 authorized_keys 文件,眼睛都不敢眨一下,生怕錯(cuò)過(guò)些什么。
果然,一個(gè)身影走了過(guò)來(lái),徑直走向這個(gè)文件,隨后打開(kāi)了它!
sshd 不敢猶豫,趕緊給安全部長(zhǎng)助理發(fā)去了消息。
那背影轉(zhuǎn)過(guò)身來(lái),這一下 sshd 看清了他的容貌,竟然是 Redis!
收到消息的部長(zhǎng)帶人火速趕了過(guò)來(lái),不等 Redis 寫(xiě)入數(shù)據(jù),就上前按住了他。
“好家伙,沒(méi)想到內(nèi)鬼居然是你!”,sshd 得意的說(shuō)到。
Redis 看著眾人,一臉委屈,“你們這是干什么?我也沒(méi)做什么壞事啊”
“人贓并獲,你還抵賴?說(shuō)吧,你為什么要來(lái)寫(xiě) authorized_keys 文件?”
“那是因?yàn)槲乙獊?lái)執(zhí)行數(shù)據(jù)持久化存儲(chǔ),把內(nèi)存中的數(shù)據(jù)寫(xiě)到文件中保存”,Redis 答道。
“你持久化存儲(chǔ),為什么會(huì)寫(xiě)到 authorized_keys 文件里面來(lái)?”,sshd 繼續(xù)質(zhì)問(wèn)。
“剛剛收到幾條命令,設(shè)置了持久化存儲(chǔ)的文件名就是這個(gè),不信你看”,說(shuō)罷,Redis 拿出了剛剛收到的幾條命令:
CONFIG SET dir /root/.ssh CONFIG SET dbfilename authorized_keys SAVE
“第一條指定保存路徑,第二條指定保存的文件名,第三條就是保存數(shù)據(jù)到文件了”,Redis 繼續(xù)解釋到。
安全部長(zhǎng)仔細(xì)看著幾條命令,說(shuō)道:“把你要寫(xiě)入的數(shù)據(jù)給我看看”
“這可有點(diǎn)多,你等一下”,說(shuō)罷,Redis 拿出了所有的鍵值數(shù)據(jù),散落一地。
眾人在一大片數(shù)據(jù)中看花了眼。
“部長(zhǎng)快看!”,sshd 突然大叫。
順著他手指的方向,一個(gè)醒目的公鑰出現(xiàn)在了大家面前。
ssh-rsa AAAAB3NzaC1yc2EAA···
“果然是你!”
Redis 還是一臉懵,還不知發(fā)生了什么。
“你這家伙,被人當(dāng)槍使了!你寫(xiě)的這個(gè)文件可不是普通文件,你這要是寫(xiě)進(jìn)去了,別人就能遠(yuǎn)程登錄進(jìn)來(lái)了,之前的挖礦病毒就是這么進(jìn)來(lái)的!”,sshd 說(shuō)到。
一聽(tīng)這話,Redis 嚇得趕緊掐斷了網(wǎng)絡(luò)連接。
“給你下命令的究竟是誰(shuí),又是怎么連接上你的?”,部長(zhǎng)問(wèn)到。
Redis 不好意思的低下了頭,只說(shuō)道:“不瞞您說(shuō),我這默認(rèn)就沒(méi)有密碼,誰(shuí)都可以連進(jìn)來(lái)”
安全部長(zhǎng)聽(tīng)得眼睛都瞪圓了,憤而離去。
只聽(tīng)得一聲大叫,kill 老哥又一次手起刀落。
彩蛋
“部長(zhǎng),不好了”
“什么事,慌慌張張的”
“我的數(shù)據(jù)全都被加密了!”,MySQL 氣喘吁吁的說(shuō)到??
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。