Разработчикам приложений, способных интерпретировать внешние коды, следует соблюдать осторожность.
Защитить от эксплуатации уязвимостей класса Spectre, затрагивающих большинство современных процессоров, с помощью одного лишь программного обеспечения невозможно. К такому выводу пришли специалисты компании Google по результатам анализа Spectre.
Исследователи безопасности Росс Макилрой (Ross Mcilroy), Ярослав Шевчик (Jaroslav Sevcik), Тобиас Тебби (Tobias Tebbi), Бен Титцер (Ben L. Titzer) и Тоон Верваест (Toon Verwaest) сообщили, что могут создать так называемый «универсальный гаджет» для эксплуатации уязвимостей Spectre в различных семействах процессоров. С его помощью запущенный в потоке вредоносный код может читать все содержимое памяти в одном с ним адресном пространстве. То есть, встроенный во вредоносную web-страницу JavaScript-код, выполняемый в потоке браузера, может следить за JavaScript-кодом другой web-страницы, запущенной в другом потоке, и похищать чувствительную информацию.
В браузерах уже предусмотрена защита от подобных атак. Например, в Chrome реализована функция изоляции сайтов, разделяющая web-страницы по разным процессам. Firefox, Internet Explorer и Edge блокируют использование объекта JavaScript под названием SharedArrayBuffer, который может использоваться для похищения данных через уязвимости Spectre. Тем не менее, угроза по-прежнему остается актуальной для приложений, способных обработать вредоносный код злоумышленника, считают исследователи.
Способы защиты от эксплуатации Spectre, реализованные на уровне языков программирования, не могут в полной мере обеспечить безопасность. Разделение процессов необходимо осуществить на аппаратном уровне таким образом, чтобы у каждого процесса было собственное виртуальное адресное пространство и таблицы страниц, уверены эксперты.
Ситуаций, когда вредоносный код злоумышленника может интерпретироваться в одном адресном пространстве с кодом пользователя, не так много – главным образом это касается браузеров. Поскольку в браузерах защита от атак с эксплуатацией Spectre уже реализована, работа исследователей Google является чисто теоретической и не является поводом для паники. Тем не менее, разработчикам приложений, способных обрабатывать внешние коды, есть над чем задуматься.
«Мы уверены, что спекулятивные уязвимости в современном аппаратном обеспечении отменяют меры по обеспечению конфиденциальности, реализованные на уровне языков программирования. Каких-либо известных мер по полноценному исправлению уязвимостей на уровне программного обеспечения не существует», - отметили авторы исследования.
Живой, мертвый или в суперпозиции? Узнайте в нашем канале