Сборники трудов ИСП РАН


Метод анализа атак повторного использования кода

Вишняков А.В. (ИСП РАН, Москва, Россия)
Нурмухаметов А.Р. (ИСП РАН, Москва, Россия)
Курмангалеев Ш.Ф. (ИСП РАН, Москва, Россия)
Гайсарян С.С. (ИСП РАН, Москва, Россия; МГУ, Москва, Россия; МФТИ, Московская. обл., Россия; ВШЭ, Москва, Россия)

Аннотация

Обеспечение безопасности программного обеспечения является на сегодняшний день одной из первостепенных задач. Сбои в работе программного обеспечения могут привести к серьезным последствиям, а злонамеренная эксплуатация уязвимостей может причинить колоссальный ущерб. Крупные корпорации уделяют особое внимание анализу инцидентов информационной безопасности. Атаки повторного использования кода, основанные на возвратно-ориентированном программировании (ROP), приобретают всю большую популярность с каждым годом и могут быть применены даже в условиях работы защитных механизмов современных операционных систем. В отличие от обычного шелл-кода, где инструкции размещаются последовательно в памяти, ROP-цепочка состоит из множества маленьких блоков инструкций (гаджетов) и использует стек для связывания этих блоков, что затрудняет анализ ROP-эксплойтов. Целью данной работы является упрощение обратной инженерии ROP-эксплойтов. В этой статье предлагается метод анализа атак повторного использования кода, который позволяет восстановить семантику ROP-цепочки: разбить цепочку на гаджеты, определить семантику отдельных гаджетов и восстановить прототипы вызванных в ходе выполнения цепочки функций и системных вызовов и значения их аргументов. Семантика гаджета определяется его принадлежностью параметризованным типам. Каждый тип задается постусловием (булевым предикатом), которое должно быть всегда истинно после выполнения гаджета. Метод был реализован в виде программного инструмента и апробирован на реальных ROP-эксплойтах, найденных в интернете.

Ключевые слова

компьютерная безопасность; бинарный анализ; уязвимость; возвратно-ориентированное программирование; ROP; классификация гаджетов; атака повторного использования кода; инцидент информационной безопасности

Издание

Труды Института системного программирования РАН, том 30, вып. 5, 2018, стр. 31-54.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2018-30(5)-2

Для цитирования

Вишняков А.В., Нурмухаметов А.Р., Курмангалеев Ш.Ф., Гайсарян С.С. Метод анализа атак повторного использования кода. Труды Института системного программирования РАН, том 30, вып. 5, 2018, стр. 31-54. DOI: 10.15514/ISPRAS-2018-30(5)-2.

Полный текст статьи в формате pdf Вернуться к содержанию тома