Hoe bescherm je Firebird-databases tegen ransomware?
06-december-2016, door Alexey Kovyazin
Ransomware-aanvallen zijn een serieus probleem geworden voor veel bedrijven: in de afgelopen week hadden we 3 incidenten van verschillende klanten waarvan de Firebird-databases waren versleuteld door ransomware-virussen. Gelukkig konden we ze allemaal helpen, maar de omvang van het probleem neemt zeker toe.
In dit artikel bekijken we hoe deze problemen zijn opgelost.
Over het algemeen is ransomware niet ontworpen om specifiek Firebird-databases te versleutelen; het versleutelt gewoon alle bestanden op de computer en vraagt vervolgens losgeld om het wachtwoord voor ontsleuteling te verstrekken, en zelfs als je betaalt, krijg je mogelijk helemaal geen ontsleutelingswachtwoord of reactie (het is ook noodzakelijk om antiviruswebsites te controleren: ze publiceren vaak pincodes of zelfs ontsleutelingstools voor die ransomware. Bijvoorbeeld een ervan: noransom.kaspersky.com/)
Natuurlijk is het noodzakelijk om betrouwbare (en voor servers geschikte) antivirus te hebben, maar kunnen we specifiek iets doen om Firebird-databases te beschermen?
Er zijn verschillende soorten ransomware, laten we hun impact op Firebird-databases bekijken.
De 2 bedrijven werden getroffen door ransomware die hun Firebird-databases gedeeltelijk had versleuteld.
Zoals je weet, is een Firebird-databasebestand een set pagina’s van dezelfde grootte. Databasepagina’s in een Firebird-database bevatten verschillende soorten informatie: metadata, gebruikersgegevens, indexen, generatoren, enz.

Meestal versleutelt dergelijke ransomware niet het hele databasebestand, maar een klein deel ervan - de headerpagina en een percentage van de databasepagina’s in de database.
Omdat alle pagina’s sterke relaties hebben, maken zelfs enkele recent versleutelde pagina’s de hele database onleesbaar voor de Firebird-engine. In een database van 10 GB was bijvoorbeeld minder dan 1% van de gegevens versleuteld, en de andere 99% was in orde.
In dit geval kan zo’n versleutelde database worden beschouwd als een zwaar beschadigd databasebestand, en IBSurgeon FirstAID is het hulpmiddel dat de export van gegevens uit het versleutelde Firebird-databasebestand kan uitvoeren. Dezelfde aanpak wordt gebruikt om databases van beschadigde harde schijven te herstellen.
Gegevens exporteren uit de versleutelde Firebird-database
IBSurgeon FirstAID kan databases herstellen met een directe reparatie of met gegevensextractie. De directe reparatie is snel; het kan beschadigingen direct in het databasebestand verhelpen. In het geval van ransomware zal dit echter niet helpen, omdat de headerpagina en de belangrijkste metadata verloren zijn, dus extractie is de enige keuze.
FirstAID leest het databasebestand direct - het gebruikt Firebird niet om toegang te krijgen tot het databasebestand; het leest het databasebestand direct, byte voor byte. Omdat het zich alleen richt op de extractie van beschadigde gegevens en prestaties opoffert, kan FirstAID gegevens exporteren, zelfs uit zwaar beschadigde Firebird-databases. Natuurlijk slaat FirstAID versleutelde gegevens over als beschadigd en exporteert alleen goede gegevens.
Als ransomware de kritieke metadata niet heeft versleuteld, is het mogelijk om het versleutelde databasebestand te openen met FirstAID en records te bekijken: selecteer de tabel in de lijst aan de linkerkant en open het tabblad Preview, en blader vervolgens door de gegevenspagina’s.
De records die je kunt zien, kunnen worden geëxporteerd naar een nieuwe database met dezelfde structuur:

De geschatte omvang van verliezen kan worden geschat met het percentage Bad pages op het tabblad Pages Summary voor de database:

Het percentage slechte pagina’s toont hoeveel databasepagina’s zijn versleuteld en waarvan de gegevens verloren zijn gegaan.
In 2 gevallen werden de databases dus gered met de FirstAID Extractor, die gegevens uit de versleutelde databases heeft geëxporteerd.
Ransomware met 100% versleuteling
Helaas versleutelt ransomware vaak 100% van de bestanden, en versleutelt ze volledig, zonder uitzondering.
Meestal injecteert dergelijke ransomware kwaadaardige code in de bootloader van het besturingssysteem, start vervolgens de computer opnieuw op en simuleert CHKDSK-uitvoering, maar in plaats van schijfcontrole versleutelt het alles.
De enige manier om je tegen zo’n virus te beschermen, is een back-up van de belangrijke database op een externe locatie: in de cloud of op een ander kantoor.
Er zijn 4 mogelijke back-upbenaderingen voor Firebird-databases:
- Volledige geverifieerde back-up met gbak
- Incrementele niet-geverifieerde back-up met nbackup
- Back-up op VM-niveau (voor virtuele omgevingen)
- Warm standby (databasemirror), gebaseerd op replicatie
Welke back-upmethode is het beste voor bescherming tegen ransomware? Laten we de voor- en nadelen bekijken aan de hand van een live voorbeeld van een Firebird-database van 50 GB.
| Functie | Volledige geverifieerde back-up (gbak) | Incrementele back-up (nbackup) | Back-up op VM-niveau | Warm-standby (replicatie) |
|---|---|---|---|---|
| Te uploaden grootte | ~30 GB elke dag | 50 GB aanvankelijk, daarna gewijzigde delen | ||
| Maximale back-upfrequentie | Elke dag | Elk uur | Afhankelijk van VM-back-upinstellingen | Elke minuut |
| Databaseprestatievermindering | Hoog | Matig | Laag | Zeer laag |
| Betrouwbaarheid van back-upmethode | Hoog | Laag | Laag | Hoog |
| Tijd nodig om back-up uit te voeren | 2-3 uur (afhankelijk van IO-snelheid) | Initieel 15-20 minuten om niveau 0 te maken, daarna 3-4 minuten | Vereist een volledige snapshot van de schijf (afhankelijk van IO en schijfgrootte) | Initieel 15-20 minuten, altijd online |
Volledige geverifieerde back-up met gbak
Het back-up hulpmiddel (gbak) leest de hele database en slaat deze op in een speciaal formaat (fbk). Deze back-upmethode wordt geverifieerd genoemd vanwege het feit dat het elk record in de database leest en ervoor zorgt dat de database in orde is. Het is een zeer betrouwbare back-upmethode.
Een volledige geverifieerde back-up is echter niet handig voor cloudback-ups van redelijk grote databases (zoals 50 GB in ons voorbeeld), omdat het elke keer het uploaden van de volledige back-up vereist en veel tijd kost om uit te voeren (het is het langzaamste back-uptype in Firebird). Tijdens de gbak-uitvoering is de databaseprestatie laag vanwege intensieve willekeurige schijflees- en schrijfbewerkingen.
Incrementele back-up met nbackup
Incrementele back-up wordt gedaan met nbackup - een ander back-up hulpmiddel van Firebird. Nbackup maakt back-ups als incrementen van wijzigingen: eerst maakt het een niveau 0-back-up, die een exacte kopie van de database is, en vervolgens scant het bij de volgende iteratie de database en slaat alleen gewijzigde pagina’s op als niveau 1, niveau 2, enz. Het is mogelijk om een volledige back-up (niveau 0) eens per kwartaal in te stellen, niveau 1-incrementen elke maand, niveau 2 elke week, niveau 3 elke dag en niveau 4 elk uur.
Het is vrij snel; het maakt back-ups bijna met de snelheid van lineaire bestandskopie.
Het grootste nadeel van nbackup is het ontbreken van verificatie - als een databasepagina beschadigd is, kopieert nbackup deze naar het back-upbestand, dat ook beschadigd zal zijn (in tegenstelling tot gbak, dat in dit geval een fout zal geven). Ook, omdat het maken van elk niveau Firebird de hele database laat scannen (in Firebird 2.5, v3 heeft verbeteringen), is het niet mogelijk om nbackup te vaak uit te voeren op een grote database.
Zoals je kunt begrijpen, vereist nbackup een vrij geavanceerd schema, maar met de juiste hulpmiddelen is het een gemakkelijke taak.
Een correcte manier is om nbackup in combinatie met gbak te gebruiken: gbak verifieert de database elke dag of elke week, en nbackup biedt de snelle manier om de database vrij vaak te back-uppen.
Dus nbackup lijkt een goede keuze om de database in de cloud op te slaan.
VM-back-ups
Hoe zit het met back-ups van virtuele machines? De leveranciers van VM- en back-up hulpmiddelen beweren dat ze back-ups van databases ondersteunen, maar ze specificeren vaak niet welke databases worden ondersteund. VM-back-up vereist een Volume Shadow Service (VSS)-provider voor de specifieke database om online back-up correct uit te voeren. Voor Firebird is de VSS-provider beschikbaar als onderdeel van de HQbird geavanceerde distributie.
Natuurlijk is er geen magie in een back-up van een VM met VSS-provider - achter de schermen gebruikt het nbackup om de database in de modus te zetten die geschikt is voor kopiëren. Zonder de VSS-provider zal het resultaat van een back-up op VM-niveau lijken op een kopie van een database in een staat vergelijkbaar met een harde reset: Firebird gebruikt intensief caching van gegevens in het RAM, en het is mogelijk dat de back-up beschadigd raakt door niet-weggeschreven wijzigingen.
Warm-standby
Sommige bedrijven willen geen gegevens uit de database verliezen. De recente facturen vóór de crash kunnen kritiek zijn, en de laatste verzending zou een dozijn vrachtwagens de weg op kunnen sturen. In dit geval zijn zelfs uurlijkse back-ups niet voldoende; de enige mogelijke oplossing is warm standby (een alleen-lezen mirror) van de database, die is gebaseerd op asynchrone native replicatie.
Native betekent dat replicatie geen triggers of wijziging van metadata vereist (de enige vereiste is primaire of unieke sleutels voor alle gerepliceerde tabellen), en het werkt zeer snel.
Warm-standby vereist het maken van een initiële kopie van de database, het initialiseren als replica en het uploaden naar de standby-server. Daarna worden gegevenswijzigingen met minimale vertraging (vanaf 1 minuut) van de master verzonden. Alleen wijzigingen worden verzonden, dus het onderdrukt de leesprestaties van de database niet.
Deze back-upoptie is zeer betrouwbaar - het garandeert het bestaan van een live kopie van de database op een andere server.
Wat kan IBSurgeon voor jou doen?
We bieden de op abonnementen gebaseerde ondersteuningsservice voor Firebird aan, en deze omvat cloudback-up en warm standby-opties. Het is eenvoudig en betaalbaar ($99/maand), en het omvat de volgende opties:
- Monitoring van Firebird-database en automatisering van back-ups
- Ondersteuning via externe desktop en instant messenger
- Failover Firebird-oplossing (warm standby) en cloudback-up
Lees hier meer details over de Firebird-ondersteuningsservice hier.
Een andere optie is om HQbird, onze geavanceerde distributie van Firebird, te gebruiken en zelf cloudback-up of warm standby te implementeren. Je vindt meer details over HQbird hier.
En natuurlijk, als laatste kans, FirstAID Extractor.
Neem gerust contact met ons op met eventuele vragen!