Jump to content

JIT-распыление

JIT-распыление — это класс эксплойтов компьютерной безопасности , который обходит защиту рандомизации структуры адресного пространства и предотвращение выполнения данных , используя поведение своевременной компиляции . [1] Он использовался для использования PDF. формата [2] и Adobe Flash . [3]

JIT- компилятор по определению создает код в качестве данных. Поскольку целью является создание исполняемых данных, JIT-компилятор является одним из немногих типов программ, которые нельзя запускать в среде без исполняемых данных. По этой причине JIT-компиляторы обычно освобождаются от предотвращения выполнения данных. Атака JIT Spray распыляет сгенерированный код.

Создать код эксплойта из JIT, идея от Диона Блазакиса. [4] используется. Программа ввода, обычно JavaScript или ActionScript , обычно содержит множество константных значений, которые могут быть ошибочно выполнены как код. Например, XOR : можно использовать операцию [5]

var a = (0x11223344^0x44332211^0x44332211^ ...);

Затем JIT преобразует байт-код в собственный код x86, например:

0:  b8 44 33 22 11      mov $0x11223344,%eax    mov eax,0x11223344
5:  35 11 22 33 44      xor $0x44332211,%eax    xor eax,0x44332211
a:  35 11 22 33 44      xor $0x44332211,%eax    xor eax,0x44332211

Затем злоумышленник использует подходящую ошибку, чтобы перенаправить выполнение кода в вновь сгенерированный код. Например, переполнение буфера или использование ошибки после освобождения может позволить атаке изменить указатель функции или адрес возврата.

Это заставляет ЦП выполнять инструкции способом, не предусмотренным авторами JIT. Злоумышленник обычно даже не ограничен ожидаемыми границами инструкций; можно перейти в середину заданной инструкции, чтобы ЦП интерпретировал ее как что-то другое. Как и в случае с атаками без JIT ROP , этой операции может быть достаточно, чтобы с пользой получить контроль над компьютером. Продолжая приведенный выше пример, переход ко второму байту инструкции «mov» приводит к созданию инструкции «inc»:

1:  44                  inc %esp                inc esp
2:  33 22               xor (%edx),%esp         xor esp,DWORD PTR [edx]
4:  11 35 11 22 33 44   adc %esi,0x44332211     adc DWORD PTR ds:0x44332211,esi
a:  35 11 22 33 44      xor $0x44332211,%eax    xor eax,0x44332211

x86 и x86-64 позволяют переходить в середину инструкции, но не архитектуры фиксированной длины, такие как ARM .

Чтобы защититься от JIT-распыления, JIT-код можно отключить или сделать менее предсказуемым для злоумышленника. [4]

  1. ^ Юрген Шмидт (20 января 2011 г.). «Возвращение опрыскивателя — распыление JIT: способы победить DEP и ASLR» . Х. ​Проверено 22 января 2011 г.
  2. ^ Хайфэй Ли (10 февраля 2010 г.). «JIT-распыление в PDF» . Блог Фортинет. Архивировано из оригинала 18 апреля 2010 года . Проверено 22 января 2011 г.
  3. ^ Ларри Зельцер (4 февраля 2010 г.). «Новый спрей JIT проникает в лучшую защиту Windows» . PCMag . Проверено 22 января 2011 г.
  4. ^ Jump up to: а б Дион Блазакис. «Эксплуатация интерпретатора. Вывод указателя и JIT-распыление» (PDF) . Черная шляпа и Defcon 2010 .; «Слайды» (PDF) .
  5. ^ Алексей Синцов (5 марта 2010 г.). «Написание шелл-кода JIT-Spray для удовольствия и прибыли» . Безопасность пакетного шторма . Проверено 30 января 2012 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c0c6be1e7fc69b1f28cf34b78ae92c0c__1692988980
URL1:https://arc.ask3.ru/arc/aa/c0/0c/c0c6be1e7fc69b1f28cf34b78ae92c0c.html
Заголовок, (Title) документа по адресу, URL1:
JIT spraying - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)