Обмен технологиями

Бумажное исследование_Эмпирическое исследование моделей глубокого обучения для обнаружения уязвимостей

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Введение

Предыстория исследования : В последние годы инструменты обнаружения уязвимостей с глубоким обучением достигли многообещающих результатов. Современная модель имеет оценку F1 0,9 и превосходит статический анализатор. Результаты впечатляют, поскольку глубокое обучение может произвести революцию в обеспечении качества программного обеспечения. Поэтому такие отраслевые компании, как IBM, Google и Amazon, очень заинтересованы и вкладывают значительные средства в разработку таких инструментов и наборов данных.

Существующие проблемы : Хотя обнаружение уязвимостей глубокого обучения является многообещающим, оно еще не достигло уровня компьютерного зрения и обработки естественного языка. Большая часть текущих исследований сосредоточена на опробовании новых моделей глубокого обучения и применении их к наборам данных, таким как наборы данных Devign или MSR. Однако мы очень мало знаем о самой модели, например, с какими типами программ она может эффективно работать, следует ли нам строить модель для каждого типа уязвимостей или нам следует построить единую модель для всех типов уязвимостей с хорошими обучающими данными. как выглядит набор и какую информацию использует модель при принятии решений. Знание ответов на эти вопросы может помочь нам лучше разрабатывать, отлаживать и применять модели. Однако на эти вопросы сложно ответить, учитывая природу глубокого обучения как «черного ящика». Целью статьи является не предоставление полного решения этих проблем, а исследование этих целей.

Научный вопрос : В этой статье исследуется и воспроизводится серия современных моделей обнаружения уязвимостей с глубоким обучением, а также ставятся исследовательские вопросы для понимания этих моделей с целью извлечь из них уроки и рекомендации для лучшего проектирования и отладки будущих моделей.В статье сформулирован вопрос исследования и разделен на три области, а именно:Возможности моделиданные обученияиОбъяснение модели . В частности, основная цель статьи — понять возможности глубокого обучения в задачах обнаружения уязвимостей, уделяя особое внимание следующим исследовательским вопросам:

  • Вопрос 1 : Могут ли разные модели достичь консенсуса по обнаружению уязвимостей? Каковы различия между разными моделями?
  • вопрос 2 : Легче ли обнаружить определенные типы уязвимостей? Стоит ли строить модель для каждого типа уязвимостей или следует создавать модель, обнаруживающую все уязвимости?
  • Вопрос 3 : Существуют ли какие-то шаблоны кода, которые модели сложно предсказать? Если такой шаблон кода существует, что это за шаблон кода?

Второе направление исследования в статье — обучающие данные. Цель статьи — понять, влияет ли размер и состав обучающих данных на производительность модели и если да, то каким образом. В частности, в статье ставятся следующие исследовательские вопросы:

  • Вопрос 4: Помогает ли увеличение размера набора данных улучшить производительность модели при обнаружении уязвимостей?
  • Вопрос 5: Как состав элементов в наборе обучающих данных влияет на производительность модели?

Наконец, третье исследовательское направление диссертации – интерпретация моделей. В статье используется инструмент интерпретации модели SOTA для исследования:

  • Вопрос 6 : Какую информацию исходного кода использует модель для прогнозирования? Последовательна ли модель по важным функциям?

содержание исследования : Чтобы ответить на поставленные выше вопросы, в статье рассматриваются современные модели глубокого обучения и успешно воспроизводятся 11 моделей на их исходных наборах данных. В этих моделях используются различные архитектуры глубокого обучения, такие как GNN, RNN, LSTM, CNN и Transformers. Для сравнения этих моделей газете удалось запустить 9 моделей с двумя популярными наборами данных: Devign и MSR. Причины, по которым в статье выбраны эти два набора данных, заключаются в следующем: (1) оба набора данных содержат реальные проекты и уязвимости (2) модели в большинстве статей оцениваются и настраиваются с использованием набора данных Devign (3) Набор данных MSR содержит 310 проектов; , и данные помечены типами уязвимостей, что имеет решающее значение для нашего исследовательского вопроса. Благодаря тщательно спланированным экспериментам и рассмотрению угроз в статье были получены результаты по шести исследовательским вопросам. В целом исследовательский вклад данной статьи включает в себя:

  • вклад: 1: В этом документе проводится комплексное исследование моделей обнаружения уязвимостей глубокого обучения.
  • Внести 2: В документе представлен репозиторий кода, содержащий 11 моделей обучения и наборов данных для платформы глубокого обучения SOTA с различными настройками исследования.
  • Внести 3: В статье представлены 6 научных вопросов, позволяющих понять возможности модели, обучающие данные и интерпретацию модели.
  • Внести 4: В статье структурировано исследование и получены результаты посредством экспериментов по поставленному научному вопросу.
  • Внести 5: В статье подготовлены интересные примеры и данные для дальнейшего изучения интерпретируемости модели.

2. Воспроизведение модели

Чтобы собрать наиболее передовые модели глубокого обучения, в документе были изучены статьи с 2018 по 2022 год и использованы рейтинги Microsoft CodeXGLUE и рейтинги IBM по обнаружению дефектов D2A. В статье использовались все доступные модели с открытым исходным кодом и успешно воспроизведены 11 моделей. Полный список моделей, а также причины, по которым нам не удалось воспроизвести некоторые модели, включены в пакет репликации данных статьи.

Как показано в таблице выше, воспроизведенные модели охватывают различные архитектуры глубокого обучения. Devign и ReVeal используют GNN в графах свойств, интегрируя поток управления, зависимости данных и AST. ReGVD использует GNN для токенов. Code2Vec использует многоуровневый персептрон (MLP) в AST. VulDeeLocator и SySeVR — это модели последовательностей, основанные на RNN и Bi-LSTM. В недавнем обнаружении глубокого обучения используются предварительно обученные преобразователи, включая CodeBERT, VulBERTa-CNN, VulBERTa-MLP, PLBART и LineVul.

В ответ на исследовательские вопросы статьи были выбраны наборы данных Devign и MSR. В статье эти 11 моделей изучаются на наборах данных, использованных в их оригинальных статьях, которые показаны в таблице выше. В документе обнаружено, что набор данных Devign использовался для оценки и настройки 8 моделей. Набор данных представляет собой сбалансированный набор данных, содержащий примерно равное количество уязвимых и неуязвимых примеров, всего 27 318 точек данных (каждый пример также называется точкой данных). LineVul использует набор данных MSR, который стал доступен недавно. Набор данных несбалансирован и содержит 10 900 уязвимых примеров и 177 736 неуязвимых примеров. В примерах указаны исходные проекты, а также записи Common Weakness Enumeration (CWE), показывающие тип уязвимости. В статье эти характеристики набора данных используются для формулирования некоторых исследовательских вопросов.

В статье воспроизводятся результаты модели на основе исходного набора данных и настроек, как показано в таблице выше. Среди них столбцы A, P, R и F представляют собой часто используемые индикаторы при обнаружении уязвимостей глубокого обучения, включая точность, точность, полноту и оценку F1. По сравнению с оригинальной статьей результаты воспроизведения статьи обычно имеют погрешность расчета в пределах 2%. Особыми случаями являются ReVeal, где авторы подтвердили, что наши результаты исправили ошибку утечки данных в исходной статье, и Devign, где в статье использовался сторонний реплицированный код (опубликованный Чакаборти и др.), поскольку исходный код Devign не был Открытый исходный код.