Изследователите от Центъра по информационна безопасност на Гелмгольц (CISPA) публикуваха резултатите от своето проучване относно защитата на процесорите с архитектура RISC-V и разкриха информация за уязвимост, наречена GhostWrite. Уязвимостта засяга RISC-V процесорите XuanTie C910, произвеждани от китайската компания T-Head (дъщерно дружество на Alibaba) и се развиват в рамките на открити проекти. Тази уязвимост дава възможност на нападателя с ограничен, непривилегирован достъп до системата да чете и записва в произволни области на физическата памет, както и да получи достъп до управлението на периферни устройства като мрежови карти, използващи MMIO (Memory-Mapped Input/Output).
Уязвимостта е причинена от недостатъци в архитектурата на процесора свързани с изолацията на добавените от производителя инструкции, които разширяват архитектурата на командния набор RISC-V и позволяват пряк достъп до DRAM, заобикаляйки механизмите на виртуалната памет. Изпълнението на някои разширени инструкции директно с физическата памет вместо с виртуалната памет позволява заобикаляне на изолацията на паметта между процесите.
Подготвената техника за извършване на атака е 100% възпроизводима и изисква изпълнение на кода в рамките на само няколко микросекунди. Программните методи за изолация, като контейнери и sandbox среди, не пречат на експлоатацията на уязвимостта. Единственото решение за блокиране на уязвимостта е пълното деактивиране на поддръжката на векторни разширения, което води до намаляване на производителността с 33% в тестовете rvv-bench (в анотацията на доклада е посочено 77%, а на обобщаващата страница — 33%, като в детайлите споменават намаляване производителността на memcpy с 33%, а на memset с 8%), и също така намалява наполовина наличния набор от процесорни инструкции за приложенията.
Процесорите XuanTie C910 са едни от най-високопроизводителните чипове RISC-V на пазара и вече се използват активно в сървъри облачни системи и лаптопи. Проблемът се проявява в сървъри Scaleway Elastic Metal RV1, клъстери Lichee Cluster 4A, лаптоп Lichee Book 4A, игрова конзола Lichee Console 4A, портативен компютър Lichee Pocket 4A, едноплатови компютри Sipeed Lichee Pi 4A, Milk-V Meles и BeagleV-Ahead.
Като пример изследователите са подготвили експлоит, който позволява на непривилегирован потребител да получи root права в Linux. Експлоитът променя съдържанието на таблицата със страници в паметта, използвана за транслиране на виртуални адреси в физически, за да се получат виртуални адреси, свързани с произволни физически адреси. Подготвен е и пример на експлоит за четене на съдържанието на паметта на ядрото и на други процеси, което позволява извличането на съхраняваните в паметта ключове за криптиране и пароли.
Допълнително изследователите установиха две по-малко опасни архитектурни уязвимости — едната засяга процесорите T-Head XuanTie C906, а другата T-Head XuanTie C908. И двете уязвимости са свързани с отказ на услугата поради спиране на работата на CPU. Уязвимостите могат да представляват опасност за облачни платформи, изградени на базата на чиповете T-Head XuanTie, тъй като наличието на достъп до изпълнение на код в облачна среда дава възможност за спиране на работата на и на други потребители, обслужвани на същото сървър.
Проблемите бяха открити с помощта на фреймуърка RISCVuzz, създаден за fuzzing тестване на CPU. Фреймуъркът открива разлики в реализацията на идентични разширени инструкции на различни CPU, в съответствие с предположението, че поради отсъствието на единен регистър на разширенията на командния набор RISC-V, идентично кодируемите инструкции на чиповете на различни производители могат да доведат до извършване на различни действия. Проверка беше извършена чрез сравнение на поведението при обработка на процесорни инструкции на различни CPU RISC-V и анализ на възможните уязвимости в ситуациите, в които беше наблюдавано разминаване в поведението.
Източник: opennet.ru
