Борьба с Petya: наш опыт восстановления данных из файлов базы данных Firebird, зашифрованных вирусами-вымогателями
Как вы знаете, недавно несколько компаний пострадали от атак криптовирусов - самые известные из них Wannacry и Petya. Обычно, как сообщают многие компании, необходимо заплатить выкуп, или, в случае с Petya, все зашифрованные файлы будут потеряны.
Наша компания специализируется на консалтинге по базам данных Firebird, мы предоставляем инструменты для восстановления и оптимизации, и, соответственно, к нам поступило несколько запросов от компаний, пострадавших от атаки Petya и некоторых других программ-вымогателей.
Petya - это своего рода «ленивый» криптовирус: обычно он шифрует только первый мегабайт файла, вероятно, чтобы выполнить свою грязную работу как можно быстрее. Обычно потеря первого мегабайта в начале базы данных Firebird делает её нечитаемой: первый мегабайт содержит важную системную информацию о таблицах и других структурах. Это очень похоже на «обычное» повреждение базы данных, вызванное, например, сбоем оборудования.
Жалко терять многогигабайтную базу данных из-за потери первого мегабайта. К счастью, наш инструмент восстановления (IBSurgeon FirstAID) может извлекать данные из баз данных Firebird и InterBase даже в таких случаях, как Petya: FirstAID работает на низком уровне, обходя движок Firebird или InterBase, и требует минимального количества метаданных для экспорта записей из зашифрованной базы данных в новую.
Кроме того, IBSurgeon FirstAID может заимствовать структуры метаданных из другой базы данных: если есть старая хорошая копия базы данных, её можно использовать как источник метаданных и экспортировать все незашифрованные данные.
Базы данных Firebird содержат страницы одинакового размера: в самой последней версии (3.0) размер страницы по умолчанию - 8 КБ, в предыдущей 2.5 - 4 КБ. Это означает, что Petya шифрует либо первые 128 страниц (в случае размера страницы 8 КБ), либо 256 страниц (в случае страницы 4 КБ).
Как вы можете видеть на картинке ниже (это скриншот внутренней версии IBSurgeon FirstAID), критические системные страницы (данные для форматов записей) обычно начинаются со страницы 185 для баз данных со страницами 8 КБ (это значение по умолчанию в Firebird 3.0) и, к сожалению, со страницы 171 для размера страницы 4 КБ.
Это означает, что базы данных Firebird 3 обычно можно восстановить после шифрования Petya с вероятностью, близкой к 100%, а для базы данных Firebird 2.5 потребуется заимствование внешних метаданных для сохранения данных.
Это означает, что в данном конкретном случае мы можем победить Petya: мы не теряем данные и не платим выкуп.
Большинство клиентов сообщили, что им удалось восстановить базы данных Firebird после Petya с помощью IBSurgeon FirstAID.
Конечно, этот подход не защищает базы данных от криптовирусов, но он позволяет минимизировать потери после такой катастрофы. Резервное копирование и мониторинг баз данных также очень важны как пассивные средства защиты от вирусов и других катастроф.
Подробнее о программах-вымогателях и Firebird: Как защитить базы данных Firebird от программ-вымогателей?
Пожалуйста, не стесняйтесь связаться с нами по любым вопросам!
