Ученые разработали новую технику атаки на защищенные компьютерные системы, злоупотребляя спекулятивным исполнением - механизмом ЦП, который обычно используется для оптимизации производительности.
Техника, названная BlindSide, была подробно описана ранее, опубликована группой ученых из Технологического института Стивенса в Нью-Джерси, ETH Zurich и Университета Vrije в Амстердаме.
Исследователи говорят, что BlindSide можно использовать для создания эксплойтов, которые обходят ASLR (рандомизацию адресного пространства) в современных операционных системах.
BlindSide может обходить ASLR
Адреса памяти важны для злоумышленника. Если злоумышленник знает, где приложение выполняет свой код в памяти, хакер может точно настроить эксплойты, которые атакуют определенные приложения и крадут конфиденциальную информацию. Как видно из названия, ASLR работает, рандомизируя место, где код выполняется внутри памяти, эффективно нейтрализуя атаки, пока злоумышленники не найдут способ обойти ASLR.
Чтобы обойти ASLR, злоумышленнику обычно требуется найти уязвимость типа «утечки информации», которая приводит к утечке участков памяти; или злоумышленник может исследовать память, пока не найдет правильное место, где запускается другое приложение, а затем изменить свой код, чтобы нацелить это адресное пространство памяти.
Оба метода сложно реализовать, особенно второй, который часто приводит к сбоям системы или к шумному зондированию злоумышленника, обнаруживаемому системами безопасности.
Новая атака BlindSide работает, перемещая это зондирование в сферу спекулятивного исполнения.
Спекулятивное исполнение
Спекулятивное исполнение - это функция современных процессоров, повышающая производительность. Во время спекулятивного выполнения ЦП выполняет операции заранее и параллельно с основным вычислительным потоком.
Когда основной поток ЦП достигает определенных точек, спекулятивное выполнение позволяет ему выбрать уже вычисленное значение и перейти к следующей задаче, процессу, который приводит к более быстрым вычислительным операциям. Все значения, вычисленные во время спекулятивного выполнения, отбрасываются без влияния на операционную систему.
Ученые говорят, что тот же самый процесс, который может значительно ускорить процессоры, может также «усилить серьезность распространенных уязвимостей программного обеспечения, таких как ошибки повреждения памяти, путем введения спекулятивного исследования».
По сути, BlindSide берет уязвимость в программном приложении и снова и снова использует ее в домене спекулятивного исполнения, многократно исследуя память, пока злоумышленник не обойдет ASLR.
Поскольку эта атака имеет место в сфере спекулятивного выполнения, все неудачные проверки и сбои не влияют на ЦП или его стабильность, когда они происходят, и подавляются, а затем отбрасываются.
Все, что нужно злоумышленнику, - это простая уязвимость, связанная с повреждением памяти, которую он может использовать в системе. В своей исследовательской работе команда использовала единичное переполнение буфера в ядре Linux, чтобы:
- Взломайте KASLR с помощью BlindSide, чтобы установить надежный ROP-эксплойт;
- Взломайте произвольные схемы рандомизации с помощью BlindSide, чтобы смонтировать эксплойт только для архитектурных данных (утечка хэша пароля root);
- Прервите детальную рандомизацию и память только для выполнения ядра, чтобы вывести полный текст ядра и смонтировать надежный эксплойт ROP.
- Исследователи заявили, что BlindSide позволяет злоумышленникам «взламывать вслепую», не беспокоясь об ASLR.
Атаки BlindSide также работают независимо от архитектуры и тестируются как на процессорах Intel, так и на AMD.
Кроме того, атаки BlindSide также работают, несмотря на недавние меры защиты, которые поставщики ЦП добавили против атак со спекулятивным исполнением, таких как Spectre, Meltdown и других.
В исследовательском документе команды предлагаются несколько способов защиты, которые производители ОС могут использовать для противодействия атакам BlindSide.