О мудрости
Компиляция | Бот
Источник | Исследовательский блог Microsoft
Примечание редактора: В 13-й раз по США Уильям Блум, директор по развитию группы обнаружения угроз безопасности Microsoft, опубликовал в официальном блоге статью, в которой говорится, что Microsoft разработала новый метод, основанный на нейронном фаззинге, который можно использовать для обнаружения уязвимостей безопасности программного обеспечения. . По словам Лунжи, предшественником Microsoft по обнаружению угроз безопасности является Project Springfield, представляющий собой инструмент для платформы облачных сервисов Azure, который может использовать искусственный интеллект для быстрого и эффективного устранения уязвимостей программного обеспечения.
Ниже приводится компиляция исходного текста Лунжи:
Исследователи из Microsoft разработали новый метод обнаружения уязвимостей в безопасности программного обеспечения, который использует комбинацию машинного обучения и глубоких нейронных сетей (DNN), которые учится на прошлом опыте, чтобы помочь системам лучше устранять уязвимости. Новый исследовательский проект под названием Neural fuzzing направлен на расширение традиционных методов фаззинга, и в некоторых ранних экспериментах он показал некоторые преимущества.
Обнаружение безопасности программного обеспечения — сложная задача, часто выполняемая экспертами по безопасности с помощью дорогостоящих и целенаправленных аудитов кода или обнаружения и оценки с использованием чрезвычайно специализированных, сложных инструментов безопасности. В июле этого года Microsoft официально выпустила инструмент под названием Microsoft Security Risk Detection (MSRD), который значительно упрощает процесс обнаружения и помогает пользователям быстро устранять уязвимости.Хотя это инструмент, основанный на платформе облачных сервисов Azure, но он также работает на окна и линукс.
Нечеткое тестирование
Ключевой технологией MSRD является фаззинг. Понятно, что фаззинг — это метод тестирования программного обеспечения, который находит ошибки кодирования и уязвимости безопасности в программном обеспечении, операционных системах и сетях (такие как переполнение буфера, доступ к памяти и т. д.) путем ввода в систему большого количества случайных данных в попытке для аварийного завершения системных коллизий, разыменования нулевого указателя и т. д.).
Эти случайные данные можно условно разделить на следующие категории:
-
Фаззеры черного ящика. Также известные как тупые фаззеры, они полагаются на образцы входных файлов для создания выходных данных;
-
Фаззеры белого ящика. Он анализирует целевую программу статически или динамически или направляет поиск новых входных данных для обнаружения дополнительных путей кода;
-
Фаззеры серого ящика. Фаззеры Greybox в чем-то похожи на фаззеры Blackbox тем, что они не требуют знания протокола или самого формата файла, но могут направлять поиск, используя цикл обратной связи, основанный на наблюдаемом поведении во время выполнения программы.
Отчет о сбое AFL
Нейронный фаззинг
Ранее в этом году группа исследователей Microsoft, в которую входили Уильям Блум, Ришаб Сингх и Мохит Раджпал, начала новый проект по улучшению методов размытия с помощью машинного обучения и DNN. В частности, если вы подключите модель машинного обучения к циклу обратной связи фаззера серого ящика, что она узнает?
В начале проекта они обучили новую модель с помощью существующих инструментов фаззинга и предыдущих данных и проверили ее эффективность обучения. Позже они портировали модель на американский fuzzy lop (AFL). Уильям Блюм и др. пробовали 4 разных типа нейронных сетей, экспериментировали с 4 целевыми программами и использовали парсеры в 4 разных форматах файлов (ELF, PDF, PNG, XML).
Экспериментальные результаты показывают, что после объединения с нейронной сетью AFL значительно улучшил покрытие кода, уникальные пути кода и сбои.
-
Для двух форматов ELF и PNG, по сравнению с исходным AFL, покрытие кода DNN AFL на основе модели нейронной сети с долговременной кратковременной памятью (LSTM) улучшается примерно на 10%;
-
После 24 часов размытия единственный путь, найденный DNN AFL на PNG, вдвое превышает исходный;
Прирост ввода парсера файлов libpng (единица измерения: час)
-
Более интуитивный способ оценить фаззеры — сравнить количество отчетов о сбоях. Взяв в качестве примера ELF, DNN AFL сообщил более 20 раз, а AFL - нет. Это неожиданный результат, поскольку DNN AFL обучается на AFL. Кроме того, Microsoft также изучила отчеты о сбоях двух в других форматах и обнаружила, что в текстовых форматах файлов, таких как XML, DNN AFL сообщила о на 38% большем количестве. А для PDF, хотя ни у одного из них нет отчета, DNN AFL работает лучше на пути кода.
Сбой readelf (слева) и libxml (справа) с течением времени (в часах)
В целом, за исключением PDF, AFL с использованием моделей машинного обучения лучше, чем до обучения. А его необычное поведение в PDF может быть связано с перегрузкой системы при запуске больших файлов. Исследователи пришли к выводу, что этот подход нейроразмывания проще, эффективнее и универсальнее.
-
Простой. Процесс поиска больше не является сложным ручным файлом, система может учиться на собственном опыте с помощью инструментов фаззинга, просто предоставляя некоторые последовательности символов, она может самостоятельно находить различные функции и определять, какой тип ввода является более важным, и проверять, где должен быть инструмент. сосредоточиться на прорывах;
-
Эффективный. В ходе экспериментов DNN AFL нашла больше уникальных путей кода и сообщила о большем количестве сбоев в первые 24 часа;
-
Универсальный. Хотя эти эксперименты проводились только с AFL, они в равной степени применимы и к другим инструментам, таким как черные ящики.
Таким образом, Microsoft считает, что исследования группы в области нейрофаззи достигли основной цели.Хотя текущая модель будет только нечеткой позиции, исследователи считают, что также возможно заставить ее изучать нечеткие параметры, такие как тип мутации и стратегия применения. В настоящее время они рассматривают возможность запуска онлайн-версии на основе модели машинного обучения, позволяющей инструменту выполнять итерации по мере обучения.
Оригинальный адрес: https://www.microsoft.com/en-us/research/blog/neural-fuzzing/
Эта статья составлена Lunzhi, пожалуйста, свяжитесь с этим публичным аккаунтом для авторизации.