De release van het back-upsysteem Restic 0.18 is gepresenteerd, waarmee het mogelijk is om back-ups versleuteld op te slaan in een versiebeheerrepository met ondersteuning voor deduplicatie. Het systeem is oorspronkelijk ontworpen voor gebruik in omgevingen die niet vertrouwd zijn, en het feit dat een back-up in vreemde handen kan vallen, mag het systeem niet compromitteren. Bij het maken van een back-up kunnen flexibele regels worden gedefinieerd om bestanden en mappen in- en uit te sluiten (de regelindeling lijkt op die van rsync of gitignore). Werken in Linux, macOS, Windows en BSD-systemen wordt ondersteund. De code van het project is geschreven in de programmeertaal Go en is onder de BSD-licentie beschikbaar.
Back-ups kunnen worden opgeslagen op de lokale FS, op externe de server met toegang via SFTP/SSH of HTTP REST, in de cloud bij Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage en Google Cloud Storage, evenals in elke opslagplek waarvoor backends beschikbaar zijn in rclone. Voor opslag kan ook een project worden gebruikt dat door Restic wordt ontwikkeld, dat hogere prestaties biedt in vergelijking met andere backends en werkt in een alleen-aanvullende modus, waardoor het verwijderen of wijzigen van back-ups in het geval van compromittering van de oorspronkelijke server en toegang tot de versleutelingssleutels niet mogelijk is.
Het systeem ondersteunt snapshots, die de status van de directorystructuur op verschillende tijdstippen weergeven (snapshots worden automatisch voor elke back-up gemaakt). Het is mogelijk om snapshots tussen verschillende repositories te kopiƫren. Om bandbreedte te besparen, worden tijdens het maken van back-ups alleen gewijzigde gegevens gekopieerd. Een snapshot met een back-up kan worden gemount als een virtuele schijf (mounting wordt uitgevoerd met behulp van FUSE). Ook zijn er commando's beschikbaar om wijzigingen te analyseren en selectief bestanden te extraheren.
De back-upopslag in Restic manipuleert niet met hele bestanden, maar met blokken van variabele grootte die worden gekozen met behulp van de Rabin-handtekening. Informatie wordt opgeslagen op basis van inhoud in plaats van bestandsnamen (de associaties met gegevensnamen en objecten worden op het metadata-niveau van de blokken gedefinieerd). Voor ruimtebesparing in de opslag en het uitsluiten van onnodige gegevenskopieƫn wordt deduplicatie toegepast.
Op externe servers worden gegevens opgeslagen in versleutelde vorm; voor controlewaarden en deduplicatie worden SHA-256-hashes gebruikt, terwijl de versleutelingsalgoritme AES-256-CTR en de integriteitsgarantie gebeurt via authenticatiecodes op basis van Poly1305-AES. Er is een mogelijkheid om de back-up te verifiƫren op basis van controlewaarden en authenticatiecodes om te bevestigen dat de integriteit van bestanden niet is aangetast.
In de nieuwe versie is de mogelijkheid om een aanval (PDF) uit te voeren om de aanwezigheid van bepaalde bestanden in de versleutelde opslag van back-ups te bepalen, verholpen. Deze aanval stelt in staat om vast te stellen of een specifiek bestand in de versleutelde back-up aanwezig is, door toegang te krijgen tot de opslag van back-ups of door de mogelijkheid van netwerkverkeer-analyse van back-ups. Bijvoorbeeld, een serverbeheerder waar back-ups worden opgeslagen, een internetprovider of inlichtingendiensten kan deze aanval uitvoeren door toegang te krijgen tot. server of het verkeer. Het doel van de aanval kan zijn het onderzoeken van datalekken, waarbij inlichtingendiensten de aanwezigheid van relevante documenten in de opslag van back-ups kunnen inschatten.
Om de kwetsbaarheid te misbruiken, moet de aanvaller ervoor zorgen dat zijn gegevens worden toegevoegd aan de back-up van het slachtoffer, of weten dat een hem bekend bestand in de back-up zit. Als er een bestand in de back-up staat waarvan de aanvaller op de hoogte is (bijvoorbeeld een bepaald type systeem- of multimediacontent), kan de aanvaller, door toegang te krijgen tot de versleutelde opslag, bepalen of er andere voor hem interessante bestanden binnenin zijn.
De methode is gebaseerd op het feit dat, op basis van de compressiekenmerken van de inhoud, de parameters van de blokken die worden gebruikt bij het fragmenteren van de inhoud kunnen worden bepaald. Om dergelijke parameters te bepalen, is het voldoende om 3 versleutelde blokken te identificeren die gegevens bevatten die de aanvaller bekend zijn.
De kwetsbaarheid is niet specifiek voor Restic en beĆÆnvloedt andere back-upsystemen die gegevens splitsen in blokken door gebruik te maken van de techniek CDC (Content-Defined Chunking), zoals BorgBackup, Tarsnap, Bupstash en Duplicacy. In Tarsnap is het probleem verholpen in update 1.0.41, in BorgBackup wordt er aan een oplossing gewerkt die van plan is op te nemen in de Borg 2-tak. Bupstash had de laatste wijziging 2 jaar geleden en Duplicacy 4 maanden geleden.
Daarnaast wordt opgemerkt dat in systemen die deduplicatie gebruiken, wanneer er de mogelijkheid is om eigen bestanden aan de back-up toe te voegen, dit eenvoudiger kan worden gedaan door het bestaan van de gewenste bestanden indirect vast te stellen. Na het toevoegen van het gecontroleerde bestand kan de verandering in de opslaggrootte worden beoordeeld ā als het bestand al in de opslag aanwezig is, zal het opnieuw toevoegen hiervan door deduplicatie niet leiden tot een significante toename in grootte.
Naast het verhelpen van de kwetsbaarheid in Restic 0.18 zijn er ook verschillende vernieuwingen voorgesteld:
- Er is experimentele ondersteuning toegevoegd voor 'koude' back-upopslag (gegevens worden beschikbaar voor extractie binnen enkele minuten of uren na aanvraag), die het S3-protocol ondersteunt, zoals Amazon S3 Glacier.
- De commando's check en tag hebben nu ondersteuning voor uitvoer in JSON-formaat.
- Bij het bouwen van afbeeldingen voor de GitHub Container Registry zijn de richtlijnen van SLSA (Supply-chain Levels for Software Artifacts) in acht genomen.
- In het commando ls is er een optie toegevoegd om de sorteermethode van de uitvoer te kiezen. In het commando find is standaard sortering op datum (van nieuw naar oud) geactiveerd.
- Er is de mogelijkheid toegevoegd om bestanden met een grootte onder een bepaalde waarde uit de herverpakkingsoperatie uit te sluiten.
- Er is een instelling toegevoegd voor het in- of uitschakelen van het herstel van uitgebreide bestandseigenschappen.
- Ondersteuning voor het besturingssysteem DragonFlyBSD is toegevoegd.
- Ondersteuning voor uitgebreide bestandseigenschappen op systemen met NetBSD 10+ is toegevoegd.
- In de tak restic 0.19.0 is gepland om de ondersteuning voor verouderde functies die zijn geactiveerd via de instellingen deprecate-legacy-index, deprecate-s3-legacy-layout, explicit-s3-anonymous-auth en safe-forget-keep-tags te verwijderen.
- De ondersteuning voor oude versies van Windows en macOS is gestopt; nu is minimaal Windows 10, Windows Server 2016 of macOS 11 vereist. De ondersteuning voor TLS-versies voor 1.2 is stopgezet.
Bron: opennet.ru
