Метод анализа атак повторного использования кода (Алексей Вишняков, ISPRASOPEN-2018) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
{{youtubelink|}}{{letscomment}}
{{SlidesSection}}
[[File:Метод анализа атак повторного использования кода (Алексей Вишняков, ISPRASOPEN-2018).pdf|left|page=-|300px]]
{{----}}
[[File:{{#setmainimage:Метод анализа атак повторного использования кода (Алексей Вишняков, ISPRASOPEN-2018)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- * [ Talks page on site] -->
<!-- <blockquote>[©]</blockquote> -->
{{vklink|1327}}
{{fblink|2214024042183938}}
<references/>
<!-- topub -->
[[Категория:ISPRASOPEN-2018]]
[[Категория:Информационная безопасность]] |
Версия 12:02, 4 января 2019
- Докладчик
- Алексей Вишняков
Обеспечение безопасности программного обеспечения является на сегодняшний день одной из первостепенных задач. Сбои в работе программного обеспечения могут привести к серьезным последствиям, а злонамеренная эксплуатация уязвимостей может причинить КОЛОСсальный ущерб. Крупные корпорации уделяют особое внимание анализу инцидентов информационной безопасности. Атаки повторного использования кода, основанные на возвратно-ориентированном программировании (ROP), приобретают всю большую популярность с каждым годом и могут быть применены даже в условиях работы защитных механизмов современных операционных систем.
В отличие от обычного шелл-кода, где инструкции размещаются последовательно в памяти, ROP-цепочка состоит из множества маленьких блоков инструкций (гаджетов) и использует стек для связывания этих блоков, что затрудняет анализ ROP-эксплойтов. Целью данной работы является упрощение обратной инженерии ROP-эксплойтов.
В этой статье предлагается метод анализа атак повторного использования кода, который позволяет восстановить семантику ROP-цепочки: разбить цепочку на гаджеты, определить семантику отдельных гаджетов и восстановить прототипы вызванных в ходе выполнения цепочки функций и системных вызовов и значения их аргументов.
Семантика гаджета определяется его принадлежностью параметризованным типам. Каждый тип задается постусловием (булевым предикатом), которое должно быть всегда истинно после выполнения гаджета. Метод был реализован в виде программного инструмента и апробирован на реальных ROP-эксплойтах, найденных в интернете.
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.