當前位置: 華文星空 > 知識

CPU被挖礦,Redis竟是內鬼!

2023-06-11知識

卻說這一日,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氣喘籲籲的說到···

好了,這一期的故事就講到這裏了,如果你想檢視更多未釋出過的新鮮又有趣的技術小故事,可以掃描下方二維碼購買我最新出版的【趣話電腦底層技術】圖書。書中用一個個的小故事系統性的講解了電腦底層技術的基本原理,以及如何運用他們解決日常工作中的各種實際問題。

感謝大家的支持,像這樣的故事文章,我已經寫了一百多篇了,涉及電腦組成原理、作業系統、電腦網絡、網絡安全、C/C++編程等諸多方面,歡迎戳連結閱讀更多文章:

推薦閱讀故事

  • 我是Redis,MySQL大哥被我害慘了!
  • CPU深夜狂飆,一幫大佬都傻眼了···
  • 半夜,這個程式從虛擬機器裏爬了出來!