Эксперты из Швейцарской высшей технической школы Цюриха, Технологического института Стивенса, а также Амстердамского свободного университета рассказали о созданной ими спекулятивной атаке BlindSide.
Данная атака работает независимо от архитектуры и тестировалась как на процессорах Intel, так и на процессорах AMD. Суть BlindSide заключается в злоупотреблении функцией повышающей производительность процессора и использования этого для обхода защитного механизма ASLR (Address Space Layout Randomization, «Рандомизация адресного пространства»).
Отдельно отмечается, что против BlindSide не помогают патчи, ранее выпущенные для таких известных спекулятивных багов, как Spectre и Meltdown.
Исследователи рассказывают, что обычно для обмана ASLR злоумышленнику нужно найти уязвимость, относящуюся к типу «утечек информации», чтобы исследовать память и найти нужное место, где запускается целевое приложение, а затем нацелить вредоносный код точно на выделенное адресное пространство. Как правило, такое «зондирование» памяти легко обнаруживается, и защитные механизмы блокируют атакующего, однако BlindSide позволяет перенести такую атаку в плоскость спекулятивного или упреждающего исполнения (speculative), и в результате злоумышленник может остаться незамеченным.
В сущности, спекулятивное исполнение призвано повысить производительность процессоров. Так, вместе с основным потоком процессор заранее выполняет и другие задачи, которые тоже могут пригодиться. По словам исследователей, этот механизм может использоваться и для «усиления серьезности распространенных уязвимостей, в том числе ошибок нарушения целостности информации в памяти». То есть, используя спекулятивное исполнение, BlindSide может эксплуатировать какую-то уязвимость снова и снова, тщательно исследуя память, пока в итоге не будет осуществлен обход ASLR.
За счет того, что атака происходит в сфере спекулятивного исполнения, все неудачные попытки никак не влияют на процессор и стабильность его работы, и в целом они практически незаметны. Для реализации такой атаки хакеру понадобится лишь простая уязвимость, связанная с нарушением целостности информации в памяти. Сами исследователи использовали для этого проблему переполнения буфера в ядре Linux. Видео ниже демонстрирует тестовую атаку в действии.