Isang kahinaan sa cryptsetup na nagbibigay-daan sa iyong i-disable ang pag-encrypt sa mga partisyon ng LUKS2

Natukoy ang isang kahinaan (CVE-2021-4122) sa Cryptsetup package, na ginamit upang i-encrypt ang mga partition ng disk sa Linux, na nagpapahintulot na ma-disable ang pag-encrypt sa mga partisyon sa LUKS2 (Linux Unified Key Setup) na format sa pamamagitan ng pagbabago ng metadata. Upang samantalahin ang kahinaan, ang umaatake ay dapat na may pisikal na access sa naka-encrypt na media, ibig sabihin. Ang pamamaraan ay may katuturan pangunahin para sa pag-atake sa mga naka-encrypt na external na storage device, tulad ng mga Flash drive, kung saan may access ang umaatake ngunit hindi alam ang password para i-decrypt ang data.

Naaangkop lamang ang pag-atake para sa format na LUKS2 at nauugnay sa pagmamanipula ng metadata na responsable para sa pag-activate ng extension na "online reencryption", na nagbibigay-daan, kung kinakailangan upang baguhin ang access key, upang simulan ang proseso ng reencryption ng data sa mabilisang. nang walang tigil sa pagtatrabaho sa partisyon. Dahil ang proseso ng pag-decryption at pag-encrypt gamit ang isang bagong key ay tumatagal ng maraming oras, ginagawang posible ng "online reencryption" na hindi makagambala sa pagtatrabaho sa partition at magsagawa ng muling pag-encrypt sa background, unti-unting muling pag-encrypt ng data mula sa isang key patungo sa isa pa. . Posible ring pumili ng walang laman na target na key, na nagbibigay-daan sa iyong i-convert ang seksyon sa isang decrypted na form.

Ang isang attacker ay maaaring gumawa ng mga pagbabago sa LUKS2 metadata na gayahin ang isang abort ng decryption operation bilang isang resulta ng isang pagkabigo at makamit ang decryption ng bahagi ng partition pagkatapos ng pag-activate at paggamit ng binagong drive ng may-ari. Sa kasong ito, ang user na nakakonekta sa binagong drive at na-unlock ito gamit ang tamang password ay hindi makakatanggap ng anumang babala tungkol sa proseso ng pagpapanumbalik ng nagambalang operasyon ng muling pag-encrypt at maaari lamang malaman ang tungkol sa pag-usad ng operasyong ito gamit ang "luks Dump" utos. Ang dami ng data na maaaring i-decrypt ng isang attacker ay depende sa laki ng LUKS2 header, ngunit sa default na laki (16 MiB) maaari itong lumampas sa 3 GB.

Ang problema ay sanhi ng katotohanan na kahit na ang muling pag-encrypt ay nangangailangan ng pagkalkula at pag-verify ng mga hash ng bago at lumang mga susi, ang isang hash ay hindi kinakailangan upang simulan ang pag-decryption kung ang bagong estado ay nagpapahiwatig ng kawalan ng isang plaintext key para sa pag-encrypt. Bilang karagdagan, ang metadata ng LUKS2, na tumutukoy sa algorithm ng pag-encrypt, ay hindi protektado mula sa pagbabago kung ito ay nahulog sa mga kamay ng isang umaatake. Upang harangan ang kahinaan, nagdagdag ang mga developer ng karagdagang proteksyon para sa metadata sa LUKS2, kung saan ang karagdagang hash ay sinusuri na ngayon, na kinakalkula batay sa mga kilalang key at nilalaman ng metadata, i.e. hindi na maaaring palihim na baguhin ng isang umaatake ang metadata nang hindi nalalaman ang password sa pag-decryption.

Ang isang tipikal na senaryo ng pag-atake ay nangangailangan na ang umaatake ay makakuha ng kanilang mga kamay sa drive nang maraming beses. Una, ang isang umaatake na hindi alam ang password sa pag-access ay gumagawa ng mga pagbabago sa lugar ng metadata, na nagti-trigger ng pag-decryption ng bahagi ng data sa susunod na pag-activate ng drive. Pagkatapos ay ibabalik ang drive sa lugar nito at maghihintay ang umaatake hanggang sa ikonekta ito ng user sa pamamagitan ng paglalagay ng password. Kapag na-activate ng user ang device, magsisimula ang proseso ng muling pag-encrypt sa background, kung saan ang bahagi ng naka-encrypt na data ay papalitan ng naka-decrypt na data. Dagdag pa, kung nagawang makuha muli ng umaatake ang device, ang ilan sa data sa drive ay nasa decrypted form.

Ang problema ay natukoy ng cryptsetup project maintainer at naayos sa cryptsetup 2.4.3 at 2.3.7 updates. Ang katayuan ng mga update na nabuo upang ayusin ang problema sa mga pamamahagi ay maaaring masubaybayan sa mga pahinang ito: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Lumilitaw lamang ang kahinaan mula noong inilabas ang cryptsetup 2.2.0, na nagpasimula ng suporta para sa operasyong “online reencryption”. Bilang isang solusyon para sa proteksyon, ang paglulunsad gamit ang opsyong “--disable-luks2-reencryption” ay maaaring gamitin.

Pinagmulan: opennet.ru

Magdagdag ng komento