Predlaže se metoda napada za daljinsko određivanje memorijskih fragmenata na serveru

Grupa istraživača sa Tehničkog univerziteta u Gracu (Austrija), ranije poznata po razvoju MDS, NetSpectre, Throwhammer i ZombieLoad napada, objavila je novu metodu napada (CVE-2021-3714) putem kanala treće strane na Memory- Mehanizam deduplikacije, koji omogućava utvrđivanje prisutnosti u memoriji određenih podataka, curenje sadržaja memorije bajt po bajt ili definiranje rasporeda memorije kako bi se zaobišla zaštita od nasumične adrese (ASLR). Nova metoda se razlikuje od prethodno demonstriranih varijanti napada na mehanizam deduplikacije po tome što se napad vrši sa eksternog hosta koristeći kao kriterijum promene vremena odgovora na zahteve koje napadač šalje preko HTTP/1 i HTTP/2 protokola. Mogućnost izvođenja napada je demonstrirana za servere bazirane na Linux i Windows.

Napadi na mehanizam za deduplikaciju memorije koriste razliku u vremenu obrade pisanja kao kanal za curenje informacija u situacijama kada promjena podataka uzrokuje mehanizam kopiranja na upisivanje (COW) da klonira stranicu sa dedupliciranjem memorije. Tokom rada, kernel detektuje identične memorijske stranice iz različitih procesa i spaja ih, mapirajući identične memorijske stranice u jedno područje fizičke memorije kako bi pohranio samo jednu kopiju. Kada jedan od procesa pokuša promijeniti podatke povezane s dedupliciranim stranicama, dolazi do izuzetka (greška stranice) i korištenjem mehanizma Copy-On-Write automatski se kreira posebna kopija memorijske stranice, koja se dodjeljuje procesu . Potrebno je dodatno vrijeme da se završi kopija, što može biti pokazatelj da su podaci izmijenjeni drugim procesom.

Istraživači su pokazali da se kašnjenja koja su rezultat rada COW mehanizma mogu uhvatiti ne samo lokalno, već i analizom promjene vremena isporuke odgovora preko mreže. Predloženo je nekoliko metoda za određivanje sadržaja memorije sa udaljenog hosta kroz analizu vremena izvršavanja zahtjeva putem HTTP/1 i HTTP/2 protokola. Za čuvanje odabranih šablona koriste se tipične web aplikacije koje pohranjuju informacije primljene u zahtjevima u memoriju.

Opšti princip napada je da se memorijska stranica na serveru napuni podacima koji potencijalno ponavljaju sadržaj memorijske stranice koja se već nalazi na serveru. Napadač tada čeka da kernel deduplira i spoji memorijsku stranicu, zatim modificira kontrolirani duplikat podataka i procjenjuje vrijeme odgovora kako bi utvrdio da li je pogodak bio uspješan.

Predlaže se metoda napada za daljinsko određivanje memorijskih fragmenata na serveru

U toku eksperimenata, maksimalna stopa curenja informacija bila je 34.41 bajta na sat kada se napada preko globalne mreže i 302.16 bajta na sat kada se napada preko lokalne mreže, što je brže od drugih metoda izdvajanja podataka putem kanala trećih strana ( na primjer, kada se napada NetSpectre, brzina prijenosa podataka je 7.5 bajtova na jedan sat).

Predlažu se tri radne varijante napada. Prva opcija vam omogućava da odredite podatke u memoriji web servera koji koristi Memcached. Napad se svodi na učitavanje određenih skupova podataka u Memcached skladište, brisanje dedupliciranog bloka, ponovno pisanje istog elementa i stvaranje uslova za pojavu COW kopiranja promjenom sadržaja bloka. Tokom eksperimenta sa Memcached-om, trebalo je 166.51 sekundi da se utvrdi verzija libc-a instaliranog na sistemu koji radi na virtuelnoj mašini.

Druga opcija je omogućila da se sazna sadržaj zapisa u MariaDB DBMS, koristeći InnoDB skladište, rekreiranjem sadržaja bajt po bajt. Napad se vrši slanjem posebno modificiranih zahtjeva, što dovodi do jednobajtnih neusklađenosti na memorijskim stranicama i analizom vremena reakcije kako bi se utvrdilo da je pretpostavka o sadržaju bajta bila tačna. Stopa takvog curenja je niska i iznosi 1.5 bajtova na sat kada se napadne iz lokalne mreže. Prednost metode je što se može koristiti za oporavak nepoznatog sadržaja memorije.

Treća opcija je omogućila da se u potpunosti zaobiđe KASLR zaštitni mehanizam za 4 minute i dobije informacija o pomaku u memoriji slike kernela virtualne mašine, u situaciji kada se adresa pomaka nalazi na memorijskoj stranici na kojoj drugi podaci ne postoje. promijeniti. Napad je izveden sa domaćina koji se nalazi 14 skokova od napadnutog sistema. Obećano je da će primjeri koda za predstavljene napade biti objavljeni na GitHubu.

izvor: opennet.ru

Dodajte komentar