УДК 681.518.5
DOI: 10.24412/2071 -6168-2024-10-546-547
АЛГОРИТМ ФОРМИРОВАНИЯ ТЕСТОВ С ИСПОЛЬЗОВАНИЕМ ТЕХНОЛОГИИ WORD2VEC ДЛЯ ВЫЯВЛЕНИЯ УЯЗВИМОСТЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Э.И. Тихонов, Д.И. Опрышко
В статье рассматривается подход к тестированию на проникновение программного обеспечения (ПО) вычислительных систем и комплексов (ВСК) с использованием технологии Word2vec для выявления потенциальных уязвимостей программного обеспечения на основе спецификаций требований. Разработанный алгоритм обеспечивает получение наборов данных для формирования тестов на проникновение. Интеллектуальным ядром алгоритма является модель глубокого обучения Word2vec WordEmbeddings.
Ключевые слова: вычислительные системы и комплексы; технологии нейросетей; глубокое обучение; уязвимости программного обеспечения; тестирование на проникновение; обработка естественного языка.
Введение. Современные вычислительные системы и комплексы представляют собой совокупность взаимосвязанных между собой программных и аппаратных комплексов, непрерывное усложнение которых приводит к повышению требований к качеству и эффективности процессов тестирования, используемого в их составе программного обеспечения. Тестирование программного обеспечения является ресурсоемким процессом, важной частью которого является тестирование на проникновение.
Порядок и цели проведения тестирование на проникновение регламентируется рядом документов, в частности в Российской Федерации: ГОСТ Р 58143-2018 "Информационная технология. Методы и средства обеспечения безопасности. Тестирование на проникновение", ведомственными документами (например - Положение Банка России от 17.04.2019 N 683-П, устанавливающее ежегодное тестирование для финансовых организаций (п. 3.2)); за рубежом - например, документами NIST (National Institute of Standards and Technology), OWASP (Open Web Application Security Project).
Основными целями и задачами тестирования на проникновение, исходя из анализа документов, следует
считать:
- определение факта наличия уязвимостей в системе или сети;
- оценка эффективности мер безопасности;
- проверка соответствия системы требованиям безопасности;
- идентификация потенциальных угроз и рисков.
Целью исследований, в рамках которых разработан алгоритм, является повышения эффективности тестирования программного обеспечения ВСК посредством автоматизации процессов определение факта наличия уязви-мостей программ и идентификация потенциальных угроз и рисков с использованием технологий машинного обучения. Для достижения указанной цели предлагается использовать одну из технологий обработки естественного языка (Natural language processing, NLP), подразумевающую применением алгоритмов машинного обучения для анализа текстовых данных - технологию Word2Vec. В качестве исходного набора текстовых данных предлагается использовать набор данных с описанием требований к программному обеспечению, по структуре аналогичный PROMISE_exp [1,2] и репозиторий CWE (описание уязвимостей) [3].
В настоящей статье предложен алгоритм, реализующий автоматическое извлечения признаков из документов, содержащих спецификацию требований к программному обеспечению (SRS или техническое задание на разработку (ТЗ)) с целью формирования суждений о базовой функциональности и общей архитектуре программного обеспечения и последующего определения класса программного обеспечения. Для определенного класса программного обеспечения в дальнейшем формируется перечень потенциальных уязвимостей с использованием данных репозитория Common Weakness Enumeration (CWE), на основе которого формируется перечень тестовых воздействий для тестирования на проникновение.
Формирование набора данных для тестирования на проникновение. В области NLP под понятием «word embedding» (встраивание слова, вложение слова, эмбеддинг) подразумевается представление слова в цифровом формате, удобном для обработки средствами языкового моделирования и формирования множеств признаков для применения методов глубокого обучения. Цель эмбеддинга - представление слов или фраз текстового корпуса в виде векторов (семантические вектора) в едином векторном пространстве. Смысл слова или фразы в данном пространстве будет определяться не набором закодированных в векторе букв, а векторным окружением.
Необходимая базовая терминология:
токен - текстовая единица, слово, предложение и т.д.;
токенизация - разбиение текста на токены;
документ - это совокупность токенов, которые принадлежат одной смысловой единице (предложение, содержимое тэга и т.д);
текстовый корпус - совокупность всех документов для обработки;
нормализация - приведение слов одинакового смысла к одной морфологической форме (стемминг и лем-матизация);
стемминг - процесс приведения слова к неизменяемой основе;
лемматизация - процесс приведения слова к начальной форме (необходим словарь);
стоп-слова - слова без информативного смысла (служебные слова, предлоги, частицы и союзы).
В настоящее время наибольшее применение получили 3 варианта векторного представления слов и фраз, применимых для использования в технологиях глубокого обучения:
1. Word2Vec - распределенное представление слов и их композиций [4,5].
2. GloVe - метод глобальных векторов для представления слов [6].
3. LexVec - матричная векторизация с использованием оконной и отрицательной выборки [7].
Перед применением каждого из указанных вариантов представления текстовый корпус необходимо под-
546
готовить, проведя его нормализацию и лемматизацию.
Для решения задачи практического применения технологий обработки естественного языка с целью формирования набора данных для тестирования на проникновения и разработки алгоритма необходимо выделить следующие вопросы исследований:
1. Анализ существующих подходов к автоматизации тестирования с целью выявления возможных угроз безопасности, их недостатки.
2. Что будет использоваться в качестве документов и текстового корпуса, в чем будет заключаться подготовка текстового корпуса.
3. Какой вариант представления текста в числовые тензоры будет использоваться.
4. Какой вариант векторного представления (мэппинга) текстового корпуса будет использоваться.
5. Обобщенная технология автоматизированного процесс классификации требований к ПО, функций и классов ПО.
Применение технологий глубокого обучения, и, в частности нейросетевых технологий для автоматизации процессов тестирования на проникновение, в настоящее время не является новым и признается перспективным направлением исследований [7,8]. Однако, известным подходам с использованием технологий глубокого обучения присущи свои недостатки. Например, в статье «Improving the Usability of Static Security Analysis» [7] предложен подход, в основе которого лежит теория использования алгоритмов статистического обучения для формирования предупреждений о проблемах безопасности в программном коде (warnings output). Исходными данными для алгоритмов обучения являются отзывы пользователей-экспертов (user feedback) и сообщения о проблемах (issues) в коде (на веб-сервисах для хостинга IT-проектов (например - GitHub). Пользователь находит и классифицирует небольшой процент связей «фрагмент кода, библиотека» - проблема/уязвимость», а алгоритм машинного обучения находит в коде аналогичные связи и автоматически формирует сообщения о проблемах безопасности. В ходе практической отработки предлагаемого в статье подхода авторы отмечают, что существует ряд проблем в применении подобного алгоритма. Большинство проблем связаны с тем, что алгоритм ориентирован на использование знаний пользователей-экспертов, уровень квалификации которых в сфере безопасности различен. Поэтому результаты автоматизированного поиска проблем в коде программ не точны. Развитие подхода, в зарубежной литературе обозначенный как Static Application Security Testing (SAST, Статическое тестирование безопасности приложений), также является перспективным. Работы в данном направлении ведутся более 10 лет [9,10]. К недостаткам указанного подхода следует отнести привязку к определенному узкому классу программ, трудность формализации описания уязвимости для последующей обработки статическими анализаторами. Кроме того, существующие и наиболее широко используемые SAST-алгоритмы часто дают ненадежные результаты из-за ложноположительных результатов выявления уязвимо-стей, значительно превышающих число истинно-положительных результатов.
Целесообразность применения методов глубокого обучения, связанных с NLP, отмечается рядом авторов. Например, в статье [5] указана возможность применения GloVe для минимизации проблемы ложных положительных результатов путем внедрения метода фильтрации результатов SAST. Применение NLP для определение факта наличия уязвимостей посредством выделения и анализа набора функциональных и нефункциональных требований к ПО с использованием нейросетевых моделей рассматривается, в частности, в статье [11]. В указанных выше исследованиях в качестве источника данных используются, как правило, исходные тексты программ. В рамках предлагаемого алгоритма в качестве источника данных для обучения нейросети используется текстовый корпус на основе формальных спецификаций требований к проекту (SRS) или технического задания на разработку ПО ВСК.
В рамках второго вопроса исследований предлагается использовать в качестве источника данных для обучения нейросети текстовый корпус на основе формальных спецификаций требований к проекту (SRS) или технического задания на разработку ПО ВСК. SRS - это перечисление функциональных и нефункциональных требований к программному обеспечению. Разработка SRS - в настоящее время за рубежом один из первых этапов жизненного цикла безопасной разработки ПО (SDLQ.
В рамках алгоритма документ - совокупность документации, образующей техническое задание на разработку ПО и спецификация требований к проекту конкретной ВСК. Тестовый корпус - репозиторий доступных для обработки технических заданий и спецификаций. Организация данных «документ-текстовый корпус» необходима для обеспечения возможности использования различных способов представления текста в числовые тензоры (векторизации), рассмотренных далее.
В рамках третьего вопроса исследований необходимо выбрать способ векторизации текста. К числу применяемых в настоящее время способов относятся:
- прямое кодирование (one-hot encoding);
- мешок слов (bag of words, ВоШ);
- TF-IDF (Term Frequency-Inverse Document Frequency - частотность слова в документе и инверсия частоты документа);
- методы группы «word embeddings».
В источниках [2], [11] смотрены классификаторы с использованием алгоритмов MNB (метод «наивного Байеса»), kNN (метод k ближайших соседей), SVM (метод опорных векторов), сетей RNN, LTSM на основе представлений расширенного набора данных с использованием технологий BoW и TF-IDF, указаны их недостатки.
В рамках четвертого вопроса исследований, с целью нивелировать эти недостатки, предлагается использовать метод группы «word embeddings» - Word2Vec для классификации требований и классов ПО ВСК.
С целью проведения исследований было разработана обобщенная технология автоматизированного процесса классификации требований к ПО, функций и классов ПО, представленная на рисунке 1. Технология позволяет оценивать преимущества и недостатки различных вариантов извлечения, выбора, фильтрации признаков для обучения модели Word Embedding Model, формировать классы требований к ПО и классы ПО ВСК.
Нормализация текстового корпуса заключается в удалении лингвистического контента, не несущего полезной информации. Извлечение признаков - извлечения числовых характеристик слов из текста. Выходные признаки соответствуют уникальным терминам в корпусе документа, а числовым значением каждого признака для документа является количество вхождений термина в анализируемом документе для извлечения признаков могут использоваться методы Bag of Words, возможно в комбинации с методами SVN, kNN и т.д.
Репозиторий
документации
программ
метрики (F1, Accur,Prec,Rec)
Рис. 1. Автоматизированный процесс классификации требований к ПО ВСК, функций и классов ПО ВСК
Цель фильтрации признаков является уменьшение размерности набора данных посредством отсеивания не значимых или редко встречающихся слов (терминов). Общепринятый подход в области обработки текстов к уменьшению размерности - применение метода хи-квадрат (Chi-Squred) для первоначального отбрасывания незначимых слов (критерий хи-квадрат - любая статистическая проверка гипотезы). Поскольку уменьшение размерности не имеет смысла для представления Word2vec, метод применяются только при использовании методов BoW и TD-IDF.
Алгоритм применения технологии Word2Vec для автоматизации процесса тестирования на проникновение. Структура алгоритма определяется использованием его в рамках технологии, представленной на рисунке 1, алгоритм является частным случаем указанной технологии и рассматривается ниже. На этапе формализации и извлечения признаков используется прямое кодирование, применение которого совместно с Word2Vec не вызывает практических трудностей. Для выбора, анализа, фильтрации признаков используется технология Word2Vec. Применение технологии Word2Vec как правило подразумевает использование двух типов моделей - CBOW и Skip-gram. Модель CBOW (Continuous Bag of Words) используется для обработки массива слов (контекста). На вход модели подается контекст (множество слов), а модель предсказывает слово, наиболее подходящее контексту. Модель Skip-gram применяется для решения задач генерации контекстных слов на базе одного входного слова. Задача, поставленная в статье, подразумевает сужение контекста текстового корпуса, поэтому в рамках алгоритма предлагается использовать модель CBOW. Модель представляет собой вариант реализации структуры языковой модели нейронной сети с прямой связью (feedforward NNLM) без нелинейного скрытого слоя, таким образом, слой проекции является общим для всех слов, векторы слов усредняются [5]. В упрощенном виде архитектура сети CBOW представлена на рисунке 2. W(t) - векторное представление слова из словаря размерностью V, t - индекс центрального слова контекста.
В статье [5] слой проекции описан только с функциональной точки зрения. Слой проекции отображает индексы дискретных слов контекста в непрерывное векторное пространство. Данный слой является общим для контекста, поэтому при практической реализации предлагается использовать топологию, приведенную на рисунке 3, позволяющую комбинировать матрицу весов нейронов и массив контекста в одномерный.
На входной слой нейросети подается контекстный набор слов - матрица V размерностью сxV, где с - вектор представления слова, V - размер контекста. Слой проекции не поддерживает функций активации, а обеспечивает формирование одномерного массива, результат перемножения матрицы весовых коэффициентов и входного контекстного набора (^V - continuous vector) - embedded word vectors для контекста.
Архитектура сети CBOW при практической реализации должна также содержать слой генерации вектора оценок (скрытый слой) и выходной слой, преобразующий оценки в вероятности, с функцией активации Softmax.
В качестве набора данных для обучения классификаторов требований к программному обеспечению (и на базе их - классификаторов типов программного обеспечения) используются следующие наборы данных:
1. Аналогичный по структуре PROM[SE_exp набор данных, содержащий информацию о требования из ТЗ и классах требований. Классы требований представлены в таблице 1. По сравнению с PROM[SE_exp количество классов сокращено, оставлены только классы, данные которых могут быть использованы для подбора воздействий для тестирования на проникновение из репозитория CWE
Входной слой Слой проекции Выходной слой
W (t-2) W(t-1) W(t+1) 1 0 0 -
0 N» —► -► W(t)
0 0
1 0
0 г 0
0 1
0 0 1 0
Рис. 2. Модель с архитектурой CBOW
Входной слой
Рис. 3. Вариант формирования слоя проекции
Пример набора данных для обучения (датасета): @ATTRIBUTE ProjectID
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,4 5,46,47,48,49}
@ATTRIBUTE RequirementText string
@ATTRIBUTE _class_ {F,A,LF,MN,O,PE,SC,SE,US,FT,PO}%Check and make sure that FT and PO should be
there
@DATA
1, 'Система обновляет информацию на дисплее каждые 50 сек. ',PE
1, 'Цветовая гамма приложения должна соответствовать стандартам компании',LF
1, 'Должна быть предусмотрена возможность экспорта и импорта данных прогноза',US
2, 'Пользователь должен иметь возможность генерации отчета по безопасности за заданный период,F
2, 'Должна быть предусмотрена возможность дистанционного подключения и аутентификации по протоколу SSH ',SE
3, 'Восстановление данных из резервной базы PostgreSQL должно занимать не более 10 часов',FT 3, 'Должна быть предусмотрена работа с сетевым хранилищем данных по протоколы FTP ',F
Таблица 1
Классы требований_
Тип требований Интерпретация требований применительно к ТЗ или 8Я8
Functional Requirement (F) Функциональные требования
Availability (A) Доступность - гарантия того, что ИТ-инфраструктура предприятия имеет достаточно возможностей восстановления и защиты от системных сбоев, стихийных бедствий или злонамеренных атак.
Look-and-feel (LF) Группа требований по внешнему виду графического пользовательского интерфейса, аспекты дизайна (цвета, формы, макеты и шрифты), а также требования к поведению динамических элементов, таких как кнопки, поля и меню
Maintainability (MN) Ремонтопригодность (восстанавливаемость ПО) - мера вероятности того, что программное изделие будет поддерживаться или восстанавливаться до заданной функции в течение определенного периода времени при заданном уровне условий восстановления на предприятии.
Operability (O) Работоспособность применительно к программной инженерии - операционные требования, предъявляемые разработчиком чтобы гарантировать, что программное обеспечение сохранит полную функциональность в описываемом программном и аппаратном окружении.
Performance (PE) В контексте программного обеспечения «производительность» - показатель того, насколько хорошо программная система или приложение выполняет задачи в рамках определенных ограничений, таких как скорость, оперативность, пропускная способность, масштабируемость и использование ресурсов.
Scalability (SC) Масштабируемость программного обеспечения - мера того, насколько легко увеличить или уменьшить количество функциональных элементов программного обеспечения. Термин допустимо интерпретировать как способность программного обеспечения справляться с возросшими рабочими нагрузками при добавлении и удалении пользователей с минимальными затратами.
Security (SE) Безопасность программного обеспечения - это концепция реализации механизмов построения безопасности, обеспечивающая возможность ПО оставаться функциональным (или устойчивым) к атакам. Степень выполнения требований по безопасности устанавливается после тестирования безопасности
Usability (US) Юзабилити - показатель, позволяющий формализовать и измерить степень удобства использования программного продукта. С точки зрения дизайна это концепция, призванная обеспечить максимально простое и понятное использование продукции.
Fault Tolerance (FT) Отказоустойчивость - способность системы (компьютера, сети, облачного кластера и т. д.) продолжать работу без перебоев при выходе из строя одного или нескольких компонентов.
Portability (PO) Переносимость программного обеспечения - возможность использовать одно и то же программное обеспечение в разных средах. Переносимым является программное обеспечение, которое доступно для двух или более разных платформ или может быть перекомпилировано для них.
2. Текстовая база CWE [3], в которой классифицированы и кратко описаны отдельные уязвимости классов программного обеспечения и распространенных библиотек в соответствии с их функциональным назначением, а также риски при применении отдельных категорий ПО и библиотек, способы обнаружения уязвимостей и т.д.
Пример описания:
<Weakness ID="1004" Name = "Sensitive Cookie Without 'HttpOnly' Flag" Abstraction = "Variant" Struc-ture="Simple " Status= "Incomplete ">
<Description>The product uses a cookie to store sensitive information, but the cookie is not marked with the HttpOnly flag. </Description>
<Extended_Description>The HttpOnly flag directs compatible browsers to prevent client-side script from accessing cookies. Including the HttpOnly flag in the Set-Cookie HTTP response header helps mitigate the risk associated with Cross-Site Scripting (XSS) where an attacker's script code might attempt to read the contents of a cookie and exfiltrate information obtained. When set, browsers that sup-port the flag will not reveal the contents of the cookie to a third party via client-side script executed via XSS.</Extended_Description> <Detection_Methods>
<Detection_Method Detection_Method_ID="DM-14">
<Method>Automated Static Analysis</Method>
<Description>Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)</Description>
Подготовка текстового корпуса заключается в обработке полей Weakness ID, Description, Extended_Description для формирования единого текстового файла, связывающего понятия класс ПО ВСК, код уязвимости, протокол, библиотека и т.д.
С учетом вышеизложенного, предлагается схема алгоритма применения технологии Word2Vec для автоматизации процесса тестирования на проникновение посредством автоматизации формирования тестовых наборов, представленная на рисунке 4.
Получаемые в результате реализации рассмотренного алгоритма после обработки репозиториев PROMICE_TYPE и технических заданий (ТЗ, SRS) наборы данных для алгоритмов формирования тестов на проникновение представляют собой совокупность типов, функций, классов и требований к ПО. В результате обработки по аналогичной схеме текстовой базы CWE [3] формируется набор данных, содержащий типы, функции, классы, требования к ПО и соответствующие им уязвимости. В результате формируется набор данных, применимый для составления тестов или непосредственно, или путем использования алгоритмов машинного обучения (входные данные -классы и функции ПО, типы требований к ПО).
Математические операции предлагаемого алгоритма реализованы с использованием пакетов:
vec2graph - для визуализации семантической близости слов в виде сети на этапе первичного анализа текстового корпуса;
UDPipe или PyMystem3 - для лемматизации текстового корпуса;
Nltk - для токенизации, исключения стоп-слов;
Scikit-learn - при исследованиях с обработкой TF-IDF, при исследовании классификаторов;
Gensim - для работы с семантическими векторными моделями, реализации Word2Vec.
3
Импорт репозитория PROMICE TYPE
Предобработка данных, нормализация, фильтрация
Параметры ПО,
требования, типы требований
Формирование обучающих наборов (one-hot encoding)
Моделирование работы модели глубокого обучения CBOW
Импорт репозитория ТЗ на ПО
Предобработка данных, нормализация, фильтрация
Параметры ПО,
требования, типы требований
Предобработка данных, нормализация, фильтрация
Ю уязвимости,
описан ие, расширенное описание
1 i
Формирование обучающих наборов (one-hot encoding) Формирование обучающих наборов (one-hot encoding)
1
Моделирование работы модели глубокого обучения CBOW
Моделирование работы модели глубокого обучения CBOW
Ключевые слова: требования,
ти пы требований, функции ПО
Ключевые слова:
функции ПО, требования, типы требований
Ключевые слова:
классы ПО, функции - код
уязвимости, метод проверки, протокол, библиотека
Формирование наборов данных: классы ПО, функции ПО, требования к ПО, соответствующие им _уязвимости_
Алгоритмы классификации (кNN, SVN И т.д.
Тестовые наборы
Конец
Рис. 4. Алгоритм формирования тестовых наборов с использованием технологии Word2Vec
для обработки текстового корпуса
Заключение. Представленный алгоритм применения Word2Vec, примененный для решения прикладной задачи автоматизации процесса тестирования на проникновение в части автоматизации подбора уязвимостей с привязкой к заданному классу программного обеспечения ВСК, как показывают проведенные исследования, обеспечивает повышение результативности и оперативности тестирования на проникновение по сравнению с существующими подходами. Основными вопросами дальнейших исследований, проводимых в направлении выбора механизма извлечения признаков из текстов документации ПО ВСК будут являться:
1. Оценивание размерности наборов данных, которые можно получить в результате вычисления представлений BoW и TF-IDF в нормализованном текстовом корпусе требований к программному обеспечению.
2. Сравнение распространенных методов машинного обучения в рамках предлагаемой в статье технологии (рисунок 1) по производительности при решении задачи классификации требований и классификации ПО на наборах данных по п.1 (предложенного в статье, kNN, SVN и т.д).
3. Разработка архитектур на основе базовых архитектур нейросетей (RNN, LSTM и т.д) для построения классификаторов типа «класс ПО - тип уязвимости» с учетом типов требований к ПО, классов функций ПО, классов ПО, т.к текущие результаты практических исследований показывают достаточно низкую точность классификации с применением как нейросетей, так и альтернативных алгоритмов машинного обучения.
Список литературы
1. Marcia Lima,Victor Valle, Estevao Costa, Fylype Lira, and Bruno Gadelha, "Software Engineering Repositories: Expanding the PROMISE Database", Proceedings of the XXXIII Brazilian Symposium on Software Engineering (SBES 2019), Association for Computing Machinery. P. 427-436. DOI: 10.1145/3350768.3350776.
2. Edna Dias Canedo. Software Requirements Classification Using Machine Learning Algorithms, Entropy 2020, 22, 1057. DOI: 10.3390/e22091057.
3. MITRE Corporation, "Common Weakness Enumeration," CWE. Available: https://cwe.mitre.org (дата обращения: 11.04.2024).
4. Tomas Mikolov, Ilya Sutskever, Kai Chen, "Distributed Representations of Words and Phrases and their Compositionality" https://proceedings.neurips.cc/paper files/paper/2013/file/9aa42b31882ec039965f3c4923ce901b-Paper.pdf (дата обращения:18.04.2024).
5. Tomas Mikolov, Kai Chen, "Efficient Estimation of Word Representations in Vector Space", http://arxiv.org/pdf/1301.3781 (дата обращения:27.05.2024).
6. Jeffrey Pennington, Richard Socher, Christopher D. Manning, "GloVe: Global Vectors for Word Representation", https://nlp.stanford.edu/pubs/glove.pdf (дата обращения:18.04.2024).
7. Alexandre Salle, Aline Villavicencio, Marco Idiart, "Matrix Factorization us-ing Window Sampling and Negative Sampling for Improved Word Represen-tations". https://aclanthology.org/P16-2068 (дата обращения: 18.04.2024).
8. Tripp O., Guarnieri S., Pistoia M., Aravkin A. Improving the usability of static security analysis. In Proceedings of the 2014 ACM SIGSAC Confer-ence on Computer Communications Security. P. 762-774.
9. Fellder M., Agreiter, B., Zech, P. and Breu, R., 2011. A classification for model-based security testing. Advances in System Testing and Validation Lifecycle (VALID 2011). P. 109-114.
10. Livshits V.B., Lam M.S. August. Finding Security Vulnerabili-ties in Java Applications with Static Analysis. In USENIX Security Sympo-sium, 2005. Vol. 14. P. 18-18.
11. HTTP Response Splitting, https://owasp.org/www-community/attacks/HTTP Response Splitting (дата обращения: 10.03.2024).
12. Md. Abdur Rahman, Md. Ariful Haque, Md. Nurul Ahad Tawhid, "Classi-fying non-functional requirements using RNN variants for quality software development", Proceedings of the 3rd ACM SIGSOFT International Workshop on Machine Learning Techniques for Software Quality Evaluation, MaLTeSQuE 2019. P. 25-30. DOI: 10.1145/3340482.3342745.
Тихонов Эдуард Игоревич, канд. техн. наук, [email protected], Россия, Санкт-Петербург, Военно-космическая академия имени А. ФМожайского,
Опрышко Дмитрий Иванович, канд. техн. наук, доцент, Россия, Санкт-Петербург, Военно-космическая академия имени А. ФМожайского
THE ALGORITHM FOR FORMING PENETRATION TESTS OF COMPUTER SYSTEMS AND SOFTWARE
APPLICATIONS
E.I. Tikhonov, D.I. Opryshko
The article considers an approach to penetration testing of computer systems and software applications using Word2vec technology to identify potential software vulnerabilities based on requirement specifications. The developed algorithm provides data sets for generating penetration tests. The intelligent core of the algorithm is the Word2vec WordEmbed-dings deep learning model.
Key words: computer systems; software; neural network technologies; deep learning; software vulnerabilities; penetration test; natural language processing.
Tikhonov Edward Igorevich, candidate of technical sciences, senior researcher, [email protected], Russia, St. Petersburg, Military Space Academy named after A.F. Mozhaisky,
Opryshko Dmitrii Ivanovich, candidate of technical sciences, docent, Russia, St. Petersburg, Military Space Academy named after A.F. Mozhaisky