Ang isang paraan ng pag-atake ay iminungkahi upang malayuang matukoy ang mga fragment ng memorya sa server

Isang grupo ng mga mananaliksik mula sa Technical University of Graz (Austria), na dating kilala sa pagbuo ng mga pag-atake ng MDS, NetSpectre, Throwhammer at ZombieLoad, ay naglathala ng bagong paraan ng pag-atake sa side-channel (CVE-2021-3714) laban sa mekanismo ng Memory-Deduplication , na nagbibigay-daan upang matukoy ang pagkakaroon ng nasa memorya ng ilang partikular na data, ayusin ang isang byte-by-byte na pagtagas ng mga nilalaman ng memorya, o tukuyin ang layout ng memorya upang i-bypass ang proteksyon ng address-based randomization (ASLR). Ang bagong paraan ay naiiba sa mga dating ipinakitang variant ng mga pag-atake sa mekanismo ng deduplication sa pamamagitan ng pagsasagawa ng pag-atake mula sa isang external na host gamit bilang pamantayan ang pagbabago sa oras ng pagtugon sa mga kahilingang ipinadala sa umaatake sa pamamagitan ng HTTP/1 at HTTP/2 na mga protocol. Ang kakayahang magsagawa ng pag-atake ay ipinakita para sa mga server batay sa Linux at Windows.

Ginagamit ng mga pag-atake sa mekanismo ng pag-deduplication ng memorya ang pagkakaiba sa oras ng pagpoproseso ng isang operasyon ng pagsulat bilang isang channel upang mag-leak ng impormasyon sa mga sitwasyon kung saan ang pagbabago sa data ay humahantong sa pag-clone ng isang deduplicated na pahina ng memorya gamit ang mekanismo ng Copy-On-Write (COW) . Sa panahon ng operasyon, nakita ng kernel ang magkatulad na mga pahina ng memorya mula sa iba't ibang mga proseso at pinagsama ang mga ito, na nagmamapa ng magkaparehong mga pahina ng memorya sa isang solong lugar ng pisikal na memorya upang mag-imbak lamang ng isang kopya. Kapag sinubukan ng isa sa mga proseso na baguhin ang data na nauugnay sa mga na-deduplicate na page, may mangyayaring exception (page fault) at, gamit ang Copy-On-Write na mekanismo, awtomatikong nagagawa ang isang hiwalay na kopya ng memory page, na itinalaga sa proseso. Ang karagdagang oras ay ginugugol sa pagkumpleto ng kopya, na maaaring isang senyales ng mga pagbabago sa data na nakakasagabal sa isa pang proseso.

Ipinakita ng mga mananaliksik na ang mga pagkaantala na nagreresulta mula sa mekanismo ng COW ay maaaring makuha hindi lamang sa lokal, kundi pati na rin sa pamamagitan ng pagsusuri ng mga pagbabago sa mga oras ng paghahatid ng tugon sa network. Ilang pamamaraan ang iminungkahi para sa pagtukoy ng mga nilalaman ng memorya mula sa isang malayong host sa pamamagitan ng pagsusuri sa oras ng pagpapatupad ng mga kahilingan sa HTTP/1 at HTTP/2 na mga protocol. Upang i-save ang mga napiling template, ginagamit ang karaniwang mga web application na nag-iimbak ng impormasyong natanggap sa mga kahilingan sa memorya.

Ang pangkalahatang prinsipyo ng pag-atake ay nagmumula sa pagpuno sa isang memory page sa server ng data na posibleng umulit sa mga nilalaman ng isang memory page na mayroon na sa server. Pagkatapos ay maghihintay ang attacker para sa oras na kinakailangan para sa kernel na mag-deduplicate at pagsamahin ang memory page, pagkatapos ay babaguhin ang kinokontrol na duplicate na data at sinusuri ang oras ng pagtugon upang matukoy kung ang hit ay matagumpay.

Ang isang paraan ng pag-atake ay iminungkahi upang malayuang matukoy ang mga fragment ng memorya sa server

Sa panahon ng mga eksperimento, ang maximum na rate ng pagtagas ng impormasyon ay 34.41 bytes bawat oras kapag umaatake sa pamamagitan ng isang pandaigdigang network at 302.16 bytes bawat oras kapag umaatake sa pamamagitan ng isang lokal na network, na mas mabilis kaysa sa iba pang mga paraan ng pagkuha ng data sa pamamagitan ng mga third-party na channel (halimbawa, sa isang pag-atake ng NetSpectre, ang rate ng paglilipat ng data ay 7.5 bytes sa ala-una).

Tatlong gumaganang opsyon sa pag-atake ang iminungkahi. Ang unang opsyon ay nagbibigay-daan sa iyo upang matukoy ang data sa memorya ng web server na gumagamit ng Memcached. Ang pag-atake ay nagmumula sa paglo-load ng ilang partikular na hanay ng data sa imbakan ng Memcached, pag-clear sa na-deduplicate na bloke, muling pagsusulat ng parehong elemento at paglikha ng kundisyon para mangyari ang pagkopya ng COW sa pamamagitan ng pagbabago sa mga nilalaman ng block. Sa panahon ng eksperimento sa Memcached, posibleng matukoy sa 166.51 segundo ang bersyon ng libc na naka-install sa isang system na tumatakbo sa isang virtual machine.

Ang pangalawang opsyon ay naging posible upang malaman ang mga nilalaman ng mga tala sa MariaDB DBMS, kapag gumagamit ng InnoDB storage, sa pamamagitan ng muling paglikha ng mga nilalaman byte sa pamamagitan ng byte. Ang pag-atake ay isinasagawa sa pamamagitan ng pagpapadala ng mga espesyal na binagong kahilingan, na nagreresulta sa mga single-byte na hindi pagkakatugma sa mga pahina ng memorya at pagsusuri sa oras ng pagtugon upang matukoy na tama ang hula tungkol sa mga nilalaman ng byte. Ang rate ng naturang pagtagas ay mababa at umaabot sa 1.5 bytes bawat oras kapag umaatake mula sa isang lokal na network. Ang bentahe ng pamamaraan ay maaari itong magamit upang mabawi ang hindi kilalang mga nilalaman ng memorya.

Ang ikatlong opsyon ay naging posible na ganap na ma-bypass ang mekanismo ng proteksyon ng KASLR sa loob ng 4 na minuto at makakuha ng impormasyon tungkol sa memory offset ng virtual machine kernel image, sa isang sitwasyon kung saan ang offset address ay nasa isang memory page kung saan ang ibang data ay hindi nagbabago. Ang pag-atake ay isinagawa mula sa isang host na matatagpuan 14 hops mula sa attacked system. Ang mga halimbawa ng code para sa pagpapatupad ng mga ipinakitang pag-atake ay ipinangako na ilalathala sa GitHub.

Pinagmulan: opennet.ru

Magdagdag ng komento