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