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