Jump to content

Атака с возвратом в libc

(Перенаправлено с Return-to-libc )

Атака «возврата в libc» — это атака на компьютерную безопасность , обычно начинающаяся с переполнения буфера подпрограммы , при котором адрес возврата в стеке вызовов заменяется адресом подпрограммы, которая уже присутствует в исполняемой памяти процесса , минуя функция no-execute bit (если имеется) и избавляет злоумышленника от необходимости внедрять собственный код. Первый пример этой атаки в реальной жизни был предоставлен Александром Песляком в списке рассылки Bugtraq в 1997 году. [1]

В POSIX -совместимых операционных системах стандартная библиотека C (" libc") обычно используется для обеспечения стандартной среды выполнения программ, написанных на языке программирования C. Хотя злоумышленник может заставить код вернуться куда угодно, libc является наиболее вероятной целью, поскольку она почти всегда связана с программой и предоставляет злоумышленнику полезные вызовы (например, system функция, используемая для выполнения команд оболочки).

Защита от атак возврата в libc

[ редактировать ]

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

« Защита ASCII » — это метод, который можно использовать для предотвращения такого рода атак. При бронировании ASCII адреса всех системных библиотек (например, libc) содержат нулевой байт ( 0x00). Обычно это делается путем размещения их в первых 0x01010101 байт памяти (несколько страниц размером более 16 МБ, получивших название «область брони ASCII»), поскольку каждый адрес до (но не включая) этого значения содержит хотя бы один NULL-байт. Это делает невозможным размещение кода, содержащего эти адреса, с помощью функций манипулирования строками, таких как strcpy(). Однако этот метод не работает, если у злоумышленника есть способ переполнить стек NULL-байтами. Если программа слишком велика и не помещается в первые 16 МБ , защита может быть неполной. [2] Этот метод аналогичен другой атаке, известной как return-to-plt , где вместо возврата в libc злоумышленник использует функции таблицы связей процедур (PLT), загруженные в позиционно-независимый код (например, system@plt, execve@plt, sprintf@plt, strcpy@plt). [3]

Рандомизация расположения адресного пространства (ASLR) делает этот тип атаки крайне маловероятным для успеха на 64-битных машинах, поскольку расположение функций в памяти случайно. Однако для 32-битных систем ASLR дает мало пользы, поскольку для рандомизации доступны только 16 бит, и их можно победить перебором за считанные минуты. [4]

См. также

[ редактировать ]
  1. ^ Солнечный дизайнер (10 августа 1997 г.). «Bugtraq: обход неисполняемого стека (и исправление)» .
  2. ^ Дэвид А. Уиллер (27 января 2004 г.). «Безопасный программист: Противодействие переполнению буфера» . IBM DeveloperWorks. Архивировано из оригинала 18 октября 2013 г.
  3. ^ Болезнь (13 мая 2011 г.). «Разработка эксплойта Linux, часть 4 — обход брони ASCII + возврат к plt» (PDF) .
  4. ^ Шахам, Х.; Пейдж, М.; Пфафф, Б.; Гох, Э.Дж.; Модадугу, Н.; Боне, Д. (октябрь 2004 г.). «Об эффективности рандомизации адресного пространства». Материалы 11-й конференции ACM по компьютерной и коммуникационной безопасности (PDF) . стр. 298–307. дои : 10.1145/1030083.1030124 . ISBN  1-58113-961-6 . S2CID   5864467 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0dd952bf148fc2ef2b80165fa245749f__1656210000
URL1:https://arc.ask3.ru/arc/aa/0d/9f/0dd952bf148fc2ef2b80165fa245749f.html
Заголовок, (Title) документа по адресу, URL1:
Return-to-libc attack - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)