RU2747099C1 - Automated cybersecurity event testing system - Google Patents

Automated cybersecurity event testing system Download PDF

Info

Publication number
RU2747099C1
RU2747099C1 RU2019142435A RU2019142435A RU2747099C1 RU 2747099 C1 RU2747099 C1 RU 2747099C1 RU 2019142435 A RU2019142435 A RU 2019142435A RU 2019142435 A RU2019142435 A RU 2019142435A RU 2747099 C1 RU2747099 C1 RU 2747099C1
Authority
RU
Russia
Prior art keywords
infrastructure
testing
module
configuration file
user
Prior art date
Application number
RU2019142435A
Other languages
Russian (ru)
Inventor
Андрей Юрьевич Тамойкин
Original Assignee
Публичное акционерное общество "Сбербанк России" (ПАО Сбербанк")
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное акционерное общество "Сбербанк России" (ПАО Сбербанк") filed Critical Публичное акционерное общество "Сбербанк России" (ПАО Сбербанк")
Priority to RU2019142435A priority Critical patent/RU2747099C1/en
Priority to EA201992850A priority patent/EA201992850A3/en
Application granted granted Critical
Publication of RU2747099C1 publication Critical patent/RU2747099C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

FIELD: cybersecurity.SUBSTANCE: invention relates to automated cybersecurity event testing system. The system contains a query orchestration module connected to all the system modules and the database, which provides redirection of user requests to the system modules containing parameters for forming testing algorithms; an infrastructure autoconfiguration module in a virtual environment that interacts with the API of external tools and provides automatic deployment of the infrastructure in a virtual environment from the user's configuration file using external tools.; a testing module that provides automatic testing of cybersecurity events in the deployed infrastructure based on the information of testing algorithms contained in the user's configuration file; a module for monitoring events in the deployed infrastructure that provides automatic addition of monitoring mechanisms within the created infrastructure based on the data in the configuration file and processing events that occur as a result of the activity of objects in the created infrastructure; a database containing user configuration files with specified algorithm parameters for testing cybersecurity events.EFFECT: automation of cybersecurity event testing.6 cl, 5 dwg

Description

ОБЛАСТЬ ТЕХНИКИFIELD OF TECHNOLOGY

[0001] Настоящее техническое решение, в общем, относится к области вычислительной обработки данных, а в частности, к автоматизированным системам тестирования событий кибербезопасности.[0001] The present technical solution, in General, relates to the field of computational data processing, and in particular, to automated systems for testing cybersecurity events.

УРОВЕНЬ ТЕХНИКИLEVEL OF TECHNOLOGY

[0002] Основной задачей кибербезопасности является поддержание и повышение уровня защищенности объектов защиты соразмерно возникающим рискам, связанным с киберугрозами данным объектам защиты. При этом выявление действительного направления изменения (повышение или понижение) уровня защищенности при применении каких-либо действий на это направленных (например, изменение настроек групповой политики домена, внедрение нового СЗИ или добавление второго фактора аутентификации) по сути также является гипотезой. На текущий момент данная гипотеза зачастую подтверждается или опровергается либо экспертным мнением, либо тестированием с низкой точностью (на промышленных инфраструктурах, где отсутствует возможность использования действительно вредоносной активности). Ни то, ни другое не является достаточным доказательством для принятия решения о применении каких-либо действий, особенно в промышленной среде.[0002] The main task of cybersecurity is to maintain and increase the level of protection of objects of protection commensurate with the emerging risks associated with cyber threats to these objects of protection. At the same time, identifying the actual direction of change (increasing or decreasing) the level of security when applying any actions aimed at this (for example, changing the settings of the domain group policy, introducing a new information security system or adding a second authentication factor) is, in fact, also a hypothesis. At the moment, this hypothesis is often confirmed or refuted either by expert opinion or by testing with low accuracy (on industrial infrastructures where there is no possibility of using really malicious activity). Neither one nor the other is sufficient evidence to make a decision to take any action, especially in an industrial environment.

[0003] Таким образом, что в рамках исследовательской деятельности, что в рамках операционной деятельности, в области кибербезопасности постоянно возникает потребность в проведении экспериментов (тестирований). При этом основной особенностью проведения таких тестов в «точном» исполнении является использование реальных вредоносных действий, программ, нагрузок, которые, в свою очередь, способны разрушить всю инфраструктуру проведения тестирования, что приведет к дополнительным трудозатратам или невозможности выполнения тестирования.[0003] Thus, in the framework of research activities, that in the framework of operational activities, in the field of cybersecurity, there is a constant need for experiments (testing). At the same time, the main feature of conducting such tests in "exact" execution is the use of real malicious actions, programs, loads, which, in turn, can destroy the entire testing infrastructure, which will lead to additional labor costs or the impossibility of testing.

[0004] Помимо этого, гипотезы, сформулированные в исследовательских лабораториях и внутри организации, зачастую имеют различный характер и требуют различных тестовых сред для проведения тестирования (в лаборатории это может быть стенд с общими инфраструктурными настройками, тогда как внутри организации это должен быть стенд, отражающий реальную инфраструктуру с определенной точностью).[0004] In addition, hypotheses formulated in research laboratories and within an organization are often of a different nature and require different test environments for testing (in a laboratory it can be a stand with general infrastructure settings, while inside an organization it should be a stand reflecting real infrastructure with a certain precision).

[0005] Более того, статические тестовые среды также не всегда подходят для тестирования в области кибербезопасности, так как ряд существующих на данный момент атак использует динамические данные, генерируемые пользователями и приложениями (например, пользовательский сетевой трафик или область памяти, в которой работает программа).[0005] Moreover, static test environments are also not always suitable for testing in the field of cybersecurity, since a number of currently existing attacks use dynamic data generated by users and applications (for example, user network traffic or the memory area in which the program runs) ...

[0006] Ввиду этого, наличие системы, позволяющей автоматизировать развертывание среды для тестирования, проводить заданный сценарий тестирования с подготовленной динамической активностью внутри среды теста и изолированием этой среды от внешних взаимодействий является приоритетной задачей для проведения исследовательской деятельности.[0006] In view of this, the presence of a system that allows you to automate the deployment of the test environment, to conduct a given test scenario with prepared dynamic activity inside the test environment and isolating this environment from external interactions is a priority task for conducting research activities.

[0007] Такие системы широко известны из уровня техники, например, CybExer Range Platform (см. https://cybexer.com), Cyber Exercise & Research Platform (см. https://www.kypo.cz/en). Общим недостатком существующих решений в данной области является низкая скорость проведения тестирования и отсутствие автоматизации процесса тестирования.[0007] Such systems are widely known in the art, for example, CybExer Range Platform (see https://cybexer.com), Cyber Exercise & Research Platform (see https://www.kypo.cz/en). A common disadvantage of existing solutions in this area is the low speed of testing and the lack of automation of the testing process.

СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯESSENCE OF THE TECHNICAL SOLUTION

[0008] Заявленное техническое решение предлагает новый подход в области тестирования событий кибербезопасности.[0008] The claimed technical solution proposes a new approach in the field of testing cybersecurity events.

[0009] Решаемой технической проблемой или технической задачей является создание новой автоматизированной системы для тестирования событий в области кибербезопасности, обладающей высокой скоростью и точностью проведения тестирования.[0009] The technical problem or technical problem to be solved is the creation of a new automated system for testing events in the field of cybersecurity, with a high speed and accuracy of testing.

[0010] Основным техническим результатом, достигающимся при решении вышеуказанной технической проблемы, является автоматизация процесса проведения тестирования в области событий кибербезопасности.[0010] The main technical result achieved when solving the above technical problem is the automation of the testing process in the field of cybersecurity events.

[0011] Дополнительным техническим результатом, достигающимся при решении вышеуказанной технической проблемы, является повышение скорости проведения тестирования в области событий кибербезопасности.[0011] An additional technical result achieved by solving the above technical problem is to increase the speed of testing in the field of cybersecurity events.

[0012] Заявленные результаты достигаются за счет автоматизированной системы тестирования событий кибербезопасности, содержащей:[0012] The claimed results are achieved through an automated cybersecurity event testing system comprising:

• модуль оркестрации запросов, выполненный с возможностью перенаправления запросов пользователей к модулям системы, причем пользовательский запрос содержит параметры формирования алгоритмов тестирования;• a query orchestration module capable of redirecting user requests to system modules, and the user request contains parameters for generating testing algorithms;

• модуль автоконфигурации инфраструктуры в виртуальной среде, выполненный с возможностью автоматического развертывания инфраструктуры в виртуальной среде из конфигурационного файла пользователя и взаимодействия с внешними инструментами;• module for auto-configuration of infrastructure in a virtual environment, made with the ability to automatically deploy infrastructure in a virtual environment from the user's configuration file and interact with external tools;

• модуль проведения тестирования, выполненный с возможностью автоматического тестирования событий кибербезопасности на основе информации алгоритмов тестирования, содержащейся в конфигурационном файле пользователя;• a testing module capable of automatic testing of cybersecurity events based on the information of testing algorithms contained in the user's configuration file;

• модуль мониторинга инфраструктуры, выполненный с возможностью автоматического добавления механизмов мониторинга внутри созданной инфраструктуры и обработки событий, возникающих в результате мониторинга активности объектов инфраструктуры;• an infrastructure monitoring module capable of automatically adding monitoring mechanisms within the created infrastructure and processing events arising from monitoring the activity of infrastructure objects;

• по меньшей мере одна база данных, содержащую конфигурационные файлы пользователей с заданными параметрами алгоритмов для тестирования событий кибербезопасности.• at least one database containing user configuration files with specified algorithm parameters for testing cybersecurity events.

[0013] В одном из частных вариантов осуществления система содержит прокси-сервер, выполняющий алгоритмы безопасного соединения.[0013] In one particular embodiment, the system comprises a proxy server that executes secure connection algorithms.

[0014] В другом частном варианте осуществления модуль проведения тестирования выполняет алгоритм обработки сценария тестирования.[0014] In another particular embodiment, the test execution module executes a test script processing algorithm.

[0015] В другом частном варианте осуществления модуль проведения тестирования выполняет алгоритм подготовки очереди задач, которые должны быть реализованы до начала тестирования.[0015] In another particular embodiment, the testing module executes an algorithm for preparing a queue of tasks to be implemented prior to testing.

[0016] В другом частном варианте осуществления модуль проведения тестирования выполняет алгоритм формирования обратной связи с инфраструктурой во время тестирования.[0016] In another particular embodiment, the test module performs an algorithm for generating feedback with the infrastructure during testing.

[0017] В другом частном варианте осуществления модуль проведения тестирования выполняет алгоритм оптимизации инфраструктуры в виртуальной среде.[0017] In another particular embodiment, the test module executes an infrastructure optimization algorithm in a virtual environment.

ОПИСАНИЕ ЧЕРТЕЖЕЙDESCRIPTION OF DRAWINGS

[0018] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:[0018] Features and advantages of the present invention will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

[0019] Фиг. 1 иллюстрирует общую схему заявленной автоматизированной системы тестирования событий кибербезопасности.[0019] FIG. 1 illustrates a general diagram of a claimed automated cybersecurity event testing system.

[0020] Фиг. 2 иллюстрирует общую схему мониторинга в реальном времени.[0020] FIG. 2 illustrates a general scheme for real-time monitoring.

[0021] Фиг. 3 иллюстрирует общую схему мониторинга по результатам активности в инфраструктуре.[0021] FIG. 3 illustrates a general framework for monitoring the results of activity in the infrastructure.

[0022] Фиг. 4 иллюстрирует общую схему мониторинга с помощью гипервизора платформы виртуализации.[0022] FIG. 4 illustrates a general framework for monitoring a virtualization platform hypervisor.

[0023] Фиг. 5 иллюстрирует общий вид вычислительного устройства, для реализации системы.[0023] FIG. 5 illustrates a general view of a computing device for implementing a system.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯCARRYING OUT THE INVENTION

[0024] Автоматизированная система тестирования событий кибербезопасности предназначена для: автоматического развертывания инфраструктуры в виртуальной среде из конфигурационного файла, созданного пользователем, автоматической подготовки и добавления различной динамической активности в созданную инфраструктуру, разработки сценария тестирования в области кибербезопасности, оптимизации инфраструктуры, участвующей в тестировании во время его проведения, проведения тестирования согласно заранее созданному сценарию, хранения и предоставления ранее созданных (другими пользователями) конфигурационных файлов пользователям системы.[0024] The automated cybersecurity event testing system is intended for: automatic deployment of infrastructure in a virtual environment from a configuration file created by a user, automatic preparation and adding various dynamic activities to the created infrastructure, development of a test script in the field of cybersecurity, optimization of the infrastructure involved in testing during its conduct, testing according to a previously created scenario, storage and provision of previously created (by other users) configuration files to system users.

[0025] В рамках автоматического развертывания инфраструктуры в виртуальной среде, система послойно (например, сначала виртуальные машины, затем сеть между ними, затем настройка домена и т.д.) воспроизводит инфраструктуру, описанную в конфигурационной файле, созданном пользователем. Для этого система с помощью собственных алгоритмов автоконфигурации анализирует конфигурационный файл и транслирует его в конкретные директивы, которые располагаются в порядке, который не приведет к возникновению ошибок при автоматическом развертывании. Данные директивы представляют собой вызовы к внешним подсистемам. Система оркестрирует директивы, перенаправляя их в правильном порядке к внешним подсистемам, обрабатывая результат выполнения директивы и корректируя следующую директиву в соответствии с полученным результатом. Таким образом, постепенное выполнение всех директив позволяет в конечном итоге получить законченную инфраструктуру, соответствующую заданной в конфигурационном файле пользователя.[0025] As part of the automatic deployment of infrastructure in a virtual environment, the system layer by layer (for example, first virtual machines, then the network between them, then setting the domain, etc.) reproduces the infrastructure described in the configuration file created by the user. To do this, the system, using its own auto-configuration algorithms, analyzes the configuration file and translates it into specific directives, which are arranged in an order that will not lead to errors during automatic deployment. These directives represent calls to external subsystems. The system orchestrates directives, redirecting them in the correct order to external subsystems, processing the result of directive execution and adjusting the next directive in accordance with the result. Thus, the gradual execution of all directives ultimately allows you to get a complete infrastructure corresponding to the one specified in the user's configuration file.

[0026] Система использует внешние подсистемы как инструмент для выполнения директив и позволяет, но не ограничивается, реализовывать следующие директивы:[0026] The system uses external subsystems as a tool to execute directives and allows, but is not limited to, the following directives to be implemented:

• создать виртуальные машины (из заранее подготовленных шаблонов или с помощью создания новой виртуальной машины с заданными характеристиками),• create virtual machines (from pre-prepared templates or by creating a new virtual machine with specified characteristics),

• создать сетевую топологию для созданных виртуальных машин (с эмуляцией реального сетевого оборудования),• create a network topology for the created virtual machines (with emulation of real network equipment),

• создать базовые интеграции между виртуальными машинами (развертывание и конфигурация домена, почтового сервиса, системы динамического распределения IP-адресов и т.д.),• create basic integrations between virtual machines (deployment and configuration of a domain, mail service, dynamic distribution of IP addresses, etc.),

• развернуть программное обеспечение на созданных виртуальных машинах,• deploy the software on the created virtual machines,

• развернуть систему мониторинга и сбора данных, полученных в ходе тестирования, для созданного киберпространства,• deploy a system for monitoring and collecting data obtained during testing for the created cyberspace,

• изолировать созданное киберпространство от внешних воздействий виртуальной среды.• isolate the created cyberspace from the external influences of the virtual environment.

При этом система позволяет добавлять внешние подсистемы для реализации новых директив.At the same time, the system allows adding external subsystems to implement new directives.

[0027] В рамках автоматической подготовки и добавления различной динамической активности в созданную инфраструктуру, система позволяет подключить различные инструменты для симуляции той или иной активности в созданной виртуальной инфраструктуре. Система использует сторонние инструменты (например, интеллектуальные агенты) для реализации динамической активности и позволяет, но не ограничивается, реализовывать следующие активности:[0027] As part of the automatic preparation and addition of various dynamic activities to the created infrastructure, the system allows you to connect various tools to simulate one or another activity in the created virtual infrastructure. The system uses third-party tools (for example, intelligent agents) to implement dynamic activities and allows, but is not limited to, the following activities:

• симуляция зловредной активности (как действия злоумышленников, так и доставка, и запуск вредоносного программного обеспечения),• simulation of malicious activity (both the actions of intruders and the delivery and launch of malicious software),

• симуляция действий пользователей (на рабочий станциях),• simulation of user actions (on workstations),

• симуляция сетевого трафика,• simulation of network traffic,

• симуляция публичного сегмента сети Интернет,• simulation of the public segment of the Internet,

• симуляция сетевых сервисов.• simulation of network services.

При этом система позволяет добавлять внешние подсистемы для реализации новых активностей.At the same time, the system allows you to add external subsystems to implement new activities.

[0028] В рамках разработки сценария тестирования в области кибербезопасности пользователь указывает системе инфраструктуру и активность, которую необходимо провести в выбранной инфраструктуре. Помимо этого, пользователь может задать начальные условия активности, условия окончания активности и триггеры для осуществления тех или иных событий, которые пользователь задает отдельно (например, изменение таблицы межсетевого экрана в случае обнаружения определенного события), количество повторений, динамические переменные (например, несколько значений одной и той же настройки, чтобы в рамках одинаковых тестирований она изменялась и можно было увидеть разницу) и т.д.[0028] As part of developing a cybersecurity test scenario, the user indicates to the system the infrastructure and activity to be carried out on the selected infrastructure. In addition, the user can set the initial conditions for activity, conditions for the end of activity and triggers for the implementation of certain events that the user specifies separately (for example, changing the firewall table if a certain event is detected), the number of repetitions, dynamic variables (for example, several values the same setting, so that within the same testing it changes and you can see the difference), etc.

[0029] В рамках оптимизации инфраструктуры, участвующей в тестировании во время его проведения система предполагает различную степень «точности» (под «точностью» понимается приближенность к оригиналу, например: реальный компьютер можно виртуализировать - виртуальная машина с реальной ОС; эмулировать - запуск ОС внутри реальной ОС, установленной, например, на виртуальной машине; симулировать - запуск программы, которая будет способна принимать вызовы и возвращать ответы, симулировать поведение ОС) воспроизведения того или иного объекта (хост, сервис, сетевая топология, сетевое оборудование, пользователь в ОС, траффик в сети и т.д.) в виртуальной среде, путем выбора его представления: симуляция объекта, эмуляция, виртуализация, контейнеризация или использование полноценного оригинала (в аппаратном исполнении). Причем система может как дополнить основную инфраструктуру конфигурационного файла объектами с меньшей «точностью» (например, вокруг реальных виртуальных машин, реализующих один сетевой сегмент будет развернута симуляция других сетевых сегментов или еще один сетевой сегмент, реализующий рабочие станции с помощью контейнеризации), что позволяет расширить область тестирования, не увеличивая нагрузку на производительность системы, так и воспроизвести часть инфраструктуры из конфигурационного файла в менее «точном» варианте с последующим увеличением «точности» в режиме реального времени - используется для уменьшения необходимой мощности системы в рамках проведения тестирования в пошаговом режиме.[0029] As part of the optimization of the infrastructure involved in testing during testing, the system assumes varying degrees of "accuracy" ("accuracy" means closeness to the original, for example: a real computer can be virtualized - a virtual machine with a real OS; emulate - running the OS inside a real OS installed, for example, on a virtual machine; simulate - launch a program that will be able to receive calls and return responses, simulate OS behavior) reproduction of an object (host, service, network topology, network equipment, user in the OS, traffic on a network, etc.) in a virtual environment, by choosing its representation: object simulation, emulation, virtualization, containerization, or using a full-fledged original (in hardware). Moreover, the system can both supplement the basic infrastructure of the configuration file with objects with less "accuracy" (for example, around real virtual machines that implement one network segment, simulation of other network segments will be deployed or another network segment that implements workstations using containerization), which makes it possible to expand testing area, without increasing the load on system performance, and to reproduce part of the infrastructure from the configuration file in a less "accurate" version with a subsequent increase in "accuracy" in real time - is used to reduce the required system capacity as part of testing in a step-by-step mode.

[0030] В рамках проведения тестирования согласно заранее созданному сценарию система, используя информацию о тестировании, оптимизации инфраструктуры тестирования (если необходимо), динамических переменных тестирования, количестве повторений (если заданы на этапе создания сценария тестирования) формирует план проведения тестирования, в рамках которого:[0030] As part of testing according to a previously created scenario, the system, using information about testing, optimization of the testing infrastructure (if necessary), dynamic testing variables, the number of repetitions (if specified at the stage of creating a test scenario) generates a testing plan, within which:

• определяется необходимая мощность поддержания инфраструктуры тестирования, рассчитывается максимально возможное количество параллельных потоков тестирования с учетом динамических переменных и количества повторений,• the required capacity to maintain the testing infrastructure is determined, the maximum possible number of parallel testing threads is calculated, taking into account dynamic variables and the number of repetitions,

• формируется очередь задач по проведению тестирования.• a queue of tasks for testing is formed.

[0031] После формирования плана проведения тестирования система начинает его автоматическое проведение. При этом формируется заранее рассчитанное количество параллельных потоков, каждый из которых получает задачу из очереди, которая (задача) состоит из следующих этапов:[0031] After the formation of the test plan, the system starts its automatic execution. In this case, a pre-calculated number of parallel threads is formed, each of which receives a task from a queue, which (task) consists of the following stages:

• развертывание инфраструктуры в виртуальной среде,• deployment of infrastructure in a virtual environment,

• добавление динамической активности,• adding dynamic activity,

• начало тестирования,• start of testing,

• обработка событий согласно триггерам тестирования,• event handling according to test triggers,

• обнаружение события окончания тестирования,• detection of the end of testing event,

• сбор полученных данных,• collection of the received data,

• сохранение данных,• saving data,

• уничтожение развернутой инфраструктуры.• destruction of the deployed infrastructure.

[0032] Помимо этого, присутствует режим пошагового проведения тестирования, в котором пользователь заранее формирует шаги активностей, а система автоматически подготавливает необходимую часть инфраструктуры в заданной «точности.[0032] In addition, there is a step-by-step testing mode, in which the user generates activity steps in advance, and the system automatically prepares the necessary part of the infrastructure in a given “accuracy.

[0033] В рамках хранения и предоставления ранее созданных конфигурационных файлов пользователям система обеспечивает единую базу данных, в которой сохраняются ранее созданные сценарии тестирований и конфигурационные файлы инфраструктур. Также, если сценарий и/или инфраструктура уже использовались, то система может сохранять техническую информацию, которая позволяет, в случае повторного использования, пропускать ряд шагов, выполняемых системой для запуска тестирования или развертывания инфраструктуры. Также система осуществляет контроль версий указанных файлов и предоставляет интерфейс для поиска, просмотра, редактирования данных файлов. Помимо этого, система предоставляет программный интерфейс (API) для обмена и синхронизации содержимого (с учетом прав доступа) с базами данных таких же систем.[0033] As part of storing and providing previously created configuration files to users, the system provides a single database in which previously created test scripts and infrastructure configuration files are stored. Also, if the script and / or infrastructure has already been used, then the system can store technical information that allows, if reused, to skip a number of steps that the system takes to start testing or deploying the infrastructure. The system also controls versions of the specified files and provides an interface for searching, viewing, editing these files. In addition, the system provides a programming interface (API) for exchanging and synchronizing content (taking into account access rights) with databases of the same systems.

[0034] Основные входные данные для системы предоставляются в конфигурационном файле, который может представлять один из следующих форматов: YAML, XML, JSON - но не ограничиваться ими.[0034] The main input data for the system is provided in a configuration file, which can represent one of the following formats: YAML, XML, JSON - but not limited to them.

[0035] Задачей системы является обработка конфигурационного файла и реализация указаний, которые в нем содержаться с целью проведения тестирования в области кибербезопасности.[0035] The task of the system is to process the configuration file and implement the instructions that it contains for the purpose of testing in the field of cybersecurity.

[0036] Целями данного тестирования являются, но не ограничиваются:[0036] The objectives of this testing are, but are not limited to:

• получение набора данных соответствующих той или иной активности в условиях конкретной инфраструктуры,• obtaining a set of data corresponding to a particular activity in a specific infrastructure,

• оценка мер защищенности (или изменения мер защищенности) той или иной инфраструктуры от различного вида компьютерных атак,• assessment of security measures (or changes in security measures) of a particular infrastructure against various types of computer attacks,

• поиск мер защиты от различного вида компьютерных атак,• search for protection measures against various types of computer attacks,

• анализ и выявление техник и тактик зловредного программного обеспечения,• analysis and identification of techniques and tactics of malicious software,

• обучение алгоритмов искусственного интеллекта проведению компьютерных атак на те или иные инфраструктуры,• training of artificial intelligence algorithms for carrying out computer attacks on certain infrastructures,

• обучение алгоритмов искусственного интеллекта детектированию компьютерных атак, обучение алгоритмов искусственного интеллекта применению мер защиты при детектировании тех или иных компьютерных атак.• training of artificial intelligence algorithms to detect computer attacks, training of artificial intelligence algorithms in the application of protection measures when detecting certain computer attacks.

[0037] Помимо проведения тестирований в области кибербезопасности система способна выполнять следующие задачи:[0037] In addition to conducting cybersecurity testing, the system is capable of performing the following tasks:

• тестирование и оценка эффективности средств защиты от различных видов компьютерных атак,• testing and evaluating the effectiveness of protection against various types of computer attacks,

• тренировка персонала организации, ответственного за обеспечение кибербезопасности, прототипирование решений, как для определения уровня их защищенности, так и для определения их влияния на защищенность инфраструктуры в целом,• training of the organization's personnel responsible for ensuring cybersecurity, prototyping solutions, both to determine the level of their security, and to determine their impact on the security of the infrastructure as a whole,

• демонстрация новых технологий.• demonstration of new technologies.

[0038] Для начала работы с системой пользователь должен пройти аутентификацию, которая может представлять собой любой общеизвестный способ аутентификации: с помощью отдельной учетной записи и секрета, с помощью единой учетной записи и секрета (Single-Sign-ON), с помощью личного сертификата пользователя, биометрическая аутентификация, двухфакторная аутентификация и т.д.[0038] To start working with the system, the user must pass authentication, which can be any well-known authentication method: using a separate account and secret, using a single account and secret (Single-Sign-ON), using the user's personal certificate , biometric authentication, two-factor authentication, etc.

[0039] В случае отсутствия у пользователя учетной записи, он может предварительно осуществить регистрацию нового пользователя - в этом случае будут назначены минимальные привилегии в системе, которые пользователь сможет повысить путем предоставления идентифицирующей информации (например, личный сертификат или биометрические данные и т.д.).[0039] If the user does not have an account, he can pre-register a new user - in this case, the minimum privileges in the system will be assigned, which the user can increase by providing identifying information (for example, a personal certificate or biometric data, etc.) ).

[0040] После прохождения аутентификации пользователю назначаются права в соответствии с его ролью в системе, однако прокси-сервер может оценивать каждый запрос пользователя отдельно от назначенных ему прав путем динамического формирования скоринга пользователя в соответствии с его действиями и методами аутентификации и доступа. И в случае значительного отклонения данного скоринга блокировать выполнение запросов, которые предусмотрены ролью пользователя (принцип нулевого доверия).[0040] After being authenticated, the user is assigned rights according to his role in the system, however, the proxy server can evaluate each user request separately from the rights assigned to him by dynamically generating the user's score according to his actions and methods of authentication and access. And in case of a significant rejection of this scoring, block the execution of requests that are provided for by the user's role (the principle of zero trust).

[0041] Прокси-сервер реализует классические алгоритмы обеспечения безопасности: регистрацию пользователей, аутентификацию пользователей, авторизацию запросов, маршрутизацию запросов с целью балансировки нагрузки, разграничение прав доступа пользователей. Помимо этого, наличие прокси-сервера позволяет реализовать принцип нулевого доверия в части входящих сетевых соединений и/или внешних запросов к серверной части системы.[0041] The proxy server implements classical security algorithms: user registration, user authentication, request authorization, request routing for load balancing purposes, and differentiation of user access rights. In addition, the presence of a proxy server makes it possible to implement the principle of zero trust in terms of incoming network connections and / or external requests to the server side of the system.

[0042] Аутентифицированный пользователь (с поправкой на собственную роль) имеет возможность выполнять стандартные операции, типа: поиск в базе данных; просмотр готовых конфигураций инфраструктур, настроек и шаблонов (например, посмотреть наполнение конкретного шаблона виртуальной машины или атомарные действия злоумышленника в рамках осуществления той или иной атаки), корректировать настройки доступа к собственным ресурсам и т.д.[0042] An authenticated user (adjusted for his own role) has the ability to perform standard operations, such as: searching the database; viewing ready-made configurations of infrastructures, settings and templates (for example, looking at the content of a specific virtual machine template or atomic actions of an attacker as part of a particular attack), adjusting the settings for accessing own resources, etc.

[0043] На Фиг. 1 представлена общая схема заявленной системы (100).[0043] FIG. 1 shows a general diagram of the claimed system (100).

Система (100) принимает потоки информации, которые генерируются пользователями. Информация, поступающая в систему (100) распределяется по соответствующим модулям, ответственным за ее обработку в автоматизированном режиме. Система (100) содержит набор из взаимосвязанных модулей обработки данных.System (100) receives streams of information that are generated by users. The information entering the system (100) is distributed among the appropriate modules responsible for its processing in an automated mode. System (100) contains a set of interconnected data processing modules.

[0044] Модуль оркестрации запросов (101) предназначен для перенаправления запросов пользователей к другим модулям системы, а также для перенаправления запросов между модулями системы.[0044] The request orchestration module (101) is designed to redirect user requests to other modules in the system, as well as to redirect requests between modules in the system.

[0045] В качестве входных данных модуль (101) ожидает сетевое сообщение, которое состоит из заголовка и тела (<header><body>). В заголовке сообщения должна содержаться вся техническая информация: категория запроса; команда запроса; аргументы и флаги команды запроса; данные пользователя или модуля, совершившего запрос; дополнительная информация, если необходимо - (<category><command><flags><user_data><payload>).[0045] As input, the module (101) expects a network message that consists of a header and a body (<header> <body>). The message header should contain all technical information: request category; request command; arguments and flags of the request command; data of the user or module that made the request; additional information, if necessary - (<category> <command> <flags> <user_data> <payload>).

[0046] Модуль оркестрации запросов (101) обрабатывает, по меньшей мере, следующие запросы со стороны пользователя:[0046] The request orchestration module (101) processes at least the following requests from the user:

• отображение конфигурационных файлов/файла, содержащихся в базе данных,• display of configuration files / file contained in the database,

• отображение данных конкретных сущностей, содержащихся в базах данных или хранилищах внешних систем (например, данные о сохраненной атаке в базе данных атак или данные о шаблонах виртуальных машин из платформы виртуализации),• displaying data of specific entities contained in databases or storage of external systems (for example, data about a saved attack in an attack database or data about virtual machine templates from a virtualization platform),

• поиск по конфигурационным файлам и их содержимому,• search by configuration files and their contents,

• получение (скачивание) конфигурационного файла,• receiving (downloading) a configuration file,

• запуск авторазвертывания инфраструктуры,• launch of auto-deployment of infrastructure,

• уничтожение развернутой инфраструктуры,• destruction of the deployed infrastructure,

• запуск тестирования.• launch of testing.

[0047] Также модуль оркестрации запросов (101) обрабатывает, по меньшей мере, следующие запросы со стороны модуля проведения тестирования (103):[0047] Also, the request orchestration module (101) processes at least the following requests from the testing module (103):

• запуск авторазвертывания инфраструктуры,• launch of auto-deployment of infrastructure,

• уничтожение развернутой инфраструктуры,• destruction of the deployed infrastructure,

• получение элемента из базы данных (например, конфигурация сетевой топологии).• getting an item from the database (for example, a network topology configuration).

[0048] Также модуль оркестрации запросов (101) обрабатывает, по меньшей мере, следующий запрос со стороны модуля автоконфигурации (102), направленный на получение элемента из базы данных (104) (например, конфигурация сетевой топологии).[0048] Also, the request orchestration module (101) processes at least the next request from the auto-configuration module (102) to retrieve an item from the database (104) (eg, a network topology configuration).

[0049] Модуль оркестрации запросов (101) реализует следующие алгоритмы. Алгоритм обработки запроса пользователя и других модулей системы. При получении входных данных (сетевого сообщения содержащего, по меньшей мере следующую информацию: <category><command><flags><user_data><payload> - категория запроса; команда запроса; аргументы и флаги команды запроса; данные пользователя или модуля, совершившего запрос; дополнительная информация, если необходимо) модуль оркестрации запросов (101) анализирует полученную техническую информацию, содержащуюся в заголовке сообщения. По информации в поле <category> определяется направление передачи сообщения. Для найденного направления определяется корректность команды, которая содержится в поле <command>. В случае, если команда некорректна, формируется ответ, которые содержит ошибку выполнения запроса. В случае если команда корректна, то анализируется сама команда. Если команда относится к взаимодействию с базами данных, то запускается алгоритм взаимодействия с базами данных. Если команда относится к запуску тестирования или запуску авторазвертывания инфраструктуры, то запускается алгоритм первичной проверки конфигурационного файла пользователя. После успешной проверки конфигурационного файла и в случае, если команда не относится к перечисленным выше, сообщение передается по направлению в нужный модуль системы (100).[0049] The Query Orchestration Module (101) implements the following algorithms. Algorithm for processing the request of the user and other modules of the system. Upon receipt of input data (a network message containing at least the following information: <category><command><flags><user_data> <payload> - request category; request command; request command arguments and flags; data of the user or module that made the request ; additional information, if necessary) the request orchestration module (101) analyzes the received technical information contained in the message header. The information in the <category> field determines the direction of message transmission. For the found direction, the correctness of the command is determined, which is contained in the <command> field. If the command is incorrect, a response is generated that contains a request execution error. If the command is correct, then the command itself is analyzed. If the command refers to interaction with databases, then the algorithm for interaction with databases is started. If the command refers to the launch of testing or the launch of auto-deployment of the infrastructure, then the algorithm for the initial check of the user's configuration file is launched. After successful verification of the configuration file and if the command does not belong to those listed above, the message is sent towards the required system module (100).

[0050] Алгоритм взаимодействия с базами данных. В случае если команда относится к взаимодействию с базами данных, модуль оркестрации запросов (101) самостоятельно обращается к нужной базе данных. Для этого существует механизм подключения баз данных, которые может быть реализован с помощью: дополнительного программного скрипта, который реализует взаимодействие с API базы данных (104) (например, при интеграции с MongoDB); дополнительного программного скрипта, который реализует SQL-подобные запросы к базе данных (104) (например, при интеграции с MySQL); а также любых других известных способов интеграции с базами данных. При получении сообщения категории взаимодействия с базой данных (104), модуль оркестрации запросов (101) анализирует сообщение и определяет базу данных (104), к которой необходимо выполнить запрос. Получив данную информацию модуль оркестрации запросов (101) обращается к указанному методу коммуницирования с базой данных (104), куда передает информацию по подключению и запрос, который содержится в сообщении.[0050] Algorithm for interacting with databases. If the command relates to interaction with databases, the query orchestration module (101) independently accesses the required database. For this, there is a mechanism for connecting databases, which can be implemented using: an additional program script that implements interaction with the database API (104) (for example, when integrating with MongoDB); an additional program script that implements SQL-like queries to the database (104) (for example, when integrating with MySQL); as well as any other known methods of database integration. Upon receiving a message of the category of interaction with the database (104), the query orchestration module (101) parses the message and determines the database (104) to which it is necessary to execute the query. Having received this information, the request orchestration module (101) refers to the specified method of communication with the database (104), where it transmits the connection information and the request contained in the message.

[0051] Далее формируется подключение к базе данных (104), а запрос из сообщения преобразовывается в вызов API подключенной базы данных (104) или в SQL-подобный запрос, который передается в базу данных (104). По результатам выполнения команды в базе данных (104) модуль оркестрации запросов (101) формирует ответ и возвращает его пользователю или модулю, от которого пришло входящее сообщение.[0051] Next, a connection to the database (104) is formed, and the request from the message is converted into an API call to the connected database (104) or into an SQL-like query that is sent to the database (104). Based on the results of the command execution in the database (104), the query orchestration module (101) generates a response and returns it to the user or the module from which the incoming message came.

[0052] Алгоритм первичной проверки конфигурационного файла пользователя. При получении входящего сообщения с задачей запуска тестирования или запуска авторазвертывания инфраструктуры, модуль оркестрации запросов (101) проводит первичный анализ корректности конфигурационного файла. В рамках данного анализа осуществляются следующие проверки: наличие или отсутствие конфигурационного файла во входящем сообщении, полнота конфигурационного файла (корректно и полностью считывается из сетевого сообщения), проверка формата конфигурационного файла (соответствует ли формату, который обрабатывает модуль автоконфигурации (102)), наличие такого же конфигурационного файла в базе данных (104) с конфигурационными файлами.[0052] Algorithm for the initial check of the user's configuration file. Upon receipt of an incoming message with the task of starting testing or starting auto-deployment of the infrastructure, the request orchestration module (101) conducts an initial analysis of the correctness of the configuration file. Within the framework of this analysis, the following checks are carried out: the presence or absence of a configuration file in the incoming message, the completeness of the configuration file (correctly and completely read from the network message), checking the format of the configuration file (whether it corresponds to the format that the autoconfiguration module processes (102)), the presence of such the same configuration file in the database (104) with configuration files.

[0053] В случае успешной проверки или в случае обнаружения конфигурационного файла в базе данных (104) модуль оркестрации запросов (101) передает сообщение далее в модули системы (а также техническую информацию по директивам реализации, если она есть в базе данных). В случае обнаружения ошибки модуль оркестрации запросов (101) формирует ответ с указанием ошибки.[0053] If the check is successful or if a configuration file is found in the database (104), the request orchestration module (101) sends the message further to the system modules (as well as technical information on the implementation directives, if it is in the database). If an error is detected, the request orchestration module (101) generates a response indicating the error.

[0054] Модуль автоконфигурации инфраструктуры в виртуальной среде (102) предназначен для автоматического развертываний инфраструктуры в виртуальной среде из конфигурационного файла пользователя, а также для взаимодействия с внешними инструментами по запросу пользователя или других модулей системы вне задачи автоматического создания инфраструктуры в виртуальной среде.[0054] An infrastructure autoconfiguration module in a virtual environment (102) is designed for automatic infrastructure deployments in a virtual environment from a user's configuration file, as well as for interacting with external tools at the user's request or other system modules outside the task of automatically creating an infrastructure in a virtual environment.

[0055] В качестве входных данных модуль (102) ожидает конфигурационный файл пользователя, в котором описываются необходимые параметры инфраструктуры. Конфигурационный файл представляет из себя структуру данных (yaml, json, xml), заранее сформированную для понимания системой (100), в которой определенным ключам (соответствующим модели данных системы и являющимся неизменяемыми) соответствуют какие-либо значения (указанные пользователем и являющиеся основными параметрами конфигурирования инфраструктуры). При этом файл состоит из разделов, каждому из которых соответствует основной ключ, который соответствует названию стороннего инструмента, которым должен обрабатываться.[0055] As input, the module (102) expects a user configuration file that describes the necessary infrastructure parameters. The configuration file is a data structure (yaml, json, xml), pre-formed for understanding by the system (100), in which certain keys (corresponding to the system data model and being immutable) correspond to any values (specified by the user and are the main configuration parameters infrastructure). In this case, the file consists of sections, each of which corresponds to the main key, which corresponds to the name of the third-party tool that should be processed.

[0056] Модуль автоконфигурации запросов (102) может обрабатывать, по меньшей мере, следующие запросы:[0056] The request autoconfiguration module (102) can process at least the following requests:

• запросы на создание инфраструктуры из конфигурационного файла,• requests to create infrastructure from a configuration file,

• запросы на предоставление дополнительной информации в рамках создания инфраструктуры,• requests for additional information in the framework of the creation of infrastructure,

• запросы на предоставление дополнительной информации из баз данных сторонних инструментов,• requests for additional information from databases of third-party tools,

• запросы на предоставление информации по созданной инфраструктуре,• requests for information on the created infrastructure,

• запросы на действия для ряда сторонних инструментов.• requests for action for a number of third-party tools.

[0057] Модуль автоконфигурации инфраструктуры в виртуальной среде (102) реализует следующие алгоритмы.[0057] The infrastructure auto-configuration module in the virtual environment (102) implements the following algorithms.

[0058] Алгоритм подключения сторонних инструментов. Подключение сторонних инструментов к системе (100) подразумевает интеграцию системы (100) с API подключаемого инструмента. Интеграция заключается в разработке скрипта, который реализует взаимодействие системы (100) с API подключаемого инструмента. Для подключения нового стороннего инструмента необходимо в конфигурационный добавить информацию об этом инструменте вида: <tool_name>:{<tool_call_directory><order_id>} - а также интеграционный скрипт, который содержит: алгоритм проверки достаточности конфигурационного файла в части подключаемой системы который реализует проверку части конфигурационного файла, за реализацию которого ответственен данный внешний инструмент на предмет возможности реализации указанных действий и достаточности информации для реализации данных действий, путем сравнения структуры конфигурационного файла (в своей зоне ответственности) с шаблонной структурой, ожидаемой данным интеграционным скриптом, а также проверкой ключевых слов с ожидаемыми, алгоритм формирования запросов с требованиями дополнительной информации о развернутой инфраструктуре, директивы предоставления дополнительной информации о проведенных работах, директивы трансляции информации в конфигурационном файле в конкретные вызовы API внешнего инструмента.[0058] Algorithm for connecting third-party tools. Connecting third-party tools to the system (100) implies the integration of the system (100) with the API of the plug-in tool. Integration consists in developing a script that implements the interaction of the system (100) with the API of the plug-in tool. To connect a new third-party tool, it is necessary to add information about this tool to the configuration: <tool_name>: {<tool_call_directory> <order_id>} - as well as an integration script that contains: an algorithm for checking the sufficiency of the configuration file in the part of the connected system that implements the verification of a part file, for the implementation of which this external tool is responsible for the possibility of implementing these actions and the sufficiency of information for the implementation of these actions, by comparing the structure of the configuration file (in its area of responsibility) with the template structure expected by this integration script, as well as checking the keywords with the expected , an algorithm for generating requests with the requirements for additional information about the deployed infrastructure, directives for providing additional information about the work performed, directives for translating information in the configuration file into specific API calls of an external installer umenta.

[0059] В случае отсутствия информации для реализации тех или иных действий, указанных в конфигурационном файле алгоритм формирования запросов с требованиями дополнительной информации о развернутой инфраструктуре, формирует запрос к модулю автоконфигурации (102) о предоставлении дополнительных данных от одного из отработавших ранее внешних инструментов (или для передачи запроса в модуль оркестрации запросов с целью получения данных из одной из баз данных).[0059] In the absence of information for the implementation of certain actions specified in the configuration file, the algorithm for generating requests with the requirements for additional information about the deployed infrastructure generates a request to the autoconfiguration module (102) to provide additional data from one of the previously used external tools (or to pass a request to the query orchestration module in order to get data from one of the databases).

[0060] Алгоритм упорядочивания процесса развертывания инфраструктуры и добавления динамической активности. При получении файла конфигурации модуль автоконфигурации (102) анализирует основные разделы файла конфигурации для сбора информации по необходимым слоям развертывания. Полученная информация сравнивается с информацией о доступных интеграционных скриптах. Информации об основных разделах присваивается значение <order_id> соответствующее значению из настроек системы (100), сформированных при добавлении интеграционных скриптов. После чего основные разделы с присвоенным <order_id> ранжируются по порядку от низшего к высшему. Полученный массив данных является упорядоченным перечнем запуска интеграционных скриптов развертывания инфраструктуры в виртуальной среде.[0060] Algorithm for sequencing the process of deploying infrastructure and adding dynamic activity. Upon receipt of the configuration file, the autoconfiguration module (102) analyzes the main sections of the configuration file to collect information on the required layers of the deployment. The information obtained is compared with information about the available integration scripts. Information about the main sections is assigned the value <order_id> corresponding to the value from the system settings (100) generated when adding integration scripts. After that, the main sections with the assigned <order_id> are ranked in order from lowest to highest. The resulting data array is an ordered list of launching integration scripts for deploying infrastructure in a virtual environment.

[0061] Алгоритм формирования директив из файла конфигурации пользователя. После алгоритма упорядочивания процесса развертывания инфраструктуры и добавления динамической активности модуль автоконфигурации (102) передает конфигурационный файл в интеграционный скрипт. Интеграционный скрипт осуществляет проверку переданного интеграционного файла и в случае успеха вызывает директивы, соответствующие вызовам API внешнего инструмента. Соответствие между конфигурационным файлом, директивой и вызовом API определяется на этапе разработки интеграционного скрипта и выражается в формате описания создаваемой части инфраструктуры в конфигурационном файле. При этом при запуске директивы и вызова API они записываются в отдельный файл, где указан порядок запуска, наименование и аргументы, передаваемые внешней системе (100), что позволяет в результате сформировать файл, содержащий всю техническую информацию о развертывании инфраструктуры (в том числе информацию, которая запрашивается интеграционными скриптами дополнительно в рамках своей работы).[0061] Algorithm for generating directives from a user configuration file. After the algorithm for ordering the infrastructure deployment process and adding dynamic activity, the auto-configuration module (102) transfers the configuration file to the integration script. The integration script checks the transferred integration file and, if successful, calls the directives corresponding to the API calls of the external tool. The correspondence between the configuration file, directive and API call is determined at the stage of development of the integration script and is expressed in the format of the description of the created part of the infrastructure in the configuration file. At the same time, when the directive is launched and the API call is launched, they are written to a separate file, where the launch order, name and arguments passed to the external system (100) are specified, which allows, as a result, to generate a file containing all the technical information about the infrastructure deployment (including information, which is additionally requested by the integration scripts as part of its work).

[0062] Алгоритм оркестрации директив с целью развертывания инфраструктуры и добавления динамической активности. После алгоритма упорядочивания процесса развертывания инфраструктуры и добавления динамической активности модуль автоконфигурации (102) передает конфигурационный файл в интеграционный скрипт, начиная с минимального порядкового номера. Интеграционный скрипт реализует алгоритм проверки достаточности конфигурационного файла в части подключаемой системы (100).[0062] A directive orchestration algorithm to deploy infrastructure and add dynamic activity. After the algorithm for ordering the infrastructure deployment process and adding dynamic activity, the autoconfiguration module (102) transfers the configuration file to the integration script, starting from the minimum sequence number. The integration script implements the algorithm for checking the sufficiency of the configuration file in the part of the connected system (100).

[0063] В случае достаточности данных интеграционный скрипт преобразует конфигурационный файл в директивы и вызовы API внешнего инструмента. В случае недостаточности данных формирует с помощью алгоритма формирования запросов с требованиями дополнительной информации о развернутой инфраструктуре запрос о предоставлении дополнительных сведений и направляет его в модуль автоконфигурации (102).[0063] If the data is sufficient, the integration script converts the configuration file into directives and API calls to an external tool. In case of insufficient data, it generates a request for additional information using the algorithm for generating requests with the requirements for additional information about the deployed infrastructure and sends it to the autoconfiguration module (102).

[0064] Модуль автоконфигурации (102) после получения запроса о предоставлении дополнительных сведений перенаправляет его в нужный интеграционный скрипт. Интеграционный скрипт, получив запрос о предоставлении дополнительных сведений, реализует директивы предоставления дополнительной информации о проведенных работах и возвращает результат модулю автоконфигурации (102). Модуль автоконфигурации (102) возвращает результат запросившему сведения интеграционному скрипту. Интеграционный скрипт анализирует полученные сведения и либо формирует новый запрос на предоставление сведений (например, к другому модулю), либо формирует ошибку, либо преобразует конфигурационный файл в директивы и вызовы API внешнего инструмента, после чего возвращает ответ в модуль автоконфигурации (102), который формирует ответ по отработавшей части интеграционных скриптов и направляет его в модуль оркестрации запросов (101). После чего модуль автоконфигурации (102) переходит к следующему порядковому номеру и передает конфигурационный файл в следующий интеграционный скрипт.[0064] The autoconfiguration module (102), upon receiving a request for additional information, redirects it to the desired integration script. The integration script, having received a request for additional information, implements the directives for providing additional information about the work performed and returns the result to the autoconfiguration module (102). The autoconfiguration module (102) returns the result to the requesting integration script. The integration script analyzes the received information and either generates a new request to provide information (for example, to another module), or generates an error, or converts the configuration file into directives and API calls of an external tool, and then returns a response to the autoconfiguration module (102), which generates the answer for the worked out part of the integration scripts and sends it to the request orchestration module (101). After that, the auto-configuration module (102) proceeds to the next sequence number and transfers the configuration file to the next integration script.

[0065] Алгоритм изолирования созданной инфраструктуры. Данный алгоритм запускается после развертывания инфраструктуры в виртуальной среде и механизмов мониторинга инфраструктуры в виртуальной среде, если в конфигурационном файле пользователя указана необходимость изоляции инфраструктуры. С целью развертывания инфраструктуры и добавления динамической активности между системой с внешними инструментами и виртуальной средой, где разворачивается инфраструктура, создается сетевое соединение, с помощью которого все инструменты реализуют свои задачи на виртуальных машинах в создаваемой инфраструктуре. Данное сетевое соединение создается с помощью директив, указанных в интеграционных скриптах. При этом скрипты также могут не использовать прямое сетевое соединение, а работать через доступные вызовы гипервизора. После окончания всех задач созданное соединение блокируется для любого использования (входящий/исходящий трафик) и создаваемая среда становится изолированной от любого сетевого доступа извне. В этом случае доступ в среду осуществляется только через гипервизор. В случае если есть необходимость осуществлять изменения уже после создания изолированной среды, модуль автоконфигурации (102) может развернуть внутри создаваемой среды заранее подготовленную виртуальную машину со всеми данными для внесения изменений в автоматическом режиме.[0065] Algorithm for isolating the created infrastructure. This algorithm is launched after infrastructure deployment in a virtual environment and infrastructure monitoring mechanisms in a virtual environment, if the need to isolate the infrastructure is specified in the user's configuration file. In order to deploy the infrastructure and add dynamic activity between the system with external tools and the virtual environment where the infrastructure is deployed, a network connection is created through which all tools implement their tasks on virtual machines in the created infrastructure. This network connection is created using the directives specified in the integration scripts. At the same time, scripts can also not use a direct network connection, but work through the available calls to the hypervisor. After all tasks are completed, the created connection is blocked for any use (inbound / outbound traffic) and the created environment becomes isolated from any outside network access. In this case, the environment is accessed only through the hypervisor. If there is a need to make changes after creating an isolated environment, the auto-configuration module (102) can deploy a pre-prepared virtual machine with all the data inside the created environment for making changes in automatic mode.

[0066] Модуль проведения тестирования (103) предназначен для автоматического проведения тестирования событий кибербезопасности на основе информации алгоритмов тестирования, содержащейся в конфигурационном файле пользователя. Модуль (103) взаимодействует с модулем оркестрации запросов (101) и с созданной инфраструктурой в виртуальной среде.[0066] The testing module (103) is designed for automatic testing of cybersecurity events based on the information of the testing algorithms contained in the user's configuration file. The module (103) interacts with the query orchestration module (101) and with the created infrastructure in the virtual environment.

[0067] В качестве входных данных модуль (103) ожидает конфигурационный файл пользователя, который состоит из трех разделов: алгоритм тестирования, описание инфраструктуры, в которой тестирование будет проводится и описание механизма мониторинга созданной инфраструктуры. Конфигурационный файл представляет из себя структуру данных (yaml, json, xml), заранее сформированную для понимания системой (100), в которой определенным ключам соответствуют какие-либо значения.[0067] As input, the module (103) expects a user configuration file, which consists of three sections: a testing algorithm, a description of the infrastructure in which testing will be carried out, and a description of the mechanism for monitoring the created infrastructure. The configuration file is a data structure (yaml, json, xml), pre-formed for understanding by the system (100), in which certain values correspond to certain keys.

[0068] Описание инфраструктуры, в которой тестирование будет проводится аналогично конфигурационному файлу для задачи автоматизированного развертывания инфраструктуры в виртуальной среде и может в том числе быть только указателем на сохраненный (готовый) конфигурационный файл в базе данных системы (100).[0068] Description of the infrastructure, in which testing will be carried out similarly to a configuration file for the task of automated deployment of infrastructure in a virtual environment and may, among other things, be only a pointer to a saved (ready) configuration file in the system database (100).

[0069] Описание механизма мониторинга инфраструктуры, в которой тестирование будет проводится аналогично конфигурационному файлу для задачи организации мониторинга внутри созданной инфраструктуры в виртуальной среде и может в том числе быть только указателем на сохраненный (готовый) конфигурационный файл в базе данных системы (100)[0069] Description of the infrastructure monitoring mechanism, in which testing will be carried out similarly to the configuration file for the task of organizing monitoring within the created infrastructure in a virtual environment and may, inter alia, be only a pointer to the saved (ready) configuration file in the system database (100)

[0070] Алгоритм тестирования может включать в себя следующие данные (но не ограничиваться):[0070] The testing algorithm may include, but is not limited to, the following data:

• данные о воздействии на инфраструктуру - представляет собой информацию о действии, которое необходимо выполнить в инфраструктуре для проведения тестирования (запуск вредоносного файла, запуск атаки, которая состоит из нескольких шагов, запуск того или трафика, выполнение того или иного действия пользователя рабочей станции, установка программы и т.д.); может являться указателем на сохраненное (готовое) воздействие в базе данных системы или набором ключ-значение для создания нового (зависит от внешнего инструмента, который используется для реализации воздействия),• data on the impact on the infrastructure - this is information about the action that must be performed in the infrastructure for testing (launching a malicious file, launching an attack that consists of several steps, launching a particular traffic, performing an action of a workstation user, installing programs, etc.); can be a pointer to a stored (ready) action in the system database or a key-value set for creating a new one (depends on an external tool that is used to implement the action),

• данные о количестве повторений тестирования - количество запусков с нуля одного и того же тестирования (начиная с развертывания инфраструктуры в виртуальной среде и заканчивая ее уничтожением),• data on the number of testing repetitions - the number of starts from scratch of the same testing (starting with the deployment of infrastructure in a virtual environment and ending with its destruction),

• динамические переменные тестирования - значения в файле описания инфраструктуры, в которой тестирование будет проводиться, которые подлежат изменению в рамках проведения тестирования (может быть в формате массива значений для ключа, если их несколько); вместе с количеством повторений подразумевается проведение тестирования с изменением определенных параметров инфраструктуры в том количестве, которое указано,• dynamic test variables - values in the infrastructure description file in which testing will be carried out, which are subject to change during testing (can be in the format of an array of values for the key, if there are several of them); together with the number of repetitions, testing is meant with a change in certain parameters of the infrastructure in the amount indicated,

• данные о старте тестирования - может быть одной из стадий работы системы (100) (например, окончание работы модуля автоконфигурации (102)),• data about the start of testing - can be one of the stages of the system operation (100) (for example, the end of the autoconfiguration module (102)),

• данные о окончание тестирования - может быть одной из стадий работы системы (например, окончание работы модуля автоконфигурации (102)) или событием в системе мониторинга от развернутой инфраструктуры,• data on the end of testing - can be one of the stages of the system operation (for example, the end of the auto-configuration module (102)) or an event in the monitoring system from the deployed infrastructure,

• триггеры для дополнительных событий тестирования - может быть одной из стадий работы системы (например, окончание работы модуля автоконфигурации (102)),• triggers for additional testing events - can be one of the stages of the system operation (for example, the end of the autoconfiguration module (102)),

• дополнительные данные о событии тестирования - является аналогом «воздействия на инфраструктуру», но запускаемым по триггеру,• additional data about a testing event - it is analogous to "impact on infrastructure", but triggered by a trigger,

• данные о типе проведения тестирования - автоматизирование или пошагово,• data on the type of testing - automation or step by step,

• и любые другие данные для проведения тестирования в области кибербезопасности, не ограничиваясь.• and any other data for testing in the field of cybersecurity, but not limited to.

[0071] Модуль проведения тестирования (103) реализует следующие алгоритмы.[0071] The testing module (103) implements the following algorithms.

[0072] Алгоритм обработки сценария тестирования. При получении конфигурационного файла проведения тестирования модуль проведения тестирования (103) формирует запросы к модулю оркестрации запросов (101) для проверки полученного конфигурационного файла и получения дополнительных данных. Если в конфигурационном файле проведения тестирования указаны ссылки на сохраненные конфигурационные файлы, то запрос формируется с целью поиска и загрузки этих файлов из баз данных. Если в конфигурационном файле указаны значения для запуска с помощью внешних инструментов, то запрос формируется с целью определения корректности и достаточности данных для выполнения (запрос отправляется на модуль оркестрации запросов (101), который перенаправляет его в базу данных или в модуль автоконфигурации инфраструктуры в виртуальной среде (102), откуда он попадает в интеграционный модуль внешней системы и проходит проверку с помощью алгоритма проверки достаточности конфигурационного файла в части подключаемой системы).[0072] Algorithm for processing a test script. Upon receipt of the configuration file for testing, the testing module (103) generates requests to the request orchestration module (101) to check the received configuration file and obtain additional data. If the configuration file for testing contains links to the saved configuration files, then the request is generated in order to find and load these files from the databases. If the configuration file contains values for launching using external tools, then the request is formed in order to determine the correctness and sufficiency of the data for execution (the request is sent to the request orchestration module (101), which redirects it to the database or to the infrastructure autoconfiguration module in the virtual environment (102), from where it enters the integration module of the external system and is checked using the algorithm for checking the sufficiency of the configuration file in the part of the connected system).

[0073] В случае успешного прохождения указанных проверок модуль (103) анализирует содержимое сценария тестирования, файла описания инфраструктуры и файла описания механизмов мониторинга инфраструктуры. В случае необходимости модуль проведения тестирования (103) обогащает описание инфраструктуры дополнительными данными (например, необходимость развернуть конкретный механизм мониторинга). В случае необходимости (наличия свойства изолированности инфраструктуры) модуль проведения тестирования (103) добавляет в описание инфраструктуры заранее подготовленную виртуальную машину, которая будет реализовывать функционал модуля (103) в изолированной среде. После успешной проверки модуль проведения тестирования (103) запускает алгоритм подготовки очереди задач.[0073] If these checks are successful, the module (103) analyzes the contents of the test script, the infrastructure description file and the infrastructure monitoring mechanisms description file. If necessary, the testing module (103) enriches the infrastructure description with additional data (for example, the need to deploy a specific monitoring mechanism). If necessary (the presence of the infrastructure isolation property), the testing module (103) adds a pre-prepared virtual machine to the infrastructure description, which will implement the functionality of the module (103) in an isolated environment. After a successful check, the testing module (103) starts the task queue preparation algorithm.

[0074] Алгоритм подготовки очереди задач. В рамках подготовки плана проведения тестирования модуль (103) готовит очередь задач, которые должны быть реализованы до начала проведения тестирования. Сформированный пользователем и системой (100) (на предыдущем этапе) конфигурационный файл разделяется на сценарий тестирования и описание инфраструктуры. В соответствии с триггерами событий (начало, окончание, завершение) формируются правила мониторинга данных событий, и конфигурация для их реализации добавляется в описание инфраструктуры.[0074] Algorithm for preparing a task queue. As part of preparing a test plan, module (103) prepares a queue of tasks that must be implemented before testing begins. The configuration file generated by the user and the system (100) (at the previous stage) is divided into a test scenario and a description of the infrastructure. In accordance with event triggers (start, end, end), rules for monitoring these events are formed, and the configuration for their implementation is added to the infrastructure description.

[0075] Полученный файл описания инфраструктуры обрабатывается в соответствии с алгоритмом оптимизации инфраструктуры (если указано в сценарии тестирования). В соответствии с динамическими переменными создается несколько копий описания инфраструктуры (каждая из которых содержит свое значение динамической переменной). После чего для каждой пары формируется задача, которая состоит из следующих подзадач: развернуть инфраструктуру, ожидание триггеров запуска воздействия, запуска дополнительных воздействий, окончания тестирования, реакция на триггеры, уничтожение инфраструктуры, передача данных (результатов) в централизованное хранилище. Каждая задача тиражируется в количестве, указанном в сценарии тестирования и добавляется в очередь задач. После чего запускается алгоритм проведения тестирования.[0075] The resulting infrastructure description file is processed in accordance with the infrastructure optimization algorithm (if specified in the test script). In accordance with dynamic variables, several copies of the infrastructure description are created (each of which contains its own value of a dynamic variable). After that, for each pair, a task is formed, which consists of the following subtasks: deploy the infrastructure, waiting for triggers for triggering an impact, triggering additional actions, ending testing, reacting to triggers, destroying the infrastructure, transferring data (results) to a centralized storage. Each task is replicated in the amount specified in the test script and added to the task queue. Then the testing algorithm starts.

[0076] Алгоритм проведения тестирования. Модуль проведения тестирования (103) передает описание инфраструктуры и сценарий тестирования на обработку алгоритму оптимизации инфраструктуры в части определения возможности параллелизма запуска тестирования. В случае определения такой возможности модуль (103) создает необходимое количество потоков и за один раз получает равное количество задач (в порядке очереди) из пула задач. В случае невозможности параллелизма модуль (103) берет по одной задаче из пула задач. После получения задачи модуль (103) формирует запрос на развертывание инфраструктуры в виртуальной среде для модуля автоконфигурации инфраструктуры (102).[0076] Algorithm for testing. The testing module (103) transfers the infrastructure description and the testing script for processing to the infrastructure optimization algorithm in terms of determining the possibility of parallelism of testing launch. If such a possibility is determined, the module (103) creates the required number of threads and at one time receives an equal number of tasks (in the order of the queue) from the task pool. If parallelism is impossible, module (103) takes one task at a time from the task pool. After receiving the task, the module (103) generates a request for infrastructure deployment in a virtual environment for the infrastructure autoconfiguration module (102).

[0077] Модуль автоконфигурации (102) разворачивает инфраструктуру и сообщает об этом модулю проведения тестирования (103). Модуль проведения тестирования (103) регистрирует события окончания развертывания инфраструктуры и, в случае присутствия изолированности, формирует запрос модулю конфигурации (102) на развертывание дополнительного сегмента управления с экземпляром модуля проведения тестирования (103).[0077] The autoconfiguration module (102) deploys the infrastructure and reports this to the testing module (103). The testing module (103) registers the events of the end of infrastructure deployment and, in the presence of isolation, generates a request to the configuration module (102) to deploy an additional control segment with an instance of the testing module (103).

[0078] Модуль автоконфигурации (102) разворачивает сегмент управления и сообщает об этом модулю проведения тестирования (103). Модуль проведения тестирования (103) регистрирует события окончания развертывания сегмента управления и формирует запрос на добавление механизмов мониторинга развернутой инфраструктуры для модуля мониторинга инфраструктуры (105).[0078] The autoconfiguration module (102) expands the control segment and reports this to the testing module (103). The testing module (103) registers the events of the end of the deployment of the management segment and generates a request to add mechanisms for monitoring the deployed infrastructure for the infrastructure monitoring module (105).

[0079] Модуль мониторинга инфраструктуры (105) организует механизмы мониторинга инфраструктуры (с учетом изолированности или не изолированности инфраструктуры) и сообщает об этом модулю проведения тестирования (103).[0079] The infrastructure monitoring module (105) organizes infrastructure monitoring mechanisms (taking into account the isolation or non-isolation of the infrastructure) and reports this to the testing module (103).

[0080] Модуль проведения тестирования (103) регистрирует события окончания развертывания механизмов мониторинга инфраструктуры и формирует запрос модулю автоконфигурации (102) на изолирование созданной инфраструктуры, если это предусмотрено сценарием тестирования.[0080] The testing module (103) registers the events of the completion of the deployment of infrastructure monitoring mechanisms and generates a request to the auto-configuration module (102) to isolate the created infrastructure, if it is provided by the testing scenario.

[0081] Модуль проведения тестирования (103), в случае необходимости изолирования инфраструктуры, ожидает завершения данной задачи от модуля автоконфигурации (102) и переходит в режим ожидания триггеров событий. При срабатывании триггера модуль (103) реализует алгоритм обработки событий в рамках проведения тестирования. При обнаружении события завершения тестирования модуль (103) формирует запрос на сбор полученных данных (если данные не выводились в централизованную базу данных ранее). После сбора данных модуль (103) формирует запрос модулю автоконфигурации (102) на уничтожение созданной инфраструктуры.[0081] The testing module (103), if it is necessary to isolate the infrastructure, waits for the completion of this task from the autoconfiguration module (102) and goes into the waiting mode for event triggers. When the trigger is triggered, module (103) implements an event processing algorithm within the framework of testing. When a test completion event is detected, the module (103) generates a request to collect the received data (if the data was not output to the centralized database earlier). After collecting the data, the module (103) generates a request to the autoconfiguration module (102) to destroy the created infrastructure.

[0082] После уничтожения созданной инфраструктуры модуль проведения тестирования (103) переходит к выполнению следующей задачи из очереди задач тестирования. Далее после выполнения последней задачи модуль (103) формирует ответ о выполнении тестирования (в том числе с помощью сбора и анализа полученных данных в формате отчета) и отправляет ответ пользователю.[0082] After destroying the created infrastructure, the testing module (103) proceeds to the next task from the test task queue. Then, after completing the last task, the module (103) generates a response about the testing (including by collecting and analyzing the received data in a report format) and sends the response to the user.

[0083] Алгоритм формирования обратной связи с инфраструктурой во время тестирования. Модуль проведения тестирования (103) на этапе обработки сценария тестирования анализирует достаточность описания механизма мониторинга инфраструктуры. В случае необходимости модуль (103) конвертирует триггеры, описанные в сценарии тестирования в правила фильтрации событий мониторинга и действия по результату фильтрации событий мониторинга, которые добавляются в конфигурационный файл для модуля мониторинга инфраструктуры (105), который реализует заданные параметры во время выполнения своей задачи. В случае отсутствия изолированности созданной инфраструктуры модуль проведения тестирования (ЮЗ) генерирует конфигурационный файл для модуля мониторинга инфраструктуры (105) таким образом, что действием по результату фильтрации событий мониторинга будет являться отправка сообщения в модуль проведения тестирования (103) по стандартным каналам связи с использованием таких атрибутов сетевого взаимодействия, как IP-адрес, порт и т.д. В случае присутствия изолированности созданной инфраструктуры модуль проведения тестирования (103) формирует конфигурационный файл и запрос для модуля автоконфигурации (102), в рамках которого происходит (с помощью алгоритмов, описанных в модуле автоконфигурации (102)) создание среды управления, интегрированной с изолированной инфраструктурой и со средой мониторинга, созданной с помощью модуля мониторинга инфраструктуры (105). Конфигурационный файл для модуля мониторинга инфраструктуры (105) генерируется таким образом, что действием по результату фильтрации событий мониторинга будет являться отправка сообщения в модуль проведения тестирования (103) по каналам связи, созданным внутри изолированной инфраструктуры с использованием таких атрибутов сетевого взаимодействия, как IP-адрес, порт и т.д.[0083] An algorithm for generating feedback with the infrastructure during testing. The testing module (103), at the stage of processing the test script, analyzes the adequacy of the description of the infrastructure monitoring mechanism. If necessary, the module (103) converts the triggers described in the test script into rules for filtering monitoring events and actions based on the result of filtering monitoring events, which are added to the configuration file for the infrastructure monitoring module (105), which implements the specified parameters during the execution of its task. In the absence of isolation of the created infrastructure, the testing module (SW) generates a configuration file for the infrastructure monitoring module (105) in such a way that the action on the result of filtering monitoring events will be to send a message to the testing module (103) via standard communication channels using such network attributes like IP address, port, etc. If the created infrastructure is isolated, the testing module (103) generates a configuration file and a request for the autoconfiguration module (102), within which (using the algorithms described in the autoconfiguration module (102)) the creation of a control environment integrated with the isolated infrastructure takes place and with a monitoring environment created using the infrastructure monitoring module (105). The configuration file for the infrastructure monitoring module (105) is generated in such a way that the action on the result of filtering monitoring events will be to send a message to the testing module (103) via communication channels created within the isolated infrastructure using such attributes of network interaction as IP address , port, etc.

[0084] Сообщение от механизма мониторинга, полученное модулем проведения тестирования (103) внутри изолированной инфраструктуры будет соответствовать конкретному триггеру в описании сценария тестирования.[0084] The message from the monitoring engine received by the testing module (103) inside the isolated infrastructure will correspond to a specific trigger in the description of the test scenario.

[0085] В случае обнаружения триггера модуль проведения тестирования (103) определяет к какому событию (описанному в сценарии тестирования: старт, окончание, запуск вредоносной активности, запуск определенного действия пользователя и т.д.) относится данный триггер и реализует данное событие в развернутой инфраструктуре. В случае обнаружения события завершения тестирования модуль проведения тестирования (103) отправляет запрос платформе виртуализации на уничтожение всех виртуальных машин в рамках данной инфраструктуры.[0085] If a trigger is detected, the testing module (103) determines which event (described in the testing scenario: start, end, launch of malicious activity, launch of a specific user action, etc.) this trigger belongs to and implements this event in the deployed infrastructure. If a test completion event is detected, the testing module (103) sends a request to the virtualization platform to destroy all virtual machines within this infrastructure.

[0086] Алгоритм оптимизации инфраструктуры. Данный алгоритм осуществляет две активности: оптимизацию параллельного запуска задач из очереди и оптимизацию построенной инфраструктуры.[0086] An infrastructure optimization algorithm. This algorithm carries out two activities: optimization of the parallel launch of tasks from the queue and optimization of the built infrastructure.

[0087] Оптимизация параллельного запуска задач из очереди.[0087] Optimization of parallel execution of tasks from the queue.

Алгоритм получает описание инфраструктуры и сценарий тестирования. Из сценария тестирования алгоритм путем умножения количества значений динамических переменных на количество повторения тестирования получает общее количество запусков тестирования (длину очереди задач). Из описания инфраструктуры формируются требования к мощности создаваемой инфраструктуры (максимальные значения RAM и CPU). Если эти значения не указаны в явном виде, то формируется запрос к базе данных с целью определения настроек шаблонов виртуальных машин, из которых будет создана инфраструктура. После этого свободные ресурсы платформы виртуализации делятся на 2 и затем на требования к мощности одной инфраструктуры. Результатом, округленным в меньшую сторону, является количество одновременных потоков по созданию инфраструктуры.The algorithm receives a description of the infrastructure and a test scenario. From the test scenario, the algorithm, by multiplying the number of values of dynamic variables by the number of test repetitions, obtains the total number of test runs (the length of the task queue). From the description of the infrastructure, the requirements for the capacity of the created infrastructure are formed (maximum values of RAM and CPU). If these values are not specified explicitly, then a query is made to the database in order to determine the settings of the virtual machine templates from which the infrastructure will be created. After that, the free resources of the virtualization platform are divided by 2 and then by the capacity requirements of one infrastructure. The result, rounded down, is the number of concurrent infrastructure creation threads.

[0088] Оптимизация построения инфраструктуры.[0088] Optimization of building infrastructure.

Алгоритм получает описание инфраструктуры и сценарий тестирования. Алгоритм определяет наличие свободных ресурсов после развертывания инфраструктуры. В случае наличия свободный ресурсов в конфигурационный файл добавляется действие по развертыванию симуляции дополнительных сетевых сегментов (количество определяется в зависимости от наличия свободных ресурсов и указания в разделе оптимизации в сценарии тестирования). Маршрутизация и месторасположение сегментов выбирается случайно, но с оптимальным распределением относительно всех остальных сетевых сегментов развертываемой инфраструктуры.The algorithm receives a description of the infrastructure and a test scenario. The algorithm determines the availability of free resources after the infrastructure is deployed. If there are free resources, an action is added to the configuration file to deploy the simulation of additional network segments (the number is determined depending on the availability of free resources and indicated in the optimization section in the test script). The routing and location of the segments is chosen randomly, but with an optimal distribution relative to all other network segments of the deployed infrastructure.

[0089] База данных (104) или базы данных используются, по меньшей мере, для: хранения конфигурационных файлов пользователей, которые описывают инфраструктуру в виртуальной среде и/или тестирование, контроля версий конфигурационных файлов пользователей, хранения информации, относящейся к учетным данным пользователей, ролевым моделям, правам доступа пользователей, а также информации, на основании которой может проводиться динамическая авторизация запросов пользователей (инвентаризационные данные об устройствах пользователей, секреты для взаимодействия модулей системы, сертификаты, история поведения пользователей и модулей системы и т.д.), хранения информации, необходимой для работы модуля автоконфигурации инфраструктуры (102), хранения файлов, предназначенных для реализации активности в рамках развертывания инфраструктуры или воздействия в рамках проведения тестирования (например, интеллектуальные агенты, реализующие симуляцию поведения пользователей на виртуальных машинах в развернутой инфраструктуре), хранение информации, связанной с областью кибербезопасности: данные по уязвимостям, патчам безопасности, зловредным файлам, атакам и т.д., хранение информации конфигурационного характера для функционирования системы.[0089] The database (104) or databases are used at least for: storing user configuration files that describe infrastructure in a virtual environment and / or testing, version control of user configuration files, storing information related to user credentials, role models, user access rights, as well as information on the basis of which dynamic authorization of user requests can be carried out (inventory data about user devices, secrets for the interaction of system modules, certificates, history of user behavior and system modules, etc.), information storage required for the operation of the infrastructure autoconfiguration module (102), storage of files intended for the implementation of activity as part of the infrastructure deployment or impact in the framework of testing (for example, intelligent agents that simulate user behavior on virtual machines in a deployed infrastructure), storage of information related to the field of cybersecurity: data on vulnerabilities, security patches, malicious files, attacks, etc., storage of configuration information for the operation of the system.

[0090] Модуль мониторинга инфраструктуры (105) предназначен для организации полного цикла обработки событий, возникающих в объектах инфраструктуры, созданной с помощью модуля автоконфигурации (102). Модуль (105) взаимодействует с модулем оркестрации запросов (101), с созданной инфраструктурой в виртуальной среде и модулем проведения тестирования (103).[0090] The infrastructure monitoring module (105) is designed to organize a full cycle of processing events occurring in infrastructure objects created using the autoconfiguration module (102). The module (105) interacts with the query orchestration module (101), with the created infrastructure in the virtual environment and the testing module (103).

[0091] В качестве входных данных модуль (105) ожидает конфигурационный файл пользователя с описание требуемого механизма мониторинга инфраструктуры. Конфигурационный файл представляет из себя структуру данных (yaml, json, xml), заранее сформированную для понимания системой (100), в которой определенным ключам соответствуют какие-либо значения.[0091] As input, the module (105) expects a user configuration file with a description of the required infrastructure monitoring mechanism. The configuration file is a data structure (yaml, json, xml), pre-formed for understanding by the system (100), in which certain values correspond to certain keys.

[0092] Описание механизма мониторинга инфраструктуры аналогично конфигурационному файлу для задачи автоматизированного развертывания инфраструктуры в виртуальной среде и может в том числе быть только указателем на сохраненный (готовый) конфигурационный файл в базе данных системы (100).[0092] The description of the infrastructure monitoring mechanism is similar to a configuration file for the task of automated deployment of infrastructure in a virtual environment and may, among other things, be only a pointer to a saved (ready) configuration file in the system database (100).

[0093] Алгоритм организации мониторинга внутри созданной инфраструктуры может включать в себя следующие данные (но не ограничиваться):[0093] The algorithm for organizing monitoring within the created infrastructure may include the following data (but not limited to):

• данные о типе механизма мониторинга - представляет собой информацию о механизме мониторинга, который требуется использовать: мониторинг в реальном времени - с помощью стандартных средств (Splunk, Qradar, ELK, Zabbix и т.д.), который осуществляется непосредственно в развернутой инфраструктуре, мониторинг по результатам активности в инфраструктуре - сбор данных для их последующего анализа во внешней системе (РСАР, logs и т.д.), мониторинг с помощью гипервизора платформы виртуализации - мониторинг на уровне гипервизора в реальном времени с целью усиления уровня изолированности и повышению уровня осведомленности,• data on the type of monitoring mechanism - it is information about the monitoring mechanism that needs to be used: real-time monitoring - using standard tools (Splunk, Qradar, ELK, Zabbix, etc.), which is carried out directly in the deployed infrastructure, monitoring based on the results of activity in the infrastructure - collecting data for their subsequent analysis in an external system (PCAP, logs, etc.), monitoring using the virtualization platform hypervisor - monitoring at the hypervisor level in real time in order to increase the level of isolation and raise awareness,

• данные об объектах инфраструктуры, которые необходимо мониторить - представляет собой информацию об объектах развернутой инфраструктуры (под объектом подразумевается любая созданная сущность: виртуальная машина, сеть передачи данных, операционная система, приложение и т.д.), а также конкретные журналы событий этих объектов (например, для операционной системы Windows это могут быть журналы Application, Security, System; для сети передачи данных - мета-данные о сетевых потоках, изменение конфигурации сетевого оборудования, «полезная нагрузка» сетевого запроса, например, в процессе передачи данных по протоколу HTTP и т.д.),• data about infrastructure objects that need to be monitored - represents information about the objects of the deployed infrastructure (an object means any created entity: virtual machine, data network, operating system, application, etc.), as well as specific event logs of these objects (for example, for the Windows operating system, these can be the Application, Security, System logs; for the data transmission network - metadata about network flows, changes in the configuration of network equipment, the "payload" of a network request, for example, during data transfer via the HTTP protocol etc.),

• Алгоритм обработки событий мониторинга может включать в себя следующие данные (но не ограничиваться):• Algorithm for processing monitoring events may include the following data (but not limited to):

• данные о правилах фильтрации событий мониторинга - представляет собой информацию о выборе отдельных событий, которые поступили от объекта мониторинга, например, событие успешного входа пользователя в ОС Windows, которое поступило от объекта ОС из журнала Security. Правила фильтрации могут использовать любой контекст, доступный из описания инфраструктуры, например, помимо указания объектов конкретного типа можно указать и конкретный объект: «виртуальная машина с идентификационным номером X», «пользователь Y» и т.д.,• data on filtering rules for monitoring events - this is information about the selection of individual events that came from the monitoring object, for example, the event of a successful user logon to Windows OS, which came from the OS object from the Security log. Filtering rules can use any context available from the infrastructure description, for example, in addition to specifying objects of a specific type, you can also specify a specific object: "virtual machine with identification number X", "user Y", etc.

• данные о действиях по результату фильтрации событий мониторинга - представляет собой информацию о действии, которое необходимо выполнить в результате обнаружения события, попадающего под тот или иной фильтр. Такими действиями могут быть: генерация нового события, отправка сигнала по заданному направлению, сохранение в базу данных, отброс события (уничтожение) и т.д.,• data on actions based on the result of filtering monitoring events - this is information about the action that must be performed as a result of detecting an event that falls under one or another filter. Such actions can be: generating a new event, sending a signal in a given direction, saving to a database, discarding an event (destroying), etc.,

[0094] Модуль мониторинга инфраструктуры (105) реализует следующие алгоритмы.[0094] The infrastructure monitoring module (105) implements the following algorithms.

[0095] Алгоритм организации мониторинга внутри созданной инфраструктуры. Данный алгоритм запускается после развертывания инфраструктуры в виртуальной среде, если в конфигурационном файле пользователя указана необходимость мониторинга или по запросу от модуля проведения тестирования (103), если для его корректной работы требуется механизм мониторинга инфраструктуры. Пользователь может указать один из трех типов механизмов мониторинга внутри созданной инфраструктуры.[0095] Algorithm for organizing monitoring within the created infrastructure. This algorithm is launched after infrastructure deployment in a virtual environment if the need for monitoring is indicated in the user's configuration file or upon request from the testing module (103) if an infrastructure monitoring mechanism is required for its correct operation. The user can specify one of three types of monitoring mechanisms within the created infrastructure.

[0096] В случае, если указан мониторинг в реальном времени (Фиг. 2), модуль мониторинга инфраструктуры (105) формирует запрос к модулю автоконфигурации (102) для добавления внутрь развернутой инфраструктуры новой виртуальной машины и перестроения сетевой топологии. Добавленная виртуальная машина размещается в развернутую сетевую топологию в виде отдельного сегмента сети, маршрутизация в который жестко ограничена по всем участникам сетевого обмена: входящее соединение разрешено по узкому перечню портов, исходящее соединение запрещено.[0096] In case real-time monitoring is specified (Fig. 2), the infrastructure monitoring module (105) makes a request to the auto-configuration module (102) to add a new virtual machine inside the deployed infrastructure and rebuild the network topology. The added virtual machine is placed in the deployed network topology as a separate network segment, routing to which is strictly limited for all participants in the network exchange: incoming connection is allowed on a narrow list of ports, outgoing connection is prohibited.

[0097] Аналогичные действия производятся с сетевым оборудованием для сбора сетевого трафика. Данные собираются и хранятся в той же инфраструктуре, где проходит тестирование или любая другая активность, созданная пользователем. При данном типе мониторинга пользователь может самостоятельно выбрать или добавить систему мониторинга.[0097] Similar actions are performed with network equipment to collect network traffic. Data is collected and stored in the same infrastructure where testing or any other user generated activity takes place. With this type of monitoring, the user can independently select or add a monitoring system.

[0098] В случае если указан мониторинг по результатам активности в инфраструктуре (Фиг. 3), модуль мониторинга инфраструктуры (105) формирует запрос к модулю автоконфигурации (102) для создания отдельной среды для мониторинга, в которой разворачиваются виртуальные машины с системой мониторинга и базой данных (данная отдельная среда может не создаваться каждый раз с нуля, а использоваться готовая среда с развернутыми системами, что обеспечивает хранение различных наборов данных централизованно в единой базе данных). Между развернутой инфраструктурой согласно конфигурационному файлу и инфраструктурой мониторинга создается заранее подготовленная виртуальная машина, которая является шлюзом между двумя средами - «перекладчик», на данной виртуальной машине разворачивается специализированное программное обеспечение, которое является фильтром проходящих данных и реализует функционал антивирусного программного обеспечения, средства предотвращения вторжений и т.д. - любые данные, передающиеся между двумя средами проходят сквозь данный фильтр и в случае обнаружения угрозы - передача блокируется.[0098] If monitoring is indicated based on the results of activity in the infrastructure (Fig. 3), the infrastructure monitoring module (105) generates a request to the autoconfiguration module (102) to create a separate monitoring environment in which virtual machines with a monitoring system and base are deployed data (this separate environment may not be created every time from scratch, but a ready-made environment with deployed systems can be used, which provides storage of various datasets centrally in a single database). A pre-prepared virtual machine is created between the deployed infrastructure, according to the configuration file and the monitoring infrastructure, which is a gateway between the two environments - a "relay", specialized software is deployed on this virtual machine, which is a filter of passing data and implements the functionality of antivirus software, intrusion prevention tools etc. - any data transmitted between the two media passes through this filter, and if a threat is detected, the transmission is blocked.

[0099] Добавленная виртуальная машина размещается в виде отдельного сегмента сети для двух сред, маршрутизация в которых жестко ограничена по всем участникам сетевого обмена: входящее соединение разрешено по узкому перечню портов, исходящее соединение запрещено для развернутой из конфигурационного файла пользователя среды; исходящее соединение разрешено по узкому перечню портов, входящее соединение запрещено для среды мониторинга. В среду, развернутую из конфигурационного файла пользователя, также добавляется заранее подготовленная виртуальная машина с программным обеспечением базы данных, которая выполняет роль временной базы данных для снижения влияния на производительность.[0099] The added virtual machine is placed as a separate network segment for two environments, routing in which is strictly limited to all participants in the network exchange: incoming connection is allowed on a narrow list of ports, outgoing connection is prohibited for the environment deployed from the user's configuration file; outgoing connection is allowed on a narrow list of ports, incoming connection is prohibited for the monitoring environment. A pre-provisioned virtual machine with database software is also added to the environment deployed from a user config file to act as a temporary database to reduce the impact on performance.

[0100] Добавленная виртуальная машина размещается в развернутую из конфигурационного файла пользователя, сетевую топологию в виде отдельного сегмента сети, маршрутизация в который жестко ограничена по всем участникам сетевого обмена: входящее соединение разрешено по узкому перечню портов, исходящее соединение запрещено. Все виртуальные машины в инфраструктуре дополняются специализированным программным обеспечением и/или настройками для сбора и отправки журналов событий в систему мониторинга.[0100] The added virtual machine is placed in the network topology deployed from the user's configuration file as a separate network segment, routing to which is strictly limited for all participants in the network exchange: incoming connection is allowed on a narrow list of ports, outgoing connection is prohibited. All virtual machines in the infrastructure are supplemented with specialized software and / or settings for collecting and sending event logs to the monitoring system.

[0101] Аналогичные действия производятся с сетевым оборудованием для сбора сетевого трафика. Данные собираются и хранятся в той же инфраструктуре во временной базе данных, откуда «наборами» передаются в «перекладчик», который анализирует безопасность набора и передает его в среду мониторинга в централизованную базу данных, откуда система мониторинга их получает для дальнейшей обработки и анализа. При данном типе мониторинга пользователь может самостоятельно выбрать или добавить систему мониторинга (путем добавления стороннего инструмента с помощью алгоритма добавления стороннего инструмента), а также системы сбора и отправки журналов событий.[0101] Similar actions are performed with network equipment to collect network traffic. Data is collected and stored in the same infrastructure in a temporary database, from where it is transferred by “sets” to a “transfer unit”, which analyzes the safety of the set and transfers it to the monitoring environment in a centralized database, from where the monitoring system receives them for further processing and analysis. With this type of monitoring, the user can independently select or add a monitoring system (by adding a third-party tool using the algorithm for adding a third-party tool), as well as a system for collecting and sending event logs.

[0102] В случае, если указан мониторинг с помощью гипервизора платформы виртуализации (Фиг. 4), модуль мониторинга инфраструктуры (105) формирует запрос к модулю автоконфигурации (102) для создания отдельной среды для мониторинга, в которой разворачиваются виртуальные машины с системой мониторинга и базой данных (данная отдельная среда может не создаваться каждый раз с нуля, а использоваться готовая среда с развернутыми системами, что обеспечивает хранение различных наборов данных централизованно в единой базе данных). Сбор данных осуществляется на уровне гипервизора. Так как все сетевые взаимодействия, а также операции с файловой системой виртуальной машины осуществляются через гипервизор, то эти данные могут быть собраны при прохождении через него и переданы в другую виртуальную машину, которая размещается в развернутой среде мониторинга. Также на уровне гипервизора производится фильтрация данных на предмет зловредности и, в случае обнаружения подозрительных данных, они блокируются. После передачи данных в среду мониторинга они сохраняются в централизованной базе данных, откуда попадают в систему мониторинга для дальнейшей обработки и анализа.[0102] In the event that monitoring using the virtualization platform hypervisor (Fig. 4) is specified, the infrastructure monitoring module (105) makes a request to the autoconfiguration module (102) to create a separate monitoring environment in which virtual machines with a monitoring system are deployed and database (this separate environment may not be created every time from scratch, but a ready-made environment with deployed systems can be used, which provides storage of various datasets centrally in a single database). Data collection is carried out at the hypervisor level. Since all network interactions, as well as operations with the file system of a virtual machine, are carried out through the hypervisor, this data can be collected while passing through it and transferred to another virtual machine, which is located in the deployed monitoring environment. Also, at the hypervisor level, data is filtered for malware and, if suspicious data is found, it is blocked. After transferring the data to the monitoring environment, they are stored in a centralized database, from where they enter the monitoring system for further processing and analysis.

[0103] Алгоритм обработки событий мониторинга. Данный алгоритм запускается после организации механизма мониторинга инфраструктуры и предназначен для задания фильтрации полученных в результате мониторинга событий и действий по результатам фильтрации. Все действия осуществляются согласно конфигурационному файлу, созданному пользователем или модулем проведения тестирования (103).[0103] Algorithm for processing monitoring events. This algorithm is launched after the organization of the infrastructure monitoring mechanism and is designed to set filtering of events and actions obtained as a result of monitoring the filter results. All actions are performed according to the configuration file created by the user or by the testing module (103).

[0104] Модуль (105) анализирует конфигурационный файл и транслирует его конфигурацию (в части фильтрации) в конкретные директивы в рамках заданного ранее механизма мониторинга. Директивами в данном случае могут быть: YARA-описание фильтрации событий мониторинга; регулярные выражения; булева логика и поиск соответствий в парах ключ-значение; булева логика и поиск значений в тэгах таких форматов структуризации данных как YAML, JSON, XML и др.[0104] Module (105) analyzes the configuration file and translates its configuration (in terms of filtering) into specific directives within the previously specified monitoring mechanism. Directives in this case can be: YARA-description of filtering monitoring events; regular expressions; boolean logic and matching in key-value pairs; boolean logic and search for values in tags of such data structuring formats as YAML, JSON, XML, etc.

[0105] Модуль (105) анализирует конфигурационный файл и транслирует его конфигурацию (в части действий по результатам фильтрации) в конкретные директивы в рамках заданного ранее механизма мониторинга. Директивами в данном случае могут быть: отправка syslog-сообщения определенного формата на определенный адрес; запуск внешнего заранее подготовленного скрипта; отправка сообщения по сети передачи данных в формате YAML, JSON, XML и др.[0105] The module (105) analyzes the configuration file and translates its configuration (in terms of actions based on the filtering results) into specific directives within the framework of the previously specified monitoring mechanism. Directives in this case can be: sending a syslog message of a specific format to a specific address; launching an external pre-prepared script; sending a message over the data network in YAML, JSON, XML, etc.

[0106] Основной процесс работы системы (100) можно разбить на два независимых направления: автоматизированное развертывание инфраструктуры в виртуальной среде и проведение тестирования.[0106] The main process of the system (100) can be divided into two independent areas: automated deployment of infrastructure in a virtual environment and testing.

[0107] Задача автоматизированного развертывания инфраструктуры в виртуальной среде подразумевает создание инфраструктуры с нуля согласно конфигурационному файлу и предоставление пользователю возможности работать в созданной инфраструктуре, как если бы он сделал ее самостоятельно в ручном режиме. Пользователь создает конфигурационный файл в формате YAML, XML или JSON и отправляет команду на создание инфраструктуры из этого файла в виртуальной среде. Загрузка файла осуществляется через веб-интерфейс или через интерфейс командной строки. Клиентская сторона формирует запрос, в который добавляет конфигурационный файл и отправляет его на прокси-сервер. Прокси-сервер осуществляет авторизацию запроса в соответствии с собственными внутренними настройками. В случае успеха, перенаправляет запрос в модуль оркестрации запросов (101) серверной части, в случае неудачной авторизации - запрос отклоняется.[0107] The task of automated deployment of infrastructure in a virtual environment implies the creation of infrastructure from scratch according to the configuration file and allowing the user to work in the created infrastructure as if he had done it himself in manual mode. The user creates a configuration file in YAML, XML or JSON format and sends a command to create the infrastructure from this file in the virtual environment. The file is downloaded via the web interface or via the command line interface. The client side forms a request, in which it adds a configuration file and sends it to the proxy server. The proxy server authorizes the request in accordance with its own internal settings. If successful, it redirects the request to the request orchestration module (101) of the server side, in case of unsuccessful authorization, the request is rejected.

[0108] Модуль оркестрации запросов (101) осуществляет первичную проверку конфигурационного файла с помощью алгоритма первичной проверки конфигурационного файла пользователя. В случае успешной проверки запрос передается в модуль автоконфигурации инфраструктуры (102), в случае обнаружения ошибки в конфигурационном файле запрос возвращается клиенту с указанием ошибки.[0108] The request orchestration module (101) performs the initial check of the configuration file using the algorithm for the initial check of the user's configuration file. If the check is successful, the request is sent to the infrastructure autoconfiguration module (102); if an error is found in the configuration file, the request is returned to the client indicating the error.

[0109] Модуль автоконфигурации (102), получив конфигурационный файл, с помощью алгоритма упорядочивания процесса развертывания инфраструктуры и добавления динамической активности формирует порядок использования тех или иных сторонних инструментов для безошибочного построения слоев инфраструктуры, в порядке сформированной очереди, раздел конфигурационного файла преобразовывается в конкретные директивы для внешнего инструмента.[0109] The autoconfiguration module (102), having received the configuration file, using the algorithm for ordering the infrastructure deployment process and adding dynamic activity, forms the order of using certain third-party tools for error-free building of infrastructure layers, in the order of the formed queue, the section of the configuration file is converted into specific directives for an external tool.

[0110] Сформированные на предыдущем этапе директивы отправляются на выполнение во внешний инструмент, ответственный за реализацию данных директив. Внешний инструмент реализует полученные директивы непосредственно в виртуальной среде, или на развернутых виртуальных машинах и подготавливает результат выполнения операций, в который включает некоторые (любые) дополнительные данные, сформированные в результате выполнения директив.[0110] The directives formed at the previous stage are sent for execution to an external tool responsible for the implementation of these directives. An external tool implements the received directives directly in the virtual environment, or on deployed virtual machines and prepares the result of operations, which includes some (any) additional data generated as a result of the directives execution.

[0111] Результат выполнений возвращается в модуль автоконфигурации (102), где цикл обработки повторяется вновь со следующим элементом сформированной очереди, при этом с помощью алгоритма оркестрации директив с целью развертывания инфраструктуры и добавления динамической активности каждый внешний инструмент может сформировать запрос дополнительных данных от инструментов, которые уже завершили свою работу (необходимо для случаев, когда данные для работы инструмента могут быть получены только в результате работы другого инструмента - например, установка программного обеспечения по IP-адресу при динамическом назначении IР-адресов во время создания виртуальных машин).[0111] The result of the executions is returned to the auto-configuration module (102), where the processing cycle is repeated again with the next element of the generated queue, while using the directive orchestration algorithm in order to deploy the infrastructure and add dynamic activity, each external tool can generate a request for additional data from the tools, which have already completed their work (necessary for cases when the data for the operation of the tool can only be obtained as a result of the work of another tool - for example, installing software by IP address with dynamic assignment of IP addresses during the creation of virtual machines).

[0112] Модуль автоконфигурации (102) после отработки всех внешних инструментов формирует и отправляет результат работы в модуль оркестрации запросов (101). Модуль оркестрации запросов (101) с помощью алгоритма взаимодействия с базами данных сохраняет конфигурационный файл и все технические данные, сформированные по результату выполнения задачи, в базу данных.[0112] The auto-configuration module (102), after processing all external tools, generates and sends the result of the work to the query orchestration module (101). The query orchestration module (101), using the database interaction algorithm, saves the configuration file and all technical data generated by the result of the task execution into the database.

[0113] Модуль оркестрации запросов (101) анализирует исполнение конфигурационного файла пользователя, в случае обнаружения необходимости организации механизмов мониторинга инфраструктуры модуль (101) передает запрос в модуль мониторинга инфраструктуры (105).[0113] The request orchestration module (101) analyzes the execution of the user's configuration file, if it detects the need to organize infrastructure monitoring mechanisms, the module (101) sends a request to the infrastructure monitoring module (105).

[0114] Модуль мониторинга инфраструктуры (105) анализирует конфигурационный файл и с помощью формирования запросов к модулю автоконфигурации (102) добавляет в созданную инфраструктуру требуемый механизм мониторинга.[0114] The infrastructure monitoring module (105) analyzes the configuration file and, by means of generating requests to the auto-configuration module (102), adds the required monitoring mechanism to the created infrastructure.

[0115] Модуль мониторинга инфраструктуры (105) после завершения всех своих задач формирует и отправляет результат работы в модуль оркестрации запросов (101). Модуль оркестрации запросов (101) с помощью алгоритма взаимодействия с базами данных сохраняет конфигурационный файл и все технические данные, сформированные по результату выполнения задачи, в базу данных.[0115] The infrastructure monitoring module (105), after completing all its tasks, generates and sends the result of the work to the request orchestration module (101). The query orchestration module (101), using the database interaction algorithm, saves the configuration file and all technical data generated by the result of the task execution into the database.

[0116] Задача проведения тестирования включает в себя задачу автоматизированного развертывания инфраструктуры в виртуальной среде, а также ряд других задач, связанных с тестированием: воздействие на инфраструктуру согласно сценарию тестирования (например, автоматизированный запуск атаки), дополнительные события, возникающие в ходе воздействия на инфраструктуру (например, изменение таблицы блокировки сетевых соединений, как реакция на выявления подозрительного трафика), повторение тестирования согласно плану (например, проведение одного и того же тестирования 10 раз и сравнение результатов или сбор наборов данных), повторение тестирования с незначительным изменением виртуальной инфраструктуры (например, запуск одной и той же атаки в инфраструктуре 10 раз, но каждый раз настройки одной из политик домена в инфраструктуре будут изменяться).[0116] The task of testing includes the task of automated deployment of infrastructure in a virtual environment, as well as a number of other tasks related to testing: impact on the infrastructure according to the test scenario (for example, automated launch of an attack), additional events that occur during impact on the infrastructure (for example, changing the network connection blocking table in response to the detection of suspicious traffic), repeating the test as planned (for example, performing the same test 10 times and comparing the results or collecting data sets), repeating the test with minor changes to the virtual infrastructure (for example , launching the same attack on the infrastructure 10 times, but each time the settings of one of the domain policies in the infrastructure will change).

[0117] Процесс работы системы (100) при проведении тестирования происходит поэтапно. Пользователь создает конфигурационный файл в формате YAML, XML или JSON и отправляет команду на проведение тестирования из этого файла в виртуальной среде. Загрузка файла осуществляется через веб-интерфейс или через интерфейс командной строки. Клиентская сторона формирует запрос, в который добавляет конфигурационный файл и отправляет его на прокси-сервер. Прокси-сервер осуществляет авторизацию запроса в соответствии с собственными внутренними настройками. В случае успеха, перенаправляет запрос в модуль оркестрации запросов (101) серверной части, в случае неудачной авторизации - запрос отклоняется.[0117] The process of the system (100) during testing occurs in stages. The user creates a configuration file in YAML, XML or JSON format and sends a command for testing from this file in a virtual environment. The file is downloaded via the web interface or via the command line interface. The client side forms a request, in which it adds a configuration file and sends it to the proxy server. The proxy server authorizes the request in accordance with its own internal settings. If successful, it redirects the request to the request orchestration module (101) of the server side, in case of unsuccessful authorization, the request is rejected.

[0118] Далее модуль оркестрации запросов (101) передает конфигурационный файл в модуль проведения тестирования (103). Модуль проведения тестирования (103) подготавливает необходимые данные и проводит тестирование, для этого он может обращаться к модулю оркестрации запросов (101), который в свою очередь перенаправляет запрос в модуль автоконфигурации инфраструктуры (102), модуль мониторинга инфраструктуры (105) или в базу данных (104), а также напрямую в созданную виртуальную инфраструктуру.[0118] Next, the request orchestration module (101) transmits the configuration file to the testing module (103). The testing module (103) prepares the necessary data and conducts testing, for this it can access the request orchestration module (101), which in turn redirects the request to the infrastructure autoconfiguration module (102), the infrastructure monitoring module (105) or to the database (104), as well as directly into the created virtual infrastructure.

[0119] Конфигурационный файл проведения тестирования оценивается на выполнимость с помощью алгоритма обработки сценария тестирования. После чего с помощью алгоритма подготовки плана проведения тестирования формируется план проведения тестирования: какая будет использоваться инфраструктура, какие варианты изменения инфраструктуры, если есть динамические переменные, как будет запускаться воздействие (удаленно без изоляции, или необходимо развернуть копию, запускающую воздействие внутри инфраструктуры), события реакции на триггеры (аналогично удаленно или внутри), количество повторений, событие окончания тестирования и т.д.[0119] The test execution configuration file is evaluated for feasibility using the test script processing algorithm. After that, using the algorithm for preparing a test plan, a test plan is formed: what infrastructure will be used, what options for changing the infrastructure, if there are dynamic variables, how the impact will be triggered (remotely without isolation, or it is necessary to deploy a copy that triggers the impact inside the infrastructure), events reactions to triggers (similarly remotely or internally), the number of repetitions, the end of testing event, etc.

[0120] После формирования плана модуль проведения тестирования (103) рассчитывает с помощью алгоритма оптимизации инфраструктуры наилучший вариант проведения тестирования и одновременный запуск нескольких вариантов (например, когда указано количество запусков или динамические переменные) тестирования.[0120] After the plan is formed, the test execution module (103) calculates the best test case using the infrastructure optimization algorithm and the simultaneous launch of several test cases (for example, when the number of runs or dynamic variables is specified) of the test.

[0121] После этого модуль (103) начинает осуществлять план проведения тестирования, для этого в несколько потоков (если возможно) осуществляются следующие действия: создание инфраструктуры в виртуальной среде, запуск воздействия с помощью модуля автоконфигурации (102), создание механизмов мониторинга инфраструктуры с помощью модуля мониторинга инфраструктуры (103), изолирование инфраструктуры, если необходимо, с помощью модуля автоконфигурации (102), мониторинг триггеров событий, запуск событий с помощью модуля автоконфигурации (102) или напрямую, ожидание событий окончания тестирования, сбор данных с помощью механизма мониторинга, уничтожение виртуальной инфраструктуры, повтор с созданием новой виртуальной инфраструктуры (если предполагается несколько запусков или динамические переменные).[0121] After that, the module (103) begins to implement the test plan, for this, the following actions are performed in several threads (if possible): creating an infrastructure in a virtual environment, launching an action using the autoconfiguration module (102), creating infrastructure monitoring mechanisms using the infrastructure monitoring module (103), isolating the infrastructure, if necessary, using the autoconfiguration module (102), monitoring event triggers, triggering events using the autoconfiguring module (102) or directly, waiting for test end events, collecting data using the monitoring mechanism, destroying virtual infrastructure, repeated with the creation of a new virtual infrastructure (if multiple starts or dynamic variables are expected).

[0122] По окончанию проведения тестирования данные предоставляются пользователю аналогично процессу работы в рамках автоматизированного развертывания инфраструктуры в виртуальной среде.[0122] At the end of testing, the data is provided to the user in a similar way to the workflow for automated infrastructure deployment in a virtual environment.

[0123] На Фиг. 5 представлен пример общего вида вычислительного устройства (300), для реализации системы (100).[0123] FIG. 5 shows an example of a general view of a computing device (300) for implementing the system (100).

[0124] В общем случае, вычислительное устройство (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (1105), и устройство для сетевого взаимодействия (306).[0124] In the General case, the computing device (300) contains one or more processors (301) united by a common bus of information exchange, memory means such as RAM (302) and ROM (303), input / output interfaces (304), devices input / output (1105), and a device for networking (306).

[0125] Процессор (301) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в устройстве (300) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения исполнения системы (100), а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.[0125] The processor (301) (or multiple processors, multi-core processor, etc.) can be selected from a range of devices currently widely used, for example, such manufacturers as: Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™, etc. Under the processor or one of the processors used in the device (300), it is also necessary to take into account a graphics processor, for example, NVIDIA GPU or Graphcore, the type of which is also suitable for full or partial execution of the system (100), and can also be used for training and applying models machine learning in various information systems.

[0126] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (302) может выступать доступный объем памяти графической карты или графического процессора.[0126] The RAM (302) is a random access memory and is intended for storing machine-readable instructions executed by the processor (301) for performing the necessary operations for logical data processing. RAM (302), as a rule, contains executable instructions of the operating system and corresponding software components (applications, software modules, etc.). In this case, the available memory of the graphics card or graphics processor can act as RAM (302).

[0127] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R7RW, BlueRay Disc, MD) и др.[0127] ROM (303) is one or more persistent storage devices, such as a hard disk drive (HDD), solid state data storage device (SSD), flash memory (EEPROM, NAND, etc.), optical storage media ( CD-R / RW, DVD-R7RW, BlueRay Disc, MD), etc.

[0128] Для организации работы компонентов вычислительного устройства (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.[0128] Various types of I / O interfaces (304) are used to organize the operation of the components of the computing device (300) and to organize the operation of external connected devices. The choice of the appropriate interfaces depends on the specific version of the computing device, which can be, but are not limited to: PCI, AGP, PS / 2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS / Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232, etc.

[0129] Для обеспечения взаимодействия пользователя с вычислительным устройством (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0129] To ensure user interaction with the computing device (300), various I / O means (305) are used, for example, a keyboard, display (monitor), touch display, touch pad, joystick, mouse manipulator, light pen, stylus, touch panel, trackball, speakers, microphone, augmented reality, optical sensors, tablet, light indicators, projector, camera, biometric identification (retina scanner, fingerprint scanner, voice recognition module), etc.

[0130] Средство сетевого взаимодействия (306) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0130] The networking tool (306) provides data transmission via an internal or external computer network, for example, Intranet, Internet, LAN, and the like. One or more means (306) may be used, but not limited to: Ethernet card, GSM modem, GPRS modem, LTE modem, 5G modem, satellite communication module, NFC module, Bluetooth and / or BLE module, Wi-Fi module and dr.

[0131] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.[0131] The submitted application materials disclose preferred examples of the implementation of the technical solution and should not be construed as limiting other, particular examples of its implementation that do not go beyond the scope of the claimed legal protection, which are obvious to specialists in the relevant field of technology.

Claims (11)

1. Автоматизированная система тестирования событий кибербезопасности, содержащая:1. An automated system for testing cybersecurity events, containing: • модуль оркестрации запросов, связанный со всеми модулями системы и базой данных, выполненный с возможностью перенаправления запросов пользователей к модулям системы, причем пользовательский запрос содержит параметры формирования алгоритмов тестирования;• a query orchestration module associated with all system modules and a database, configured to redirect user requests to system modules, and the user request contains parameters for generating testing algorithms; • модуль автоконфигурации инфраструктуры в виртуальной среде, осуществляющий взаимодействие с API внешних инструментов и выполненный с возможностью автоматического развертывания инфраструктуры в виртуальной среде из конфигурационного файла пользователя с помощью внешних инструментов;• an infrastructure autoconfiguration module in a virtual environment that interacts with the API of external tools and is configured to automatically deploy infrastructure in a virtual environment from a user's configuration file using external tools; • модуль проведения тестирования, выполненный с возможностью автоматического тестирования событий кибербезопасности в развернутой инфраструктуре на основе информации алгоритмов тестирования, содержащейся в конфигурационном файле пользователя;• a testing module capable of automatically testing cybersecurity events in the deployed infrastructure based on the information of the testing algorithms contained in the user's configuration file; • модуль мониторинга событий в развернутой инфраструктуре, выполненный с возможностью автоматического добавления механизмов мониторинга внутри созданной инфраструктуры на основании данных конфигурационного файла и обработки событий, возникающих в результате активности объектов в созданной инфраструктуре;• a module for monitoring events in the deployed infrastructure, capable of automatically adding monitoring mechanisms within the created infrastructure based on the data in the configuration file and processing events resulting from the activity of objects in the created infrastructure; • базу данных, содержащую конфигурационные файлы пользователей с заданными параметрами алгоритмов для тестирования событий кибербезопасности.• a database containing configuration files of users with specified parameters of algorithms for testing cybersecurity events. 2. Система по п.1, характеризующаяся тем, что содержит прокси-сервер, выполняющий алгоритмы безопасного соединения.2. The system according to claim 1, characterized in that it contains a proxy server that executes secure connection algorithms. 3. Система по п. 1, характеризующаяся тем, что модуль проведения тестирования выполняет алгоритм обработки сценария тестирования.3. The system according to claim 1, characterized in that the testing module performs the testing scenario processing algorithm. 4. Система по п. 1, характеризующаяся тем, что модуль проведения тестирования выполняет алгоритм подготовки очереди задач, которые должны быть реализованы до начала тестирования.4. The system according to claim 1, characterized in that the testing module performs an algorithm for preparing a queue of tasks that must be implemented before testing. 5. Система по п. 1, характеризующаяся тем, что модуль проведения тестирования выполняет алгоритм формирования обратной связи с инфраструктурой во время тестирования.5. The system according to claim 1, characterized in that the testing module performs an algorithm for generating feedback with the infrastructure during testing. 6. Система по п. 1, характеризующаяся тем, что модуль проведения тестирования выполняет алгоритм оптимизации инфраструктуры в виртуальной среде.6. The system according to claim 1, characterized in that the testing module performs an infrastructure optimization algorithm in a virtual environment.
RU2019142435A 2019-12-19 2019-12-19 Automated cybersecurity event testing system RU2747099C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2019142435A RU2747099C1 (en) 2019-12-19 2019-12-19 Automated cybersecurity event testing system
EA201992850A EA201992850A3 (en) 2019-12-19 2019-12-26 AUTOMATED CYBER SECURITY EVENT TESTING SYSTEM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019142435A RU2747099C1 (en) 2019-12-19 2019-12-19 Automated cybersecurity event testing system

Publications (1)

Publication Number Publication Date
RU2747099C1 true RU2747099C1 (en) 2021-04-26

Family

ID=75584965

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019142435A RU2747099C1 (en) 2019-12-19 2019-12-19 Automated cybersecurity event testing system

Country Status (2)

Country Link
EA (1) EA201992850A3 (en)
RU (1) RU2747099C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114845305A (en) * 2022-03-31 2022-08-02 国网江苏省电力有限公司电力科学研究院 Large-flow 5G slice isolation test method based on marks

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245422A1 (en) * 2009-11-30 2014-08-28 Iwebgate Technology Limited System and method for network virtualization and security using computer systems and software
US20150051893A1 (en) * 2008-06-18 2015-02-19 Camber Defense Security And Systems Solutions, Inc. Systems and methods for network monitoring and analysis of a simulated network
US9076342B2 (en) * 2008-02-19 2015-07-07 Architecture Technology Corporation Automated execution and evaluation of network-based training exercises
EP3145150A1 (en) * 2015-09-16 2017-03-22 Mastercard International Incorporated Cyber defence and network traffic management using virtualized emulation of network resources
US10079850B1 (en) * 2015-12-29 2018-09-18 Symantec Corporation Systems and methods for provisioning cyber security simulation exercises
WO2019040613A1 (en) * 2017-08-24 2019-02-28 Circadence Corporation System for dynamically provisioning cyber training environments
US10346612B1 (en) * 2017-06-19 2019-07-09 Architecture Technology Corporation Computer network defense training on operational networks using software agents
US20190253448A1 (en) * 2015-10-08 2019-08-15 Siege Technologies LLC Assessing effectiveness of cybersecurity technologies

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076342B2 (en) * 2008-02-19 2015-07-07 Architecture Technology Corporation Automated execution and evaluation of network-based training exercises
US20150051893A1 (en) * 2008-06-18 2015-02-19 Camber Defense Security And Systems Solutions, Inc. Systems and methods for network monitoring and analysis of a simulated network
US20140245422A1 (en) * 2009-11-30 2014-08-28 Iwebgate Technology Limited System and method for network virtualization and security using computer systems and software
EP3145150A1 (en) * 2015-09-16 2017-03-22 Mastercard International Incorporated Cyber defence and network traffic management using virtualized emulation of network resources
US20190253448A1 (en) * 2015-10-08 2019-08-15 Siege Technologies LLC Assessing effectiveness of cybersecurity technologies
US10079850B1 (en) * 2015-12-29 2018-09-18 Symantec Corporation Systems and methods for provisioning cyber security simulation exercises
US10346612B1 (en) * 2017-06-19 2019-07-09 Architecture Technology Corporation Computer network defense training on operational networks using software agents
WO2019040613A1 (en) * 2017-08-24 2019-02-28 Circadence Corporation System for dynamically provisioning cyber training environments

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114845305A (en) * 2022-03-31 2022-08-02 国网江苏省电力有限公司电力科学研究院 Large-flow 5G slice isolation test method based on marks
CN114845305B (en) * 2022-03-31 2024-02-02 国网江苏省电力有限公司电力科学研究院 High-flow 5G slice isolation test method based on marks

Also Published As

Publication number Publication date
EA201992850A2 (en) 2021-06-30
EA201992850A3 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
US10002029B1 (en) Automated transfer of neural network definitions among federated areas
EP3149583B1 (en) Method and apparatus for automating the building of threat models for the public cloud
CN111819544A (en) Pre-deployment security analyzer service for virtual computing resources
JP6559694B2 (en) Automatic SDK acceptance
EP3467650B1 (en) Controlling user creation of data resources on a data processing platform
CA2691666C (en) System and method for simulating computer network attacks
JP2016129037A (en) System and method for application attestation
US11748487B2 (en) Detecting a potential security leak by a microservice
US20180054456A1 (en) Website security tracking across a network
JP2021528749A (en) Automatic packetless network reachability analysis
US11516222B1 (en) Automatically prioritizing computing resource configurations for remediation
US20220382881A1 (en) Software vulnerability detection in managed networks
Muñoz et al. Analyzing the traffic of penetration testing tools with an IDS
Casola et al. A methodology for automated penetration testing of cloud applications
US20230319092A1 (en) Offline Workflows In An Edge-Based Data Platform
RU2747099C1 (en) Automated cybersecurity event testing system
CN112235300B (en) Cloud virtual network vulnerability detection method, system, device and electronic equipment
Putra et al. Infrastructure as code for security automation and network infrastructure monitoring
CN111245800A (en) Network security testing method and device of industrial control network based on application scene
EA040394B1 (en) AUTOMATED SYSTEM FOR TESTING CYBER SECURITY EVENTS
Cheng et al. PDFuzzerGen: Policy‐Driven Black‐Box Fuzzer Generation for Smart Devices
RU2755252C2 (en) Method and system for assessing impact of software under study on availability of industrial automation systems
CN112637873A (en) Robustness testing method and device based on wireless communication network of unmanned system
US10089261B2 (en) Discriminating dynamic connection of disconnectable peripherals
Vilches et al. Aztarna, a footprinting tool for robots