Jak chronić bazy danych Firebird przed ransomware?
06 grudnia 2016, Alexey Kovyazin
Ataki ransomware stały się poważnym problemem dla wielu firm: w ciągu ostatniego tygodnia mieliśmy 3 incydenty od różnych klientów, których bazy danych Firebird zostały zaszyfrowane przez wirusy ransomware. Na szczęście udało nam się pomóc wszystkim, ale skala problemu zdecydowanie rośnie.
W tym artykule przyjrzymy się, jak te problemy zostały rozwiązane.
Ogólnie rzecz biorąc, ransomware nie jest zaprojektowany do szyfrowania konkretnie baz danych Firebird; szyfruje po prostu wszystkie pliki na komputerze, a następnie żąda okupu w zamian za hasło do odszyfrowania. Nawet jeśli zapłacisz, możesz nie otrzymać żadnego hasła ani odpowiedzi (warto też sprawdzić strony antywirusowe: często publikują one kody PIN, a nawet narzędzia do odszyfrowania dla danego ransomware. Na przykład jedno z nich: noransom.kaspersky.com/)
Oczywiście konieczne jest posiadanie niezawodnego (i odpowiedniego dla serwerów) oprogramowania antywirusowego, ale czy możemy zrobić coś konkretnego, aby chronić bazę danych Firebird?
Istnieją różne typy ransomware, przyjrzyjmy się ich wpływowi na bazy danych Firebird.
Dwie firmy zostały zaatakowane przez ransomware, które częściowo zaszyfrowało ich bazy danych Firebird.
Jak wiesz, plik bazy danych Firebird to zestaw stron o tym samym rozmiarze. Strony bazy danych w Firebird zawierają różne typy informacji: metadane, dane użytkownika, indeksy, generatory itp.

Zazwyczaj takie ransomware szyfruje nie cały plik bazy danych, ale jego niewielką część - stronę nagłówkową i pewien procent stron bazy danych wewnątrz niej.
Ponieważ wszystkie strony są ze sobą ściśle powiązane, nawet kilka zaszyfrowanych stron sprawia, że cała baza danych staje się nieczytelna dla silnika Firebird. Na przykład w bazie danych o rozmiarze 10 GB zaszyfrowano mniej niż 1% danych, a pozostałe 99% było w porządku.
W takim przypadku zaszyfrowaną bazę danych można uznać za mocno uszkodzony plik bazy danych, a IBSurgeon FirstAID to narzędzie, które może wykonać eksport danych z zaszyfrowanego pliku bazy danych Firebird. To samo podejście jest używane do odzyskiwania baz danych z uszkodzonych dysków twardych.
Eksportowanie danych z zaszyfrowanej bazy danych Firebird
IBSurgeon FirstAID może odzyskać bazy danych poprzez bezpośrednią naprawę lub ekstrakcję danych. Bezpośrednia naprawa jest szybka - może szybko naprawić uszkodzenia bezpośrednio w pliku bazy danych. Jednak w przypadku ransomware nie pomoże, ponieważ strona nagłówkowa i główne metadane są utracone, więc ekstrakcja jest jedynym wyborem.
FirstAID czyta plik bazy danych bezpośrednio - nie używa Firebird do uzyskania dostępu do pliku bazy danych, czyta go bezpośrednio, bajt po bajcie. Ponieważ skupia się wyłącznie na ekstrakcji uszkodzonych danych i poświęca wydajność, FirstAID może eksportować dane nawet z mocno uszkodzonych baz danych Firebird. Oczywiście FirstAID pomija zaszyfrowane dane jako uszkodzone i eksportuje tylko dobre dane.
Jeśli ransomware nie zaszyfrował krytycznych metadanych, możliwe jest otwarcie zaszyfrowanego pliku bazy danych za pomocą FirstAID i podgląd rekordów: wybierz tabelę na liście po lewej stronie i otwórz zakładkę Podgląd, a następnie przeglądaj strony danych.
Rekordy, które widzisz, można wyeksportować do nowej bazy danych o tej samej strukturze:

Przybliżoną wielkość strat można oszacować na podstawie procentu uszkodzonych stron na zakładce Podsumowanie stron dla bazy danych:

Procent uszkodzonych stron pokazuje, ile stron bazy danych zostało zaszyfrowanych, a ich dane są utracone.
Tak więc w 2 przypadkach bazy danych zostały uratowane za pomocą FirstAID Extractor, który wyeksportował dane z zaszyfrowanych baz danych.
Ransomware ze 100% szyfrowaniem
Niestety, ransomware często szyfruje 100% plików i szyfruje je całkowicie, bez wyjątku.
Zazwyczaj takie ransomware wstrzykuje złośliwy kod do bootloadera systemu operacyjnego, następnie restartuje komputer i symuluje wykonanie CHKDSK, ale zamiast sprawdzania dysków szyfruje wszystko.
Jedynym sposobem ochrony przed takim wirusem jest posiadanie kopii zapasowej ważnej bazy danych w lokalizacji zewnętrznej: w chmurze lub w innym biurze.
Istnieją 4 możliwe podejścia do tworzenia kopii zapasowych baz danych Firebird:
- Pełna zweryfikowana kopia zapasowa za pomocą gbak
- Przyrostowa niezweryfikowana kopia zapasowa za pomocą nbackup
- Kopia zapasowa na poziomie VM (dla środowisk wirtualnych)
- Warm Standby (lustro bazy danych), oparte na replikacji
Która metoda tworzenia kopii zapasowych jest najlepsza do ochrony przed ransomware? Rozważmy ich zalety i wady na żywym przykładzie bazy danych Firebird o rozmiarze 50 GB.
| Cecha | Pełna zweryfikowana kopia (gbak) | Przyrostowa kopia (nbackup) | Kopia na poziomie VM | Warm-standby (replikacja) |
|---|---|---|---|---|
| Rozmiar do przesłania | ~30 GB codziennie | 50 GB początkowo, potem zmienione fragmenty | ||
| Maksymalna częstotliwość kopii | Codziennie | Co godzinę | Zależy od ustawień narzędzia do kopii VM | Co minutę |
| Degradacja wydajności bazy danych | Wysoka | Umiarkowana | Niska | Bardzo niska |
| Niezawodność metody kopii | Wysoka | Niska | Niska | Wysoka |
| Czas potrzebny na wykonanie kopii | 2-3 godziny (zależy od szybkości IO) | Początkowo 15-20 minut na poziom 0, potem 3-4 minuty | Wymaga pełnego snapshotu dysku (zależy od IO i rozmiaru dysku) | Początkowo 15-20 minut, zawsze online |
Pełna zweryfikowana kopia zapasowa za pomocą gbak
Narzędzie do tworzenia kopii zapasowych (gbak) czyta całą bazę danych i zapisuje ją w specjalnym formacie (fbk). Ta metoda kopii zapasowej nazywana jest zweryfikowaną, ponieważ czyta każdy rekord w bazie danych i zapewnia, że baza danych jest w porządku. Jest to bardzo niezawodna metoda tworzenia kopii zapasowych.
Jednak pełna zweryfikowana kopia zapasowa nie jest wygodna do tworzenia kopii w chmurze dla wystarczająco dużych baz danych (jak 50 GB w naszym przykładzie), ponieważ wymaga przesyłania pełnej kopii za każdym razem i zajmuje dużo czasu (jest to najwolniejszy typ kopii w Firebird). Podczas wykonywania gbak wydajność bazy danych jest niska z powodu intensywnego losowego odczytu i zapisu na dysku.
Przyrostowa kopia zapasowa za pomocą nbackup
Przyrostowa kopia zapasowa jest wykonywana za pomocą nbackup - kolejnego narzędzia do tworzenia kopii zapasowych z Firebird. Nbackup tworzy kopie zapasowe jako przyrosty zmian: najpierw tworzy kopię poziomu 0, która jest dokładną kopią bazy danych, a następnie w kolejnej iteracji skanuje bazę danych i zapisuje tylko zmienione strony jako Poziom 1, Poziom 2 itd. Możliwe jest ustawienie pełnej kopii (Poziom 0) raz na kwartał, przyrostów Poziomu 1 co miesiąc, Poziomu 2 co tydzień, Poziomu 3 codziennie i Poziomu 4 co godzinę.
Jest to dość szybkie - tworzy kopie zapasowe prawie z prędkością liniowego kopiowania plików.
Główną wadą nbackup jest brak weryfikacji - jeśli strona bazy danych jest uszkodzona, nbackup skopiuje ją do pliku kopii zapasowej, który również będzie uszkodzony (w przeciwieństwie do gbak, który w takim przypadku zgłosi błąd). Ponadto, ponieważ tworzenie każdego poziomu wymaga przeskanowania całej bazy danych przez Firebird (w Firebird 2.5, v3 ma ulepszenia), nie jest możliwe uruchamianie nbackup zbyt często na dużej bazie danych.
Jak możesz zrozumieć, nbackup wymaga dość skomplikowanego harmonogramu, ale przy odpowiednich narzędziach jest to łatwe zadanie.
Właściwym sposobem jest użycie nbackup w połączeniu z gbak: gbak weryfikuje bazę danych codziennie lub co tydzień, a nbackup zapewnia szybki sposób tworzenia kopii zapasowych dość często.
Tak więc nbackup wygląda na dobry wybór do przechowywania bazy danych w chmurze.
Kopie zapasowe VM
A co z kopiami zapasowymi maszyn wirtualnych? Producenci narzędzi do VM i kopii zapasowych twierdzą, że obsługują tworzenie kopii zapasowych baz danych, jednak często nie określają, które bazy danych są obsługiwane. Kopia VM wymaga dostawcy Volume Shadow Service (VSS) dla konkretnej bazy danych, aby poprawnie wykonać kopię online. Dla Firebird dostawca VSS jest dostępny jako część zaawansowanej dystrybucji HQbird.
Oczywiście nie ma magii w tworzeniu kopii VM z dostawcą VSS - w tle używa on nbackup do przełączenia bazy danych w tryb odpowiedni do kopiowania. Bez dostawcy VSS wynik kopii na poziomie VM będzie podobny do kopii bazy danych w stanie zbliżonym do twardego resetu: Firebird intensywnie używa buforowania danych w RAM, więc możliwe jest, że kopia będzie uszkodzona z powodu niezapisanych zmian.
Warm-standby
Niektóre firmy nie chcą stracić żadnych danych z bazy. Ostatnie faktury przed awarią mogą być krytyczne, a ostatnia wysyłka mogła wysłać tuzin ciężarówek w drogę. W takim przypadku nawet godzinne kopie zapasowe nie wystarczą; jedynym możliwym rozwiązaniem jest warm standby (lustro tylko do odczytu) bazy danych, oparte na asynchronicznej natywnej replikacji.
Natywna oznacza, że replikacja nie wymaga wyzwalaczy ani zmian metadanych (jedynym wymogiem jest posiadanie kluczy podstawowych lub unikalnych dla wszystkich replikowanych tabel) i działa bardzo szybko.
Warm-standby wymaga utworzenia początkowej kopii bazy danych, zainicjowania jej jako repliki i przesłania jej na serwer standby. Następnie zmiany danych będą wysyłane z mastera z minimalnym opóźnieniem (od 1 minuty). Wysyłane są tylko zmiany, więc nie obniża to wydajności odczytu bazy danych.
Ta opcja kopii zapasowej jest bardzo niezawodna - gwarantuje istnienie żywej kopii bazy danych na innym serwerze.
Co może zrobić dla Ciebie IBSurgeon?
Oferujemy usługę wsparcia opartą na subskrypcji dla Firebird, która obejmuje opcje kopii w chmurze i warm standby. Jest to łatwe i przystępne cenowo (99 USD/miesiąc) i obejmuje następujące opcje:
- Monitorowanie bazy danych Firebird i automatyzacja kopii zapasowych
- Zdalny pulpit i wsparcie przez komunikatory
- Rozwiązanie Failover Firebird (warm standby) i kopia w chmurze
Więcej szczegółów na temat usługi wsparcia Firebird znajdziesz tutaj.
Inną opcją jest użycie HQbird, naszej zaawansowanej dystrybucji Firebird, i samodzielne wdrożenie kopii w chmurze lub warm standby. Więcej szczegółów na temat HQbird znajdziesz tutaj.
I oczywiście, jako ostatnia szansa, FirstAID Extractor.
Zachęcamy do skontaktowania się z nami w przypadku jakichkolwiek pytań!