Обновление WebAssembly может сделать патчи для Meltdown и Spectre бесполезными

Back to Blog

Обновление WebAssembly может сделать патчи для Meltdown и Spectre бесполезными

Поддержка потоков позволит злоумышленникам измерять точное время через WebAssembly.

Обновление стандарта WebAssembly может сделать бесполезными часть патчей, исправляющих уязвимости Meltdown и Spectre, сообщил исследователь безопасности из компании Forcepoint Джон Бергбом (John Bergbom). WebAssembly (WA или Wasm) — новая технология, которая была выпущена в прошлом году и в настоящее время поддерживается во всех основных браузерах, таких как Chrome, Edge, Firefox и Safari. Технология представляет собой компактный двоичный язык, который браузер преобразует в машинный код и запускает его непосредственно на центральном процессоре.

Разработчики браузеров создали WebAssembly для повышения скорости и производительности кода JavaScript, однако в качестве дополнительной функции они также разработали способ переноса кода с других языков, таких как C, C ++ и другие, в Wasm.

Как полагает исследователь, у WebAssembly может быть еще одна побочная функция.

«Как только Wasm получит поддержку потоков с разделяемой памятью, могут быть созданы очень точные таймеры, которые могут сделать возможными атаки по сторонним каналам в браузере», — отметил специалист.

Когда Meltdown и Spectre были обнаружены в январе текущего года, исследователи опубликовали PoC-код, который злоумышленник мог использовать для эксплуатации данных уязвимостей удаленно через браузер. Данный код использовал внутренние встроенные функции браузеров для измерения временных интервалов, таких как «SharedArrayBuffer» и «performance.now ()».

Производители браузеров, таких как Firefox и Chrome, сразу же отреагировали, выпустив обновления, которые снижали точность таймеров в данных функциях.

Однако, по словам эксперта, после того, как поддержка потоков будет добавлена в WebAssembly, исправления для браузеров станут бесполезны, поскольку у злоумышленников появится новый способ измерения точного времени через WebAssembly.

Поделиться этим постом

Back to Blog