Боротьба з 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 від програм-вимагачів?
Будь ласка, не соромтеся зв’язатися з нами з будь-якими питаннями!
