Një nga ndihmësit e pakove në NixOS prezantoi një teknikë sulmi, e cila lejon qasjen në të dhënat në parti të diskove të enkriptuar, në konfigurime që nuk kërkojnë hyrje të fjalëkalimit për çeljen gjatë ngarkimit, falë vendosjes në TPM2 (Moduli i Platformës të Besueshme) të informacionit për dekriptimin. Këto konfigurime shpesh përdoren në serverë ose punostacione shumë përdoruesish, ku është problematik të futet manualisht fjalëkalimi pas çdo rinisjeje.
Kur aplikohet një metodë e tillë e enkriptimit të disqeve, dekriptimi kryhet duke përdorur një çelës shtesë, i ruajtur në TPM dhe i lëshuar vetëm pas konfirmimit të gjendjes origjinale të sistemit. Gjendja e sistemit ruhet si hash në regjistrat PCR (Regjistrat e Konfigurimit të Platformës) dhe është e lidhur me një nënshkrim digjital, me të cilin është validuar ngarkuesi, si dhe me kontrollsumat e ngarkuesit dhe ambientit të parë të ngarkimit (initrd). Qasja në çelësin në TPM sigurohet vetëm kur të gjithë regjistrat e lidhur me të janë në të njëjtin gjendje si kur u ruajt çelësi.
Kjo nënkupton se zinxhiri i ngarkesës së sistemit operativ verifikohet përmes UEFI Secure Boot dhe qasje në çelësat mund të merret vetëm nga një imazh initrd të pa modifikuar. Pas një verifikimi të suksesshëm, disku automatikisht çelzohet, por akses në të dhënat e dekriptuara mund të merret vetëm përmes identifikimit në llogarinë tuaj në sistem. Kur të kërkoni pa një ngarkesë të verifikuar ose kur të përpiqeni të zëvendësoni ose të bëni ndryshime në initrd me qëllim që të kapni çelësat, zinxhiri i besimit do të prishë, gjendja e regjistrave PCR do të ndryshojë dhe TPM2 nuk do të japë informacionin e nevojshëm për dekriptime.
Metoda e publikuar e sulmit lejon kalimin pa modifikimin e përmbajtjes initrd në konfigurimet që nuk identifikojnë pjesët e koduara LUKS. Vërehet se përfshirja e një kontrolli të tillë për pjesët nuk përshkruhet në të gjitha udhëzimet e gjetura për konfigurimin e enkriptimit të diskut, pasi identifikimi i pjesës e komplikon dukshëm konfigurimin (kërkohet angazhimi i një regjistri të shtuar PCR për verifikimin e çelësit të pjesës dhe gjenerimi i initrd me parasysh vlerën e tij). Shembuj të realizimit të sulmit janë demonstruar për Fedora Linux në lidhje me mjetin clevis dhe për NixOS në lidhje me systemd-cryptenroll. Për të realizuar sulmin kërkohet akses fizik në kompjuter dhe mundësia për të nxjerrë ruajtësin.
Metoda bazohet në faktin se sulmuesi mund të zëvendësojë seksionin ekzistues të rrënjës të enkriptuar me një seksion të ri të enkriptuar, të krijuar me të njëjtin UUID dhe çelësa dekryptimi të njohur për sulmuesin. Ambienti initrd do të kalojë kontrollin te procesi init në seksionin e sulmuesit. Duke qenë se përmbajtja initrd nuk është modifikuar, gjendja e TPM nuk do të prishët dhe, duke marrë kontrollin në ambientin e tij, sulmuesi mund të përdorë TPM për të dekryptuar çelësin e seksionit origjinal të diskut.
Sulmi përbëhet nga hapat e mëposhtëm:
- Nxjerrja e diskut dhe analiza e të dhënave të paenkriptuara në seksionin /boot në një kompjuter tjetër. Përcaktimi i informacionit mbi seksionin e enkriptuar dhe UUID të tij nga imazhi initrd, i cili ndodhet në seksionin /boot.
- Krijimi i një kopje rezervë të 64MB të parë të seksionit te enkriptuar LUKS.
- Zëvendësimi i atyre 64MB me një imazh që ka seksionin e tij të rrënjës, të enkriptuar me një çelës të njohur për sulmuesin dhe duke pasur UUID të njëjtë si seksioni i vjetër.
- Rikthimi i diskut në kompjuterin origjinal dhe ngarkimi me një ndarje rrënjësore të zëvendësuar. Duke qenë se zhbllokimi automatik me çelësin nga TPM për ndarjen e zëvendësuar përfundon në dështim, initrd tregon një kërkesë për futje manuale të fjalëkalimit.
- Marrja e çelësit origjinal nga TPM, duke përdorur metadatat për TPM dhe një token të enkriptuar nga krye-lidhja LUKS e ndarjes së vjetër.
- Ribashkimi i diskut në kompjuterin e sulmuesit, rikthimi i pjesës së rikthyer të ndarjes LUKS nga një kopje rezervë dhe përdorimi i çelësit origjinal të marrë për qasje në të dhëna.
Burimi: opennet.ru
