溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle RushQL勒索病毒恢復(fù)方法

發(fā)布時(shí)間:2020-08-11 00:13:29 來(lái)源:ITPUB博客 閱讀:187 作者:沃趣科技 欄目:關(guān)系型數(shù)據(jù)庫(kù)

在上期 《勒索病毒Globelmposter來(lái)襲,數(shù)據(jù)備份你做好了嗎》 中,我們介紹了Globelmposter勒索病毒,以SMB、RDP協(xié)議漏洞為突破口,加密篡改用戶文件,從而達(dá)到勒索的目的,其感染目標(biāo)并不局限特定的應(yīng)用。

本次我們?cè)賮?lái)介紹另一種專(zhuān)門(mén)針對(duì)數(shù)據(jù)庫(kù)的勒索病毒 -- RushQL。相比Globelmposter,RushQL專(zhuān)門(mén)針對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)、并且具備一定潛伏期和隱蔽性,危害極大。

該病毒最早被發(fā)現(xiàn)是捆綁在被感染的綠色版/破解版PS/SQL安裝程序上,一旦用戶使用此類(lèi)破解版軟件連接到數(shù)據(jù)庫(kù),會(huì)立即執(zhí)行“Afterconnet.sql”中的代碼(此文件一般在官方PL/SQL軟件中是一個(gè)空文件),在數(shù)據(jù)庫(kù)中創(chuàng)建多個(gè)存儲(chǔ)過(guò)程和觸發(fā)器。

RushQL感染后并不會(huì)立即造成數(shù)據(jù)損壞,具備一定時(shí)間的潛伏期,它會(huì)首先判斷數(shù)據(jù)庫(kù)創(chuàng)建時(shí)間是否大于1200天(比較狠,專(zhuān)挑運(yùn)行較長(zhǎng)時(shí)間的數(shù)據(jù)庫(kù)下手)。如果大于1200天,則重啟數(shù)據(jù)庫(kù)后觸發(fā)病毒觸發(fā)器,加密并刪除 sys.tab$ ,導(dǎo)致用戶無(wú)法訪問(wèn)數(shù)據(jù)庫(kù)中所有的數(shù)據(jù)庫(kù)對(duì)象集合(schema),提示“你的數(shù)據(jù)庫(kù)已經(jīng)被SQL RUSH Team鎖死,請(qǐng)發(fā)送5個(gè)比特幣到這個(gè)地址……”的勒索信息(也有變種會(huì)要求以太幣等),并設(shè)置定時(shí)任務(wù),如果在期限內(nèi)不交贖金,就刪除所有的表

Oracle RushQL勒索病毒恢復(fù)方法

RushQL包含多個(gè)存儲(chǔ)過(guò)程和觸發(fā)器,選取其中一個(gè)PROCEDURE DBMS_SUPPORT_INTERNAL來(lái)看主要的操作為:

1. 創(chuàng)建并備份`sys.tab$`表的數(shù)據(jù)到表 `ORACHK || SUBSTR(SYS_GUID,10)`;
2. 刪除`sys.tab$`中的數(shù)據(jù),條件是所有表的創(chuàng)建者ID 在(0,38)范圍(針對(duì)核心表);
3. 在你的alert日志中寫(xiě)上2046次勒索信息,并觸發(fā)異常告警

從存儲(chǔ)過(guò)程的內(nèi)容可知,相比Globelmposter,RushQL更難防范。其行為從數(shù)據(jù)庫(kù)角度看來(lái)都是再正常不過(guò)的操作(update、truncate等),因此現(xiàn)有所有備份手段幾乎都會(huì)失效,例如Dataguard可以防護(hù)文件類(lèi)感染,但遇到RushQL仍會(huì)將錯(cuò)誤的數(shù)據(jù)進(jìn)行同步;定時(shí)備份能起到一定恢復(fù)作用,但無(wú)法保證數(shù)據(jù)沒(méi)有丟失等。

若是被感染且尚未滿足條件發(fā)作,則處理方式很簡(jiǎn)單,只要?jiǎng)h除4個(gè)存儲(chǔ)過(guò)程及3個(gè)觸發(fā)器、不再使用帶病毒的破解/綠色軟件即可:

存儲(chǔ)過(guò)程 DBMS_SUPPORT_INTERNAL
存儲(chǔ)過(guò)程 DBMS_STANDARD_FUN9
存儲(chǔ)過(guò)程 DBMS_SYSTEM_INTERNA
存儲(chǔ)過(guò)程 DBMS_CORE_INTERNAL
觸發(fā)器 DBMS_SUPPORT_INTERNAL
觸發(fā)器 DBMS_SYSTEM_INTERNAL
觸發(fā)器 DBMS_CORE_INTERNAL

如果病毒已經(jīng)生效,數(shù)據(jù)庫(kù)處于被鎖定狀態(tài),則需:

1. 刪除4個(gè)存儲(chǔ)過(guò)程和3個(gè)觸發(fā)器
2. 檢查相關(guān)登錄工具的自動(dòng)化腳本,清理有風(fēng)險(xiǎn)的腳本
3. 使用備份將表恢復(fù)到truncate之前,視嚴(yán)重程度可能要用到DUL工具
(不一定能恢復(fù)所有的表,例如truncate的空間已被使用)

由于truncate的空間有可能被再次使用,大概率會(huì)有部分?jǐn)?shù)據(jù)無(wú)法恢復(fù)。但是,如果之前已經(jīng)部署過(guò)QPlus-DP 數(shù)據(jù)庫(kù)備份云一體機(jī),則恢復(fù)過(guò)程十分簡(jiǎn)單,可以使用“秒級(jí)恢復(fù)”功能創(chuàng)建病毒發(fā)作前1秒(或指定SCN號(hào))的歷史數(shù)據(jù)庫(kù),實(shí)現(xiàn)無(wú)數(shù)據(jù)丟失找回被truncate的表,如圖:

Oracle RushQL勒索病毒恢復(fù)方法

Oracle RushQL勒索病毒恢復(fù)方法

經(jīng)過(guò)幾分鐘的等待,使用新創(chuàng)建的數(shù)據(jù)庫(kù)環(huán)境、確認(rèn)需要恢復(fù)的表之后再導(dǎo)回至生產(chǎn)庫(kù)即可。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI