Een kwetsbaarheid in cryptsetup waarmee u encryptie in LUKS2-partities kunt uitschakelen

Er is een kwetsbaarheid (CVE-2021-4122) geïdentificeerd in het Cryptsetup-pakket, dat wordt gebruikt om schijfpartities in Linux te coderen, waardoor de encryptie kan worden uitgeschakeld op partities in het LUKS2-formaat (Linux Unified Key Setup) door de metagegevens te wijzigen. Om de kwetsbaarheid te kunnen misbruiken, moet de aanvaller fysieke toegang hebben tot de gecodeerde media, d.w.z. De methode is vooral zinvol voor het aanvallen van gecodeerde externe opslagapparaten, zoals flashdrives, waartoe de aanvaller toegang heeft, maar niet het wachtwoord kent om de gegevens te decoderen.

De aanval is alleen van toepassing op het LUKS2-formaat en houdt verband met de manipulatie van metagegevens die verantwoordelijk zijn voor het activeren van de extensie “online herversleuteling”, waarmee, als het nodig is om de toegangssleutel te wijzigen, het proces van herversleuteling van gegevens direct kan worden gestart. zonder te stoppen met werken met de partitie. Omdat het proces van decodering en codering met een nieuwe sleutel veel tijd kost, maakt “online hercodering” het mogelijk om het werk met de partitie niet te onderbreken en hercodering op de achtergrond uit te voeren, waarbij gegevens geleidelijk van de ene sleutel naar de andere worden gecodeerd . Het is ook mogelijk om een ​​lege doelsleutel te selecteren, waarmee u de sectie naar een gedecodeerde vorm kunt converteren.

Een aanvaller kan wijzigingen aanbrengen in de LUKS2-metagegevens die het afbreken van de decoderingsoperatie als gevolg van een fout simuleren en decodering van een deel van de partitie bewerkstelligen na activering en gebruik van de gewijzigde schijf door de eigenaar. In dit geval ontvangt de gebruiker die de gewijzigde schijf heeft aangesloten en met het juiste wachtwoord heeft ontgrendeld geen enkele waarschuwing over het proces van het herstellen van de onderbroken hercoderingsoperatie en kan hij alleen de voortgang van deze operatie te weten komen via de “luks Dump” commando. De hoeveelheid gegevens die een aanvaller kan ontsleutelen hangt af van de grootte van de LUKS2-header, maar bij de standaardgrootte (16 MiB) kan deze groter zijn dan 3 GB.

Het probleem wordt veroorzaakt door het feit dat, hoewel voor hercodering het berekenen en verifiëren van hashes van de nieuwe en oude sleutels vereist is, er geen hash nodig is om met decodering te beginnen als de nieuwe status impliceert dat er geen leesbare sleutel voor codering bestaat. Bovendien zijn de LUKS2-metagegevens, die het versleutelingsalgoritme specificeren, niet beschermd tegen wijziging als deze in handen van een aanvaller valt. Om de kwetsbaarheid te blokkeren, hebben de ontwikkelaars extra bescherming voor metadata aan LUKS2 toegevoegd, waarvoor nu een extra hash wordt gecontroleerd, berekend op basis van bekende sleutels en metadata-inhoud, d.w.z. een aanvaller kan niet langer heimelijk metadata wijzigen zonder het decoderingswachtwoord te kennen.

Een typisch aanvalsscenario vereist dat de aanvaller de schijf meerdere keren in handen kan krijgen. Ten eerste brengt een aanvaller die het toegangswachtwoord niet kent wijzigingen aan in het metadatagebied, waardoor de volgende keer dat de schijf wordt geactiveerd, een deel van de gegevens wordt gedecodeerd. De schijf wordt vervolgens teruggezet op zijn plaats en de aanvaller wacht totdat de gebruiker verbinding maakt door een wachtwoord in te voeren. Wanneer het apparaat door de gebruiker wordt geactiveerd, wordt een hercoderingsproces op de achtergrond gestart, waarbij een deel van de gecodeerde gegevens wordt vervangen door gedecodeerde gegevens. Bovendien, als de aanvaller erin slaagt het apparaat weer in handen te krijgen, zullen een deel van de gegevens op de schijf in gedecodeerde vorm zijn.

Het probleem werd geïdentificeerd door de beheerder van het cryptsetup-project en opgelost in de cryptsetup 2.4.3- en 2.3.7-updates. De status van updates die worden gegenereerd om het probleem in distributies op te lossen, kan worden gevolgd op deze pagina's: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. De kwetsbaarheid doet zich pas voor sinds de release van cryptsetup 2.2.0, die ondersteuning introduceerde voor de “online herversleuteling”-operatie. Als tijdelijke oplossing voor de bescherming kan het starten met de optie “--disable-luks2-reencryption” worden gebruikt.

Bron: opennet.ru

Voeg een reactie