RUS  ENG
Полная версия
ЖУРНАЛЫ // Системы и средства информатики // Архив

Системы и средства информ., 2021, том 31, выпуск 4, страницы 48–60 (Mi ssi797)

Об одном способе обнаружения эксплуатации уязвимостей и его параметрах

Ю. В. Косолапов

Институт математики, механики и компьютерных наук им. И. И. Воровича, Южный федеральный университет

Аннотация: При успешной эксплуатации уязвимости, приводящей к запуску вредоносного кода, обычно запускаемый код вызывает некоторую системную функцию. В качестве способа обнаружения эксплуатации уязвимости программы $P$ предлагается алгоритм на основе проверки на нетипичность расстояния между вызовом с номером $i$ и вызовом с номером $i-j$, где $j\in \{1,\ldots ,T\}$, $T\in \mathbb{N}$. Под расстоянием понимается разность виртуальных адресов вызова этих функций, а типичность определяется путем проверки принадлежности вычисленного расстояния профилю расстояний, построенному ранее для защищаемой программы $P$. Кроме параметра $T$ алгоритм обнаружения использует параметр $W(\in \mathbb{N})$ — количество профилей, по которым проверяется типичность вызова. При этом для $j\in \{1,\ldots,W\}$ профиль с номером $j$ строится по парам вызовов, разность индексов вызовов которых в легитимной последовательности равна $j$. Чем больше $T$ и $W$, тем меньше вероятность ложного обнаружения нелегитимного исполнения кода, однако с ростом этих параметров растет и время проверки типичности. В ходе экспериментального исследования выяснено, что достаточные значения параметров $(W,T)$ зависят от набора отслеживаемых функций. Поэтому для каждого набора отслеживаемых функций (и каждой защищаемой программы $P$) эти параметры алгоритма должны находиться отдельно. Установлено, что при $W>1$ существенно снижается вероятность ложного обнаружения.

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

Поступила в редакцию: 20.08.2020

DOI: 10.14357/08696527210405



© МИАН, 2024