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
