Övervinning av diskchiffering som använder TPM2 för automatisk upplåsning

En av tilläggspaketen i NixOS presenterade en attackteknik som gör det möjligt att få åtkomst till data på krypterade diskpartitioner, i konfigurationer som inte kräver inmatning av upplåsningslösenord vid uppstart, tack vare placeringen av avkodningsinformation i TPM2 (Trusted Platform Module). Sådana konfigurationer används ofta på servrar eller fleranvändararbetsstationer, där det är problematiskt att manuellt ange lösenord efter varje omstart.

Vid användning av en sådan metod för diskchiffering sker avkodning med hjälp av en ytterligare nyckel som lagras i TPM och endast ges ut efter bekräftelse av systemets ursprungliga tillstånd. Systemets tillstånd lagras i form av hash-värden i PCR-register (Platform Configuration Register) och kopplas till en digital signatur som verifierar bootloadern, samt till kontrollsummor för bootloadern och det initiala bootmiljön (initrd). Åtkomst till nyckeln i TPM ges endast när alla registren PCR som är kopplade till den är i samma tillstånd som när nyckeln sparades.

Det antas att operativsystemets uppstartskedja verifieras med UEFI Secure Boot och att åtkomst till nycklarna endast kan erhållas från en oförändrad initrd-avbildning. Vid en lyckad verifiering låses disken automatiskt upp, men åtkomst till de avkodade data kan endast ges genom inloggning i sitt konto i systemet. Vid åtkomst utan verifierad uppstart eller vid försök att ersätta eller ändra initrd i syfte att fånga nycklar, kommer förtroendekedjan att brytas, tillståndet för PCR-register att förändras och TPM2 kommer inte att ge informationen som krävs för avkodning.

Den publicerade attackmetoden gör det möjligt att undvika att ändra innehållet i initrd i konfigurationer som inte identifierar LUKS-krypterade partitioner. Det noteras att inkluderingen av en sådan kontroll av partitioner inte beskrivs i alla hittade instruktioner för konfiguration av diskryptering, eftersom identifiering av partitionen avsevärt komplicerar konfigurationen (det krävs att ytterligare en PCR-register används för att kontrollera partitionens nyckel och generera initrd med hänsyn till dess värde). Exempel på genomförande av attacken har demonstrerats för Fedora Linux i kombination med verktyget clevis och för NixOS i kombination med systemd-cryptenroll. För att genomföra attacken krävs fysisk tillgång till datorn och möjlighet att extrahera lagringsmediet.

Metoden bygger på att angriparen kan ersätta den befintliga rotkrypterade partitionen med sin egen krypterade partition, skapad med samma UUID-identifierare och kända dekrypteringsnycklar för angriparen. Initrd-miljön kommer att överföra kontrollen till init-processen i angriparens partition. Eftersom innehållet i initrd inte har ändrats, kommer TPM-tillståndet inte att brytas och när angriparen får kontroll i sin miljö kan han använda TPM för att dekryptera nyckeln för den ursprungliga diskpartitionen.

Attacken kan sammanfattas i följande steg:

  • Extrahering av disken och analys av de okrypterade data som finns i partitionen /boot på en annan dator. Identifiera information om den krypterade partitionen och dess UUID-identifierare från initrd-avbildningen som finns i partitionen /boot.
  • Skapa en säkerhetskopia av de första 64 MB av den krypterade LUKS-partitionen.
  • Ersätta de angivna 64 MB med en avbildning av den egna rotpartitionen, krypterad med en nyckel som är känd för angriparen och med UUID-identifierare som den gamla partitionen.
  • Återvända disken till den ursprungliga datorn och starta med den utbytta rotpartitionen. Eftersom den automatiska upplåsningen med nyckeln från TPM för den utbytta partitionen misslyckas, begär initrd manuellt inmatning av lösenord.
  • Hämta den ursprungliga nyckeln från TPM, med hjälp av metadata om TPM och den krypterade token från LUKS-huvudet för den gamla partitionen.
  • Byta ut disken på angriparens dator, återställa den överskrivna delen av LUKS-partitionen från säkerhetskopian och använda den erhållna ursprungliga nyckeln för åtkomst till data.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster