EA038038B1 - Method and system for detecting an emulated mobile operating system using methods of machine learning - Google Patents

Method and system for detecting an emulated mobile operating system using methods of machine learning Download PDF

Info

Publication number
EA038038B1
EA038038B1 EA201892371A EA201892371A EA038038B1 EA 038038 B1 EA038038 B1 EA 038038B1 EA 201892371 A EA201892371 A EA 201892371A EA 201892371 A EA201892371 A EA 201892371A EA 038038 B1 EA038038 B1 EA 038038B1
Authority
EA
Eurasian Patent Office
Prior art keywords
data
features
mobile
user
emulated
Prior art date
Application number
EA201892371A
Other languages
Russian (ru)
Other versions
EA201892371A1 (en
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 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Publication of EA201892371A1 publication Critical patent/EA201892371A1/en
Publication of EA038038B1 publication Critical patent/EA038038B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The invention relates to computer engineering, in particular to methods and systems for detecting an emulated mobile operating system using machine learning techniques to prevent the possibility of an application to be run or to restrict functionality of the application in an emulated environment, or to use this attribute to increase the total risk of transactions (in fraud monitoring systems) made through a mobile banking client software application. The technical result is the lower financial fraud due to high quality of analyzing transactions performed in banking applications running in the emulated operating system. Said result is achieved by a method of detecting an emulated mobile operating system using machine learning techniques, wherein data is collected on a mobile application which is installed on the user's mobile communication device; the data received at the previous step is sent from the user's mobile communication device to the server; a parser selects the obtained data containing the collected features, in accordance with the field names; the selected features are sent to a trained statistical data model located on a server having feature groups which include a group of statistical features, group of dynamic features, user metrics, file metrics, and modified metrics; a decision is made by means of the trained statistical data model of the mobile application installed on a real device or in an emulated mobile operating system.

Description

Область техникиTechnology area

Данное техническое решение относится к области вычислительной техники, а в частности к способам и системам выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, с целью предотвращения возможности запуска приложения, либо для ограничения функционала мобильного приложения в эмулируемой среде.This technical solution relates to the field of computing, and in particular to methods and systems for identifying an emulated mobile operating system using machine learning methods, in order to prevent the possibility of launching an application, or to limit the functionality of a mobile application in an emulated environment.

Уровень техникиState of the art

В настоящее время использование смартфонов в повседневной жизни не ограничивается голосовыми звонками и CMC. Возможность загружать и выполнять программы, а также мобильный доступ в Интернет привели к появлению большого количества мобильных приложений. Функциональность современного смартфона составляют браузеры, клиентские программы социальных сетей, офисные приложения и всевозможные сервисы, работающие в Сети.Nowadays, the use of smartphones in daily life is not limited to voice calls and CMC. The ability to download and run programs, as well as mobile Internet access, have led to the emergence of a large number of mobile applications. The functionality of a modern smartphone is made up of browsers, client programs for social networks, office applications and all kinds of services that work on the Web.

В настоящий момент возможен беспрепятственный запуск мобильного приложения, например, банковские клиенты, на множестве программных эмуляторов операционной системы Android. Злоумышленники используют эмулируемые устройства для совершения мошеннических действий, т.к. в этом случае не требуется покупка нового телефона для совершения очередной попытки мошенничества, достаточно переустановить эмулятор, либо изменить ряд параметров в конфигурационных файлах.At the moment, it is possible to freely launch a mobile application, for example, bank clients, on a variety of software emulators of the Android operating system. Attackers use emulated devices to commit fraudulent activities. in this case, you do not need to buy a new phone to commit another fraud attempt, it is enough to reinstall the emulator, or change a number of parameters in the configuration files.

Как раскрыто в статьях [1, 2], существуют способы определения эмулятора, основанные на данных, получаемых от датчиков оборудования, таких как акселерометр, гироскоп, GPS, датчик света, силы тяжести. Выходные значения этих датчиков основаны на информации, собранной из окружающей среды, и, следовательно, реалистичная их эмуляция является сложной задачей. Присутствие такого рода датчиков - основное различие между смартфонами и настольными компьютерами. Увеличивающееся число датчиков на смартфонах дает новые возможности для идентификации мобильных устройств.As disclosed in articles [1, 2], there are methods for determining the emulator based on data received from equipment sensors, such as an accelerometer, gyroscope, GPS, light sensor, and gravity. The outputs of these sensors are based on information gathered from the environment, and therefore emulating them realistically is challenging. The presence of this kind of sensors is the main difference between smartphones and desktop computers. The increasing number of sensors on smartphones offers new possibilities for identifying mobile devices.

Однако данные технологии могут не сработать или привести к неверным результатам, если вредоносная часть кода программы не присутствует в антивирусных базах или код содержит скрытое и неочевидное вредоносное поведение. В этих случаях скрытый код может быть отправлен аналитику для рассмотрения и принятия решения о вредоносности программы. Процесс просмотра аналитиком дает точные результаты, но при этом занимает время и не эффективен с данной точки зрения.However, these technologies may not work or lead to incorrect results if the malicious part of the program code is not present in the anti-virus databases or the code contains hidden and non-obvious malicious behavior. In these cases, the hidden code can be sent to the analyst for review and decision making about the maliciousness of the program. The analyst review process provides accurate results, but it is time consuming and ineffective from this point of view.

Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением.The analysis of the prior art allows us to conclude that it is ineffective and, in some cases, it is impossible to use the prior technologies, the disadvantages of which are solved by the present invention.

Сущность технического решенияThe essence of the technical solution

Технической проблемой или технической задачей, решаемой в данном техническом решении, является выявление эмулируемой мобильной операционной системы с использованием методов машинного обучения. Техническим результатом, достигаемым при решении вышеуказанной задачи, является повышение точности выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения. Дополнительно проявляющимся техническим результатом является предотвращение возможности многократно выполнять первый заказ в мобильных приложениях. Многие приложения предоставляют скидки/бонусы/баллы за начало использование их сервиса на первый заказ услуги/продукта. Эмулируемая операционная система позволяет многократно выполнять первый заказ одним человеком.A technical problem or a technical problem solved in this technical solution is the identification of an emulated mobile operating system using machine learning methods. The technical result achieved by solving the above problem is to improve the detection accuracy of the emulated mobile operating system using machine learning methods. An additionally manifested technical result is the prevention of the possibility of multiple execution of the first order in mobile applications. Many applications provide discounts / bonuses / points for starting to use their service for the first order of a service / product. The emulated operating system allows one person to execute the first order multiple times.

Указанный технический результат достигается благодаря осуществлению способа выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, в котором осуществляют сбор данных на мобильном приложении, которое установлено на мобильное устройство связи пользователя; направляют полученные на предыдущем шаге данные из мобильного устройства связи пользователя на сервер; осуществляет выделение полученных данных посредством синтаксического анализатора, содержащих собранные признаки, в соответствии с наименованием полей; направляют выделенные признаки в обученную статистическую модель данных, расположенную на сервере, содержащую группы признаков, которые включают группу статистических признаков, динамических признаков, пользовательских метрик, файловых метрик и модифицированных метрик; принимают решение посредством обученной статистической модели данных установлено мобильное приложение на реальном устройстве или эмулируемой мобильной операционной системе.The specified technical result is achieved through the implementation of a method for identifying an emulated mobile operating system using machine learning methods, in which data is collected on a mobile application that is installed on the user's mobile communication device; sending the data obtained in the previous step from the user's mobile communication device to the server; extracts the received data by means of a parser containing the collected features, in accordance with the names of the fields; directing the selected features to a trained statistical data model located on the server, containing groups of features, which include a group of statistical features, dynamic features, custom metrics, file metrics and modified metrics; make a decision by means of a trained statistical data model, a mobile application is installed on a real device or an emulated mobile operating system.

В некоторых вариантах реализации технического решения сбор данных на мобильном приложении осуществляются в JSON-файл и/или XML, и/или YML, и/или TXT.In some embodiments of the technical solution, data collection on a mobile application is carried out in a JSON file and / or XML and / or YML and / or TXT.

В некоторых вариантах реализации технического решения сервер располагается в облачном хранилище данных или локально.In some implementations of the technical solution, the server is located in the cloud data storage or locally.

В некоторых вариантах реализации технического решения статистической моделью является логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов.In some implementations of the technical solution, the statistical model is logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or a support vector machine.

В некоторых вариантах реализации технического решения для определения эффективности статистической модели используется кросс-валидация.In some implementations of the technical solution, cross-validation is used to determine the effectiveness of the statistical model.

В некоторых вариантах реализации технического решения синтаксический анализатор осуществляет разбор элементов, содержащих собранные признаки, в соответствии с наименованием их полей.In some embodiments of the technical solution, the parser parses the elements containing the collected features in accordance with the names of their fields.

- 1 038038- 1 038038

В некоторых вариантах реализации технического решения синтаксический анализатор после разбора файла осуществляет маппинг признаков в поля таблицы в базу данных.In some embodiments of the technical solution, the parser, after parsing the file, maps features into the table fields into the database.

В некоторых вариантах реализации технического решения маппинг данных в поля таблицы в базу данных происходит путем выполнения INSERT-запроса.In some implementations of the technical solution, the mapping of data into table fields into the database occurs by executing an INSERT query.

В некоторых вариантах реализации технического решения при выделении посредством синтаксического анализатора признаков делят их на статические и динамические.In some embodiments of the technical solution, when highlighting by means of the parser, the features are divided into static and dynamic.

В некоторых вариантах реализации технического решения к динамическим данным относятся показания акселерометра и/или гироскопа, и/или датчика освещенности, и/или датчика магнитного поля, и/или датчика движения, и/или датчика расстояния, и/или датчика вращения.In some embodiments of the technical solution, dynamic data includes readings from an accelerometer and / or gyroscope and / or a light sensor and / or a magnetic field sensor and / or a motion sensor and / or a distance sensor and / or a rotation sensor.

Каждый вариант осуществления настоящей технологии включает по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.Each embodiment of the present technology includes at least one of the aforementioned objectives and / or objects, but all are not required. It should be borne in mind that some objects of this technology, obtained as a result of attempts to achieve the above-mentioned goal, may not meet this goal and / or may satisfy other purposes not specifically indicated here.

Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы технологии.Additional and / or alternative characteristics, aspects and advantages of embodiments of the present technology will become apparent from the following description, accompanying drawings and the accompanying technology claims.

Краткое описание чертежейBrief Description of Drawings

Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которыхThe features and advantages of the present technical solution will become apparent from the following detailed description and the accompanying drawings, in which

На фиг. 1 показан вариант реализации архитектуры системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения;FIG. 1 shows a variant of the implementation of the architecture of the detection system for an emulated mobile operating system using machine learning methods;

на фиг. 2 показана структура приложения для сбора данных с устройства;in fig. 2 shows the structure of an application for collecting data from a device;

на фиг. 3 показан пример коэффициентов для модели логистической регрессии;in fig. 3 shows an example of coefficients for a logistic regression model;

на фиг. 4 показан пример значимости коэффициентов для статистической модели случайного леса;in fig. 4 shows an example of the significance of the coefficients for a statistical model of a random forest;

на фиг. 5 показан объем потребляемого заряда батареи в зависимости от используемых функций устройства;in fig. 5 shows the amount of consumed battery charge depending on the used functions of the device;

на фиг. 6 показан вариант реализации разбиения набора данных и построение модели на одной части данных;in fig. 6 shows an embodiment of splitting a dataset and building a model on one piece of data;

на фиг. 7 показан вариант реализации дерева решений;in fig. 7 shows an embodiment of a decision tree;

на фиг. 8 показан вариант реализации системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения;in fig. 8 shows an embodiment of a system for detecting an emulated mobile operating system using machine learning methods;

на фиг. 9 показан вариант реализации системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения в виде блок-схемы.in fig. 9 shows an embodiment of a system for detecting an emulated mobile operating system using machine learning methods in the form of a block diagram.

Подробное описаниеDetailed description

Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа. Техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). В некоторых вариантах реализации модель так же может функционировать локально на телефоне в рамках мобильного приложения. Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответствующим графическим интерфейсом пользователя, или персонального компьютера с доступом к веб-версии системы с соответствующим графическим интерфейсом пользователя.This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a computer-readable medium containing instructions for performing the above method. The technical solution can be implemented as a distributed computer system that can be installed on a centralized server (set of servers). In some implementations, the model can also function locally on the phone as part of a mobile application. User access to the system is possible both from the Internet and from the internal network of an enterprise / organization via a mobile communication device on which software with a corresponding graphical user interface is installed, or a personal computer with access to the web version of the system with a corresponding graphical user interface.

Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.Below will be described the terms and concepts necessary for the implementation of this technical solution.

В данном решении под системой подразумевается компьютерная система, ЭВМ (электронновычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, чётко определённую последовательность вычислительных операций (действий, инструкций).In this solution, the system means a computer system, a computer (electronic computing machine), CNC (numerical control), PLC (programmable logic controller), computerized control systems and any other devices capable of performing a given, clearly defined sequence of computational operations (actions, instructions ).

Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).A command processing device means an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).

Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.A command processor reads and executes machine instructions (programs) from one or more storage devices. The role of data storage devices can be, but are not limited to, hard disks (HDD), flash memory, ROM (read only memory), solid state drives (SSD), optical drives.

Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.A program is a sequence of instructions intended for execution by a computer control device or a command processing device.

В контексте настоящего описания, если четко не указано иное, сервер подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получатьIn the context of this description, unless clearly indicated otherwise, a server means a computer program running on the corresponding equipment, which is capable of receiving

- 2 038038 запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения сервер не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение по меньшей мере один сервер. В контексте настоящего описания, если четко не указано иное, клиентское устройство или мобильное устройство связи пользователя подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения клиентское устройство не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.- 2 038038 requests (for example, from client devices) over the network and execute these requests or initiate the execution of these requests. The hardware can be one physical computer or one physical computer system, but neither is required for this technology. In the context of this technology, the use of the expression server does not mean that each task (for example, received instructions or requests) or any specific task will be received, performed or initiated for execution by the same server (that is, by the same software and / or hardware); this means that any number of pieces of software or hardware devices may be involved in receiving / transmitting, executing or initiating the execution of any request or the consequences of any request related to a client device, and all of this software and hardware may be one server or multiple servers both are included in the expression at least one server. In the context of the present description, unless clearly indicated otherwise, a client device or a user's mobile communication device means a hardware device capable of operating with software suitable for solving the corresponding task. Thus, examples of client devices (among others) include personal computers (desktops, laptops, netbooks, etc.), smartphones, tablets, and network equipment such as routers, switches, and gateways. It will be appreciated that a device behaving like a client device in the present context may behave like a server with respect to other client devices. The use of the expression client device does not preclude the use of multiple client devices to receive / send, perform or initiate the execution of any task or request, or the consequences of any task or request, or steps of any method described above.

В контексте настоящего описания, если четко не указано иное, термин база данных подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.In the context of this description, unless clearly indicated otherwise, the term database means any structured set of data that does not depend on a particular structure, database management software, computer hardware on which the data is stored, used or otherwise made available. for use. The database may reside on the same hardware as the process that stores or uses the information stored in the database, or it may reside on separate hardware, such as a dedicated server or multiple servers.

В контексте настоящего описания, если четко не указано иное, термин информация включает в себя любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.In the context of the present description, unless clearly indicated otherwise, the term information includes any information that can be stored in a database. Thus, information includes, among others, audiovisual works (images, videos, sound recordings, presentations, etc.), data (location data, digital data, etc.), text (opinions, comments, questions , messages, etc.), documents, tables, etc.

В контексте настоящего описания, если четко не указано иное, термин компонент подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной (ых) указанной (ых) функции(й).In the context of this description, unless clearly indicated otherwise, the term component refers to software (appropriate for a specific hardware context) that is necessary and sufficient to perform the specified function (s).

В контексте настоящего описания, если четко не указано иное, термин используемый компьютером носитель компьютерной информации подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.In the context of this description, unless clearly indicated otherwise, the term computer-used computer storage media means absolutely any type and nature of media, including RAM, ROM, disks (CDs, DVDs, floppy disks, hard disks, etc.) ), USB flash drives, solid state drives, tape drives, etc.

В контексте настоящего описания, если четко не указано иное, слова первый, второй, третий и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов первый сервер и третий сервер не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий второй сервер обязательно должен существовать в той или иной ситуации.In the context of the present description, unless clearly indicated otherwise, the words first, second, third, etc. are used as adjectives solely to distinguish the nouns to which they refer from each other, and not for the purpose of describing any specific connection between these nouns. So, for example, it should be borne in mind that the use of the terms first server and third server does not imply any ordering, assignment to a particular type, history, hierarchy or ranking (for example) of servers / between servers, as well as their use (by itself itself) does not imply that a certain second server must necessarily exist in a given situation.

Перечень ключевых компонент системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, представленной на фиг. 8, включает в себя нижеуказанные элементы.The list of key components of the system for detecting an emulated mobile operating system using machine learning methods, presented in Fig. 8 includes the following items.

Сборщиком данных является мобильное приложение, которое устанавливается на устройство под управлением ОС Android и выполняет сбор данных, как показано на фиг. 2, которые представляют собой различные метрики устройства, подробно описанные ниже. В некоторых вариантах реализации получаемые данные делятся на группы признаков, которые позволяют в дальнейшем более точно классифицировать принадлежность признака к той или иной группе.A data collector is a mobile application that is installed on an Android device and collects data as shown in FIG. 2, which represent various device metrics detailed below. In some implementations, the data obtained is divided into groups of features, which make it possible to further more accurately classify the belonging of a feature to a particular group.

Группа статистических признаков может включать наличие Bluetooth модуля и наличие Vibracall модуля в мобильном устройстве связи пользователя. Группа динамических признаков может включать показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения. Группа пользовательских метрик может включать такие признаки, какThe group of statistical features may include the presence of a Bluetooth module and the presence of a Vibracall module in the user's mobile communication device. A group of dynamic signs can include readings of an accelerometer, gyroscope, light sensor, linear acceleration sensor, battery level, magnetic field sensor readings, motion sensor readings, distance sensor readings, rotation sensor readings. A group of custom metrics can include characteristics such as

- 3 038038 количество SMS/MMS, количество контактов, количество выполненных звонков, количество фотографий (пользовательских файлов), история в браузере и т.д. Группа файловых метрик может включать, например, наличие файла наличие токена network_thoughput в файле /proc/mosc, наличие токена Off\0: в файле /proc/ioports, наличие файла /proc/uid_stat, наличие токена MINOR=5 в файле /sys/device/virtual/misc/cpu_dma_latency/uevent. Группа модифицированных метрик, включающая набор различных токенов в параметрах, например, токен userdebug в параметре Build.DISPLAY, токены userdebug, vbox86 или remix в параметре Build.FINGERPRINT и т.д.- 3 038038 number of SMS / MMS, number of contacts, number of calls made, number of photos (user files), browser history, etc. The group of file metrics can include, for example, the presence of a file, the presence of the network_thoughput token in the / proc / mosc file, the presence of the Off \ 0 token in the / proc / ioports file, the presence of the / proc / uid_stat file, the presence of the MINOR = 5 token in the / sys / file device / virtual / misc / cpu_dma_latency / uevent. A group of modified metrics that includes a set of different tokens in parameters, for example, the userdebug token in the Build.DISPLAY parameter, userdebug, vbox86 or remix tokens in the Build.FINGERPRINT parameter, etc.

Парсер текста или синтаксический анализатор находится на серверной части системы, осуществляет разбор строки данных и маппинг в базу данных полей из JSON файла, в котором могут находиться признаки, в поля БД. В качестве парсера JSON может быть использован любой Open Source продукт, решающий эту задачу, или парсер собственной разработки. Передача данных средствами JSON-файла не является единственным возможным и ограничивающим вариантом реализации. Так же для передачи данных могут использоваться прямые запросы (команда Insert) в БД, либо осуществляться передача данных путем формирования и передачи XML, YML, ТХТ и других форматов текстовых файлов, не ограничиваясь. База данных находится на серверной части, осуществляет долгосрочное хранение данных. База данных используется в процессе исследования механизмов ОС (например, Android) для сбора и хранения списка всех метрик, потенциально свидетельствующих о наличии эмулируемой среды. База данных хранит итоговый список метрик.A text parser or parser is located on the server side of the system, parses the data string and maps fields from the JSON file to the database into the database, which may contain signs, into the database fields. Any Open Source product that solves this problem, or a parser of our own design can be used as a JSON parser. Passing data using a JSON file is not the only possible and limiting implementation option. Also, for data transfer, direct queries (Insert command) in the database can be used, or data transfer can be carried out by forming and transferring XML, YML, TXT and other text file formats, without being limited. The database is located on the server side and provides long-term data storage. The database is used in the process of investigating OS mechanisms (for example, Android) to collect and store a list of all metrics that potentially indicate the presence of an emulated environment. The database stores a summary list of metrics.

Статистической моделью, которая находятся на серверной части, может быть логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов и другие алгоритмы машинного обучения. Данная статистическая модель осуществляет обработку и анализ данных с последующим формированием выходного результата (является ли устройство эмулятором, либо реальным устройством). Предварительно происходит формирование обучающей выборки и ее разметка. В некоторых вариантах реализации дополнительно с обучающей выборкой используют тестовую выборку для контролирования качества обучения. Для обучения статистической модели данные собираются из множества реальных устройств и множества доступных в настоящий момент эмуляторов. Затем происходит процесс обучения модели. Например, для дерева решений процесс обучения заключается в построении оптимального дерева, путем поиска признаков, наилучшим образом разделяющих всю выборку на два класса - эмуляторы и реальные устройства. В конкретном варианте реализации данного технического решения необходимо ответить от одного до трех вопросов, как показано на фиг. 7, чтобы однозначно сказать, используется эмулятор или реальное устройство. В качестве примерного варианта реализации могут использоваться следующие вопросы:The statistical model that sits on the back end can be logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or support vector machines and other machine learning algorithms. This statistical model processes and analyzes data with the subsequent formation of the output result (whether the device is an emulator or a real device). The training sample is preliminarily formed and marked. In some implementations, in addition to the training sample, a test sample is used to control the quality of training. To train the statistical model, data is collected from many real devices and many currently available emulators. Then the process of training the model takes place. For example, for a decision tree, the learning process consists in building an optimal tree by searching for features that best divide the entire sample into two classes - emulators and real devices. In a specific implementation of this technical solution, one to three questions must be answered, as shown in FIG. 7, to tell unambiguously whether an emulator or a real device is being used. As an example implementation, the following questions can be used:

есть ли файл uid_stat в директории /ргос/?is there a uid_stat file in the / proc / directory?

есть ли файл switch в директории /sys/device/virtual/?is there a switch file in the / sys / device / virtual / directory?

изменились ли значения датчика гироскопа с момента последнего сбора данных?Have the gyroscope sensor values changed since the last data collection?

На следующем шаге проверяется эффективность полученной модели на различных наборах данных. В некоторых вариантах реализации для этого используется кросс-валидация, согласно которой происходит разбивка набора данных и построение статистической модели на одной части данных (называемой тренировочным набором или обучающей выборкой), затем происходит валидация результатов работы модели на другой части (называемой тестовым набором или тестовой выборкой). Таким образом в примерном варианте реализации было выполнено 20 циклов кросс-валидации. Чтобы уменьшить разброс результатов, разные циклы кросс-валидации проводились на разных разбиениях, как показано на фиг. 6. Результаты по каждому циклу кросс-валидации представлены ниже. В качестве примера реализации ниже описан алгоритм работы одной из статистических моделей, которая может использоваться для выявления эмулируемой среды. Метод дерево решений (англ. DecisionTree) является одним из наиболее популярных способов решения задач классификации и прогнозирования в области машинного обучения. Итак, в конкретном варианте реализации, как показано на фиг. 7, основными элементами дерева решений являются:In the next step, the effectiveness of the resulting model is tested on various datasets. In some implementations, cross-validation is used for this, according to which the data set is broken down and a statistical model is built on one piece of data (called a training set or training sample), then the model results are validated on another part (called a test set or test sample. ). Thus, in the exemplary implementation, 20 cross-validation cycles were performed. To reduce the scatter of results, different cross-validation cycles were run on different partitions, as shown in FIG. 6. The results for each round of cross-validation are presented below. As an example of implementation, the following describes the algorithm of operation of one of the statistical models, which can be used to identify the emulated environment. The DecisionTree method is one of the most popular methods for solving classification and forecasting problems in the field of machine learning. So, in a particular embodiment, as shown in FIG. 7, the main elements of the decision tree are:

Корнем дерева решений является признак f3 - наличие файла /proc/uid_stat. Внутренним узлом дерева или узлом проверки является признак f6 - наличие файла /sys/device/virtual/switch. Листом (конечным узлом дерева) является узел решения или вершина эмулятор, реальное устройство. Ветвью дерева (случаи ответа) может быть Да или Нет.The root of the decision tree is trait f3 - the presence of the / proc / uid_stat file. The internal node of the tree or the node of the check is the f6 feature - the presence of the file / sys / device / virtual / switch. A leaf (end node of a tree) is a solution node or a vertex of an emulator, a real device. The branch of the tree (answer cases) can be Yes or No.

Для формирования обучающей выборки осуществляют подготовку инфраструктуры, включающую работу сборщика данных, синтаксического анализатора JSON-файла и БД. Сборщик данных реализован в виде мобильного приложения, которое устанавливается на множество реальных устройств или в эмулируемую операционную систему и с заданным интервалом времени (например, один раз в 5 с) собирает данные по исследуемым метрикам. Синтаксический анализатор JSON-файла и БД устанавливаются на отдельный сервер, который может располагаться, как в облачном хранилище данных (в конкретном примере реализации в MS Azure), так и локально. Синтаксический анализатор осуществляет разбор элементов JSON-файла, содержащих собранные признаки, в соответствии с наименованием их полей. Затем происходит маппинг в одноименные с JSON-файлом поля в БД. Нижеприведенный пример показывает возможное содержимое JSON-файла, для случая использования метода деревьев решении, описывающе- 4 038038 го эмулируемую операционную систему:To form a training sample, the infrastructure is prepared, including the work of a data collector, a JSON file parser and a database. The data collector is implemented in the form of a mobile application that is installed on many real devices or in an emulated operating system and collects data on the metrics under study at a specified time interval (for example, once every 5 seconds). The parser of the JSON file and the database are installed on a separate server, which can be located both in the cloud data storage (in a specific implementation example, in MS Azure) or locally. The parser parses the elements of the JSON file containing the collected features in accordance with the names of their fields. Then there is a mapping into the fields of the same name with the JSON file in the database. The example below shows the possible contents of a JSON file, for the case of using the decision trees method, describing the 4 038038 th emulated operating system:

β: 0, f6: 0, gyroscope_value_m: 0.β: 0, f6: 0, gyroscope_value_m: 0.

Алгоритм синтаксического разбора такого JSON-файла включает следующие шаги:The algorithm for parsing such a JSON file includes the following steps:

1) чтение JSON-файла;1) reading a JSON file;

2) поиск первого токена - f3 и запись данных в переменную А;2) search for the first token - f3 and write data to variable A;

3) поиск второго токена - f6 и запись данных в переменную В;3) searching for the second token - f6 and writing data to variable B;

4) поиск третьего токена - gyroscope_value_m и запись данных в переменную С.4) search for the third token - gyroscope_value_m and write data to variable C.

Затем осуществляется маппинг значений переменных А, В и С в поля таблицы в БД для долгосрочного хранения и передача значений переменных в модель для анализа и принятия решения. Маппинг данных в поля таблицы в БД происходит путем выполнения INSERT-запроса.Then the values of the variables A, B and C are mapped into the table fields in the database for long-term storage and the values of the variables are transferred to the model for analysis and decision-making. Data mapping into table fields in the database is done by executing an INSERT query.

В данном техническом решении для осуществления изобретения был собран набор данных, включивший в себя данные по 125 признакам, собранным с 631 устройства (246 - эмуляторов, 385 - реальных телефонов). После очистки и обработки данных были выбраны наиболее значимые признаки, которые использовались для обучения финальной статистической модели. Значимость признака определяется на основании эффективности разделения набора данных, т.е. каждый из 125 признаков последовательно проверяется на способность достоверно разделить сформированный набор данных на множество данных с реальных устройств и множество данных с эмуляторов.In this technical solution for the implementation of the invention, a data set was collected that included data on 125 features collected from 631 devices (246 - emulators, 385 - real phones). After cleaning and processing the data, the most significant features were selected, which were used to train the final statistical model. The significance of a characteristic is determined based on the efficiency of the partitioning of the dataset, i.e. each of the 125 features is sequentially tested for the ability to reliably divide the generated data set into a set of data from real devices and a set of data from emulators.

Для сбора данных были использованы различные конфигурации следующих эмуляторов, приведенных в качестве примера, а не ограничения: Andy OS, BlueStacks, Genymotion, КО Player, LeapDroid, MEmu и т.д.Various configurations of the following emulators were used to collect data, provided as examples and not limitation: Andy OS, BlueStacks, Genymotion, KO Player, LeapDroid, MEmu, etc.

А также были использованы следующие модели реальных мобильных устройств связи, не ограничиваясь: Samsung Galaxy S4, Samsung Galaxy A5, Motorola XT1541, Lenovo A600 Plus.And also the following models of real mobile communication devices were used, not limited to: Samsung Galaxy S4, Samsung Galaxy A5, Motorola XT1541, Lenovo A600 Plus.

После проведения анализа собранных данных и отбора наиболее значимых параметров, были выделены следующие метрики, не требующие дополнительных модификаций: наличие и доступность модуля Bluetooth, наличие функции виброзвонка, наличие токена network_thoughput в файле /proc/mosc, наличие токена Off\0: в файле /proc/ioports, наличие файла /proc/uid_stat, наличие токена MINOR=5 в файле /sys/device/virtual/misc/cpu_dma_latency/uevent, наличие файла /sys/device/virtual/ppp, наличие файла /sys/device/virtual/switch, наличие файла /sys/module/alarm/parameters, наличие файла /sys/device/system/cpu/cpuO/cpufreq, наличие файла /sys/device/virntual/misc/android_adb, наличие файла /proc/sys/net/ipv4/tcp_syncookies и т.д., не ограничиваясь.After analyzing the collected data and selecting the most significant parameters, the following metrics were identified that do not require additional modifications: the presence and availability of the Bluetooth module, the presence of a vibrating alert function, the presence of the network_thoughput token in the / proc / mosc file, the presence of the Off \ 0 token: in the file / proc / ioports, the presence of the file / proc / uid_stat, the presence of the MINOR = 5 token in the file / sys / device / virtual / misc / cpu_dma_latency / uevent, the presence of the file / sys / device / virtual / ppp, the presence of the file / sys / device / virtual / switch, the presence of the file / sys / module / alarm / parameters, the presence of the file / sys / device / system / cpu / cpuO / cpufreq, the presence of the file / sys / device / virntual / misc / android_adb, the presence of the file / proc / sys / net / ipv4 / tcp_syncookies, etc., but not limited to.

Отбор значимых признаков происходит после формирования набора данных. Отбор значимых признаков происходит путем анализа собранных данных и выбора признаков, позволяющих максимально эффективно разделить множество устройств на реальные устройства и эмуляторы. Анализ заключается в подсчете показателя эффективности разделения множества устройств на эмуляторы и реальные устройства по каждому из 125 признаков последовательно. Затем происходит оценка возможности модификации признака и проводится повторный анализ аналогичным образом. Оценка возможности модификации признака носит аналитический характер и осуществляется на основе данных, характерных для конкретного признака. Например, данными возвращаемыми функцией telephonyManager.getAIICelllnfo(), является список идентификаторов GSM, LTE и WCDMA вышек. В исходном виде эти данные не являются эффективным признаком для разделения всего набора данных на две группы: 1 - данные с эмуляторов, 2 данные с реальных устройств. Но после анализа этих данных, а именно подсчета количества каждого типа вышек в данных с эмуляторов и в данных с реальных устройств удается эффективно разделить весь набор данных по следующему критерию: наличие вышек типов LTE и WCDMA с высокой вероятностью свидетельствует о том, что данные получены с реального устройства. На основе этой аналитики были сформированы два модифицированных признака: n_cells_lte - количество вышек LTE, n_cells_wcdma количество вышек WCDMA в выводе функции telephonyManager.getAIICelllnfo().The selection of significant features occurs after the formation of the data set. The selection of significant features occurs by analyzing the collected data and selecting features that allow the most efficient division of multiple devices into real devices and emulators. The analysis consists in calculating an indicator of the efficiency of dividing a set of devices into emulators and real devices for each of 125 features sequentially. Then the possibility of modifying the attribute is assessed and the analysis is repeated in the same way. The assessment of the possibility of modifying a feature is analytical in nature and is carried out on the basis of data characteristic of a particular feature. For example, the data returned by telephonyManager.getAIICelllnfo () is a list of GSM, LTE and WCDMA tower IDs. In its original form, this data is not an effective indicator for dividing the entire data set into two groups: 1 - data from emulators, 2 - data from real devices. But after analyzing this data, namely, counting the number of each type of towers in the data from emulators and in data from real devices, it is possible to effectively divide the entire data set according to the following criterion: the presence of LTE and WCDMA towers with a high probability indicates that the data was received from real device. Based on this analytics, two modified features were generated: n_cells_lte - the number of LTE towers, n_cells_wcdma - the number of WCDMA towers in the output of the telephonyManager.getAIICelllnfo () function.

В отдельную группу вошли показания различных датчиков. Из-за невысокой точности получаемых с них показаний в подавляющем большинстве случаев значения, взятые с интервалом хотя бы в 5 с, различаются, даже если сами устройства находятся в неподвижном состоянии. Эти различия, как правило, невелики, но их может быть достаточно, чтобы отличить реальное устройство от эмулятора, где данные статичны, пока не будут изменены вручную. Для проверки корректности данного предположения были добавлены модифицированные признаки, сформированные на основе показаний с датчиков. Значение признака по конкретному датчику принимало значение 1, если показания датчика изменились с последнего измерения, и 0, если значение не изменилось.A separate group includes the readings of various sensors. Due to the low accuracy of the readings obtained from them, in the overwhelming majority of cases, the values taken with an interval of at least 5 s differ, even if the devices themselves are stationary. These differences are usually small, but they can be enough to distinguish a real device from an emulator, where the data is static until manually changed. To check the correctness of this assumption, modified signs were added, formed on the basis of readings from sensors. The attribute value for a specific sensor took the value 1 if the sensor readings changed since the last measurement, and 0 if the value did not change.

Затем по этим признакам был выполнен повторный анализ на эффективность разделения всего набора данных на две группы - данные с эмуляторов и данные с реальных устройств. Некоторые признаки успешно разделили набор данных и были использованы в моделях. Например, в вышеописанной модели дерево решений успешно используется признак gyroscope_value_m.Then, based on these criteria, a re-analysis was performed for the effectiveness of dividing the entire data set into two groups - data from emulators and data from real devices. Several features have successfully partitioned the dataset and have been used in models. For example, in the above model, the decision tree successfully uses the gyroscope_value_m attribute.

К динамическим данным относятся показания со следующих датчиков: акселерометр, гироскоп, датчик освещенности, датчик магнитного поля, датчик движения, датчик расстояния, датчик вращения иDynamic data includes readings from the following sensors: accelerometer, gyroscope, light sensor, magnetic field sensor, motion sensor, distance sensor, rotation sensor, and

- 5 038038 другие.- 5 038038 others.

Так как любые манипуляции с датчиками устройства подразумевают повышенный расход батареи устройства, предварительно используют только статические признаки, а затем добавляют для использования динамические признаки. Для тестирования в конкретном примере реализации были выбраны пять классификаторов: логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов, а также другие алгоритмы машинного обучения.Since any manipulations with the device's sensors imply an increased consumption of the device's battery, only static signs are used first, and then dynamic signs are added for use. For testing in a specific implementation example, five classifiers were selected: logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or a support vector machine, as well as other machine learning algorithms.

При анализе статических показателей в набор данных вошли 25 признаков, перечисленных выше. Ниже приведены данные по 20 итерациям кросс - валидации на основе StratifiedKFold и метрики roc_auc (метрика, оценивающая качество работы классификатора, вычисляющего вероятность принадлежности объекта к положительному классу).________________________________________When analyzing static indicators, the dataset included 25 features listed above. Below are data for 20 iterations of cross-validation based on StratifiedKFold and the roc_auc metric (a metric that evaluates the performance of a classifier that calculates the probability of an object belonging to a positive class).

Номер разбиени я Partition number i Логистическ ая регрессия Logistic regression Дерево решений Decision tree Случай ный лес Random forest Наивный байесовски й классифика тор Naive Bayesian classifier Метод опорных векторов Support vector machine 1 one 1.0 1.0 0.96 0.96 1.0 1.0 0.99 0.99 1.0 1.0 2 2 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 3 3 1.0 1.0 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 4 4 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 5 five 1.0 1.0 0.97 0.97 1.0 1.0 0.97 0.97 1.0 1.0 6 6 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 7 7 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 8 eight 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 9 nine 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 10 10 1.0 1.0 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 И AND 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 12 12 1.0 1.0 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 13 13 1.0 1.0 0.97 0.97 1.0 1.0 0.97 0.97 1.0 1.0 14 fourteen 0.99 0.99 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 15 fifteen 1.0 1.0 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 16 sixteen 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 17 17 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 18 18 1.0 1.0 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 19 nineteen 1.0 1.0 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 20 twenty 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0

В таблице представлены показатели эффективности результатов работы моделей без использования данных с датчиков.The table shows the performance indicators of the results of the operation of the models without using data from the sensors.

StratifiedKFold - класс библиотеки scikit-learn, позволяющий выполнить разделение набора данных таким образом, чтобы в полученных наборах соотношение количеств объектов, относящихся к разным классам (эмуляторы и реальные устройства), соответствовало этому соотношению для исходного набора данных.StratifiedKFold is a scikit-learn library class that allows you to split a dataset so that in the resulting datasets the ratio of the number of objects belonging to different classes (emulators and real devices) corresponds to this ratio for the original dataset.

При добавлении к набору данных динамических метрик общее число рассматриваемых признаков выше способом.When adding dynamic metrics to the dataset, the total number of features considered in the above manner.

увеличилось до 35. Оценка моделей аналогичнымincreased to 35. Evaluation of models by similar

Номер Number Логистичес Logistic Дерево Wood Случай Happening Наивный Naive Метод Method разбиени breaking up кая kaya решений decisions ный ny байесовски Bayesian опорных supporting я I регрессия regression лес Forest й th векторов vectors классифика classification тор torus 1 one 0.99 0.99 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 2 2 0.99 0.99 0.96 0.96 1.0 1.0 0.99 0.99 1.0 1.0 3 3 0.99 0.99 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 4 4 0.99 0.99 0.98 0.98 1.0 1.0 0.98 0.98 1.0 1.0 5 five 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 6 6 0.99 0.99 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 7 7 0.99 0.99 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 8 eight 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 9 nine 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 10 10 1.0 1.0 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 И AND 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 12 12 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 13 13 1.0 1.0 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 14 fourteen 1.0 1.0 0.95 0.95 1.0 1.0 1.0 1.0 1.0 1.0 15 fifteen 0.99 0.99 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 16 sixteen 1.0 1.0 0.95 0.95 1.0 1.0 1.0 1.0 1.0 1.0 17 17 0.99 0.99 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 18 18 1.0 1.0 0.99 0.99 1.0 1.0 0.99 0.99 1.0 1.0 19 nineteen 0.99 0.99 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0 20 twenty 0.99 0.99 0.99 0.99 1.0 1.0 1.0 1.0 1.0 1.0

Как видно из приведенных данных, отобранные признаки позволили построить статистические модели, демонстрирующие близкие к идеальным результатам. По результатам проведенных тестов наилучшие показатели демонстрируют случай лес, метод опорных векторов и логистическая регрессия, достигая на имеющихся данных вероятности выявления эмулируемой среды близкой к 1. На фиг. 3-4 показаны примеры коэффициентов для этих моделей. Все рассмотренные статистические модели стабильно демонстрируют высокую точность даже без использования данных с датчиков. Последние хоть и увели- 6 038038 чивают точность отдельных моделей, но, как правило, требуют большего расхода заряда батареи устройства, что накладывает свои ограничения. На фиг. 5 представлена информацию по потреблению энергии, в зависимости от используемых функций мобильного устройства связи пользователя. Процесс принятия решения состоит из следующих шагов:As can be seen from the data presented, the selected features made it possible to build statistical models that demonstrate close to ideal results. According to the results of the tests carried out, the best performance is demonstrated by the case of forest, support vector machine and logistic regression, reaching on the available data the probability of detecting an emulated environment close to 1. FIG. 3-4 show examples of coefficients for these models. All considered statistical models consistently demonstrate high accuracy even without using data from sensors. The latter, although they increase the accuracy of individual models, but, as a rule, require more battery power consumption of the device, which imposes its own limitations. FIG. 5 provides information on energy consumption, depending on the functions used by the user's mobile communication device. The decision-making process consists of the following steps:

сбор данных;data collection;

отправка данных в статистическую модель для анализа;sending data to a statistical model for analysis;

формирование результата моделью;the formation of the result by the model;

ответ мобильному приложению.response to the mobile application.

После сбора данных и работы синтаксического анализатора, соответствующие поля передаются в статистическую модель, где подвергаются анализу. Пример процесса анализа описан выше на примере метода деревьев решений. Результатом работы такой модели является вердикт, однозначно определяющий на реальном устройстве или в эмулируемой операционной системе запущено мобильное приложение. Результат работы статистической модели может передаваться в дальнейшем в систему фродмониторинга для последующей обработки, либо мобильному приложению для ограничения функционала или возможности запуска. Процесс передачи результата в приложение может осуществляться посредством одного из известных в уровне техники программных интерфейсов для обеспечения обмена данными между процессами, например, Socket, и/или WebSocket, и/или WCF, и/или REST и т.д.After collecting data and running the parser, the corresponding fields are transferred to the statistical model, where they are analyzed. An example of the analysis process is described above using the decision tree method as an example. The result of the operation of such a model is a verdict that unambiguously determines a mobile application is launched on a real device or in an emulated operating system. The result of the statistical model can be transmitted later to the frod monitoring system for further processing, or to a mobile application to limit the functionality or the possibility of launching it. The process of transferring the result to the application can be carried out using one of the programming interfaces known in the prior art for providing data exchange between processes, for example, Socket, and / or WebSocket, and / or WCF, and / or REST, etc.

Например, приложение может выполнять проверку операционной системы на предмет эмулируемой среды в момент запуска, либо при наступлении определенных событий - регистрация нового пользователя, смена пароля и другие. Архитектура всей системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения показана на фиг. 8.For example, an application can check the operating system for an emulated environment at the time of launch, or when certain events occur - registering a new user, changing a password, and others. The architecture of the entire system for detecting an emulated mobile operating system using machine learning methods is shown in FIG. eight.

На фиг. 9 представлен пример вычислительного устройства 800, которое может применяться для выполнения функций по логической обработке необходимых данных для реализации заявленного способа выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения. Необходимо отметить, что указанные в материалах настоящей заявки компьютерное устройство пользователя и сервер, могут представлять собой один из вариантов воплощения вычислительного устройства 800.FIG. 9 shows an example of a computing device 800 that can be used to perform functions for logical processing of the necessary data to implement the claimed method for identifying an emulated mobile operating system using machine learning methods. It should be noted that the user's computing device and server referred to herein may be one of the embodiments of computing device 800.

В общем случае, вычислительное устройство 800 содержит объединенные общей шиной 810 один или несколько процессоров 801, средства памяти, такие как ОЗУ 802 и ПЗУ 803, интерфейсы ввода/вывода 804, средства ввода/вывода 805 и средство для сетевого взаимодействия 806.In general, computing device 800 includes one or more processors 801, combined by a common bus 810, memory means such as RAM 802 and ROM 803, I / O interfaces 804, I / O means 805, and means for networking 806.

Процессор 801 (или несколько процессоров, многоядерный процессор) может выбираться из ассортимента устройств, широко применяемых в текущее время, например, компаний Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п.The 801 processor (or multiple processors, multi-core processor) can be selected from a wide range of devices currently in use, such as Intel ™, AMD ™, Apple ™, Samsung Exynos ™, MediaTEK ™, Qualcomm Snapdragon ™, and the like.

ОЗУ 802 представляет собой оперативную память и предназначено для хранения исполняемых процессором 801 машиночитаемых инструкций, для выполнения необходимых операций по логической обработке данных. ОЗУ 802, как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.).RAM 802 is a random access memory and is intended for storing machine-readable instructions executed by the processor 801 to perform the necessary operations for logical processing of data. RAM 802 typically contains executable instructions of an operating system and associated software components (applications, software modules, and the like).

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

Для организации работы компонентов устройства 800 и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В 804. Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: 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 и т.п.To organize the operation of the components of the device 800 and to organize the operation of external connected devices, various types of I / O 804 interfaces are used. 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.

Для обеспечения взаимодействия пользователя с вычислительным устройством 800 применяются различные средства 805 В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.Various means of 805 I / O information are used to ensure user interaction with the computing device 800, 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.

Средство сетевого взаимодействия 806 обеспечивает передачу данных устройством 800 посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств 806 может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.The networking means 806 allows the device 800 to transmit data over an internal or external computer network, such as an Intranet, Internet, LAN, and the like. As one or more means 806 can 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, etc.

Дополнительно могут применяться также средства спутниковой навигации, например, как GPS, ГЛОНАСС, BeiDou, Galileo и т.д.Additionally, satellite navigation aids can also be used, such as GPS, GLONASS, BeiDou, Galileo, etc.

Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специа- 7 038038 листов соответствующей области техники.The presented application materials disclose preferred examples of the implementation of the technical solution and should not be interpreted 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.

Следует принять во внимание, что настоящее изобретение не ограничивается точной конструкцией или реализацией, которая была описана выше и проиллюстрирована на прилагаемых чертежах, и различные модификации и изменения могут быть выполнены без отступления от его объема. Предполагается, что объем настоящего изобретения ограничивается только прилагаемой формулой изобретения.It should be appreciated that the present invention is not limited to the precise construction or implementation that has been described above and illustrated in the accompanying drawings, and various modifications and changes can be made without departing from its scope. It is intended that the scope of the present invention be limited only by the appended claims.

Используемые источники информацииSources of information used

1. Petsas Т. et al. Rage against the virtual machine: hindering dynamic analysis of android malware // Proceedings of the Seventh European Workshop on System Security.1. Petsas T. et al. Rage against the virtual machine: hindering dynamic analysis of android malware // Proceedings of the Seventh European Workshop on System Security.

ACM, 2014. P. 5.ACM, 2014. P. 5.

2. Jing Y. et al. Morpheus: automatically generating heuristics to detect Android emulators П Proceedings of the 30th Annual Computer Security Applications Conference.2. Jing Y. et al. Morpheus: automatically generating heuristics to detect Android emulators P Proceedings of the 30th Annual Computer Security Applications Conference.

ACM, 2014. P. 216—225.ACM, 2014. P. 216-225.

Claims (11)

ФОРМУЛА ИЗОБРЕТЕНИЯCLAIM 1. Способ выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, включающий следующие шаги:1. A method for detecting an emulated mobile operating system using machine learning methods, including the following steps: ос уществляют сбор данных на мобильном приложении, которое установлено на мобильное устройство связи пользователя;collecting data on a mobile application that is installed on the user's mobile communication device; на правляют полученные на предыдущем шаге данные из мобильного устройства связи пользователя на сервер;sending the data obtained in the previous step from the user's mobile communication device to the server; ос уществляют выделение полученных данных посредством синтаксического анализатора, содержащих собранные признаки, в соответствии с наименованием полей;the extraction of the obtained data is carried out by means of a parser containing the collected features, in accordance with the names of the fields; на правляют выделенные признаки в обученную статистическую модель данных, расположенную на сервере, содержащую группы признаков, которые включают группу статистических признаков, включающих наличие Bluetooth модуля и наличие Vibracall модуля (виброзвонка) в мобильном устройстве связи пользователя, динамических признаков, включающих показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения, пользовательских метрик, файловых метрик и модифицированных метрик, включающих набор токенов в параметрах мобильного устройства связи пользователя;send the selected features to a trained statistical data model located on the server, containing groups of features, which include a group of statistical features, including the presence of a Bluetooth module and the presence of a Vibracall module (vibration alert) in the user's mobile communication device, dynamic features, including readings of an accelerometer, a gyroscope, light sensor, linear acceleration sensor, battery level, magnetic field sensor readings, motion sensor readings, distance sensor readings, rotation sensor readings, custom metrics, file metrics and modified metrics, including a set of tokens in the parameters of the user's mobile communication device; принимают решение посредством обученной статистической модели данных установить мобильное приложение на реальном устройстве или в эмулируемой мобильной операционной системе.make a decision to install a mobile application on a real device or in an emulated mobile operating system using a trained statistical data model. 2. Способ по п.1, характеризующийся тем, что сбор данных на мобильном приложении осуществляется в JSON-файл и/или XML, и/или YML, и/или ТХТ.2. The method according to claim 1, characterized in that the collection of data on the mobile application is carried out in a JSON file and / or XML and / or YML and / or TXT. 3. Способ по п.1, характеризующийся тем, что сервер располагается в облачном хранилище данных или локально.3. The method according to claim 1, characterized in that the server is located in a cloud storage or locally. 4. Способ по п.1, характеризующийся тем, что статистической моделью является логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов.4. The method according to claim 1, characterized in that the statistical model is logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or a support vector machine. 5. Способ по п.1, характеризующийся тем, что для определения эффективности статистической модели используется кросс-валидация.5. The method according to claim 1, characterized in that cross-validation is used to determine the effectiveness of the statistical model. 6. Способ по п.1, характеризующийся тем, что синтаксический анализатор осуществляет разбор элементов, содержащих собранные признаки, в соответствии с наименованием их полей.6. The method according to claim 1, characterized in that the parser parses the elements containing the collected features in accordance with the names of their fields. 7. Способ по п.1, характеризующийся тем, что синтаксический анализатор после разбора файла осуществляет маппинг признаков в поля таблицы в базу данных.7. The method according to claim 1, characterized in that the parser, after parsing the file, maps features into table fields into the database. 8. Способ по п.7, характеризующийся тем, что маппинг данных в поля таблицы в базу данных происходит путем выполнения INSERT-запроса.8. The method according to claim 7, characterized in that the mapping of data into table fields into the database occurs by executing an INSERT query. 9. Способ по п.1, характеризующийся тем, что при выделении посредством синтаксического анализатора признаков делят их на статические и динамические.9. The method according to claim 1, characterized in that during the selection by means of the parser the features are divided into static and dynamic. 10. Способ по п.1, характеризующийся тем, что к динамическим данным относятся показания акселерометра и/или гироскопа, и/или датчика освещенности, и/или датчика магнитного поля, и/или датчика движения, и/или датчика расстояния, и/или датчика вращения.10. The method according to claim 1, characterized in that the dynamic data includes readings of an accelerometer and / or a gyroscope and / or a light sensor and / or a magnetic field sensor and / or a motion sensor and / or a distance sensor, and / or or a rotation sensor. 11. Система выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, содержащая по меньшей мере одно мобильное устройство связи пользователя, на которое установлено мобильное приложение, выполненное с возможностью осуществления сбора данных;11. A system for detecting an emulated mobile operating system using machine learning methods, comprising at least one mobile communication device of the user, on which a mobile application is installed, configured to collect data; нап равление полученных данных из мобильного устройства связи пользователя на по меньшей мере один сервер;directing the received data from the user's mobile communication device to at least one server; по меньшей мере один сервер, выполненный с возможностью осуществления выделения полученных данных из мобильного устройства связи пользователя посредством синтаксического анализатора,at least one server configured to extract the received data from the user's mobile communication device by means of a parser, - 8 038038 причем данные содержат собранные признаки, в соответствии с наименованием полей;- 8 038038 and the data contains the collected features, in accordance with the names of the fields; направление синтаксическим анализатором выделенных признаков в обученную статистическую модель данных, содержащую группы признаков, которые включают группу статистических признаков, включающих наличие Bluetooth модуля и наличие Vibracall модуля (виброзвонка) в мобильном устройстве связи пользователя, динамических признаков, включающих показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения, пользовательских метрик, файловых метрик и модифицированных метрик, включающих набор токенов в параметрах мобильного устройства связи пользователя;direction by the parser of the selected features into the trained statistical data model containing groups of features, which include a group of statistical features, including the presence of a Bluetooth module and the presence of a Vibracall module (vibration alert) in the user's mobile communication device, dynamic features, including readings of an accelerometer, gyroscope, light sensor, linear acceleration sensor, battery level, magnetic field sensor readings, motion sensor readings, distance sensor readings, rotation sensor readings, custom metrics, file metrics and modified metrics, including a set of tokens in the parameters of the user's mobile communication device; принятие решения посредством обученной статистической модели данных установить мобильное приложение на реальном устройстве или эмулируемой мобильной операционной системе.making a decision through a trained statistical data model to install a mobile application on a real device or an emulated mobile operating system.
EA201892371A 2018-11-15 2018-11-19 Method and system for detecting an emulated mobile operating system using methods of machine learning EA038038B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018140416A RU2713760C1 (en) 2018-11-15 2018-11-15 Method and system for detecting emulated mobile operating system using machine learning techniques

Publications (2)

Publication Number Publication Date
EA201892371A1 EA201892371A1 (en) 2020-05-29
EA038038B1 true EA038038B1 (en) 2021-06-28

Family

ID=69625535

Family Applications (1)

Application Number Title Priority Date Filing Date
EA201892371A EA038038B1 (en) 2018-11-15 2018-11-19 Method and system for detecting an emulated mobile operating system using methods of machine learning

Country Status (3)

Country Link
EA (1) EA038038B1 (en)
RU (1) RU2713760C1 (en)
WO (1) WO2020101524A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103260173A (en) * 2013-04-12 2013-08-21 南京安讯科技有限责任公司 Method for identifying emulational mobile phone based on user internet log information
KR101530533B1 (en) * 2013-10-15 2015-06-23 주식회사 잉카인터넷 Emulator Excultion Environment Detection
US9667613B1 (en) * 2014-12-10 2017-05-30 EMC IP Holding Company LLC Detecting mobile device emulation
US20180199199A1 (en) * 2017-01-10 2018-07-12 Paypal, Inc. Emulated mobile device identification

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483292B2 (en) * 2010-11-29 2016-11-01 Biocatch Ltd. Method, device, and system of differentiating between virtual machine and non-virtualized device
US9626677B2 (en) * 2010-11-29 2017-04-18 Biocatch Ltd. Identification of computerized bots, and identification of automated cyber-attack modules
RU2654146C1 (en) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" System and method of detecting malicious files accompanied with using the static analysis elements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103260173A (en) * 2013-04-12 2013-08-21 南京安讯科技有限责任公司 Method for identifying emulational mobile phone based on user internet log information
KR101530533B1 (en) * 2013-10-15 2015-06-23 주식회사 잉카인터넷 Emulator Excultion Environment Detection
US9667613B1 (en) * 2014-12-10 2017-05-30 EMC IP Holding Company LLC Detecting mobile device emulation
US20180199199A1 (en) * 2017-01-10 2018-07-12 Paypal, Inc. Emulated mobile device identification

Also Published As

Publication number Publication date
WO2020101524A1 (en) 2020-05-22
EA201892371A1 (en) 2020-05-29
RU2713760C1 (en) 2020-02-07

Similar Documents

Publication Publication Date Title
US11880270B2 (en) Pruning and prioritizing event data for analysis
CA2933423C (en) Data acceleration
Krishna et al. Too much automation? The bellwether effect and its implications for transfer learning
US9823843B2 (en) Memory hierarchy monitoring systems and methods
EP3968198A1 (en) Method and system for searching for similar malicious programs on the basis of dynamic analysis results
Ceschin et al. The need for speed: An analysis of brazilian malware classifiers
BR102015017215A2 (en) computer-implemented method for classifying mobile applications, and computer program encoded on non-transient storage medium
US20210092160A1 (en) Data set creation with crowd-based reinforcement
US11256712B2 (en) Rapid design, development, and reuse of blockchain environment and smart contracts
US10204225B2 (en) System and method for determining description-to-permission fidelity in mobile applications
Backes et al. LUNA: quantifying and leveraging uncertainty in android malware analysis through Bayesian machine learning
Aonzo et al. Low-resource footprint, data-driven malware detection on android
US11972382B2 (en) Root cause identification and analysis
CN106998336B (en) Method and device for detecting user in channel
Wu et al. Invalid bug reports complicate the software aging situation
Satish et al. Big data processing with harnessing hadoop-MapReduce for optimizing analytical workloads
CN105631336B (en) Detect the system and method for the malicious file in mobile device
Yu et al. Localizing function errors in mobile apps with user reviews
RU2713760C1 (en) Method and system for detecting emulated mobile operating system using machine learning techniques
Syed et al. Providing efficient, scalable and privacy preserved verification mechanism in remote attestation
CN114915485A (en) Abnormal behavior analysis method and device based on UEBA
US20220122038A1 (en) Process Version Control for Business Process Management
RU2743620C1 (en) Method and system for determining malicious activity by analyzing the behaviour of objects in non-insulated environment
Nagi From bits and bytes to big data-An historical overview
Wang et al. SmartMal: a service-oriented behavioral malware detection framework for mobile devices