RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2018, том 30, выпуск 5, страницы 31–54 (Mi tisp359)

Эта публикация цитируется в 1 статье

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

А. В. Вишняковa, А. Р. Нурмухаметовa, Ш. Ф. Курмангалеевa, С. С. Гайсарянbacd

a Институт системного программирования им. В.П. Иванникова РАН
b Национальный исследовательский университет «Высшая школа экономики»
c Московский физико-технический институт
d Московский государственный университет имени М. В. Ломоносова

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

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

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



Реферативные базы данных:


© МИАН, 2024