Skip to main content

Garmin (台灣航電通科技) 聽說被駭客勒索台幣幾千萬,中油聽說被勒索二千萬
在勒索病毒如此橫行狀況下,中了勒索病毒能恢復嗎?若資料庫與檔案被駭客或勒索病毒加密破壞,該如何處理?

       現代企業高度仰賴IT交換/處理儲存資訊,企業中了勒索病毒會造成停擺與損失。
那面對被勒索病毒攻擊後的資料庫或檔案,我們應該如何解決?

沒有Cluster Storage或備份狀況下,則必須走資料恢復或破密手段,以下四步驟分享遇到攻擊該如何處理。

重要原則4步驟

1. 遇到加密病毒或駭客攻擊,最好方法是睡眠或快照

因為要保持記憶體狀況,還有機會取出殘存的密鑰,另外請將機器斷網。

2. 聯繫駭客要格外謹慎

若遇到狀況時第一時間就跟駭客聯繫,反而沒有話語權,且對方會變本加厲
建議先找專業廠商溝通,研究各種不用支付贖金的恢復手段,後續也可作為跟駭客談判價格的籌碼。

3. 資料如果很重要,就算被加密了也要盡量做備份或快照

備份請對LUN做全扇區備份
這樣才能為最差的狀況留後路。

4.聯使用反勒索病毒網站大全的工具嘗試解密

做此動作作此動作前請務必先作好第三點:備份或快照

OSSLab很樂於跟MIS,DBA, 架構師,原廠或外包SI溝通,瞭解全盤技術架構或租賃Server或儲存設備,降低資料再被破壞可能性。
可直接加我們的官方Line:@osslab,與我們線上溝通。

處理方案

瞭解架構後,才可分析以下提及的各種方法,是否可以救援被加密狀況

1.針對剛離線設備或刪除儲存作資料救援。

2.以碎片方式恢復分析被加密儲存(此方法以Magic number分析出檔案,但檔名無法保留)。

3.以vss快照恢復方式,詳請請參考BlackHat演講專題

4.以資料庫修復方式來處理(本文後敘技術細節)。

5.以記憶體鑑識為手段,包含黑科技等級DMA攻擊法


當然成功率不是100%,但要付贖金給駭客前總還是該先嘗試過,且這是很正面的技術處理方式。

最後才是付贖金給駭客,這我們還會再另開文章討論。


真實案例分享

以下為勒索病毒對數據庫加密後的真實維修案例與方法
客戶的DBWallet勒索病毒加密,檔名小改了一下、並且添加解密ID與聯絡訊息


看起來好像DB (MDF檔案)數據 沒有完全加密到

那該怎下手?先瞭解一下 SQL 資料庫結構 , MS 有專文介紹  MDF 基本單位為Page .
Page 大小固定8KB.  Header 96 bytes  
網站寫的有點含糊
Page 包含 : Data ,Text/Image,Global Allocation Map, Shared Global Allocation Map,Page Free Space,Index Allocation Map
Bulk Changed Map,Differential Changed Map

這案例慶幸的是看起來 DATA 沒有全部 加密,但是Header等..都被加密了
還有資料嗎? 去Github上亂翻 Opensources,找到這個專案 OracMDf  
程式碼內有 MDF  Pages結構 
下圖僅為MDF  Header

 

最重要的為  16-21 NextPage ID   跟32-35 PageID

再利用了 SQL Trace Flag指令:dbcc 

pdbcc traceon(3604)
go
dbcc page(dbid,fileid,pagepid,3)

順序正確.Page Header參數正常
驗證MDF Page Header解密應該無誤

使用自行編寫的Script 來重組MDF  Page Header

成功恢復 客戶資料庫資料  約99%

結論

看起來是有些勒索病毒的 encrypt 算法為了求效率
對於大型檔案,像SQL mdf 他是對mdf page結構 header 加密,文本沒全加密。
所以說有機會沒有動到SchemaData
不過部份勒索病毒對DB Data是會全加密的

恢復的資料庫有可能不夠完整,但是還是可以如下面應用:
1.
有增量備份再疊加上去,資料庫完整性就很高
2.
假設連AP應用程式碼都沒有了,至少有恢復的Table跟資料庫結構可以參考
3.
核對後 節省人工再輸入時間

Thx Chang

Author Thx Chang

More posts by Thx Chang