Два студента из Калифорнийского университета в Сан Диего, Эрик Баханэн и Райан Рёмер показали, как можно превратить обычный компьютерный код во вредоносный. Для этого используется специальная техника, называемая «возвратно-ориентированным программированием». Этот подход отличается от традиционного, в котором используются инъекции вредоносного кода в обычные программы.
В прошлом году профессор Говав Шахэм из Калифорнийского университета в Сан-Диего (США) уже показывал, как эта тхника может быть использована, чтобы заставить процессор x86 исполнять вредоносные инструкции без инъекции вредоносного кода. Однако его атака требовала кропотливого ручного кодирования и опиралась на особенности архитектуры x86. В отличие от него, Баханэн и Рёмер разработали способ автоматической атаки применитеьно к RISC процессоры.
Как и многие традиционные способы «вирусописания», возвратно-ориентированное программирование опирается на замену содержимого стэка, позволяющего в свою очередь изменить порядок выполнения инструкций. Но вместо использования инъекции кода новая технология собирает вредоносный код из текущих инструкций в программе.
В качестве примера Шахэм приводит ситуацию, в которой данная технология используется с целью заставить веб-браузер красть пароли пользователя или рассылать спам, применяя только тот код, который изначально есть в самом веб-браузере.
В исследовании не только был рассмотрен новый механизм заражения, но и предложено несколько вариантов защиты от возвратно-ориентированного программирования. Но если это не сработает, то в будущем, возможно, придется отбрость современную «антивирусную» модель (согласно которой код статически делится на хороший и плохой) и сосредоточиться на динамическом определении того, каковы могут быть результаты исполнения того или иного потока. респект
Код кодом но кто то же должен заставить браузер выполнять код именно в такой последовательности в которой нужно злоумышленнику. Все равно же есть инициатор - вот по нему и будут палить...
Цитата:
были кое какие мысли на эту тему у ZOMBiE
У этого многоликого наркомана с манией величия всегда какие то мысли :-)
Основной вопрос - насколько масштабные изменения исходной программы потребуются?
То, что нужно будет патчить стек - понятно. Видимо, понадобится менять и данные...