JIT распыление - JIT spraying - Wikipedia
JIT распыление это класс эксплойт компьютерной безопасности что обходит защиту рандомизация разметки адресного пространства (ASLR) и Предотвращение выполнения данных (DEP), используя поведение своевременная компиляция.[1] Он использовался для эксплуатации PDF формат[2] и Adobe Flash.[3]
А своевременный компилятор (JIT) по определению производит код как свои данные. Поскольку целью является создание исполняемых данных, JIT-компилятор является одним из немногих типов программ, которые не могут быть запущены в среде без исполняемых данных. Из-за этого JIT-компиляторы обычно не защищены от выполнения данных. JIT-спрей-атака делает кучное опрыскивание с сгенерированным кодом.
Создание кода эксплойта из JIT, идея Диона Блазакиса[4] используется. Программа ввода, обычно JavaScript или же ActionScript, обычно содержит множество постоянных значений, которые могут быть ошибочно выполнены в виде кода. Например, XOR операция может быть использована:[5]
вар а = (0x11223344^0x44332211^0x44332211^ ...);
Затем JIT преобразует байт-код в собственный код x86, например:
0: b8 44 33 22 11mov $ 0x11223344,% eax
mov eax,0x11223344
5: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
а: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
Затем злоумышленник использует подходящую ошибку, чтобы перенаправить выполнение кода во вновь созданный код. Например, переполнение буфера или же использовать после бесплатного ошибка может позволить атаке изменить указатель на функцию или обратный адрес.
Это заставляет ЦП выполнять инструкции непредусмотренным авторами JIT способом. Атакующий обычно даже не ограничивается ожидаемыми границами инструкций; можно перейти к середине предполагаемой инструкции, чтобы ЦП интерпретировал ее как нечто другое. Как и в случае без JIT ROP атаки, этого может быть достаточно, чтобы с пользой взять под контроль компьютер. Продолжая приведенный выше пример, переход ко второму байту инструкции "mov" приводит к инструкции "inc":
1: 44inc % esp
inc особенно
2: 33 22xor (% edx),% esp
xor особенно,DWORD PTR [edx]
4: 11 35 11 22 33 44adc % esi,0x44332211
adc DWORD PTR ds:0x44332211,ESI
а: 35 11 22 33 44xor 0x44332211 $,% eax
xor eax,0x44332211
Компьютерное оборудование, позволяющее перейти к середине инструкции, включает: x86, x86-64, и РУКА. Хотя JIT-распыление особенно эффективно для этого типа оборудования, оно также работает и на других системах.
Для защиты от JIT-распыления код JIT можно отключить или сделать менее предсказуемым для злоумышленника.[4]
Рекомендации
- ^ Юрген Шмидт (20 января 2011 г.). «Возвращение опрыскивателя - JIT Spraying: эксплойты для победы над DEP и ASLR». H. Получено 22 января 2011.
- ^ Хайфэй Ли (10 февраля 2010 г.). «JIT-распыление в PDF». Блог Fortinet. Архивировано из оригинал 18 апреля 2010 г.. Получено 22 января 2011.
- ^ Ларри Зельцер (4 февраля 2010 г.). "Новый" JIT Spray "проникает в лучшие средства защиты Windows". PCmag.com. Получено 22 января 2011.
- ^ а б Дион Блазакис. «Использование интерпретатора. Вывод указателя и JIT-распыление» (PDF). Black Hat & Defcon 2010.; «Слайды» (PDF).
- ^ Написание шелл-кода JIT-Spray для удовольствия и прибыли, Алексей Синцов,
Этот компьютерная безопасность статья - это заглушка. Вы можете помочь Википедии расширяя это. |