Аннотация:
Файловые системы являются важнейшим компонентом любой современной операционной системы, будь то вычислительная система общего назначения или специализированная система хранения данных. Стоимость ошибки файловой системы очень высока; следовательно, существует потребность в эффективных инструментах для анализа качества и обнаружения ошибок в файловых системах. В данной статье представлен инструмент DIFFuzzer, который основан на методах фаззинга с использованием принципов серого и черного ящиков и реализует подход дифференциального динамического анализа, при котором поведение целевой файловой системы сравнивается с поведением другой, более качественной файловой системы, которая служит генератором эталонного поведения. При сравнении поведения анализируются как возвращаемые значения системных вызовов, так и агрегированное состояние файловых систем. Инструментарий также включает в себя редуктор, который минимизирует ошибочную трассу выполнения и генерирует короткий фрагмент, в котором ошибка все еще появляется. Разработанный инструмент был протестирован на нескольких файловых системах, совместимых с POSIX, и обнаружил несколько ошибок в ходе относительно короткого эксперимента.
Ключевые слова:
файловые системы, дифференциальный фаззинг, тестирование файловых систем, фаззинг серого ящика