Цю сторінку перекладено машинним перекладом. Читайте англійський оригінал. English

Бібліотека IBSurgeon

Як захистити бази даних Firebird від програм-вимагачів?

06-грудня-2016, Олексій Ковязін

Атаки програм-вимагачів стали серйозною проблемою для багатьох компаній: протягом останнього тижня ми мали 3 інциденти від різних клієнтів, чиї бази даних Firebird були зашифровані вірусами-вимагачами. На щастя, ми змогли допомогти всім їм, але масштаб проблеми точно зростає.

У цій статті ми розглянемо, як ці проблеми були вирішені.

Загалом, програми-вимагачі не призначені для шифрування саме баз даних Firebird; вони просто шифрують усі файли на комп’ютері, а потім вимагають викуп за надання пароля для їх розшифрування, і навіть якщо ви заплатите, ви можете не отримати жодного пароля для розшифрування або взагалі жодної відповіді (також необхідно перевіряти сайти антивірусних компаній: вони часто публікують PIN-коди або навіть інструменти для розшифрування для таких програм-вимагачів. Наприклад, один із них: noransom.kaspersky.com/)

Звичайно, необхідно мати надійний (і придатний для серверів) антивірус, але чи можемо ми зробити щось конкретне для захисту бази даних Firebird?

Існують різні типи програм-вимагачів, розглянемо їхній вплив на бази даних Firebird.

Дві компанії постраждали від програм-вимагачів, які частково зашифрували їхні бази даних Firebird.

Як відомо, файл бази даних Firebird - це набір сторінок однакового розміру. Сторінки бази даних у Firebird містять різні типи інформації: метадані, дані користувача, індекси, генератори тощо.

Зазвичай такі програми-вимагачі шифрують не весь файл бази даних, а лише невелику його частину - сторінку заголовка та деякий відсоток сторінок бази даних усередині.

Оскільки всі сторінки мають тісні зв’язки, навіть кілька зашифрованих сторінок роблять всю базу даних нечитабельною для рушія Firebird. Наприклад, у базі даних розміром 10 ГБ було зашифровано менше 1% даних, а решта 99% були в порядку.

У цьому випадку таку зашифровану базу даних можна розглядати як сильно пошкоджений файл бази даних, і IBSurgeon FirstAID - це інструмент, який може виконати експорт даних із зашифрованого файлу бази даних Firebird. Той самий підхід використовується для відновлення баз даних із пошкоджених жорстких дисків.

Експорт даних із зашифрованої бази даних Firebird

IBSurgeon FirstAID може відновлювати бази даних за допомогою прямого виправлення або вилучення даних. Пряме виправлення є швидким, воно може швидко виправити пошкодження безпосередньо у файлі бази даних. Однак у випадку програми-вимагача це не допоможе, оскільки сторінка заголовка та основні метадані втрачені, тому вилучення є єдиним вибором.

FirstAID читає файл бази даних безпосередньо - він не використовує Firebird для доступу до файлу бази даних, він читає файл бази даних безпосередньо, байт за байтом. Оскільки він зосереджується лише на вилученні пошкоджених даних і жертвує продуктивністю, FirstAID може експортувати дані навіть із сильно пошкоджених баз даних Firebird. Звичайно, FirstAID пропускає зашифровані дані як пошкоджені та експортує лише хороші дані.

Якщо програма-вимагач не зашифрувала критичні метадані, можна відкрити зашифрований файл бази даних за допомогою FirstAID і переглянути записи: виберіть таблицю у списку зліва та відкрийте вкладку Preview, а потім переглядайте сторінки даних.

Записи, які ви бачите, можна експортувати у нову базу даних з такою самою структурою:

Приблизний обсяг втрат можна оцінити за допомогою відсотка Bad pages на вкладці Pages Summary для бази даних:

Відсоток поганих сторінок показує, скільки сторінок бази даних було зашифровано, а їхні дані втрачено.

Отже, у 2 випадках бази даних були врятовані за допомогою FirstAID Extractor, який експортував дані із зашифрованих баз даних.

Програма-вимагач із 100% шифруванням

На жаль, програми-вимагачі часто шифрують 100% файлів, і шифрують їх повністю, без винятку.

Зазвичай такі програми-вимагачі впроваджують шкідливий код у завантажувач операційної системи, потім перезавантажують комп’ютер і імітують виконання CHKDSK, але замість перевірки дисків вони шифрують усе.

Єдиний спосіб захиститися від такого вірусу - мати резервну копію важливої бази даних у сторонньому місці: у хмарі або в іншому офісі.

Існують 4 можливі підходи до резервного копіювання баз даних Firebird:

  1. Повна перевірена резервна копія за допомогою gbak
  2. Інкрементальна неперевірена резервна копія за допомогою nbackup
  3. Резервне копіювання на рівні віртуальної машини (для віртуального середовища)
  4. Warm Standby (дзеркало бази даних) на основі реплікації

Який метод резервного копіювання найкращий для захисту від програм-вимагачів? Розглянемо їхні переваги та недоліки на живому прикладі бази даних Firebird розміром 50 ГБ.

Особливість Повна перевірена резервна копія (gbak) Інкрементальна резервна копія (nbackup) Резервне копіювання на рівні віртуальної машини Warm-standby (реплікація)
Розмір для завантаження ~30 ГБ щодня 50 ГБ спочатку, потім змінені частини
Максимальна частота резервного копіювання Щодня Щогодини Залежить від налаштувань інструменту резервного копіювання віртуальної машини Щохвилини
Погіршення продуктивності бази даних Високе Помірне Низьке Дуже низьке
Надійність методу резервного копіювання Висока Низька Низька Висока
Час, необхідний для виконання резервного копіювання 2-3 години (залежить від швидкості введення-виведення) Початкове 15-20 хвилин для створення рівня 0, потім 3-4 хвилини Вимагає повного знімка диска (залежить від введення-виведення та розміру диска) Початкове 15-20 хвилин, завжди онлайн

Повна перевірена резервна копія за допомогою gbak

Інструмент резервного копіювання (gbak) читає всю базу даних і зберігає її у спеціальному форматі (fbk). Цей метод резервного копіювання називається перевіреним через те, що він читає кожен запис у базі даних і гарантує, що база даних у порядку. Це дуже надійний метод резервного копіювання.

Однак повна перевірена резервна копія незручна для хмарного резервного копіювання досить великих баз даних (як 50 ГБ у нашому прикладі), оскільки вимагає завантаження повної резервної копії щоразу, і потребує багато часу для виконання (це найповільніший тип резервного копіювання у Firebird). Під час виконання gbak продуктивність бази даних низька через інтенсивне випадкове читання та запис дисків.

Інкрементальна резервна копія за допомогою nbackup

Інкрементальне резервне копіювання виконується за допомогою nbackup - ще одного інструменту резервного копіювання від Firebird. Nbackup створює резервні копії як інкременти змін: спочатку він створює резервну копію рівня 0, яка є точною копією бази даних, а потім під час наступної ітерації сканує базу даних і зберігає лише змінені сторінки як рівень 1, рівень 2 тощо. Можна налаштувати повну резервну копію (рівень 0) раз на квартал, інкременти рівня 1 щомісяця, рівня 2 щотижня, рівня 3 щодня та рівня 4 щогодини.

Це досить швидко, резервні копії створюються майже зі швидкістю лінійного копіювання файлів.

Головний недолік nbackup - відсутність перевірки: якщо сторінка бази даних пошкоджена, nbackup скопіює її у файл резервної копії, який також буде пошкоджений (на відміну від gbak, який у цьому випадку видасть помилку). Також, оскільки створення кожного рівня змушує Firebird сканувати всю базу даних (у Firebird 2.5, v3 має покращення), неможливо запускати nbackup занадто часто на великій базі даних.

Як ви можете зрозуміти, nbackup вимагає досить складного розкладу, але з належними інструментами це легке завдання.

Правильний підхід - використовувати nbackup у поєднанні з gbak: gbak перевіряє базу даних щодня або щотижня, а nbackup забезпечує швидкий спосіб резервного копіювання бази даних досить часто.

Отже, nbackup виглядає як хороший вибір для зберігання бази даних у хмарі.

Резервні копії віртуальних машин

Щодо резервних копій віртуальних машин? Постачальники інструментів для віртуальних машин і резервного копіювання стверджують, що вони підтримують резервне копіювання баз даних, однак вони часто не вказують, які саме бази даних підтримуються. Резервне копіювання віртуальної машини вимагає встановлення постачальника Volume Shadow Service (VSS) для конкретної бази даних, щоб правильно виконувати онлайн-резервне копіювання. Для Firebird постачальник VSS доступний як частина розширеного дистрибутива HQbird.

Звичайно, у резервному копіюванні віртуальної машини з постачальником VSS немає жодної магії - за лаштунками він використовує nbackup для переведення бази даних у режим, придатний для копіювання. Без постачальника VSS результат резервного копіювання на рівні віртуальної машини буде схожий на копію бази даних у стані, подібному до жорсткого скидання: Firebird інтенсивно використовує кешування даних в оперативній пам’яті, і можливо, що резервна копія буде пошкоджена через незаписані зміни.

Гарячий резерв (Warm-standby)

Деякі компанії не хочуть втрачати жодних даних з бази даних. Останні рахунки-фактури перед збоєм можуть бути критичними, а останнє відвантаження може відправити десяток вантажівок у дорогу. У цьому випадку навіть щогодинних резервних копій недостатньо; єдиним можливим рішенням є гарячий резерв (дзеркало лише для читання) бази даних, який базується на асинхронній нативній реплікації.

Нативна означає, що реплікація не потребує тригерів або зміни метаданих (єдина вимога - наявність первинних або унікальних ключів для всіх таблиць, що реплікуються), і вона працює дуже швидко.

Гарячий резерв вимагає створення початкової копії бази даних, її ініціалізації як репліки та завантаження на резервний сервер. Після цього зміни даних надсилатимуться з головного сервера з мінімальною затримкою (від 1 хвилини). Надсилаються лише зміни, тому це не знижує продуктивність читання бази даних.

Цей варіант резервного копіювання дуже надійний - він гарантує наявність живої копії бази даних на іншому сервері.

Що IBSurgeon може зробити для вас?

Ми пропонуємо послугу підтримки за підпискою для Firebird, яка включає хмарне резервне копіювання та варіанти гарячого резерву. Це легко та доступно ($99/місяць), і включає такі опції:

  • Моніторинг бази даних Firebird та автоматизація резервного копіювання
  • Підтримка через віддалений робочий стіл та миттєві месенджери
  • Рішення Failover для Firebird (гарячий резерв) та хмарне резервне копіювання

Будь ласка, дізнайтеся більше деталей про послугу підтримки Firebird тут.

Інший варіант - використовувати HQbird, нашу розширену дистрибуцію Firebird, і впровадити хмарне резервне копіювання або гарячий резерв самостійно. Більше деталей про HQbird ви можете знайти тут.

І, звісно, як останній шанс - FirstAID Extractor.

Будь ласка, не соромтеся зв’язатися з нами з будь-якими питаннями!