Një nga paketat shoqëruese në NixOS prezantoi një teknikë sulmi që lejon qasjen në të dhëna në pjesët e diskut të enkriptuara, në konfigurimet që nuk kërkojnë futje të fjalëkalimit për çeljen gjatë ngarkimit, falë vendosjes në TPM2 (Trusted Platform Module) të informacionit për deshifrimin. Këto konfigurime shpesh përdoren në serverë ose stacione të punës multi-përdorues, ku është e vështirë të futet manualisht fjalëkalimi pas çdo rinisjeje.
Kur aplikohet një metodë e tillë për enkriptimin e disqeve, deshifrimi kryhet duke përdorur një çelës shtesë, të ruajtur në TPM dhe që jepet vetëm me konfirmimin e gjendjes fillestare të sistemit. Gjendja e sistemit ruhet në formën e hash-eve në regjistrat PCR (Platform Configuration Register) dhe lidhet me një nënshkrim digjital, me të cilin është vërtetuar ngarkuesi, si dhe me shumën kontrolluese të ngarkuesit dhe mjedisit të ngarkimit fillestar (initrd). Qasja në çelësin në TPM jepet vetëm kur të gjitha regjistrat e lidhur me të janë në të njëjtën gjendje siç ishte kur u ruajt çelësi.
Kuptohet se zinxhiri i ngarkimit të sistemit operativ verifikohet përmes UEFI Secure Boot dhe qasja në çelësat mund të merret vetëm nga një imazh initrd i pamodifikuar. Pas një verifikimi të suksesshëm, disku automatikisht çelhet, por qasja në të dhënat e deshifruara mund të merret vetëm përmes hyrjes në llogarinë tuaj në sistem. Kur provoni qasjen pa ngarkesë të vërtetuar ose përpiquni të zëvendësoni ose bëni ndryshime në initrd me qëllim kapjen e çelësave, zinxhiri i besimit do të prishë, gjendja e regjistrave PCR do të ndryshojë dhe TPM2 nuk do të dorëzojë informacionin e nevojshëm për deshifrimin.
Metoda e publikuar e sulmit lejon që të kalojë pa ndryshuar përmbajtjen e initrd në konfiguracionet që nuk identifikojnë ndarjet e koduara LUKS. Vihet re se përfshirja e një verifikimi të tillë për ndarjet nuk përshkruhet në të gjitha udhëzimet e gjetura për konfigurimin e enkriptimit të disqeve, pasi identifikimi i ndarjes e komplikon ndjeshëm konfigurimin (kërkohet angazhimi i një regjistri PCR shtesë për verifikimin e çelësit të ndarjes dhe gjenerimi i initrd duke marrë parasysh vlerën e tij). Shembujt e realizimit të sulmit janë demonstruar për Fedora Linux në bashkëpunim me mjetet clevis dhe për NixOS në bashkëpunim me systemd-cryptenroll. Për të realizuar sulmin nevojitet akses fizik në kompjuter dhe mundësia për të nxjerrë ruajtësin.
Metoda bazohet në faktin se sulmuesi mund të zëvendësojë ndarjen ekzistuese të koduar të rrënjës me një ndarje të koduar të tijën, të krijuar me identifikuesin UUID të njëjtë dhe çelësat e njohur të dekriptimit nga sulmuesi. Ambienti initrd do t'i kalojë kontrollin procesit init në ndarjen e sulmuesit. Duke qenë se përmbajtja e initrd nuk është ndryshuar, gjendja e TPM nuk do të thyen dhe, duke marrë kontrollin në ambientin e tij, sulmuesi mund të përdorë TPM për të dekriptuar çelësin e ndarjes origjinale të disqeve.
Sulmi përbëhet nga hapat e mëposhtëm:
- Nxjerrja e diskut dhe kryerja e analizës së të dhënave të pa enkriptuara në ndarjen /boot në një kompjuter tjetër. Identifikimi i informacionit mbi ndarjen e koduar dhe identifikuesin e saj UUID nga imazhi initrd që ndodhet në ndarjen /boot.
- Krijimi i një kopje rezervë të 64MB të parë të ndarjes LUKS të koduar.
- Zëvendësimi i këtyre 64MB me një imazh të ndarjes së tij të rrënjës, e koduar duke përdorur çelësin e njohur për sulmuesin dhe që ka identifikuesin UUID si ndarja e vjetër.
- Rikthimi i diskut në kompjuterin origjinal dhe ngarkimi me ndarjen e zëvendësuar të rrënjës. Pasi zhbllokimi automatik duke përdorur çelësin nga TPM për ndarjen e zëvendësuar dështoi, initrd jep një kërkesë për futjen manuale të fjalëkalimit.
- Shkarkimi i çelësit origjinal nga TPM, duke përdorur metadatat mbi TPM dhe tokenin e enkriptuar nga titulli LUKS i ndarjes së vjetër.
- Rikthimi i disku në kompjuterin e sulmuesit, rikthimi i pjesës së riparuar të ndarjes LUKS nga kopja rezervë dhe përdorimi i çelësit origjinal të marrë për akses në të dhëna.
Burimi: opennet.ru
