Предложен метод за атака за отдалечено определяне на фрагменти от паметта на сървъра

Група изследователи от Техническия университет в Грац (Австрия), известна със своето разработване на атаките MDS, NetSpectre, Throwhammer и ZombieLoad, публикува нов метод на атака (CVE-2021-3714) чрез странични канали на механизма за дедаупликация на страници в паметта (Memory-Deduplication), който позволява определяне наличието на определени данни в паметта, организиране на побайтово изтичане на съдържание от паметта или определяне разпределението на паметта за заобикаляне на защита на основата на рандомизация на адресите (ASLR). Новият метод се различава от предишно демонстрираните варианти на атаки на механизма за дедаупликация, като задна атака се изпълнява от външен хост, използвайки за критерий времевите промени в отговорите на изпратените атакуващи заявки чрез протоколите HTTP/1 и HTTP/2. Възможността за извършване на атаката е демонстрирана за сървъри на базата на Linux и Windows.

Атаките на механизма за дедаупликация на паметта използват разликата във времето за обработка на операцията по запис за изтичане на информация, когато променянето на данните води до клониране на дедауплицирана страница в паметта чрез механизма Copy-On-Write (COW). По време на работа ядрото определя идентични страници в паметта от различни процеси и ги обединява, показвайки идентични страници в една област от физическата памет, като съхранява само една копия. При опит за промяна от един от процесите на данни, свързани с дедауплицираните страници, възниква изключение (page fault) и с помощта на механизма Copy-On-Write автоматично се създава отделна копия на страницата, която се прикачва към процеса. За извършването на копирането е необходима допълнителна време, което може да бъде признак за промяна на данните, съвпадащи с друг процес.

Изследователите показаха, че забавянията, възникващи в резултат на работата на механизма COW, могат да бъдат улавяни не само локално, но и чрез анализ на промените в времето за доставка на отговори в мрежата. Предложени са няколко метода за определяне съдържанието на паметта от отдалечен хост чрез анализ на времето за изпълнение на заявки по протоколите HTTP/1 и HTTP/2. За запазване на подбираеми шаблони се използват типични уеб приложения, които съхраняват информацията, идваща от заявките в паметта.

Общият принцип на атаката се свежда до запълване на на сървър страници с памет, съдържащи потенциално дублирано съдържание с вече съществуваща страница на сървъра. След това, атакуващият изчаква времето, необходимо за изпълнение на дедупликацията и съединяването на страницата с памет, след което извършва промяна на контролирания дублиран данни и оценява времето за реакция, за да определи успешността на улучването.

Предложен метод за атака за отдалечено определяне на фрагменти от паметта на сървъра

По време на проведените експерименти максималната скорост на изтичане на информация е била 34.41 байта на час при атака през глобалната мрежа и 302.16 байта на час при атака през локалната мрежа, което е по-бързо от другите методи за извличане на данни чрез странични канали (например, при атаката NetSpectre скоростта на предаване на данни е 7.5 байта на час).

Предложени са три работни варианта на атака. Първият вариант позволява да се определи информацията в паметта уеб сървър, в който се използва Memcached. Атаката се свежда до зареждане на определени набори данни в Memcached, изчистване на дедуплицирания блок, повторно записване на същия елемент и създаване на условия за възникване на COW-копиране чрез промяна на съдържанието на блока. По време на експеримента с Memcached успяхме за 166.51 секунди да определим версията на libc, инсталирана в системата, работеща във виртуална машина.

Вторият вариант позволи да се узнае съдържанието на записите в СУБД MariaDB, при използване на хранилището InnoDB, чрез реконструиране на съдържанието байт по байт. Атаката се извършва чрез изпращане на специално модифицирани заявки, водещи до еднобайтови несъответствия в страниците с памет и анализ на времето за реакция, за да се определи дали предположението за съдържанието на байта е било вярно. Скоростта на подобно изтичане е малка и е 1.5 байта на час при атака от локалната мрежа. Предимството на метода е, че той може да се използва за възстановяване на неизвестно съдържание в паметта.

Третият вариант позволи за 4 минути напълно да бъде заобиколен механизмът за защита KASLR и да се получи информация за offset в паметта на образа на ядрото на виртуалната машина, в ситуация, когато адресът на offset се намира в страница с памет, чиито други данни не се променят. Атаката беше проведена от хост, находящ се на 14 транзитни прехода (hops) от атакуваната система. Примери за код за извършване на представените атаки обещават да бъдат публикувани в GitHub.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster