Una vulnerabilitat a cryptsetup que us permet desactivar el xifratge a les particions LUKS2

S'ha identificat una vulnerabilitat (CVE-2021-4122) al paquet Cryptsetup, utilitzat per xifrar particions de disc a Linux, que permet desactivar el xifratge en particions en el format LUKS2 (Linux Unified Key Setup) modificant les metadades. Per explotar la vulnerabilitat, l'atacant ha de tenir accés físic al suport xifrat, és a dir. El mètode té sentit principalment per atacar dispositius d'emmagatzematge extern xifrats, com ara unitats flash, als quals l'atacant té accés però no coneix la contrasenya per desxifrar les dades.

L'atac només és aplicable al format LUKS2 i s'associa a la manipulació de metadades encarregada d'activar l'extensió "reencriptació en línia", que permet, si cal canviar la clau d'accés, iniciar el procés de reencriptació de dades sobre la marxa. sense aturar el treball amb la partició. Atès que el procés de desxifrat i xifratge amb una nova clau triga molt de temps, el "rexifrat en línia" permet no interrompre el treball amb la partició i tornar a xifrar en segon pla, tornant a xifrar gradualment les dades d'una clau a una altra. . També és possible seleccionar una clau de destinació buida, que us permet convertir la secció en una forma desxifrada.

Un atacant pot fer canvis a les metadades de LUKS2 que simulin un avortament de l'operació de desxifrat com a resultat d'un error i aconseguir el desxifrat d'una part de la partició després de l'activació i ús de la unitat modificada per part del propietari. En aquest cas, l'usuari que ha connectat la unitat modificada i l'ha desbloquejat amb la contrasenya correcta no rep cap avís sobre el procés de restauració de l'operació de reencriptació interrompuda i només pot conèixer el progrés d'aquesta operació mitjançant el "luks Dump". comandament. La quantitat de dades que un atacant pot desxifrar depèn de la mida de la capçalera LUKS2, però amb la mida predeterminada (16 MiB) pot superar els 3 GB.

El problema és causat pel fet que, tot i que el tornar a xifrar requereix calcular i verificar els hash de les claus noves i antigues, no és necessari un hash per començar el desxifrat si el nou estat implica l'absència d'una clau de text pla per al xifratge. A més, les metadades LUKS2, que especifica l'algoritme de xifratge, no estan protegides contra modificacions si cau en mans d'un atacant. Per bloquejar la vulnerabilitat, els desenvolupadors van afegir protecció addicional per a les metadades a LUKS2, per al qual ara es comprova un hash addicional, calculat en funció de les claus conegudes i el contingut de les metadades, és a dir. un atacant ja no pot canviar subrepticiament les metadades sense conèixer la contrasenya de desxifrat.

Un escenari d'atac típic requereix que l'atacant sigui capaç de posar les mans a la unitat diverses vegades. En primer lloc, un atacant que desconeix la contrasenya d'accés fa canvis a l'àrea de metadades, provocant el desxifrat d'una part de les dades la propera vegada que s'activa la unitat. A continuació, la unitat es torna al seu lloc i l'atacant espera fins que l'usuari la connecti introduint una contrasenya. Quan l'usuari activa el dispositiu, s'inicia un procés de rexifrat en segon pla, durant el qual part de les dades xifrades es substitueixen per dades desxifrades. A més, si l'atacant aconsegueix tornar a posar les mans al dispositiu, algunes de les dades de la unitat estaran en forma desxifrada.

El responsable del projecte cryptsetup va identificar el problema i es va solucionar a les actualitzacions de cryptsetup 2.4.3 i 2.3.7. L'estat de les actualitzacions que s'estan generant per solucionar el problema a les distribucions es pot fer un seguiment a aquestes pàgines: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. La vulnerabilitat només apareix des del llançament de cryptsetup 2.2.0, que va introduir suport per a l'operació de "rexifrat en línia". Com a solució alternativa per a la protecció, es pot utilitzar el llançament amb l'opció "--disable-luks2-reencryption".

Font: opennet.ru

Afegeix comentari