Изследователи от Университетa в Торонто представиха първата атака от клас Rowhammer, применима за изкривяване на съдържанието на видеопаметта. Демонстрирана е възможността за извършване на атака, която води до замяна на до 8 бита данни, при дискретния GPU NVIDIA A6000 с видеопамет GDDR6. Като практичен пример е показано как може да се използва такова изкривяване за намеса в изпълнението на модели за машинно обучение и значително (от 80% до 0.1%) намаляване на точността на резултатите, предоставяни от тях при промяна на стойността на един бит.

До момента създаването на атаки от клас Rowhammer за видеопаметта беше затруднено поради сложността на определяне на физическото разпределение на паметта в чиповете GDDR, големите закъснения при достъпа до паметта (4 пъти по-бавен) и по-високата честота на обновление на паметта. Освен това, провеждането на изследвания беше затруднено от използването на патентовани механизми за защита от манипулации, водещи до преждевременна загуба на заряд, за анализа на които беше необходимо създаването на специализирани хардуерни тестови стендове на база FPGA.
За изучаване на видеопаметта изследователите разработиха нова техника за обратно инженерство на GDDR DRAM, а в самата атака бяха използвани оптимизации за достъп до паметта, използвани за организиране на паралелни изчисления, които послужиха като усилватели за интензивността на достъпа до отделните клетки. За извършване на атаката на GPU NVIDIA бе използван нискоуровнев код CUDA.
В потребителския код CUDA не се извършва достъп до физическите адреси на паметта, но в драйвера NVIDIA се осъществява отразяване на виртуалната памет в същата физическа памет, от което изследователите се възползваха за изчисляване на отместването на виртуалната памет и определяне на разпределението на банковете памет. Разпознаването на достъпите до различни банкове памет бе направено чрез анализ на закъснения, които се различаваха при достъпа до един или до различни банкове памет.
В системи, които съвместно използват GPU, като сървъри С целта да се изпълняват модели на машинно обучение, атаката позволява на един потребител да промени съдържанието на видеопаметта с данни на друг потребител. Като предпазна мярка, компанията NVIDIA препоръчва да се активират кодовете за корекция на грешки (ECC, Error Correction Codes) с командата „nvidia-smi -e 1“ или да се използват серии видеокарти с поддръжка на OD-ECC (On-Die ECC), като GeForce RTX 50, RTX PRO, GB200, B200, B100, H100, H200, H20 и GH200.
Според изследователи, активирането на ECC на системи с GPU A6000 води до намаляване на производителността на изпълнението на модели на машинно обучение с приблизително 10% и намаляване на обема на паметта с 6.25%. Инструментарият за провеждане на атаката и извършване на обратен инженеринг на ниско ниво на разположението на видеопаметта на системи с GPU NVIDIA е публикуван в GitHub.
Атаката RowHammer позволява изкривяване на съдържанието на отделни битове памет в DRAM чрез циклично четене на данни от съседни клетки. Тъй като паметта DRAM представлява двумерен масив клетки, всяка от които се състои от кондензатор и транзистор, непрекъснатото четене на една и съща област от паметта води до флуктуации на напрежението и аномалии, причиняващи незначителна загуба на заряд в съседни клетки. При висока интензивност на четене, съседната клетка може да загуби достатъчно голямо количество заряд и следващият цикъл на регенерация няма да успее да възстанови първоначалното й състояние, което ще доведе до промяна в стойността на данните, запазени в клетката.
Методът на атаката Rowhammer беше предложен през 2014 г., след което между изследователите по сигурност и производителите на оборудване започна игра в „котки и мишки“ — производителите на чипове за памет се опитваха да блокират уязвимостта, а изследователите намираха нови начини за заобикаляне. Например, за защита от RowHammer производителите на чипове добавиха механизъм TRR (Target Row Refresh), но се оказа, че той блокира изкривяването на клетки само в специфични случаи, но не защитава от всички възможни варианти на атака. Методите за атака бяха разработени за чипове DDR3, DDR4 и DDR5 на системи с процесори Intel, AMD и ARM. Също така бяха намерени начини за заобикаляне на корекцията на грешки ECC и се предложиха варианти за извършване на атака през мрежа и чрез изпълнение на JavaScript код в браузъра.
Източник: opennet.ru
