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

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

Атаките срещу механизма за дедупликация на паметта използват разликата във времето за обработка на запис като канал за изтичане на информация в ситуации, в които промяна на данни кара механизма за копиране при запис (COW) да клонира страницата с дедупликирана памет. По време на работа ядрото открива идентични страници с памет от различни процеси и ги обединява, картографирайки идентични страници с памет в една област на физическата памет, за да съхранява само едно копие. Когато един от процесите се опита да промени данните, свързани с дедуплицирани страници, възниква изключение (страница грешка) и с помощта на механизма 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 байта на час при атака от локална мрежа. Предимството на метода е, че може да се използва за възстановяване на неизвестно съдържание на паметта.

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

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

Добавяне на нов коментар