Американские студенты придумали новую технологию написания вирусов

image

Теги: вирус, программирование

Студенты используют специальную технику, называемую «возвратно-ориентированным программированием». Этот подход отличается от традиционного, в котором используются инъекции вредоносного кода в обычные программы.

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

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

Как и многие традиционные способы «вирусописания», возвратно-ориентированное программирование опирается на замену содержимого стэка, позволяющего в свою очередь изменить порядок выполнения инструкций. Но вместо использования инъекции кода новая технология собирает вредоносный код из текущих инструкций в программе.

В качестве примера Шахэм приводит ситуацию, в которой данная технология используется с целью заставить веб-браузер красть пароли пользователя или рассылать спам, применяя только тот код, который изначально есть в самом веб-браузере.

В исследовании не только был рассмотрен новый механизм заражения, но и предложено несколько вариантов защиты от возвратно-ориентированного программирования. Но если это не сработает, то в будущем, возможно, придется отбрость современную «антивирусную» модель (согласно которой код статически делится на хороший и плохой) и сосредоточиться на динамическом определении того, каковы могут быть результаты исполнения того или иного потока.


comments powered by Disqus