Cara serangan wis ngajokaken kanggo mbatalake nemtokake fragmen memori ing server

Klompok peneliti saka Universitas Teknik Graz (Austria), sing sadurunge dikenal ngembangake serangan MDS, NetSpectre, Throwhammer lan ZombieLoad, wis nerbitake metode serangan saluran sisih anyar (CVE-2021-3714) nglawan mekanisme Memory-Deduplication. , sing ngidini kanggo nemtokake ana ing memori saka data tartamtu, ngatur bait-by-byte bocor isi memori, utawa nemtokake tata memori kanggo lulus pangayoman acak adhedhasar alamat (ASLR). Cara anyar iki beda karo varian serangan sing wis dituduhake sadurunge ing mekanisme deduplikasi kanthi nindakake serangan saka host eksternal nggunakake minangka kritΓ©ria owah-owahan wektu nanggepi panjalukan sing dikirim menyang panyerang liwat protokol HTTP/1 lan HTTP/2. Kemampuan kanggo nindakake serangan wis dituduhake kanggo server adhedhasar Linux lan Windows.

Serangan ing mekanisme deduplikasi memori nggunakake prabΓ©dan ing wektu pangolahan operasi nulis minangka saluran kanggo bocor informasi ing kahanan sing owah-owahan ing data ndadΓ©kakΓ© kanggo kloning saka kaca memori deduplicated nggunakake mekanisme Copy-On-Write (COW). . Sajrone operasi, kernel ndeteksi kaca memori sing padha saka proses sing beda-beda lan nggabungake, pemetaan kaca memori sing padha menyang area memori fisik kanggo nyimpen mung siji salinan. Nalika salah siji saka pangolahan nyoba kanggo ngganti data sing digandhengake karo kaca deduplicated, ana pangecualian (kaca fault) lan, nggunakake mekanisme Copy-On-Write, salinan kapisah saka kaca memori otomatis digawe, kang diutus kanggo proses. Wektu tambahan digunakake kanggo ngrampungake salinan, sing bisa dadi tandha owah-owahan data sing ngganggu proses liyane.

Peneliti wis nuduhake yen telat asil saka mekanisme COW bisa dijupuk ora mung lokal, nanging uga dening nganalisa owah-owahan ing wektu pangiriman respon liwat jaringan. Sawetara cara wis diusulake kanggo nemtokake isi memori saka host remot kanthi nganalisa wektu eksekusi panjalukan liwat protokol HTTP / 1 lan HTTP / 2. Kanggo nyimpen cithakan sing dipilih, aplikasi web standar digunakake sing nyimpen informasi sing ditampa ing panjalukan ing memori.

Ing asas umum saka serangan boils mudhun kanggo ngisi kaca memori ing server karo data sing duweni potensi mbaleni isi kaca memori wis ana ing server. Penyerang banjur ngenteni wektu sing dibutuhake kernel kanggo deduplikat lan nggabungake kaca memori, banjur ngowahi data duplikat sing dikontrol lan ngevaluasi wektu respon kanggo nemtokake manawa hit kasebut sukses.

Cara serangan wis ngajokaken kanggo mbatalake nemtokake fragmen memori ing server

Sajrone eksperimen, tingkat kebocoran informasi maksimal yaiku 34.41 bita saben jam nalika nyerang liwat jaringan global lan 302.16 bita saben jam nalika nyerang liwat jaringan lokal, sing luwih cepet tinimbang cara liya kanggo ngekstrak data liwat saluran pihak katelu (contone, ing serangan NetSpectre, tingkat transfer data 7.5 bita ing jam siji).

Telung opsi serangan sing digunakake wis diusulake. Opsi pisanan ngidini sampeyan nemtokake data ing memori server web sing nggunakake Memcached. Serangan boils mudhun kanggo loading set tartamtu saka data menyang panyimpenan Memcached, Mbusak pemblokiran deduplicated, re-nulis unsur padha lan nggawe kondisi kanggo nyalin COW kelakon kanthi ngganti isi pamblokiran. Sajrone eksperimen karo Memcached, bisa nemtokake ing 166.51 detik versi libc sing diinstal ing sistem sing mlaku ing mesin virtual.

Opsi kapindho ndadekake bisa ngerteni isi rekaman ing DBMS MariaDB, nalika nggunakake panyimpenan InnoDB, kanthi nggawe ulang bait kanthi bait. Serangan kasebut ditindakake kanthi ngirim panjaluk sing diowahi khusus, sing nyebabake ketidakcocokan siji-byte ing kaca memori lan nganalisa wektu respon kanggo nemtokake manawa tebakan babagan isi bait kasebut bener. Tingkat kebocoran kasebut sithik lan udakara 1.5 bita saben jam nalika nyerang saka jaringan lokal. Kauntungan saka metode kasebut yaiku bisa digunakake kanggo mbalekake isi memori sing ora dingerteni.

Opsi kaping telu ndadekake bisa ngliwati mekanisme proteksi KASLR sajrone 4 menit lan entuk informasi babagan offset memori gambar kernel mesin virtual, ing kahanan alamat offset ing kaca memori sing data liyane ora owah. Serangan kasebut ditindakake saka host sing ana 14 hop saka sistem sing diserang. Conto kode kanggo ngleksanakake serangan sing dijanjekake bakal diterbitake ing GitHub.

Source: opennet.ru

Add a comment