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


Применение компиляторных преобразований для противодействия эксплуатации уязвимостей программного обеспечения.

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

Аннотация

Уязвимости программного обеспечения представляют серьезную угрозу безопасности информационной системы. Любое программное обеспечение, написанное на языках C/C++, потенциально содержит в себе значительное количество уязвимостей, используя которые злоумышленник может с помощью специально подготовленных эксплойтов захватить контроль над системой. Для противодействия эксплуатации таких уязвимостей в данной работе предлагается использовать компиляторные преобразования: перестановка местами функций в модуле, добавление локальных переменных на стек функции, перемешивание локальных переменных на стеке. С помощью этих преобразований предлагается генерировать диверсифицированную популяцию исполняемых файлов компилируемого приложения. Такой подход, например, усложняет планирование ROP-атак на всю популяцию. Злоумышленник, получив в свое распоряжение один исполняемый файл, может сделать ROP-эксплойт, работающий только для этой версии приложения. Остальные исполняемые файлы популяции останутся устойчивыми к данной атаке.

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

уязвимость; компиляторные преобразования; ROP-атака; эксплойт

Издание

Труды Института системного программирования РАН, том 26, вып. 3, 2014, стр. 113-126.

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

DOI: 10.15514/ISPRAS-2014-26(3)-6

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