抗击Petya:我们从被勒索软件加密的Firebird数据库文件中恢复数据的经验
如您所知,近期多种加密病毒攻击了许多公司–最著名的是Wannacry和Petya。据许多公司报告,通常需要支付赎金,或者在Petya的情况下,所有加密文件将丢失。
我们公司专注于Firebird数据库咨询,提供恢复和优化工具,因此,我们收到了几家遭受Petya及其他勒索软件攻击的公司的请求。
Petya是一种“懒惰”的加密病毒:通常,它只加密文件的第一个兆字节,可能是为了尽快完成其恶意工作。通常,Firebird数据库开头第一个兆字节的丢失会使其无法读取:第一个兆字节包含有关表和其他结构的重要系统信息。这与例如硬件故障导致的“正常”数据库损坏非常相似。
由于丢失第一个兆字节而失去多GB的数据库实在令人遗憾。幸运的是,我们的恢复工具(IBSurgeon FIrstAID)即使在Petya这类情况下也能从Firebird和InterBase数据库中检索数据:FirstAID在底层工作,绕过Firebird或InterBase引擎,它只需要最少的元数据即可将记录从加密数据库导出到新数据库。
此外,IBSurgeon FirstAID可以从其他数据库借用元数据结构:如果有一个旧的完好数据库副本可用,可以将其用作元数据源,并导出所有未加密的数据。
Firebird数据库包含大小相等的页面:在最新版本(3.0)中,默认页面大小为8k,在之前的2.5版本中为4kb。这意味着Petya要么加密前128页(在8Kb页面大小的情况下),要么加密256页(在4k页面的情况下)。
如下面的图片所示(这是IBSurgeon FirstAID内部版本的截图),对于8K页面的数据库(Firebird 3.0中的默认设置),关键系统页面(记录格式的数据)通常从第185页开始,不幸的是,对于4k页面大小,则从第171页开始。
这意味着Firebird 3数据库通常可以以接近100%的比率从Petya的加密中恢复,而Firebird 2.5数据库则需要借用外部元数据来保存数据。
这意味着在这种特定情况下,我们可以击败Petya:我们不会丢失数据,也不会支付赎金。
大多数客户报告说,他们能够使用IBSurgeon FirstAID从Petya中恢复Firebird数据库。
当然,这种方法并不能保护数据库免受加密病毒的攻击,但它可以在此类灾难后将损失降到最低。备份和数据库监控作为抵御病毒和其他灾难的被动手段也非常重要。
关于勒索软件和Firebird的更多详情:如何保护Firebird数据库免受勒索软件攻击?
如有任何问题,请随时联系我们!
