Zero-copy po hiqet nga AF_ALG në Linux për arsye sigurie

Në nën-sistemin e kriptografisë Linux po përgatitet heqja e mbështetjes zero-copy nga ndërfaqja AF_ALG për llojet e algoritmeve SKCIPHER dhe AEAD. Ndryshimi tashmë ndodhet në pemën cryptodev dhe pritet të dërgohet në dritaren e bashkimit Linux 7.2, e cila pritet të hapet në qershor. Shkaku janë shqetësimet në rritje rreth sigurisë së mekanizmave zero-copy në bërthamë, sidomos pas dobësive të fundit në kodin kriptografik të Linux.

AF_ALG — Ă«shtĂ« ndĂ«rfaqja pĂ«rdoruesit nĂ« API-nĂ« kriptografike tĂ« bĂ«rthamĂ«s Linux. PĂ«rmes saj, programet mund tĂ« aksesojnĂ« implementimet e cifrave, hasheve dhe algoritmeve AEAD nĂ« bĂ«rthamĂ« si sokete. Dokumentacioni i Linux pĂ«rshkruan veçmas pĂ«r AF_ALG mĂ«nyrĂ«n zero-copy pĂ«rmes splice() dhe vmsplice(), ku bĂ«rthama pĂ«rpiqet tĂ« shmangĂ« kopjimin e panevojshĂ«m tĂ« tĂ« dhĂ«nave nĂ« memorien e bĂ«rthamĂ«s.

Problemi është se për AF_ALG, kjo përmirësim në performancë nuk rezultoi aq i rëndësishëm, dhe rreziqet janë tepër të mëdha. Autori i ndryshimit, zhvilluesi i nën-sistemit kriptografik të Linux, Erik Biggers nga Google, specifikoja, tha se zero-copy lejon hapësirën për përdoruesit të kryejë operacione kriptografike drejtpërdrejt mbi faqet e caches të skedarëve, për shembull, binarin su, dhe gjithashtu krijon kushte për dobësi TOCTOU, kur memorie mund të ndryshojë në mënyrë të njëkohshme me operacionin mbi të.

Me fjalë të tjera, mekanizmi, i dobishëm në input-output rrjetor ose skedarësh, në AF_ALG duket si një optimizim tepër të rrezikshëm. Vetë AF_ALG, sipas zhvilluesit, tani ruhet kryesisht për shkak të pajtueshmërisë mbrapa me një numër të vogël programesh, siç është iwd, të cilat ende nuk janë transferuar në kriptografinë në hapësirën e përdoruesit. Fillimisht AF_ALG ishte menduar për aksesin në akcelaratorët ekzistues të kriptografisë, por në praktikë rezultoi si një ndërfaqe jo shumë efektive për këtë detyrë.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« theksohet se nuk bĂ«het fjalĂ« pĂ«r njĂ« heqje tĂ« plotĂ« tĂ« splice() ose sendfile() pĂ«r AF_ALG. Ndryshimi pĂ«rshkruhet si njĂ« "prishje e butĂ«" e pajtueshmĂ«risĂ«: transferimi i tĂ« dhĂ«nave nĂ« kĂ«rkesat e AF_ALG pĂ«rmes splice() dhe sendfile() do tĂ« vazhdojĂ« tĂ« funksionojĂ«, por bĂ«rthama tani do tĂ« krijojĂ« njĂ« kopje tĂ« brendshme tĂ« qĂ«ndrueshme tĂ« tĂ« dhĂ«nave pĂ«rpara operacionit kriptografik. Performanca nĂ« disa raste mund tĂ« bie, megjithatĂ« API formale pĂ«r pĂ«rdoruesin nuk dĂ«mtohet.

Veçmas theksohet se për momentin zero-copy po hiqet nga skcipher dhe aead. Mbështetja për llojin hash do të shqyrtohet veçmas.

Konteksti i ndryshimit është i pakëndshëm. Në fund të prillit u zbulua një dobësi Copy Fail (CVE-2026-31431) në algif_aead, që do të thotë se pikërisht në ndërfaqen e kriptografisë së përdoruesit AF_ALG. Hulumtuesit treguan se lidhja AF_ALG, splice() dhe veçoritë e përpunimit AEAD lejonin një përdorues të paautorizuar të dëmtonte page cache, përfshirë faqet që përputhen me binarët setuid, dhe të fitonte një rritje privilegjesh deri në root.


Shfaqja Copy Fail ishte e lidhur me optimizimin e vitit 2017, i cili kaloi operacionet AEAD në përpunim "në vend"; gjatë kalimit të një skedari përmes splice() në AF_ALG, bërlloku i krijuar punonte jo me një kopje, por me referenca ndaj faqeve në page cache. Si rezultat, një pjesë e të dhënave, të cilat konsideroheshin vetëm si hyrëse, mund të ishin gjetur në scatterlist që mund të shkruhej.

Heqja e zero-copy nga AF_ALG nuk është një rregullim të vetëm një dobësie. Më së shumti, kjo është një përpjekje për të hequr një klasë të tërë skenarësh të rrezikshëm nga UAPI i pak përdorur, ku përfitimi nga optimizimi nuk justifikon kompleksitetin dhe pasojat e mundshme. Për përdoruesit e zakonshëm, ndryshimi ndoshta do të mbetet i paqartë; për programet e rralla, që përdorin aktivisht AF_ALG përmes splice() ose sendfile(), një rënie e performancës është e mundshme për shkak të kopjimit shtesë.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster