Ну что, у всех ОС уже научилась подписывать бинарники, запрещать выполнение кода на стеке и в куче, рандомизировать адреса загрузки и т.д. и т.п.?
Внезапно, снова приходят бизнес-требования, конкуренты и т.д. и т.п. которым надо здесь и сейчас.
И поскольку теперь всем лень писать нэйтивный секьюрный код - дорого же! - мы просто ляпаем JS (или какой-нибудь другой рантайм) поверх суперсекьюрной песочницы, и радостно возвращаемся в исходную точку!
http://blog.kotowicz.net/2012/09/owning-system-through-chrome-extension.html
Короче, поскольку у нас везде есть тьюринг-полный интерпретатор, который *снова* не отличает код от данных - только теперь это не странички в памяти, а строки, байткод и логика в рантайме, то вуаля, arbitrary remote code execution. Часто кроссплатформенное.
И полное поимение системы, теперь уже на другом уровне. Да, у нас всё в песочнице. Только теперь из нее даже не обязательно вылазить. Хотя на каждом втором pwnium Pinkie Pie все равно из нее вылазит :)
We need to go deeper!
Внезапно, снова приходят бизнес-требования, конкуренты и т.д. и т.п. которым надо здесь и сейчас.
И поскольку теперь всем лень писать нэйтивный секьюрный код - дорого же! - мы просто ляпаем JS (или какой-нибудь другой рантайм) поверх суперсекьюрной песочницы, и радостно возвращаемся в исходную точку!
http://blog.kotowicz.net/2012/09/owning-system-through-chrome-extension.html
Короче, поскольку у нас везде есть тьюринг-полный интерпретатор, который *снова* не отличает код от данных - только теперь это не странички в памяти, а строки, байткод и логика в рантайме, то вуаля, arbitrary remote code execution. Часто кроссплатформенное.
И полное поимение системы, теперь уже на другом уровне. Да, у нас всё в песочнице. Только теперь из нее даже не обязательно вылазить. Хотя на каждом втором pwnium Pinkie Pie все равно из нее вылазит :)
We need to go deeper!