RU2785555C1 - Method of processing user data - Google Patents

Method of processing user data Download PDF

Info

Publication number
RU2785555C1
RU2785555C1 RU2022129487A RU2022129487A RU2785555C1 RU 2785555 C1 RU2785555 C1 RU 2785555C1 RU 2022129487 A RU2022129487 A RU 2022129487A RU 2022129487 A RU2022129487 A RU 2022129487A RU 2785555 C1 RU2785555 C1 RU 2785555C1
Authority
RU
Russia
Prior art keywords
data
user
container
user data
virtual machine
Prior art date
Application number
RU2022129487A
Other languages
Russian (ru)
Inventor
Екатерина Даниловна Казакова
Антон Алексеевич Лосев
Original Assignee
Общество с ограниченной ответственностью "Центр трансфера технологий ФИНДАТАХАБ"
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Центр трансфера технологий ФИНДАТАХАБ" filed Critical Общество с ограниченной ответственностью "Центр трансфера технологий ФИНДАТАХАБ"
Application granted granted Critical
Publication of RU2785555C1 publication Critical patent/RU2785555C1/en

Links

Abstract

FIELD: computer technology.
SUBSTANCE: invention relates to the field of computer technology for protecting user data, more specifically, to means for processing user data that provide protection against unauthorized access to information processed and stored in cloud computer information and computing systems. The technical result is achieved due to the fact that the transmission of user data is carried out through a closed VPN network, and the data is analyzed for the presence of malicious data. Data processing is carried out by a virtual machine into which a docker container with user data is loaded. The processing results are uploaded to the server, and the virtual machine is deleted, which eliminates the possibility of further data leakage. The user's access to the container is based on the user identifier obtained from the information about the user's current session when accessing the container. Checking the user's access rights to the container is carried out in accordance with the access permissions matrix. In addition, the claimed method includes the stage of analyzing data on the load of computing resources of the cloud infrastructure.
EFFECT: technical result consists in ensuring the secure processing of user data, taking into account load balancing between the nodes of the cloud environment.
5 cl

Description

Область техникиTechnical field

Данное изобретение относится области компьютерной техники, обеспечивающей защиту пользовательских данных, более конкретно, к средствам для обработки данных пользователя, обеспечивающих защиту от несанкционированного доступа к информации, обрабатываемой и хранимой в облачных компьютерных информационно-вычислительных системах. Уровень техникиThis invention relates to the field of computer technology that provides protection of user data, more specifically, to means for processing user data that provide protection against unauthorized access to information processed and stored in cloud computer information and computing systems. State of the art

Из уровня техники известен способ управления контейнерными приложениями на пограничном устройстве, описанный в US 20220164177 А1, G06F 8/65, опубл. 26.05.2022. Согласно известному решению через пограничный механизм сетевого устройства выполняют управление, запрос или получение информации о механизме контейнера, работающем на сетевом устройстве. С помощью механизма контейнера осуществляют извлечение и управление контейнером приложения. Контейнер включает в себя обученную модель машинного обучения, и может быть получен из магазина приложений. В известном способе запускают обученную модель машинного обучения для генерации данных и выводят данные для отображения в пользовательском интерфейсе. Механизм докера содержит клиент и сервер, соединенные с возможностью обмена данными через высокоуровневый REST API. Клиент может запускать команды, каждая из которых транслируется с помощью REST API и отправляется на сервер. Указанное решение обеспечивает возможность безопасного развертывания контейнерных приложений.The prior art method of managing container applications on the edge device, described in US 20220164177 A1, G06F 8/65, publ. May 26, 2022. According to the known solution, through the edge mechanism of the network device, control, request or receive information about the container engine running on the network device. The container mechanism retrieves and manages the application container. The container includes a trained machine learning model, and can be obtained from the app store. In a known method, a trained machine learning model is run to generate data and the data is output for display in a user interface. The docker engine contains a client and server connected with the ability to communicate through a high-level REST API. The client can run commands, each of which is translated using the REST API and sent to the server. This solution provides the ability to securely deploy containerized applications.

Известна система предоставления доступа к пользовательским данным, описанная в US 20180121447 A1, G06F 21/60, опубл. 03.05.2018. В известном решении сервисная система реализует веб-систему управления отношениями с клиентами (CRM), которая предоставляет пользователям услуги CRM. Система включает в себя серверы приложений, сконфигурированные для реализации и выполнения программных приложений CRM, а также предоставления связанных данных, кода, форм, веб-страниц и другой информации на клиентские устройства и с них, а также для хранения и извлечения, данных, объектов и содержимого вебстраницы. Система определяет политики, применимые к данным. Определенные политики указывают преобразования, которые должны быть выполнены с данными для обеспечения конфиденциальности пользователей. Система преобразует пользовательские данные в соответствии с политиками и предоставляет преобразованные пользовательские данные администратору. Известное решение направлено на обеспечение защиты конфиденциальности данных пользователей.A known system for providing access to user data, described in US 20180121447 A1, G06F 21/60, publ. 05/03/2018. In the known solution, the service system implements a web-based customer relationship management (CRM) system that provides CRM services to users. The system includes application servers configured to implement and execute CRM software applications and provide related data, code, forms, web pages, and other information to and from client devices, as well as store and retrieve data, objects, and web page content. The system determines the policies that apply to the data. Certain policies specify the transformations that must be performed on the data to ensure user privacy. The system converts user data according to policies and provides the converted user data to the administrator. The known solution aims to protect the privacy of user data.

Известен способ открытия непроверенного контента в отдельной одноразовой виртуализированной среде с использованием временной виртуальной машины (ВМ) (US 2015089497 A1, опубл. 26.03.2015, кл. G06F 21/00). Известный способ включает в себя перехват запроса на открытие/доступ к непроверенному контенту от стороннего удаленного сервера и сравнение конкретной информации/атрибутов непроверенного контента с предварительно определенными критериями. Пользовательское устройство может подключиться с использованием протокола удаленного представления к временной виртуальной машине в отдельной одноразовой среде, так что вывод непроверенного контента может быть транспортирован и отображен в отдельной одноразовой среде. Соединение с временной виртуальной машиной может быть разорвано, а отдельная одноразовая среда может быть очищена, чтобы снизить риск наличия вредоносного кода в непроверенном содержимом.There is a known method for opening unverified content in a separate one-time virtualized environment using a temporary virtual machine (VM) (US 2015089497 A1, publ. 03/26/2015, class G06F 21/00). The known method includes intercepting a request to open/access unverified content from a third party remote server and comparing specific information/attributes of the unverified content with predefined criteria. The user device may connect using a remote presentation protocol to a temporary virtual machine in a separate disposable environment such that unverified content output can be transported and displayed in a separate disposable environment. The connection to the temporary virtual machine can be terminated, and a separate one-time environment can be cleaned up to reduce the risk of malicious code in unverified content.

Из уровня техники известен способ обработки данных, описанный в CN 110471740 A, G06F 9/455, опубл. 19.11.2019, взятый в качестве прототипа. В известном решении сервер представляет собой поставщика облачных услуг, способного создавать виртуальную машину на облачном сервере и выполнять задачи машинного обучения. После получения задачи машинного обучения от пользователя сервер определяет базовый образ. Определяется образ контейнера, соответствующий базовому образу, и соответствующий задаче машинного обучения. На облачном сервере создается виртуальная машина с использованием базового образа, а затем в созданной виртуальной машине создается экземпляр контейнера Docker с использованием созданного образа. После монтирования данных, соответствующих задаче машинного обучения, в экземпляр контейнера, запускается экземпляр контейнера, чтобы начать выполнение задачи машинного обучения. Известное решение направлено на повышение эффективности обработки данных и выполнения задач машинного обучения.The prior art data processing method described in CN 110471740 A, G06F 9/455, publ. 11/19/2019, taken as a prototype. In the known solution, the server is a cloud service provider capable of creating a virtual machine on a cloud server and performing machine learning tasks. After receiving a machine learning task from the user, the server determines the base image. The container image corresponding to the base image and corresponding to the machine learning task is determined. A virtual machine is created on the cloud server using the base image, and then a Docker container is instantiated in the created virtual machine using the generated image. After mounting the data corresponding to the machine learning task into the container instance, the container instance is launched to begin executing the machine learning task. The known solution is aimed at improving the efficiency of data processing and performing machine learning tasks.

В указанных аналогах не описано и не предполагается осуществление анализа данных о загруженности вычислительных ресурсов облачной инфраструктуры для получения показателя загруженности и создание виртуальной машины на его основе; и после загрузки подготовленного docker-контейнера с данными пользователя в виртуальную машину осуществление идентификации пользователя с получением идентификатора пользователя из информации о текущем сеансе работы пользователя при осуществлении доступа к контейнеру и проверки прав доступа при осуществлении доступа к контейнеру.These analogues do not describe and do not assume the analysis of data on the load of computing resources of the cloud infrastructure in order to obtain a load indicator and create a virtual machine based on it; and after loading the prepared docker container with user data into the virtual machine, performing user identification by obtaining the user ID from information about the current user session when accessing the container and checking access rights when accessing the container.

Поставленная задача заключается в создании решения, позволяющего распределять нагрузку между узлами облачной инфраструктуры и обеспечивающего защиту данных от несанкционированного доступа.The task is to create a solution that allows you to distribute the load between the nodes of the cloud infrastructure and provides data protection from unauthorized access.

Технический результат заключается в обеспечении безопасной обработки данных пользователя с учетом балансировки нагрузки между узлами облачной среды.The technical result consists in ensuring the secure processing of user data, taking into account load balancing between the nodes of the cloud environment.

Сущность изобретенияThe essence of the invention

Указанный технический результат достигается и поставленная задача решается за счет того, что:The specified technical result is achieved and the task is solved due to the fact that:

способ обработки данных пользователя, включающий в себя передачу данных пользователя посредством закрытой VPN-сети от тонкого клиента,a method for processing user data, including transferring user data via a closed VPN network from a thin client,

выполненного в виде web-приложения, к серверной части, где взаимодействие серверной части с клиентом осуществляется посредством REST API, а передача данных производится через сервер приложений, содержит этап, на котором данные пользователя анализируются на предмет наличия в них вредоносных данных; а также этапы, заключающиеся в размещении переданных данных пользователя в приватной виртуальной сети хранения данных (СХД);made in the form of a web application, to the server part, where the server part interacts with the client through the REST API, and data is transmitted through the application server, contains a stage at which user data is analyzed for malicious data; as well as the stages consisting in placing the transferred user data in a private virtual storage network (SAN);

анализе данных о загруженности вычислительных ресурсов облачной инфраструктуры для получения показателя загруженности;analysis of data on the load of computing resources of the cloud infrastructure to obtain a load indicator;

создании виртуальной машины на основе показателя загруженности;create a virtual machine based on the utilization rate;

загрузке подготовленного docker-контейнера с данными пользователя в виртуальную машину;loading the prepared docker container with user data into the virtual machine;

идентификации пользователя и проверке прав доступа при осуществлении доступа к контейнеру, включающих получение идентификатора пользователя из информации о текущем сеансе работы пользователя при осуществлении доступа к контейнеру и проверку прав доступа пользователя к контейнеру;identifying the user and checking access rights when accessing the container, including obtaining a user identifier from information about the current session of the user when accessing the container and checking the user's access rights to the container;

обработке требуемых наборов данных виртуальной машиной под управлением полученных данных пользователя;processing the required data sets by a virtual machine under the control of the received user data;

загрузке результатов обработки требуемых наборов данных на сервер;uploading the results of processing the required data sets to the server;

дезактивации виртуальной машины для обработки полученных данных пользователя;deactivation of the virtual machine to process the received user data;

передаче результатов обработки требуемых наборов данных в СХД; предоставлении доступа пользователя к результатам обработки требуемых наборов данных.transferring the results of processing the required data sets to the storage system; providing user access to the results of processing the required data sets.

Кроме того, в заявленном решении закрытая VPN-сеть может быть построена на технологии VipNet.In addition, in the claimed solution, a closed VPN network can be built on VipNet technology.

Кроме того, в заявленном решении данные пользователя включают по меньшей мере модель искусственного интеллекта и наборы данных для обучения модели.In addition, in the claimed solution, the user data includes at least an artificial intelligence model and data sets for training the model.

Кроме того, в заявленном решении доступ к данным пользователя может быть определен только для пользователя их загрузившего.In addition, in the claimed solution, access to user data can be defined only for the user who downloaded them.

Кроме того, проверка прав доступа пользователя к контейнеру может осуществляется в соответствии с матрицей полномочий доступа.In addition, checking the user's access rights to the container can be performed in accordance with the access permission matrix.

Осуществление изобретенияImplementation of the invention

Варианты реализации изобретения обеспечивают механизмы для обработки данных пользователя с использованием виртуальной машины.Embodiments of the invention provide mechanisms for processing user data using a virtual machine.

Настоящее раскрытие описывает способ обработки данных пользователя в системе, имеющей сервисную архитектуру, представляющую из себя тонкий клиент в виде web-приложения и серверную часть, реализующую взаимодействие с клиентом посредством REST API.The present disclosure describes a method for processing user data in a system that has a service architecture, which is a thin client in the form of a web application and a server part that implements interaction with the client through the REST API.

Все подключения клиентского приложения к серверу происходят внутри закрытой VPN-сети, таким образом исключая возможность компрометации передаваемой и получаемой информации на стадии обмена данными.All connections of the client application to the server occur within a closed VPN network, thus excluding the possibility of compromising the transmitted and received information at the stage of data exchange.

Все запросы, которые приходят на сервер со стороны тонкого клиента, проходят анализ на предмет наличия вредоносных данных. Все входные параметры для взаимодействия строго ограничены. Таким образом не допускается возможность использования вредоносных запросов со стороны клиента.All requests that come to the server from the thin client are analyzed for malicious data. All input parameters for interaction are strictly limited. Thus, the possibility of using malicious requests from the client side is not allowed.

Пользователям предоставлена возможность загрузки в систему своих моделей и наборов данных.Users are given the opportunity to upload their models and data sets to the system.

После анализа данных на предмет наличия в них вредоносных данных, данные пользователя размещаются в приватной виртуальной сети хранения данных (СХД).After analyzing the data for the presence of malicious data, user data is placed in a private virtual storage area network (SAN).

Перемещение пользовательских файлов после их загрузки для исполнения функционала системы происходит только внутри закрытой сети облака между серверами и сервисами. Для реализации работы модели на предоставленном наборе данных создается новая виртуальная машина, закрытая от внешнего доступа.The movement of user files after they are downloaded to perform the functionality of the system occurs only within a closed cloud network between servers and services. To implement the work of the model on the provided data set, a new virtual machine is created, closed from external access.

Виртуальная машина создается на основании данных о загруженности вычислительных ресурсов облачной инфраструктуры.The virtual machine is created based on data on the load on the computing resources of the cloud infrastructure.

Набор микроприложений Load Balancing, запущенных в облачной инфраструктуре, распределяет запросы пользователей между конечными исполнителями с целью равномерности нагрузки. Использование модульного принципа позволяет использовать различные подходы для реализации механизма балансировки. Одним из вариантов таких подходов может быть подход, выполненный на основе среднеквадратичного отклонения.A set of Load Balancing micro-applications running in the cloud infrastructure distributes user requests among end executors in order to balance the load. Using the modular principle allows you to use different approaches to implement the balancing mechanism. One of the options for such approaches can be the approach based on the standard deviation.

Сервис позволяет автоматизировать балансировку нагрузки между узлами. Он собирает данные, анализирует их и принимает решение о миграции виртуальных машин с одного узла на другой. Сервис является частью системы, что позволяет вызывать внутренние функции без использования внешнего API.The service allows you to automate load balancing between nodes. It collects data, analyzes it and decides on the migration of virtual machines from one host to another. The service is part of the system, which allows you to call internal functions without using an external API.

Структура решения следующаяThe structure of the solution is as follows

- Модуль сбора статистических данных;- Statistical data collection module;

- Модуль анализа собранных данных и принятия решений;- Module for analyzing collected data and making decisions;

- Модуль балансировки виртуальных машин (overload-алгоритм);- Virtual machine balancing module (overload-algorithm);

- Модуль определения недостаточности загруженности вычислительных узлов (underload-алгоритм);- Module for determining the insufficiency of the workload of computing nodes (underload-algorithm);

- Вспомогательные службы (API, правила балансировщика);- Auxiliary services (API, balancer rules);

Данные модули имеют базовые классы, что позволяет использовать собственные реализации классов.These modules have base classes, which allows you to use your own class implementations.

Для анализа требуется получать с каждого узла данные о загруженности вычислительных ресурсов. Показатель загруженности CPU узла получается с использованием Python-библиотеки psutil. Показатель свободной оперативной памяти узла вычисляется как сумма свободной, кэшируемой и буферной памяти. Библиотека управления виртуализацией libvirt позволяет получать актуальные данные об использовании ресурсов виртуальной машиной. Сервис модифицирован таким образом, чтобы он с определенным интервалом отправлял данные по загруженности узла (процентная загруженность CPU, загруженность РчАМ в мегабайтах) и загруженности каждой виртуальной машины (процессорное время, загруженность RAM в мегабайтах), расположенной на нем, в менеджер процессов, обеспечивающий взаимодействие с базой данных. Полученная информация записывается в соответствующие таблицы базы данных. Данные о загруженности виртуальных машин и узлов заполняются за счет использования атомарного метода UPSERT.For analysis, it is required to obtain data on the load of computing resources from each node. A node's CPU utilization is obtained using the psutil Python library. A node's free RAM is calculated as the sum of free, cached, and buffered memory. The libvirt virtualization management library allows you to get up-to-date data on the resource usage of a virtual machine. The service is modified in such a way that at a certain interval it sends data on the node load (percentage CPU load, RFAM load in megabytes) and the load of each virtual machine (processor time, RAM load in megabytes) located on it to the process manager that provides interaction with a database. The received information is recorded in the corresponding database tables. Data on the workload of virtual machines and hosts is populated using the atomic UPSERT method.

По показателям CPU и RAM в конфигурационном файле устанавливаются пороговые значения среднеквадратичного отклонения. Данный модуль запускается с определенной в конфигурационном файле периодичностью. Собранные данные преобразуются в процентные показатели. Следует нормализовать показатели в границах [0, 1]. Для этого процессорное время переводится в загруженность CPU по следующей формуле:Based on the CPU and RAM indicators, the threshold values of the standard deviation are set in the configuration file. This module is launched with a frequency defined in the configuration file. The collected data is converted into percentages. It is necessary to normalize indicators within the limits [0, 1]. To do this, the processor time is converted into CPU utilization using the following formula:

Figure 00000001
Figure 00000001

где:where:

cpu_time - процессорное время, затраченное виртуальной машиной для обработки процессов (задач). Выражено в наносекундах.cpu_time - CPU time spent by the virtual machine processing processes (tasks). Expressed in nanoseconds.

oldcpu_time - процессорное время, затраченное виртуальной машиной в предыдущий момент времени (во время time_old).oldcpu_time - CPU time spent by the virtual machine at the previous point in time (during time_old).

time_current - время, в которое был снят показатель cpu_time. Выражено в секундах.time_current - the time at which the cpu_time was taken. Expressed in seconds.

time_old - время, в которое был снят показатель oldcpu_time. Выражено в секундах.time_old - time at which oldcpu_time was taken. Expressed in seconds.

vcpus - количество ядер, выделенное данной виртуальной машине.vcpus - the number of cores allocated to this virtual machine.

Загруженность RAM вычисляется как отношение занятой памяти к общему количеству памяти узла. После обработки загруженности по всем узлам, вычисляется среднее арифметическое по CPU и RAM и среднеквадратичное отклонение. Полученные значения сравниваются с пороговыми значениями, указанными в конфигурационном файле, на основании чего делается вывод о необходимости стабилизации кластера. В случае, если полученные значения ниже пороговых, балансировщик проверит кластер underload-алгоритмом на энергоэффективность. В противном случае, запускается модуль балансировки виртуальных машин.RAM utilization is calculated as the ratio of used memory to the total amount of memory in the node. After processing the load on all nodes, the arithmetic mean for CPU and RAM and the standard deviation are calculated. The obtained values are compared with the threshold values specified in the configuration file, on the basis of which a conclusion is made about the need to stabilize the cluster. If the obtained values are below the threshold, the balancer will check the cluster for energy efficiency using the underload algorithm. Otherwise, the virtual machine balancing module is launched.

Модуль балансировки нагрузки виртуальных машин позволяет создавать собственные реализации балансировки, либо воспользоваться реализацией на основе среднеквадратичного отклонения.The virtual machine load balancing module allows you to create your own balancing implementations, or use an implementation based on the standard deviation.

Балансировщик получает текущие значения загруженности всех узлов и их виртуальных машин. На основе полученных данных проводится симуляция перемещения каждой виртуальной машины на каждый узел (кроме исходного для виртуальной машины узла), в ходе которой меняются показатели загруженности для определения нового вероятного среднеквадратичного отклонения. Результаты симуляции записывается в список в виде словаря {узел, виртуальная машина, отклонение}. Данный список, по завершении всех симуляций, сортируется по возрастанию с ключом среднеквадратичного отклонения. Полученный список характеризует все возможные случаи перемещений виртуальных машин, из которых нас интересуют те, что сводят отклонение к минимуму. Взятая пара {узел, виртуальная машина} должна пройти фильтрацию. Фильтры позволяют определить, возможно ли запустить виртуальную машину на заданном узле. В случае, если один из фильтров не завершился успешно, пара {узел, виртуальная машина} пропускает дальнейшую фильтрацию и отбрасывается.The balancer receives the current load values of all nodes and their virtual machines. Based on the received data, the simulation of moving each virtual machine to each node (except for the original node for the virtual machine) is performed, during which the load indicators are changed to determine the new probable standard deviation. The simulation results are written to the list as a dictionary {host, VM, variance}. This list, at the end of all simulations, is sorted in ascending order with the key standard deviation. The resulting list characterizes all possible cases of moving virtual machines, of which we are interested in those that minimize the deviation. The pair {node, virtual machine} taken must be filtered. Filters allow you to determine whether it is possible to run a virtual machine on a given host. If one of the filters fails, the {host, virtual machine} pair skips further filtering and is discarded.

В случае, если пара прошла фильтрацию, вызывается метод live-migration, перемещающий виртуальную машину с исходного узла на целевой. В ходе миграции создается новый домен в libvirt, в который копируется содержимое оперативной памяти виртуальной машины. Когда копирование близко к завершению, гипервизор приостанавливает работу виртуальной машины, копирует оставшиеся данные и активирует домен виртуальной машины, возобновляя ее работу. По окончанию миграции, модуль балансировки прекращает свою работу до следующего вызова в случае перегрузки.If the pair passed the filtering, the live-migration method is called, which moves the virtual machine from the source node to the target node. During the migration, a new domain is created in libvirt, into which the contents of the virtual machine's RAM are copied. When the copy is close to completion, the hypervisor pauses the virtual machine, copies the remaining data, and activates the virtual machine's domain, bringing it back online. At the end of the migration, the balancing module stops its work until the next call in case of overload.

Если пара сервисом не прошла фильтрацию, из списка берется следующая пара. Подобная реализация позволяет поэтапно стабилизировать нагрузку в кластере до тех пор, пока среднеквадратичное отклонение по узлам будет ниже порогового значения. Изменение порогового значения позволяет регулировать "чувствительность" балансировщика к перегрузкам.If the pair is not filtered by the service, the next pair is taken from the list. Such an implementation allows you to gradually stabilize the load in the cluster until the standard deviation for the nodes is below the threshold value. Changing the threshold value allows you to adjust the "sensitivity" of the balancer to overloads.

После создания на основе показателя загруженности виртуальной машины осуществляется загрузка подготовленного docker-контейнера с данными пользователя в виртуальную машину.After creating a virtual machine based on the load indicator, the prepared docker container with user data is loaded into the virtual machine.

Заявленный способ обработки данных предполагает выполнение этапа идентификации пользователя и проверки прав доступа при осуществлении доступа к контейнеру.The claimed method of data processing involves performing the stage of user identification and checking access rights when accessing the container.

Основными компонентами подсистемы контроля и разграничения доступа являются модуль идентификации пользователя и модуль проверки прав доступа. Модуль идентификации пользователя выполняет идентификацию пользователей, аутентифицированных в операционной системе, за счет информации о текущем сеансе работы пользователя при осуществлении доступа к обфусцированному контейнеру. Модуль проверки прав доступа реализует проверку прав доступа пользователей к обфусцированному контейнеру. Матрица полномочий доступа хранится в формате защищенного контейнера в качестве дополнительной секции исполняемого файла.The main components of the access control and delimitation subsystem are the user identification module and the access rights verification module. The user identification module performs identification of users authenticated in the operating system using information about the current user session when accessing the obfuscated container. The access rights check module implements checking of user access rights to the obfuscated container. The access permission matrix is stored in a secure container format as an additional section of the executable file.

Целью функционирования подсистемы изолированной программной среды является обеспечение защиты от несанкционированного доступа к файлам среды и базам данных в оперативной памяти и на носителях информации в процессе их обработки.The purpose of the functioning of the subsystem of the isolated software environment is to provide protection against unauthorized access to the files of the environment and databases in RAM and on storage media during their processing.

В качестве базовой операционной системы для реализации системы контролируемого разграничения доступа к файлам документальных форматов была выбрана ОС семейства Linux (Ubuntu 18.04). Обусловлено это тем, что данные ОС имеют открытый исходный код и широко применяются в различных государственных организациях и ведомственных структурах.The OS of the Linux family (Ubuntu 18.04) was chosen as the base operating system for the implementation of the system of controlled access control to files in documentary formats. This is due to the fact that these operating systems are open source and are widely used in various government organizations and departmental structures.

На основе предложенной архитектуры была разработана структурная модель функционирования системы контролируемого разграничения доступа к массивам данных.On the basis of the proposed architecture, a structural model of the functioning of the system for controlled access control to data arrays was developed.

Необходимо отметить, что массив данных, извлеченный из обфусцированного контейнера, помещается в пространство изолированной программной среды. Таким образом, злоумышленник не может осуществить несанкционированный доступ к нему, поскольку документ не хранится в оперативной памяти, доступной для приложений уровня пользователя.It should be noted that the data array extracted from the obfuscated container is placed in the sandbox space. Thus, an attacker cannot make unauthorized access to it, since the document is not stored in RAM accessible to user-level applications.

Согласно структурной модели функционирования системы контролируемого разграничения доступа к данным, предполагаются следующие этапы:According to the structural model of the functioning of the system of controlled access to data, the following steps are assumed:

1. Модель обработки данных осуществляет попытку получения доступа к данным в обфусцированном контейнере. Подсистема контроля и разграничения доступа осуществляет идентификацию пользователя и проверку прав доступа. В случае разрешения доступа документ извлекается из защищенного контейнера и помещается в каталог «input_buf», который одновременно подключен к изолированной программной среде.1. The data processing model attempts to access data in an obfuscated container. The access control and delimitation subsystem performs user identification and verification of access rights. If access is granted, the document is retrieved from the secure container and placed in the "input_buf" directory, which is simultaneously attached to the sandbox.

2. Модель обработки данных работает с данными в изолированной программной среде. По окончании работы система назначает права доступа к данным, аналогичные тем, что были ранее. Затем документ сохраняется в каталог «output_buf», который является каталогом изолированной программной среды, но при этом подключен к базовой ОС. Пользователь не имеет прав на доступ к каталогу «output_buf», лишь подсистема контроля и разграничения доступа может получить доступ к данному каталогу.2. The data processing model works with data in an isolated software environment. At the end of the work, the system assigns data access rights similar to those that were previously. The document is then saved to the "output_buf" directory, which is the sandbox directory but attached to the underlying OS. The user does not have rights to access the "output_buf" directory, only the access control and demarcation subsystem can access this directory.

3. При появлении документа в каталоге «output_buf» подсистема преобразования данных внедряет документ и права доступа в шаблон исполняемого файла, а затем применяется процедура неразличимой обфускации.3. When a document appears in the "output_buf" directory, the data conversion subsystem embeds the document and access rights into the executable file template, and then the indistinguishable obfuscation procedure is applied.

Для реализации изолированной программной среды был выбран подход на основе технологии Linux Containers (LXC). Технология LXC представляет собой систему виртуализации на уровне ОС, которая создает виртуальное окружение с собственным пространством процессов и сетевым стеком. В LXC встроены механизмы контроля и ограничения доступа к ресурсам памяти и файловой системы. Для доступа к LXC предлагается использовать систему Docker (программное обеспечение для автоматизации развертывания и управления приложениями в среде виртуализации на уровне ОС). Она позволяет инкапсулировать приложение со всем его окружением и зависимыми библиотеками в контейнер, который может быть перенесен на любую ОС семейства Linux, с поддержкой механизма ядра cgroups.To implement the isolated software environment, an approach based on Linux Containers (LXC) technology was chosen. LXC technology is an OS-level virtualization system that creates a virtual environment with its own process space and network stack. LXC has built-in mechanisms for controlling and restricting access to memory and file system resources. To access LXC, it is proposed to use the Docker system (software for automating the deployment and management of applications in an OS-level virtualization environment). It allows you to encapsulate an application with all its environment and dependent libraries in a container that can be ported to any OS of the Linux family, with support for the cgroups kernel mechanism.

Клиентская часть позволяет из интерфейса командной строки управлять контейнерами. Серверная часть обеспечивает полную изоляцию запускаемых на узле контейнеров на уровне файловой системы (у каждого контейнера собственная корневая файловая система), на уровне процессов (процессы имеют доступ только к собственной файловой системе контейнера, а ресурсы разделены средствами LXC), на уровне сети (каждый контейнер имеет доступ только к привязанному к нему сетевому пространству имен и соответствующим виртуальным сетевым интерфейсам). Docker-контейнер работает в пользовательском пространстве базовой ОС как изолированный процесс и использует ресурсы ядра совместно с другими контейнерами. При этом каждый Docker контейнер представляет собой изолированную программную среду, которая является безопасной платформой для извлечения документов из обфусцированных контейнеров и работы с ними.The client part allows you to manage containers from the command line interface. The server part provides complete isolation of containers running on the host at the file system level (each container has its own root file system), at the process level (processes have access only to the container's own file system, and resources are separated by LXC tools), at the network level (each container has access only to the network namespace associated with it and the corresponding virtual network interfaces). The Docker container runs in the user space of the underlying OS as an isolated process and shares kernel resources with other containers. At the same time, each Docker container is a sandbox, which is a secure platform for extracting documents from obfuscated containers and working with them.

Важным моментом реализации системы контролируемого разграничения доступа к данным является формирование шаблона исполняемого файла. Исполняемый файл, состоит из ряда заголовков, содержащих служебные данные, предназначенные для информирования загрузчика ОС о структуре и размерах данных; секций файла, содержащих данные и машинный код, реализующий функциональное предназначение данной программы. Заголовок файла (.header) имеет фиксированное расположение в начале файла и содержит общее описание структуры файла и его основные характеристики, такие как: тип, версия формата, архитектура процессора, виртуальный адрес точки входа, размеры и смещения остальных частей файла.An important point in the implementation of a system of controlled data access control is the formation of an executable file template. An executable file consists of a number of headers containing service data designed to inform the OS loader about the structure and size of data; file sections containing data and machine code that implements the functional purpose of this program. The file header (.header) has a fixed location at the beginning of the file and contains a general description of the file structure and its main characteristics, such as: type, format version, processor architecture, virtual entry point address, sizes and offsets of the rest of the file.

Секции файла - это блоки данных, содержащие информацию о местоположении машинного кода и данных программы в файле, а также место расположения этих данных в виртуальном адресном пространстве и сами данные.File sections are blocks of data containing information about the location of machine code and program data in the file, as well as the location of these data in the virtual address space and the data itself.

Секция.code содержит следующие основные функции, реализующие базовый функционал системы контроля и разграничения доступа:The .code section contains the following main functions that implement the basic functionality of the access control and delimitation system:

• RunApp() - предназначена для загрузки и инициализации всех компонентов контейнера и системы контроля и разграничения доступа;• RunApp() - designed to load and initialize all components of the container and access control system;

• UserID() - предназначена для получения идентификатора пользователя из информации о текущем сеансе работы пользователя при осуществлении доступа к обфусцированному контейнеру;• UserID() - designed to get the user ID from information about the current user session when accessing the obfuscated container;

• CheckRights() - предназначена для проверки прав доступа пользователя к документу в обфусцированном контейнере в соответствии с матрицей полномочий доступа, хранящейся вместе с документом;• CheckRights() - designed to check the user's access rights to the document in the obfuscated container in accordance with the access permissions matrix stored with the document;

• Extract() - предназначена для извлечения документа из обфусцированного контейнера.• Extract() - designed to extract a document from an obfuscated container.

После обработки требуемых наборов данных виртуальной машиной под управлением полученных данных пользователя осуществляется загрузка результатов обработки требуемых наборов данных на сервер, а виртуальная машина полностью уничтожается, исключая возможность дальнейшей утечки каких-либо данных.After processing the required data sets by the virtual machine, under the control of the received user data, the results of processing the required data sets are loaded onto the server, and the virtual machine is completely destroyed, eliminating the possibility of further leakage of any data.

Результаты обработки требуемых наборов данных передаются в СХД и становятся доступны пользователю.The results of processing the required data sets are transferred to the storage system and become available to the user.

Закрытая VPN-сеть может быть построена на базе технологии VipNet.A closed VPN network can be built on the basis of VipNet technology.

Данные пользователя включают по меньшей мере модель искусственного интеллекта и наборы данных для обучения модели. Доступ к данным пользователя определен только для пользователя их загрузившего.The user data includes at least an artificial intelligence model and datasets for training the model. Access to user data is limited only to the user who uploaded it.

Облачная среда может включать в себя вычислительные устройства, где каждое из устройств имеет процессор для управления работой вычислительного устройства и связанных с ним компоненты, включая оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), модуль связи. Вычислительное устройство может включать в себя множество машиночитаемых носителей. Машиночитаемый носитель может быть любым доступным носителем, к которому может обращаться вычислительное устройство, может быть постоянным и может включать энергозависимые и энергонезависимые, съемные и несъемные носители.The cloud environment may include computing devices, where each of the devices has a processor to control the operation of the computing device and its associated components, including random access memory (RAM), read only memory (ROM), communication module. The computing device may include a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by a computing device, can be persistent, and can include volatile and non-volatile, removable and non-removable media.

Вычислительное устройство может работать в сетевой среде, поддерживающей соединения с одним или более удаленными вычислительными устройствами. Вычислительные устройства могут быть персональными вычислительными устройствами или серверами, которые включают в себя многие или все элементы, описанные выше относительно вычислительного устройства.The computing device may operate in a network environment that supports connections to one or more remote computing devices. Computing devices may be personal computing devices or servers that include many or all of the elements described above in relation to a computing device.

Описанные выше этапы способа обеспечивают возможность безопасной обработки данных пользователя с учетом балансировки нагрузки между узлами облачной среды.The steps of the method described above provide the possibility of secure processing of user data, taking into account load balancing between the nodes of the cloud environment.

Claims (16)

1. Способ обработки данных пользователя, включающий:1. The method of processing user data, including: передачу данных пользователя посредством закрытой VPN-сети от тонкого клиента, выполненного в виде web-приложения, к серверной части, причём взаимодействие серверной части с клиентом осуществляется посредством REST API, передачу данных производят через сервер приложений, а данные пользователя анализируют на предмет наличия в них вредоносных данных; transfer of user data via a closed VPN network from a thin client, made in the form of a web application, to the server part, and the interaction of the server part with the client is carried out via the REST API, the data is transmitted through the application server, and the user data is analyzed for the presence of malicious data; размещение переданных данных пользователя в приватной виртуальной сети хранения данных (СХД); placement of the transferred user data in a private virtual storage area network (SAN); анализ данных о загруженности вычислительных ресурсов облачной инфраструктуры для получения показателя загруженности;analysis of data on the load of computing resources of the cloud infrastructure to obtain a load indicator; создание виртуальной машины на основе показателя загруженности; create a virtual machine based on the utilization rate; загрузку подготовленного docker-контейнера с данными пользователя в виртуальную машину; loading a prepared docker container with user data into a virtual machine; идентификацию пользователя и проверку прав доступа при осуществлении доступа к контейнеру, включающие получение идентификатора пользователя из информации о текущем сеансе работы пользователя при осуществлении доступа к контейнеру и проверку прав доступа пользователя к контейнеру;identifying the user and checking access rights when accessing the container, including obtaining a user identifier from information about the current session of the user when accessing the container and checking the user's access rights to the container; обработку требуемых наборов данных виртуальной машиной под управлением полученных данных пользователя; processing the required data sets by a virtual machine under the control of the received user data; загрузку результатов обработки требуемых наборов данных на сервер; uploading the results of processing the required data sets to the server; дезактивацию виртуальной машины для обработки полученных данных пользователя; deactivation of the virtual machine to process the received user data; передачу результатов обработки требуемых наборов данных в СХД; transferring the results of processing the required data sets to the storage system; предоставление доступа пользователя к результатам обработки требуемых наборов данных.providing user access to the results of processing the required data sets. 2. Способ по п. 1, в котором закрытая VPN-сеть построена на технологии VipNet.2. The method according to claim 1, in which the closed VPN network is built on VipNet technology. 3. Способ по п. 1, в котором данные пользователя по меньшей мере включают модель искусственного интеллекта и наборы данных для обучения модели.3. The method of claim 1, wherein the user data at least includes an artificial intelligence model and training datasets for the model. 4. Способ по п. 1, в котором доступ к данным пользователя определён только для пользователя их загрузившего.4. The method according to claim 1, in which access to user data is defined only for the user who downloaded them. 5. Способ по п. 1, в котором проверка прав доступа пользователя к контейнеру осуществляется в соответствии с матрицей полномочий доступа.5. The method according to claim. 1, in which the check of the user's access rights to the container is carried out in accordance with the matrix of access rights.
RU2022129487A 2022-11-14 Method of processing user data RU2785555C1 (en)

Publications (1)

Publication Number Publication Date
RU2785555C1 true RU2785555C1 (en) 2022-12-09

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471740A (en) * 2019-07-31 2019-11-19 北京百度网讯科技有限公司 Execute method, apparatus, equipment and the computer storage medium of machine learning task
RU2750554C2 (en) * 2016-01-24 2021-06-29 Сайед Камран ХАСАН Artificial intelligence based computer security system
RU2763115C1 (en) * 2020-06-19 2021-12-27 Акционерное общество "Лаборатория Касперского" Method for adjusting the parameters of a machine learning model in order to identify false triggering and information security incidents

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2750554C2 (en) * 2016-01-24 2021-06-29 Сайед Камран ХАСАН Artificial intelligence based computer security system
CN110471740A (en) * 2019-07-31 2019-11-19 北京百度网讯科技有限公司 Execute method, apparatus, equipment and the computer storage medium of machine learning task
RU2763115C1 (en) * 2020-06-19 2021-12-27 Акционерное общество "Лаборатория Касперского" Method for adjusting the parameters of a machine learning model in order to identify false triggering and information security incidents

Similar Documents

Publication Publication Date Title
US11368519B2 (en) Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
US20200073739A1 (en) Constraint solver execution service and infrastructure therefor
US11216563B1 (en) Security assessment of virtual computing environment using logical volume image
US8949505B2 (en) Techniques for dynamic disk personalization
CN102656562B (en) For selecting the method and system of desktop executing location
US8539481B2 (en) Using virtual hierarchies to build alternative namespaces
CN102460382B (en) Annotating virtual application processes
US7890689B2 (en) Virtual appliance management
US9454670B2 (en) Hybrid file systems
US20160352745A1 (en) Extensible multi-tenant cloud-management system and methods for extending functionalities and services provided by multi-tenant cloud-management system
US10042661B1 (en) Method for creation of application containers inside OS containers
US8756197B1 (en) Generating data set views for backup restoration
US10664415B2 (en) Quality of service enforcement and data security for containers accessing storage
US20210097037A1 (en) Container software discovery and cataloging
US20140047553A1 (en) Method and apparatus for data security reading
WO2007070555A1 (en) Building alternative views of name spaces
US11500813B2 (en) Instant replay of a file to a cloud tier on a deduplication file system
RU2785555C1 (en) Method of processing user data
Rastogi et al. Towards least privilege containers with cimplifier
CN107533485B (en) System and method for multi-tenant execution of OS programs invoked from multi-tenant middleware applications
US11847221B2 (en) System and method for content scanning using sparse files
US11550753B2 (en) Data labeling awareness for backup systems
US10452837B1 (en) Inbound link handling
Onoue et al. Container-native Managed Data Sharing
Clarke Trust separation on the Cray XC40 using PBS Pro