Фаззинг на k8s-кластере
Программный комитет ещё не принял решения по этому докладу
Целевая аудитория
Тезисы
Фаззинг представляет собой один из наиболее эффективных методов динамического анализа ПО, который заключается в отправке исследуемому приложению специальным образом сформированных входных данных с целью вызвать аварийное завершение (креш). Синхронизация между процессами фаззинга является бутылочным горлышком при масштабировании анализа на кластера из тысяч CPU. Помимо этого, более остро встают вопросы о сохранности данных из-за потенциальных проблем с оборудованием и временем жизни отдельных процессов. В качестве основы для построения инфраструктуры фаззинга выбран k8s, предоставляющий широкие возможности по развёртыванию и управлению контейнеризованными приложениями. Существующие решения (например, ClusterFuzz или ClusterFuzzLite) только частично решают озвученные проблемы, а также в определённых режимах работы привязаны к облачной инфраструктуре Google. В данном докладе представлен метод фаззинга на k8s-кластере, в котором реализована иерархическая схема синхронизации «процесс → сервер → стойка серверов → кластер», учитывающая ограничения вычислительной и сетевой инфраструктуры. Ключевыми элементами схемы являются брокеры синхронизации — специальные процессы, агрегирующие и дедуплицирующие результаты фаззинг-процессов, а также синхронизирующиеся с другими (удалёнными) брокерами. Метод фаззинга проверен на кластере с 2 тысячами CPU.
Научный сотрудник Института системного программирования им. В.П. Иванникова РАН. Окончил Московский Физико-Технический Институт в 2018 году. С 2016 года работает в ИСП РАН. Принимает участие в разработке комплекса инструментов динамического и статического анализа Crusher. Сфера научных интересов: динамический анализ программного обеспечения, сетевые протоколы.
Руководитель направления разработки автономных систем и технологий для создания безопасного программного обеспечения. Кандидат физ.-мат. наук.
Видео
Другие доклады секции
Edge Computing и распределенные вычисления