Главная Безопасность Восстановление SQL Server

Восстановление SQL Server после вирусов - это просто!

Эпидемия вирусов, которые шифруют файлы пользователей и потом вымогают деньги у пользователей, стала уже всемирной. Одним из первых был вирус WannaCry в 2017 году. Далее появлялись его клоны и модификации. Что делать если ваши файлы пострадали от этой чумы? Реально расшифровать файлы, даже после уплаты выкупа, вряд ли получится. Остается идти обходными путями:

  • восстанавливать данные из резервных копий
  • извлекать файлы из почтовой переписки искать контакты и информацию в разных мессенджерах

Есть ли варианты решения проблемы у компаний разработчиков программного обеспечения? Например, что может предложить Microsoft? Ответ: НИЧЕГО.

Самое верное в этой ситуации это восстанавливать базу данных SQL Server из последней резервной копии. Но что делать если восстановить сервер из резервной копии не удалось? Что делать если резервная копия также зашифрована вирусом вымогателем?

Баг у вируса вымогателя

Вирусы распространяются благодаря разным багам в программах, операционных системах и помощью социального инжиниринга. Но и сами вирусы — это программы и у них есть баги и скрытые уязвимости. Какая уязвимость или уязвимости есть у вирусов вымогателей? Вирусу надо быстро зашифровать максимальное количество файлов. С небольшими файлами, такими как файлы данных Excel, Word, PowerPoint, Project, AutoCAD, CorelDRAW и прочие, процедура шифрования выполняется ужасно быстро. Сразу после заражения сотни и тысячи файлов шифруются. А что будет если вирус встретил большой файл, например базы данных FoxPro или Microsoft Access? В таких случаях вирус обычно шифрует начало файла и переходит к следующему файлу, который находит в папке или рядом на диске.

Этот нюанс дает пользователям небольшую надежду. Microsoft SQL Server хранит данные в файлах с расширениями MDF и NDF. Размеры этих файлов обычно впечатляют: гигабайты и терабайты. Специально для их хранения используются большие дисковые хранилища, обычно на основе RAID контроллеров. В начале каждого такого файла находится небольшой заголовок, потом следуют большие объемы служебной информации для быстрой работы с данными, служебная информация для описания пользовательских данных и прочее.

В большинстве случаев вирус шифрует основной объем служебных данных в файлах MDF и NDF. А собственно страницы с данными в файле остаются не зашифрованными.

Непрямое восстановление данных SQL Server

Если данные есть, то как их прочитать? Как собрать воедино все страницы и блоки данных, если служебная информация более недоступна из-за вируса? Требуются хитрые инструменты для решения не тривиальной задачи.

Поэтому следующий шаг, это поиск инструмента (утилиты, сервиса или иного средства), который умеет анализировать данные в MDF и NDF файлах. Это умеют делать утилиты восстановления поврежденных баз данных Microsoft SQL Server. Они решают схожие задачи при таких же начальных условиях, когда часть файла базы данных отсутствует или искажена.

Самая доступная и простая утилита для этих целей это Recovery Toolbox for SQL Server (https://sql.recoverytoolbox.com/ru/). Recovery Toolbox for SQL Server разработана более 10 лет назад и восстанавливает данные с самых первых версий Microsoft SQL Server (6.5, 7.0, 2000) до самых последних (2017, 2019).

Как восстановить базу данных SQL Server после вируса вымогателя

Поскольку Recovery Toolbox for SQL Server разрабатывался только для одной цели (восстановления поврежденных баз данных Microsoft SQL Server), то и настроек в нем самый минимум. Утилита сделана в виде пошагового помощника и на каждом этапе пользователь делает простые действия:

  1. Выбрать зашифрованный MDF файл
  2. Выбрать способ и место сохранения восстановленных данных
  3. Выбрать данные для сохранения
  4. Запустить восстановление и сохранение данных

На начальном этапе утилита долго читает и анализирует зашифрованную базу данных SQL Server. Это наиболее важный этап в работе программы. Чем больше размер исходного файла и чем сложнее данные в нем, тем дольше работает программа на этом этапе. На файлах размером 1-5Тб при условии наличия мощного сервера программа может трудиться до 1-го дня.

Все что удалось восстановить, собрать по частям из страниц с данными зашифрованного MDF файла будет предоставлено пользователю в виде удобных таблиц и списков внутри Recovery Toolbox for SQL Server. Пользователь может полистать страницы с данными, таблицами, пользовательскими функциями и процедурами.

Если зашифрованный MDF файл получилось удачно проанализировать, то списки и таблицы на 2-й странице программы будут не пустыми. В противном случае просматривать будет нечего, и платить в этом случае не надо, так как ДЕМО версия программы Recovery Toolbox for SQL Server абсолютно бесплатная.

Если анализ зашифрованного файла был успешен, то следует выбрать как сохранить данные:

  • в виде SQL scripts во множестве отдельных файлов
  • экспортировать данные в новую базу Microsoft SQL Server

Внимание: при восстановлении базы данных SQL Server после вируса вымогателя есть вероятность потери части данных, соответственно целостность данных может быть нарушена. И как следствие Primary keys и Foreign keys скорее всего работать не будут. Это выявится на этапе выполнения SQL scripts с Primary keys и/или Foreign keys после того, как данные уже импортированы в базу. Скрипты с Primary keys и/или Foreign keys не будут выполнены или будут выполнены с ошибками.

Последовательность исполнения SQL scripts при экспорте данных в новую базу данных:

Данная последовательность скриптов представлена в файле Install.bat, который программа Recovery Toolbox for SQL Server сохраняет в папке со всеми остальными SQL скриптами. Просто запустите этот файл на выполнение с указанием нужных параметров (Server name, Database name, Username и Password) в командной строке. Возможно, Вам придется выполнить этот скрипт несколько раз, чтобы данные импортировались в базу данных наиболее полно.

Как восстановить базу данных Microsoft SQL Server после ransomware

Если ваша база данных SQL Server была зашифрована вирусом вымогателем, то можно попытаться восстановить данные без оплаты. Для этого необходимо:

  1. Восстановить данные из резервной копии
  2. Извлечь данные из .MDF/.NDF файлов с помощью Recovery Toolbox for SQL Server в виде SQL скриптов
  3. Импортировать данные из SQL скриптов в новую базу SQL Server