Size: a a a

WebAssembly — русскоговорящее сообщество

2020 June 07

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Какое забавное видео)
https://www.softwaretalks.io/v/10949/black-hat-usa-2018-webassembly-a-new-world-of-native-exploits-on-the-browser

Все експлойты которые они создали вообще то эксплутация небезопасной работы с памятью C++  и старыми проблемами JS такими как XSS. Я честно говоря не очень понимаю для чего снимаются такие доклады?)
небезопасная работа с памятью в C++ после компиляции файла в васм становится небезопасной работой памятью в васме :)
источник

JC

Julian =) Coffee in WebAssembly — русскоговорящее сообщество
))
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
а доклад важен с точки зрения того, что вообще с безопасностью в васме, и что васм не является способом защиты от ряда уязвимостей
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
небезопасная работа с памятью в C++ после компиляции файла в васм становится небезопасной работой памятью в васме :)
Вот только память в wasm изолированная и максимум что ты можешь сделать это прочитать что то что и так можно было узнать скажем статически проанализировав data секцию. Заинжектить что то эдакое а потом еще и выполнить ты не сможешь. Выйти из песочницы тоже.
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
ты даже SEGFAULT не сможешь словить)
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Вот только память в wasm изолированная и максимум что ты можешь сделать это прочитать что то что и так можно было узнать скажем статически проанализировав data секцию. Заинжектить что то эдакое а потом еще и выполнить ты не сможешь. Выйти из песочницы тоже.
нет, потому что в памяти могут быть данные на основе user input
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
максимум перезаписать данные в data section в рамках текущего модуля
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
+ память васма может использоваться при атаках на уязвимости в js
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Ну или выйти за границы линейной памяти и получить исключение в рантайме
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
потому что она выделяется куском 4 Гб, а аллокаторы обычно халявят в рандомизации больших кусков памяти
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Ну или выйти за границы линейной памяти и получить исключение в рантайме
в памяти могут теоретически быть произвольные данные на основе user input, поэтому её чтение может быть уязвимостью
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
потому что она выделяется куском 4 Гб, а аллокаторы обычно халявят в рандомизации больших кусков памяти
Быделяеться больше, там еще Gaurd pages по гарницам выделяются
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
MaxGraey
Быделяеться больше, там еще Gaurd pages по гарницам выделяются
ага, но на минимум 4 точно можно рассчитывать. И туда можно записать и rop gadgets, и всякие faked vtable
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
в памяти могут теоретически быть произвольные данные на основе user input, поэтому её чтение может быть уязвимостью
Может, если использовать небезопасные C/C++ методы из stdlib. Но тогда ты сам дважды злой буратино. Можно еще приватный ключ в статической секции записать)
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Все это не проблема уязвимости WebAssembly
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
цель таких докладов - показать пределы возможностей, чтобы люди не думали, что это панацея от любых уязвимостей
источник

M

MaxGraey in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
цель таких докладов - показать пределы возможностей, чтобы люди не думали, что это панацея от любых уязвимостей
Вот это возможно
источник

MV

Mikhail Voronov in WebAssembly — русскоговорящее сообщество
Mikhail Voronov
+ память васма может использоваться при атаках на уязвимости в js
удивлён, что про это не было доклада ещё (или мб я не видел), надо бы ctf таск сделать
источник

К

Константин in WebAssembly — русскоговорящее сообщество
:) там на Mali ноутбучном (есть такое) дырявая память у GPU, когда блок из RAM заливается в VRAM
источник

К

Константин in WebAssembly — русскоговорящее сообщество
можно прочитать через gl.readPixels после, в хроме, соседнюю память.
вроде говорят это сложно поправит из-за кривых дров.
Дико сложно использовать, но просили не рассказывать, как это воспроизвести:)
источник