2017-02-07 3 views
1

Что такое повторное использование кода и как мы можем защищаться от них? Мне бы понравился пример.
Что такое повторное использование кода?

Я не понимаю, как атака повторного использования значительно отличается от атаки переполнения буфера.

Может ли кто-нибудь помочь мне по этому вопросу?

+4

Buffer overflow - это проблема _vulnerability_ (проблема в коде), которая позволяет повторное использование кода, ввод кода или другие атаки (используемая техника). –

+0

@ t.niese Так будет ли возвращение к атаке lib-c быть формой повторного использования кода? –

+0

Если вы не используете способ перезаписи кода в памяти (ввод кода), но измените поток управления, например, переполнение буфера для использования существующего кода по-другому, как предполагалось, тогда это повторное использование кода. Возвращение в clib не изменяет существующий код, но манипулирует стекем, так что это повторное использование кода. –

ответ

3

Это метод эксплуатации, который полагается на выполнение кода, который уже присутствует в памяти (например, как часть стандартной библиотеки), вместо того, чтобы отправлять его атакуемому хосту в качестве части полезной нагрузки. Это значительно усложняет работу программного обеспечения для смягчения атак, поскольку площадь поверхности атаки уменьшается и значительно усложняет обнаружение (например, отпечатки пальцев) и отличает от законного трафика. wiki https://en.wikipedia.org/wiki/Return-oriented_programming

+1

Что вы подразумеваете под «стандартной библиотекой»? Если вы не используете какой-либо свой собственный код - какой реальный урон вы могли бы сделать? –

+1

вы собираете фрагменты кода библиотеки, чтобы сделать что-то нужное. –