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

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

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



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






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


Труды института системного программирования РАН, 2018, том 30, выпуск 6, страницы 143–160
DOI: https://doi.org/10.15514/ISPRAS-2018-30(6)-8
(Mi tisp381)
 

Эта публикация цитируется в 2 научных статьях (всего в 2 статьях)

Static verification for memory safety of Linux kernel drivers
[Статическая верификация ошибок использования памяти в модулях ядра ОС Linux]

A. A. Vasilyev

Ivannikov Institute for System Programming of the Russian Academy of Sciences
Список литературы:
Аннотация: Ошибки использования памяти в модулях ядра операционной системы Linux сложно обнаружить, но они могут привести к серьезным последствиям. В данной статье мы описываем метод статической верификации, позволяющий обнаруживать все ошибки в рамках предположений метода. Статическая верификация крупных пректов таких, как ядро ОС Linux, требуют дополнительных усилий. Современные инструменты статической верификации не позволяют анализировать ядро как единое целое, поэтому мы используем упрощенную автоматически генерируемую модель окружения. Эта модель вносит некоторую неточность, но позволяет проводить статическую верификацию. Также мы допускаем отсутствие тела некоторых функций, что приводит к неполным программам, написанных на языке ANSI C. В данной работе предлагается подход к обнаружению ошибок использования памяти в таких неполных программах. Наша техника статической верификации основана на теории символических графов памяти и ее расширении для снижения количества ложных срабатываний. Мы ввели концепцию памяти по требованию для упрощения моделей интерфейсов ядра ОС и реализовали ее в фреймворке статической верификации CPAchecker. Также мы изменили точность модели памяти CPAchecker с байтов на поддержку отдельных битов и добавили поддержку выравнивания структур, аналогичное использованому в компиляторе. Для повышения точности анализа мы реализовали предикатное расширение состояния символического графа памяти. Мы провели проверку модулей ядра ОС Linux для версий 4.11.6 и 4.16.10 с помощью фреймворка статической верификации Klever с инструментом верификации CPAchecker, что позволило проанализировать 6224 и 5215 модулей соответствующих версий. Ручной анализ предупреждений от фреймворка Klever выявил 78 реальных ошибок в модулях ядра. Мы сделали патчи для исправления 33 из них.
Ключевые слова: анализ рекурсивных структур данных, статическая верификация, символические графы памяти, модели памяти.
Финансовая поддержка Номер гранта
Российский фонд фундаментальных исследований 18-01-00426
Тип публикации: Статья
Язык публикации: английский
Образец цитирования: A. A. Vasilyev, “Static verification for memory safety of Linux kernel drivers”, Труды ИСП РАН, 30:6 (2018), 143–160
Цитирование в формате AMSBIB
\RBibitem{Vas18}
\by A.~A.~Vasilyev
\paper Static verification for memory safety of Linux kernel drivers
\jour Труды ИСП РАН
\yr 2018
\vol 30
\issue 6
\pages 143--160
\mathnet{http://mi.mathnet.ru/tisp381}
\crossref{https://doi.org/10.15514/ISPRAS-2018-30(6)-8}
Образцы ссылок на эту страницу:
  • https://www.mathnet.ru/rus/tisp381
  • https://www.mathnet.ru/rus/tisp/v30/i6/p143
  • Эта публикация цитируется в следующих 2 статьяx:
    Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Труды института системного программирования РАН
     
      Обратная связь:
     Пользовательское соглашение  Регистрация посетителей портала  Логотипы © Математический институт им. В. А. Стеклова РАН, 2024