Труды института системного программирования РАН
RUS  ENG    ЖУРНАЛЫ   ПЕРСОНАЛИИ   ОРГАНИЗАЦИИ   КОНФЕРЕНЦИИ   СЕМИНАРЫ   ВИДЕОТЕКА   ПАКЕТ AMSBIB  
Общая информация
Последний выпуск
Архив

Поиск публикаций
Поиск ссылок

RSS
Последний выпуск
Текущие выпуски
Архивные выпуски
Что такое RSS



Труды ИСП РАН:
Год:
Том:
Выпуск:
Страница:
Найти






Персональный вход:
Логин:
Пароль:
Запомнить пароль
Войти
Забыли пароль?
Регистрация


Труды института системного программирования РАН, 2018, том 30, выпуск 5, страницы 55–74
DOI: https://doi.org/10.15514/ISPRAS-2018-30(5)-3
(Mi tisp360)
 

Об одном подходе к анализу строк в языке Си для поиска переполнения буфера

И. А. Дудинаab, Н. Е. Малышевab

a Институт системного программирования им. В. П. Иванникова РАН
b Московский государственный университет имени М. В. Ломоносова
Список литературы:
Аннотация: Ошибки при работе с библиотечными функциями обработки строк в языке Си являются частой причиной переполнения буфера, что в свою очередь нередко приводит к отказу в обслуживании, некорректной работе программы или появлению эксплуатируемой уязвимости. Одним из способов устранения различных ошибок на стадии разработки программы является статический анализ. Существующие методы статического анализа, ориентированные на работу со строками, либо не обеспечивают должный уровень истинных срабатываний, либо пропускают большое количество ошибок, либо неприменимы к промышленным программам большого размера, либо реализованы в рамках закрытых инструментов. Для наиболее полного покрытия дефектов в реальных программах необходимо обнаруживать ошибки, происходящие лишь на некоторых путях выполнения и не определяемые единственной точкой программы, и, кроме того, находить ошибки, связанные с некорректным использованием не только библиотечных, но и пользовательских функций. Целью данного исследования является построение алгоритма поиска ошибок при работе со строками, удовлетворяющего этим свойствам, ограничению на количество ложных срабатываний (не более 40%), применимого к любым программам на языке Си и масштабирующегося на проекты из нескольких миллионов строк. Для решения этой задачи был использован ранее разработанный подход символьного исполнения с объединением состояний, который был адаптирован для поддержки строковых операций. На основе алгоритма отслеживания операций с целыми числами был предложен алгоритм отслеживания длин строк. Разработанный алгоритм реализован в качестве одного из детекторов семейства детекторов переполнения буфера в рамках инструмента статического анализа Svace. В результате на тестовом наборе Juliet test suite на тестах, связанных с переполнением правой границы буфера, покрытие срабатываниями увеличилось с 15,4% до 41,5%, при этом не было выдано ни одного ложного предупреждения. По сравнению с известным анализатором Infer на наборе Juliet инструмент Svace без поддержки строк показывает приблизительно те же результаты, за исключением случая сложных циклов, а связанные со строками переполнения Infer, как правило, не находит.
Ключевые слова: статический анализ, символьное исполнение, анализ строк.
Реферативные базы данных:
Тип публикации: Статья
Образец цитирования: И. А. Дудина, Н. Е. Малышев, “Об одном подходе к анализу строк в языке Си для поиска переполнения буфера”, Труды ИСП РАН, 30:5 (2018), 55–74
Цитирование в формате AMSBIB
\RBibitem{DudMal18}
\by И.~А.~Дудина, Н.~Е.~Малышев
\paper Об одном подходе к анализу строк в языке Си для поиска переполнения буфера
\jour Труды ИСП РАН
\yr 2018
\vol 30
\issue 5
\pages 55--74
\mathnet{http://mi.mathnet.ru/tisp360}
\crossref{https://doi.org/10.15514/ISPRAS-2018-30(5)-3}
\elib{https://elibrary.ru/item.asp?id=36591026}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp360
  • https://www.mathnet.ru/rus/tisp/v30/i5/p55
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
    Статистика просмотров:
    Страница аннотации:143
    PDF полного текста:97
    Список литературы:26
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2024