Jak chránit databáze Firebird před ransomwarem?
06-prosince-2016, Alexey Kovyazin
Ransomwarové útoky se staly vážným problémem pro mnoho společností: během posledního týdne jsme měli 3 incidenty od různých zákazníků, jejichž databáze Firebird byly zašifrovány ransomware viry. Naštěstí jsme jim všem dokázali pomoci, ale rozsah problému rozhodně roste.
V tomto článku se podíváme na to, jak byly tyto problémy vyřešeny.
Obecně platí, že ransomware není navržen tak, aby šifroval konkrétně databáze Firebird; jednoduše zašifruje všechny soubory v počítači a poté požaduje výkupné za poskytnutí hesla pro jejich dešifrování, a i když zaplatíte, nemusíte dostat žádné dešifrovací heslo ani odpověď (také je nutné zkontrolovat antivirové weby: často zveřejňují PIN kódy nebo dokonce dešifrovací nástroje pro daný ransomware. Například jeden z nich: noransom.kaspersky.com/)
Samozřejmě je nutné mít spolehlivý (a vhodný pro servery) antivirus, ale můžeme udělat něco konkrétního pro ochranu databáze Firebird?
Existují různé typy ransomwaru, podívejme se na jejich dopad na databáze Firebird.
Dvě společnosti byly zasaženy ransomwarem, který částečně zašifroval jejich databáze Firebird.
Jak víte, soubor databáze Firebird je sada stránek stejné velikosti. Databázové stránky v databázi Firebird obsahují různé typy informací: metadata, uživatelská data, indexy, generátory atd.

Obvykle takový ransomware nešifruje celý soubor databáze, ale pouze jeho malou část - hlavičkovou stránku a určité procento databázových stránek uvnitř databáze.
Protože všechny stránky mají silné vzájemné vazby, i několik málo zašifrovaných stránek způsobí, že celá databáze je pro engine Firebird nečitelná. Například v databázi o velikosti 10 GB bylo zašifrováno méně než 1 % dat a zbylých 99 % bylo v pořádku.
V tomto případě lze takovou zašifrovanou databázi považovat za silně poškozený soubor databáze a IBSurgeon FirstAID je nástroj, který dokáže provést export dat ze zašifrovaného souboru databáze Firebird. Stejný přístup se používá k obnově databází z poškozených pevných disků.
Export dat ze zašifrované databáze Firebird
IBSurgeon FirstAID dokáže obnovit databáze přímou opravou nebo extrakcí dat. Přímá oprava je rychlá a dokáže rychle opravit poškození přímo v souboru databáze. V případě ransomwaru však nepomůže, protože hlavičková stránka a hlavní metadata jsou ztracena, takže extrakce je jedinou volbou.
FirstAID čte soubor databáze přímo - nepoužívá Firebird pro přístup k souboru databáze, čte soubor databáze přímo, byte po bytu. Protože se zaměřuje pouze na extrakci poškozených dat a obětuje výkon, FirstAID dokáže exportovat data i z silně poškozených databází Firebird. Samozřejmě FirstAID přeskočí zašifrovaná data jako poškozená a exportuje pouze dobrá data.
Pokud ransomware nezašifroval kritická metadata, je možné otevřít zašifrovaný soubor databáze pomocí FirstAID a zobrazit náhled záznamů: vyberte tabulku v seznamu vlevo a otevřete záložku Náhled (Preview) a poté procházejte datové stránky.
Záznamy, které vidíte, lze exportovat do nové databáze se stejnou strukturou:

Přibližnou výši ztrát lze odhadnout pomocí procenta špatných stránek (Bad pages) na záložce Souhrn stránek (Pages Summary) pro databázi:

Procento špatných stránek ukazuje, kolik databázových stránek bylo zašifrováno a jejich data jsou ztracena.
Takže ve 2 případech byly databáze zachráněny pomocí FirstAID Extractor, který exportoval data ze zašifrovaných databází.
Ransomware se 100% šifrováním
Bohužel ransomware často šifruje 100 % souborů a šifruje je zcela, bez výjimky.
Obvykle takový ransomware vloží škodlivý kód do zavaděče operačního systému, poté restartuje počítač a simuluje spuštění CHKDSK, ale místo kontroly disků šifruje vše.
Jediným způsobem, jak se před takovým virem chránit, je mít zálohu důležité databáze na nějakém externím místě: v cloudu nebo v jiné kanceláři.
Existují 4 možné přístupy k zálohování databází Firebird:
- Plná ověřená záloha pomocí gbak
- Přírůstková neověřená záloha pomocí nbackup
- Záloha na úrovni VM (pro virtuální prostředí)
- Warm Standby (databázové zrcadlo) založené na replikaci
Která metoda zálohování je nejlepší pro ochranu před ransomwarem? Podívejme se na jejich klady a zápory na živém příkladu databáze Firebird o velikosti 50 GB.
| Funkce | Plná ověřená záloha (gbak) | Přírůstková záloha (nbackup) | Záloha na úrovni VM | Warm-standby (replikace) |
|---|---|---|---|---|
| Velikost k nahrání | ~30 GB každý den | 50 GB zpočátku, poté změněné části | ||
| Maximální frekvence zálohování | Každý den | Každou hodinu | Závisí na nastavení nástroje pro zálohování VM | Každou minutu |
| Snížení výkonu databáze | Vysoké | Mírné | Nízké | Velmi nízké |
| Spolehlivost metody zálohování | Vysoká | Nízká | Nízká | Vysoká |
| Čas potřebný k provedení zálohy | 2-3 hodiny (závisí na rychlosti IO) | Počáteční 15-20 minut pro vytvoření úrovně 0, poté 3-4 minuty | Vyžaduje vytvoření úplného snímku disku (závisí na IO a velikosti disku) | Počáteční 15-20 minut, vždy online |
Plná ověřená záloha pomocí gbak
Zálohovací nástroj (gbak) přečte celou databázi a uloží ji ve speciálním formátu (fbk). Tato metoda zálohování se nazývá ověřená kvůli tomu, že čte každý záznam v databázi a zajišťuje, že je databáze v pořádku. Je to velmi spolehlivá metoda zálohování.
Plná ověřená záloha však není vhodná pro cloudové zálohování dostatečně velkých databází (jako 50 GB v našem příkladu), protože vyžaduje nahrání plné zálohy pokaždé a vyžaduje hodně času na provedení (je to nejpomalejší typ zálohy ve Firebirdu). Během provádění gbak je výkon databáze nízký kvůli intenzivnímu náhodnému čtení a zápisu na disk.
Přírůstková záloha pomocí nbackup
Přírůstková záloha se provádí pomocí nbackup - dalšího zálohovacího nástroje z Firebirdu. Nbackup vytváří zálohy jako přírůstky změn: nejprve vytvoří zálohu úrovně 0, která je přesnou kopií databáze, a poté při další iteraci prohledá databázi a uloží pouze změněné stránky jako úroveň 1, úroveň 2 atd. Je možné nastavit plnou zálohu (úroveň 0) jednou za čtvrtletí, přírůstky úrovně 1 každý měsíc, úroveň 2 každý týden, úroveň 3 každý den a úroveň 4 každou hodinu.
Je poměrně rychlý, vytváří zálohy téměř rychlostí lineárního kopírování souborů.
Hlavní nevýhodou nbackup je absence ověření - pokud je databázová stránka poškozena, nbackup ji zkopíruje do záložního souboru, který bude také poškozen (na rozdíl od gbak, který v tomto případě vrátí chybu). Také proto, že vytvoření každé úrovně způsobí, že Firebird prohledá celou databázi (ve Firebirdu 2.5, v3 má vylepšení), není možné spouštět nbackup příliš často na velké databázi.
Jak můžete pochopit, nbackup vyžaduje poměrně sofistikovaný plán, ale se správnými nástroji je to snadný úkol.
Správný způsob je použít nbackup v kombinaci s gbak: gbak ověřuje databázi každý den nebo každý týden a nbackup poskytuje rychlý způsob zálohování databáze poměrně často.
Takže nbackup vypadá jako dobrá volba pro ukládání databáze do cloudu.
Zálohy VM
Co zálohy virtuálních strojů? Dodavatelé nástrojů pro VM a zálohování tvrdí, že podporují zálohování databází, ale často nespecifikují, které databáze jsou podporovány. Záloha VM vyžaduje poskytovatele Volume Shadow Service (VSS) pro konkrétní databázi, který musí být nainstalován pro správné online zálohování. Pro Firebird je poskytovatel VSS k dispozici jako součást pokročilé distribuce HQbird.
Samozřejmě, v zálohování VM s poskytovatelem VSS není žádná magie - na pozadí používá nbackup k přepnutí databáze do režimu vhodného pro kopírování. Bez poskytovatele VSS bude výsledek zálohy na úrovni VM jako kopie databáze ve stavu podobném tvrdému resetu: Firebird intenzivně používá cache dat v RAM a je možné, že záloha bude poškozena kvůli neuloženým změnám.
Warm-standby
Některé podniky nechtějí ztratit žádná data z databáze. Nedávné faktury před havárií by mohly být kritické a poslední zásilka by mohla poslat tucet nákladních vozů na silnici. V tomto případě ani hodinové zálohy nestačí; jediným možným řešením je warm standby (read-only zrcadlo) databáze, které je založeno na asynchronní nativní replikaci.
Nativní znamená, že replikace nevyžaduje triggery ani změnu metadat (jediným požadavkem je mít primární nebo unikátní klíče pro všechny replikované tabulky) a funguje velmi rychle.
Warm-standby vyžaduje vytvoření počáteční kopie databáze, inicializaci jako repliky a nahrání na záložní server. Poté budou změny dat odesílány z hlavního serveru s minimálním zpožděním (od 1 minuty). Odesílají se pouze změny, takže to nepotlačuje výkon čtení databáze.
Tato možnost zálohování je velmi spolehlivá - zaručuje existenci živé kopie databáze na jiném serveru.
Co pro vás může IBSurgeon udělat?
Nabízíme podpůrnou službu na bázi předplatného pro Firebird, která zahrnuje cloudové zálohování a možnosti warm standby. Je to snadné a cenově dostupné (99 $/měsíc), zahrnuje následující možnosti:
- Monitorování databáze Firebird a automatizace zálohování
- Podpora přes vzdálenou plochu a instant messenger
- Failover řešení Firebird (warm standby) a cloudové zálohování
Další podrobnosti o podpůrné službě Firebird si přečtěte zde.
Další možností je použít HQbird, naši pokročilou distribuci Firebirdu, a implementovat cloudové zálohování nebo warm standby sami. Více podrobností o HQbird najdete zde.
A samozřejmě jako poslední šance FirstAID Extractor.
Neváhejte nás kontaktovat s jakýmikoli dotazy!