Problemi s brisanjem ključeva šifriranja diska iz RAM-a prilikom prelaska Linuxa u stanje mirovanja

Tijekom portiranja alata cryptsetup-suspend za NixOS otkrivena je greška u sustavu diskovne enkripcije LUKS (Linux Unified Key Setup), zbog koje od jezgre Linux 6.9 (problematična potvrda), objavljene u svibnju 2024. godine, čišćenje enkripcijskih ključeva iz radne memorije nije funkcioniralo prilikom prelaska sustava u stanje mirovanja.

Alat cryptsetup-suspend koristi se u Debianu za automatsku blokadu LUKS particija prije prelaska u stanje mirovanja. Pretpostavlja se da će u slučaju krađe prijenosnog računala koje je prešlo u stanje mirovanja napadač biti lišen mogućnosti pristupa podacima, budući da će pri izlasku iz mirovanja biti potrebno unijeti lozinku za povratak pristupu enkriptiranim podacima. Zbog greške u Linux jezgri nakon blokade LUKS particije s naredbom "cryptsetup luksSuspend", ključevi nisu očišćeni iz radne memorije i ostali su vidljivi preko /proc/keys, što je napadaču omogućilo da ih izvuče, na primjer, metodom "hladne ponovne uspostave" i iskoristi za pristup podacima.

Nedostatak čišćenja ključeva otkriven je tijekom debuggiranja stanja utrke, zbog kojeg su nastajali problemi s prelaskom u stanje mirovanja. Greška se pojavila nakon refaktoriranja u jezgri 6.9, tijekom kojeg su ključevi vezani za pozivajući niti i trebali su biti uklonjeni pri njegova završetka, no suštinski su ostali u memoriji. Za uključivanje u Linux jezgru predložen je jednostavni ispravak koji otklanja učinjenu grešku.

Ova ispravka nije prihvaćena u jezgru, jer je u njoj identificiran nedostatak — ispravka djeluje samo za fizičke uređaje, ali ne radi za virtualne loop uređaje. Umjesto ispravljanja problema na strani jezgre, programeri alata cryptsetup predložili su zaobilazno rješenje za čišćenje ključeva. Ova promjena je već prihvaćena i bit će uključena u izdanje cryptsetup 2.8.7.

Osim toga, za NixOS je stvorena vlastita implementacija skripti za blokiranje enkripcija diska prije prelaska u stanje mirovanja, koja koristi staru ispravku za jezgru koja nije prihvaćena 2015. godine, a koja prisilno čisti ključeve iz memorije prije prelaska u stanje mirovanja.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster