Ir ierosināta uzbrukuma metode, lai attālināti noteiktu atmiņas fragmentus serverī

Grācas Tehniskās universitātes (Austrija) pētnieku grupa, kas iepriekš bija pazīstama ar MDS, NetSpectre, Throwhammer un ZombieLoad uzbrukumu izstrādi, ir publicējusi jaunu sānu kanālu uzbrukuma metodi (CVE-2021-3714) pret atmiņas deduplikācijas mehānismu. , kas ļauj noteikt noteiktu datu klātbūtni atmiņā, organizēt atmiņas satura noplūdi pa baitiem vai noteikt atmiņas izkārtojumu, lai apietu uz adreses balstītas nejaušināšanas (ASLR) aizsardzību. Jaunā metode atšķiras no iepriekš demonstrētajiem uzbrukumu variantiem deduplikācijas mehānismam, veicot uzbrukumu no ārēja resursdatora, kā kritēriju izmantojot izmaiņas reakcijas laikā uz pieprasījumiem, kas nosūtīti uzbrucējam, izmantojot HTTP/1 un HTTP/2 protokolus. Spēja veikt uzbrukumu ir pierādīta serveriem, kuru pamatā ir Linux un Windows.

Uzbrukumi atmiņas dedublikācijas mehānismam izmanto rakstīšanas darbības apstrādes laika atšķirību kā kanālu informācijas noplūdei situācijās, kad datu izmaiņu rezultātā tiek klonēta dedublēta atmiņas lapa, izmantojot Copy-On-Write (COW) mehānismu. . Darbības laikā kodols nosaka identiskas atmiņas lapas no dažādiem procesiem un apvieno tās, kartējot identiskas atmiņas lapas vienā fiziskās atmiņas apgabalā, lai saglabātu tikai vienu kopiju. Kad kāds no procesiem mēģina mainīt datus, kas saistīti ar dedublētām lapām, rodas izņēmums (lapas kļūda) un, izmantojot Copy-On-Write mehānismu, automātiski tiek izveidota atsevišķa atmiņas lapas kopija, kas tiek piešķirta procesam. Kopijas pabeigšanai tiek pavadīts papildu laiks, kas var liecināt par datu izmaiņām, kas traucē citam procesam.

Pētnieki ir parādījuši, ka COW mehānisma radītos kavējumus var uztvert ne tikai lokāli, bet arī analizējot atbildes piegādes laika izmaiņas tīklā. Ir ierosinātas vairākas metodes atmiņas satura noteikšanai no attālā resursdatora, analizējot pieprasījumu izpildes laiku, izmantojot HTTP/1 un HTTP/2 protokolus. Lai saglabātu atlasītās veidnes, tiek izmantotas standarta tīmekļa lietojumprogrammas, kas atmiņā saglabā pieprasījumos saņemto informāciju.

Uzbrukuma vispārējais princips ir saistīts ar servera atmiņas lapas aizpildīšanu ar datiem, kas potenciāli atkārto serverī jau esošās atmiņas lapas saturu. Pēc tam uzbrucējs gaida laiku, kas nepieciešams, lai kodols veiktu atmiņas lapas dublikātu un sapludināšanu, pēc tam modificē kontrolētos dublētos datus un novērtē reakcijas laiku, lai noteiktu, vai trāpījums bija veiksmīgs.

Ir ierosināta uzbrukuma metode, lai attālināti noteiktu atmiņas fragmentus serverī

Eksperimentu laikā maksimālais informācijas noplūdes ātrums bija 34.41 baiti stundā, uzbrūkot caur globālo tīklu, un 302.16 baiti stundā, uzbrūkot caur vietējo tīklu, kas ir ātrāk nekā citas metodes datu ieguvei, izmantojot trešo pušu kanālus (piemēram, NetSpectre uzbrukumā datu pārraides ātrums ir 7.5 baiti pulksten XNUMX).

Ir piedāvāti trīs darba uzbrukuma varianti. Pirmā opcija ļauj noteikt datus tā tīmekļa servera atmiņā, kas izmanto Memcached. Uzbrukums izpaužas kā noteiktu datu kopu ielāde Memcached krātuvē, dedublētā bloka notīrīšana, tā paša elementa pārrakstīšana un nosacījuma radīšana COW kopēšanai, mainot bloka saturu. Eksperimenta laikā ar Memcached 166.51 sekundē bija iespējams noteikt libc versiju, kas instalēta sistēmā, kas darbojas virtuālajā mašīnā.

Otrā opcija ļāva uzzināt MariaDB DBVS ierakstu saturu, izmantojot InnoDB krātuvi, atkārtoti izveidojot saturu pa baitam. Uzbrukums tiek veikts, nosūtot īpaši modificētus pieprasījumus, kā rezultātā rodas viena baita neatbilstības atmiņas lapās un analizējot atbildes laiku, lai noteiktu, vai minējums par baita saturu bija pareizs. Šādas noplūdes ātrums ir zems un sasniedz 1.5 baitus stundā, uzbrūkot no vietējā tīkla. Metodes priekšrocība ir tā, ka to var izmantot nezināma atmiņas satura atjaunošanai.

Trešā iespēja ļāva 4 minūtēs pilnībā apiet KASLR aizsardzības mehānismu un iegūt informāciju par virtuālās mašīnas kodola attēla atmiņas nobīdi, situācijā, kad nobīdes adrese atrodas atmiņas lapā, kurā citi dati nemainās. Uzbrukums tika veikts no saimniekdatora, kas atradās 14 apiņu attālumā no uzbruktās sistēmas. Tiek solīts, ka koda piemēri prezentēto uzbrukumu ieviešanai tiks publicēti vietnē GitHub.

Avots: opennet.ru

Pievieno komentāru