Üks NixOS-i pakette saatev isik tutvustas rünnakutehnikat, mis võimaldab juurdepääsu andmetele krüpteeritud kõvaketta jaotustes, konfigureeringutes, mis ei nõua käivitamisel avamisparooli sisestamist, tänu TPM2 (Trusted Platform Module) määritud teabe paigutamisele dekodeerimise jaoks. Selliseid konfigureeringuid kasutatakse sageli serverites või mitme kasutaja tööjaamades, kus on probleemne iga kord pärast taaskäivitamist manuaalselt parooli sisestada.
Sellise ketta krüpteerimise meetodi rakendamisel toimub dekodeerimine lisavõtme abil, mis on TPM-is säilitatud ja mille väljastamine toimub ainult süsteemi algse oleku kinnitamise korral. Süsteemi olek salvestatakse PCR (Platform Configuration Register) registrite häshedes ja seotakse digitaalallkirjaga, millega on allkirjastatud käivitaja, samuti alglaadurite ja alglaadimist keskkonna (initrd) kontrollsummadega. Juhtmestik TPM-is on saadaval ainult siis, kui kõik seotud PCR-registerid on samas seisundis nagu võtme salvestamise ajal.
Eeldatakse, et operatsioonisüsteemi käivitamise ahel verifitseeritakse UEFI Secure Booti abil ning võtmetele pääseb ligi ainult muudetud initrd-pildist. Kui kontrollimine on edukas, avatakse ketas automaatselt, kuid juurdepääs dekodeeritud andmetele on võimalik ainult oma kasutajakontole sisse logides. Kui kasutada verifitseerimata käivitamist või proovida asendada või muuta initrd-d võtmete ülevõtmise eesmärgil, rikutakse usaldusväärsuse ahelat, PCR-registeride olek muutub ja TPM2 ei anna vajalikke andmeid dekodeerimiseks.
Avalik rünnaku meetod võimaldab mööda minna initrd sisu muutmisest seadistustes, mis ei tuvastanud LUKS-i krüpteeritud jaotusi. Täheldatakse, et sarnaste jaotuste kontrollimise lisamine ei ole kõikides leitud kettakrüptimise seadistuse juhistes kirjeldatud, kuna jaotuse tuvastamine muudab seadistamise oluliselt keerukamaks (nõuab täiendava PCR-registeri kaasamist ja initrd genereerimist vastavalt selle väärtusele). Rünnaku näiteid on demonstreeritud Fedora Linuxis koos tööriistakomplekti clevis ja NixOS koos systemd-cryptenrolliga. Rünnaku sooritamiseks on vajalik füüsiline juurdepääs arvutile ja võimalus andmekandjat eemaldada.
Meetod põhineb sellel, et ründaja võib asendada olemasoleva juur-krüpteeritud jaotuse oma krüpteeritud jaotusega, mis on loodud sama UUID-tuvastajaga ja ründajale tuntud dekodeerimisvõtmetega. Initrd-keskkond edastab juhtimise init-protsessile ründaja jaotuses. Kuna initrd sisu pole muudetud, ei rikku TPM-i seisundit ja kontrolli saades oma keskkonnas saab ründaja kasutada TPM-i algse kettajaotuse võtme dekodeerimiseks.
Rünnak koosneb järgmistest sammudest:
- Plaadi eemaldamine ja krüpteerimata andmete analüüsimine teisel arvutil jaotuses /boot. Teabe määramine krüpteeritud jaotuse ja selle UUID-tuvastaja kohta initrd-pildist, mis asub jaotuses /boot.
- Krüpteeritud LUKS-jaotuse esimestelt 64MB-lt varukoopia loomine.
- Asendage nimetatud 64MB oma krüpteeritud juurejaotuse pildiga, mis on loodud ründajale teadaoleva võtme abil ja millel on sama UUID-tuvastaja kui vanal jaotusel.
- Plaadi tagasiviimine algsesse arvutisse ja allalaadimine asendatud juurjaotusega. Kuna TPM-i võtme automaatne avamine asendatud jaotuse jaoks ebaõnnestub, kuvab initrd käsu parooli käsitsi sisestamiseks.
- Algsest võtme saamine TPM-ist, kasutades TPM-i metaandmeid ja krüpteeritud tokenit vanast jaotusest LUKS-pealkirjas.
- Plaadi paigutamine ründaja arvutisse, LUKS-jaotuse kirjutatud osa taastamine varukoopiast ja saadud algse võtme kasutamine andmetele juurdepääsu saamiseks.
Allikas: opennet.ru
