|
Irbis: статический анализатор помеченных данных для поиска уязвимостей в программах на C/C++
Н. В. Шимчикa, В. Н. Игнатьевba, А. А. Белеванцевba a Институт системного программирования им. В.П. Иванникова РАН
b Московский государственный университет имени М. В. Ломоносова
Аннотация:
Статический анализ помеченных данных может использоваться для обнаружения различных потенциальных уязвимостей в коде программ путём исследования потоков данных между истоками и стоками помеченных данных. Чаще всего помеченными называют данные, которые были получены из внешнего источника и не были должным образом проверены. Инструмент Irbis реализует статический межпроцедурный анализ помеченных данных на основе решения задачи IFDS (Interprocedural Finite Distributive Subset), а также различные расширения, улучшающие его масштабируемость, точность и полноту. В нём реализованы 4 детектора с разными определениями помеченных данных, используемыми для нахождения выхода за границы буфера, использования освобождённой памяти, использования константных паролей и утечек данных. Определения истоков, стоков и передаточных функций хранятся в формате JSON и могут изменяться пользователем. Мы сравнили результаты анализа на проекте Juliet Test Suite for C/C++ с несколькими другими анализаторами, такими как Infer, Clang Static Analyzer и Svace. Irbis смог продемонстрировать 100% покрытие на подмножестве тестов, имеющих отношение к помеченным данным для поддерживаемых нами CWE. При этом реализованные нами эвристики смогли подавить все ложные срабатывания на данном наборе тестов. Также мы демонстрируем масштабируемость и процент ложных срабатываний инструмента при запусках на реальных проектах и показываем примеры существующих уязвимостей, которые могут быть им обнаружены.
Ключевые слова:
статический анализ, анализ помеченных данных, поиск уязвимостей
Образец цитирования:
Н. В. Шимчик, В. Н. Игнатьев, А. А. Белеванцев, “Irbis: статический анализатор помеченных данных для поиска уязвимостей в программах на C/C++”, Труды ИСП РАН, 34:6 (2022), 51–66
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/tisp738 https://www.mathnet.ru/rus/tisp/v34/i6/p51
|
Статистика просмотров: |
Страница аннотации: | 14 | PDF полного текста: | 3 |
|