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