моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Предыстория исследования : В последние годы инструменты обнаружения уязвимостей с глубоким обучением достигли многообещающих результатов. Современная модель имеет оценку F1 0,9 и превосходит статический анализатор. Результаты впечатляют, поскольку глубокое обучение может произвести революцию в обеспечении качества программного обеспечения. Поэтому такие отраслевые компании, как IBM, Google и Amazon, очень заинтересованы и вкладывают значительные средства в разработку таких инструментов и наборов данных.
Существующие проблемы : Хотя обнаружение уязвимостей глубокого обучения является многообещающим, оно еще не достигло уровня компьютерного зрения и обработки естественного языка. Большая часть текущих исследований сосредоточена на опробовании новых моделей глубокого обучения и применении их к наборам данных, таким как наборы данных Devign или MSR. Однако мы очень мало знаем о самой модели, например, с какими типами программ она может эффективно работать, следует ли нам строить модель для каждого типа уязвимостей или нам следует построить единую модель для всех типов уязвимостей с хорошими обучающими данными. как выглядит набор и какую информацию использует модель при принятии решений. Знание ответов на эти вопросы может помочь нам лучше разрабатывать, отлаживать и применять модели. Однако на эти вопросы сложно ответить, учитывая природу глубокого обучения как «черного ящика». Целью статьи является не предоставление полного решения этих проблем, а исследование этих целей.
Научный вопрос : В этой статье исследуется и воспроизводится серия современных моделей обнаружения уязвимостей с глубоким обучением, а также ставятся исследовательские вопросы для понимания этих моделей с целью извлечь из них уроки и рекомендации для лучшего проектирования и отладки будущих моделей.В статье сформулирован вопрос исследования и разделен на три области, а именно:Возможности модели、данные обученияиОбъяснение модели . В частности, основная цель статьи — понять возможности глубокого обучения в задачах обнаружения уязвимостей, уделяя особое внимание следующим исследовательским вопросам:
Второе направление исследования в статье — обучающие данные. Цель статьи — понять, влияет ли размер и состав обучающих данных на производительность модели и если да, то каким образом. В частности, в статье ставятся следующие исследовательские вопросы:
Наконец, третье исследовательское направление диссертации – интерпретация моделей. В статье используется инструмент интерпретации модели SOTA для исследования:
содержание исследования : Чтобы ответить на поставленные выше вопросы, в статье рассматриваются современные модели глубокого обучения и успешно воспроизводятся 11 моделей на их исходных наборах данных. В этих моделях используются различные архитектуры глубокого обучения, такие как GNN, RNN, LSTM, CNN и Transformers. Для сравнения этих моделей газете удалось запустить 9 моделей с двумя популярными наборами данных: Devign и MSR. Причины, по которым в статье выбраны эти два набора данных, заключаются в следующем: (1) оба набора данных содержат реальные проекты и уязвимости (2) модели в большинстве статей оцениваются и настраиваются с использованием набора данных Devign (3) Набор данных MSR содержит 310 проектов; , и данные помечены типами уязвимостей, что имеет решающее значение для нашего исследовательского вопроса. Благодаря тщательно спланированным экспериментам и рассмотрению угроз в статье были получены результаты по шести исследовательским вопросам. В целом исследовательский вклад данной статьи включает в себя:
Чтобы собрать наиболее передовые модели глубокого обучения, в документе были изучены статьи с 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 не был Открытый исходный код.