選單

Oracle比特幣加密恢復

說到病毒,一般人第一時間就會想到“新型冠狀病毒”。作為一名Oracle DBA,提到病毒,我們還會想起最近今年來,在Windows平臺上大量爆發的“比特幣勒索病毒”,它曾感染了某個國家的交通系統,導致交通系統癱瘓,也曾感染某省的國土資源廳系統,使不動產系統長達10天之久不能正常對外提供服務。

比特幣勒索病毒它是什麼呢?

它其實也就是一類軟體,此類軟體對指定檔案按照它配置的規則進行加密。加密完成後,會在Windows桌面出現提示檔案已經加密,如需解密,就轉***比特幣,所以我們稱謂“比特幣勒索病毒”。

它加密的軟體一定需要轉比特幣才能解密嗎?

答案:肯定不是的,否則就不會有今天的文章了。

比特幣勒索病毒已經由原來剛出來的一款軟體變化到今天的很多款軟體,每款軟體的加密規則都不一樣,但是原理是類似的。對符合條件的檔案,按照指定的格式加密,生成新的檔案,新檔名為元檔案後加上。xxxx(加密程式不同字尾也不同),如檔案1。txt,經加密程式加密之後將變成1。txt。xxx,同時刪除原來檔案。

如果加密的檔案是Oracle資料的資料檔案,那麼整個Oracle資料庫就不能開啟。

此時我們能向駭客低頭嗎?肯定不能。

如果你很不幸遇到這樣的case,別慌張,可以找我們,讓我們一起來幫你分析。

Oracle比特幣加密恢復

針對比特幣勒索病毒加密Oracle資料庫的不同的檔案,對資料庫的影響,我們做了如下的總結:

資料庫軟體被加密——無所謂,重新安裝一個Oracle軟體就好

Oracle控制檔案和redo被加密——此時控制檔案和redo都沒有那麼重要了

Oracle資料檔案被加密——這是我們需要分析的重點,也是恢復的重點

常見的比特幣勒索病毒有很多種,並且還在不斷的新增加,加密規則也在不斷的發生變化,我們對

加密規則

做如下的

檔案前1M加密(本文將模擬該情況)

檔案前2M加密

8k間隔加密

檔案首尾各加密1M

全加密等等

透過我們以前恢復的經驗,加密程式通常並不會對全檔案進行加密,我們完全可以透過工具或者一些特殊手段將大部分未加密的資料抽取出來,以實現最大程度的恢復。如果資料檔案全加密,那麼大部分也不會對bak備份檔案或者dmp檔案做全加密,我們仍然能從備份中儘可能的恢復出資料。

恢復基本思路:

確認檔案加密範圍,用於評估恢復比例和恢復難度。

故障模擬(破壞檔案前1M,模擬前1M加密):

1。確認檔案加密範圍,每一個數據檔案加密的演算法和範圍都是一樣的,所以只需要分析Oracle的System資料檔案即可。

可以看出從檔案頭開始到第127個塊全部被加密。

這裡補充一個LMT的資料檔案的基礎常識:

檔案開頭存放的是資料檔案頭和檔案點陣圖塊等元資料塊,不同的blocksize檔案點陣圖塊個數不同:

8k:前128個塊是元資料塊(其中2-127是檔案點陣圖塊)

16k:前64個塊是元資料塊(其中2-63是檔案點陣圖塊)

32k:前32個塊是元資料塊(其中2-31是檔案點陣圖塊)

共同點就是不管blocksize為多少,資料檔案的前1M都是資料檔案的元資料塊,包括OS塊、資料檔案頭、檔案點陣圖塊。

恢復比例和難度評估:

從指令碼error。log輸出結果來看,只是檔案前1M被加密,所以並不會丟失任何資料。甚至可以手工構造檔案頭強制open資料庫然後exp匯出。本文演示使用odu工具來抽取。

恢復過程:

前1M加密的恢復非常簡單,如果加密的更多,則需要透過構造odu字典資訊進行抽取,極端情況下需要提供表結構來手工構造(所以有一套和生產庫表結構一模一樣的開發庫或者測試庫還是有好處的),過程也非常麻煩,但恢復思路還是不變的。

關於作者

李翔宇,雲和恩墨西區交付技術顧問,長期服務移動運營商行業客戶,熟悉Oracle效能最佳化,故障診斷,特殊恢復。

END