Хакер #305. Многошаговые SQL-инъекции
Специалист МТИ Владимир Кирианский (Vladimir Kiriansky) и основатель компании Carl Waldspurger Consulting Карл Валдспургер (Carl Waldspurger) представили доклад (PDF) о новых векторах атак на оригинальную уязвимость Sperctre вариант 1 (CVE-2017-5753).
Обнаруженные проблемы получили идентификаторы Spectre 1.1 (CVE-2018-3693) и Spectre 1.2. Равно как и другие варианты уязвимостей Meltdown и Spectre, два новых бага также используют в работе особенности архитектур современных процессоров, которые прибегают к внеочередным (out-of-order) и одновременно упреждающим (или спекулятивным — speculative) механизмам исполнения инструкций.
Наиболее опасной из двух новых проблем является Spectre 1.1. Согласно данным специалистов, баг очень похож на Spectre вариант 1 и 4: он позволяет осуществить bounds check bypass. В данном случае это Bounds Check Bypass Store (BCBS) — обход проверки границ хранилища. Проблема способна спровоцировать переполнение speculative-буфера, что может быть использовано атакующим для внедрения и исполнения произвольного кода, который позволит извлечь данные из ранее защищенных областей памяти (включая пароли, криптографические ключи и так далее).
«Возможность исполнения произвольных speculative-записей несет с собой новые и очень большие риски, включая спекулятивное исполнение произвольного кода. Это позволит атакующим обойти софтверные механизмы, ранее рекомендованные производителями для защиты от спекулятивных атак», — пишут исследователи и подчеркивают, что в настоящее время обнаружить Spectre 1.1 или защититься от такой атаки попросту невозможно.
В свою очередь, проблема Spectre 1.2 позволяет перезаписывать указатели и данные в тех областях памяти CPU, которые в нормальных условиях защищены PTE-флагами read-only (включая vtables, GOT/IAT и так далее). В результате все это может помочь обойти защиту песочниц.
К счастью, для работы Spectre 1.1 и 1.2 по-прежнему требуется, чтобы злоумышленник уже присутствовал в системе и скомпрометировал ее заранее, получив необходимые привилегии.
Представители Intel и ARM уже опубликовали техническую документацию, посвященную новым проблемам. Microsoft обновила бюллетень безопасности, посвященный Spectre и Meltdown, добавив в него информацию о CVE-2018-3693. Кроме того, сообщается, что инженеры Oracle и Red Hat уже изучают возможные риски для своих продуктов и постараются разработать софтверные защитные механизмы. В Oracle уверены, что в будущем ИБ-специалисты продолжат находить все новые вариации Meltdown и Spectre. Стоит заметить, что компания AMD ситуацию пока никак не прокомментировала.
За обнаружение новых «процессорных» проблем Владимир Кирианский и Карл Валдспургер получили 100 000 долларов от компании Intel, в рамках bug bounty программы производителя, работающей на платформе HackerOne. Напомню, что bug bounty программа компании стала доступна публично лишь после обнаружения Meltdown и Spectre в начале 2018 года.