RU2713760C1 - Method and system for detecting emulated mobile operating system using machine learning techniques - Google Patents

Method and system for detecting emulated mobile operating system using machine learning techniques Download PDF

Info

Publication number
RU2713760C1
RU2713760C1 RU2018140416A RU2018140416A RU2713760C1 RU 2713760 C1 RU2713760 C1 RU 2713760C1 RU 2018140416 A RU2018140416 A RU 2018140416A RU 2018140416 A RU2018140416 A RU 2018140416A RU 2713760 C1 RU2713760 C1 RU 2713760C1
Authority
RU
Russia
Prior art keywords
data
user
features
mobile
communication device
Prior art date
Application number
RU2018140416A
Other languages
Russian (ru)
Inventor
Александр Викторович Балашов
Дмитрий Георгиевич Давидов
Максим Геннадиевич Денисенко
Original Assignee
Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) filed Critical Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to RU2018140416A priority Critical patent/RU2713760C1/en
Priority to PCT/RU2018/000753 priority patent/WO2020101524A1/en
Priority to EA201892371A priority patent/EA038038B1/en
Application granted granted Critical
Publication of RU2713760C1 publication Critical patent/RU2713760C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

FIELD: calculating; counting.
SUBSTANCE: group of inventions relates to computer engineering. Said result is achieved by a method of detecting an emulated mobile operating system using machine learning techniques, wherein data are collected on a mobile application which is installed on a mobile user communication device; sending the data received at the previous step from the mobile communication device of the user to the server; performs extraction of the obtained data by means of the parser containing the collected features, in accordance with the field names; sending selected features to a trained statistical data model located on a server, having feature groups which include a group of statistical features, dynamic features, user metrics, file metrics and modified metrics; decision is made by means of trained statistical data model mobile application is installed on real device or emulated mobile operating system.
EFFECT: technical result is high quality of analysing transactions performed in banking applications running in an emulated operating system.
11 cl, 9 dwg

Description

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

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

УРОВЕНЬ ТЕХНИКИBACKGROUND

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

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

[004] Как раскрыто в статьях [1, 2], существуют способы определения эмулятора, основанные на данных, получаемых от датчиков оборудования, таких как акселерометр, гироскоп, GPS, датчик света, силы тяжести. Выходные значения этих датчиков основаны на информации, собранной из окружающей среды, и, следовательно, реалистичная их эмуляция является сложной задачей. Присутствие такого рода датчиков - основное различие между смартфонами и настольными компьютерами. Увеличивающееся число датчиков на смартфонах дает новые возможности для идентификации мобильных устройств.[004] As disclosed in [1, 2], there are methods for determining an emulator based on data received from equipment sensors, such as an accelerometer, gyroscope, GPS, light sensor, gravity. The output values of these sensors are based on information collected from the environment, and therefore their realistic emulation is a complex task. The presence of these kinds of sensors is the main difference between smartphones and desktop computers. The increasing number of sensors on smartphones provides new opportunities for identifying mobile devices.

[005] Однако данные технологии могут не сработать или привести к неверным результатам, если вредоносная часть кода программы не присутствует в антивирусных базах или код содержит скрытое и неочевидное вредоносное поведение. В этих случаях скрытый код может быть отправлен аналитику для рассмотрения и принятия решения о вредоносности программы. Процесс просмотра аналитиком дает точные результаты, но при этом занимает время и не эффективен с данной точки зрения.[005] 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 unobvious malicious behavior. In these cases, hidden code can be sent to the analyst to review and decide on the harmfulness of the program. The process of viewing by the analyst gives accurate results, but it takes time and is not effective from this point of view.

[006] Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением.[006] The analysis of the prior art allows us to conclude about the inefficiency and, in some cases, the impossibility of applying previous technologies, the disadvantages of which are solved by the present invention.

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

[007] Технической проблемой или технической задачей, решаемой в данном техническом решении, является выявление эмулируемой мобильной операционной системы с использованием методов машинного обучения.[007] A technical problem or a technical problem solved in this technical solution is to identify an emulated mobile operating system using machine learning methods.

[008] Техническим результатом, достигаемым при решении вышеуказанной задачи, является снижение финансового фрода за счет повышения качества анализа транзакций, выполненных в банковских приложениях, запущенных в эмулируемой операционной системе.[008] The technical result achieved in solving the above problem is to reduce the financial fraud by improving the quality of the analysis of transactions performed in banking applications running in an emulated operating system.

[009] Дополнительно проявляющимся техническим результатом является предотвращение возможности многократно выполнять «первый» заказ в мобильных приложениях. Многие приложения предоставляют скидки/бонусы/баллы за начало использование их сервиса на первый заказ услуги/продукта. Эмулируемая операционная система позволяет многократно выполнять «первый» заказ одним человеком.[009] An additional technical result is the prevention of the ability to repeatedly execute the "first" order in mobile applications. Many applications provide discounts / bonuses / points for starting using their service for the first order of a service / product. The emulated operating system allows you to repeatedly execute the "first" order by one person.

[0010] Указанный технический результат достигается благодаря осуществлению способа выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, в котором осуществляют сбор данных на мобильном приложении, которое установлено на мобильное устройство связи пользователя; направляют полученные на предыдущем шаге данные из мобильного устройства связи пользователя на сервер; осуществляет выделение полученных данных посредством синтаксического анализатора, содержащих собранные признаки, в соответствии с наименованием полей; направляют выделенные признаки в обученную статистическую модель данных, расположенную на сервере, содержащую группы признаков, которые включают группу статистических признаков, динамических признаков, пользовательских метрик, файловых метрик и модифицированных метрик; принимают решение посредством обученной статистической модели данных установлено мобильное приложение на реальном устройстве или эмулируемой мобильной операционной системе.[0010] 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 a user's mobile communication device; send the data obtained in the previous step from the user's mobile communication device to the server; carries out the selection of the obtained data through a parser containing the collected features, in accordance with the name of the fields; directing the selected features to a trained statistical data model located on the server containing groups of features that include a group of statistical features, dynamic features, user 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

[0023] На Фиг. 1 показан вариант реализации архитектуры системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения.[0023] In FIG. Figure 1 shows an embodiment of the architecture of a system for detecting an emulated mobile operating system using machine learning methods.

[0024] На Фиг. 2 показана структура приложения для сбора данных с устройства.[0024] In FIG. 2 shows the structure of an application for collecting data from a device.

[0025] На Фиг. 3 показан пример коэффициентов для модели логистической регрессии.[0025] In FIG. Figure 3 shows an example of coefficients for a logistic regression model.

[0026] На Фиг. 4 показан пример значимости коэффициентов для статистической модели случайного леса.[0026] In FIG. Figure 4 shows an example of the significance of the coefficients for a random forest statistical model.

[0027] На Фиг. 5 показан объем потребляемого заряда батареи в зависимости от используемых функций устройства.[0027] In FIG. 5 shows the amount of battery power consumed depending on the functions of the device used.

[0028] На Фиг. 6 показан вариант реализации разбиения набора данных и построение модели на одной части данных.[0028] In FIG. Figure 6 shows an embodiment of splitting a data set and building a model on one piece of data.

[0029] На Фиг. 7 показан вариант реализации дерева решений.[0029] In FIG. 7 shows an embodiment of a decision tree.

[0030] На Фиг. 8 показан вариант реализации системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения.[0030] In FIG. Figure 8 shows an embodiment of a system for detecting an emulated mobile operating system using machine learning methods.

[0031] На Фиг. 9 показан вариант реализации системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения в виде блок-схемы.[0031] In FIG. Figure 9 shows an embodiment of a system for detecting an emulated mobile operating system using machine learning methods in the form of a flowchart.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

[0032] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0032] This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a machine-readable medium containing instructions for performing the above method.

[0033] Техническое решение может быть реализовано в виде распределенной компьютерной системы, которая может быть установлена на централизованном сервере (наборе серверов). В некоторых вариантах реализации модель так же может функционировать локально на телефоне в рамках мобильного приложения. Доступ пользователей к системе возможен как из сети Интернет, так и из внутренней сети предприятия/организации посредством мобильного устройства связи, на котором установлено программное обеспечение с соответствующим графическим интерфейсом пользователя, или персонального компьютера с доступом к веб-версии системы с соответствующим графическим интерфейсом пользователя.[0033] The technical solution can be implemented as a distributed computer system, which can be installed on a centralized server (a 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 the enterprise / organization through a mobile communication device on which software with the corresponding graphical user interface is installed, or a personal computer with access to the web version of the system with the corresponding graphical user interface.

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

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

[0036] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0036] An instruction processing device is understood to mean an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs).

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

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

[0039] В контексте настоящего описания, если четко не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».[0039] In the context of the present description, unless clearly indicated otherwise, "server" means a computer program running on the appropriate equipment, which is able to receive requests (for example, from client devices) over the network and execute these requests or initiate the execution of these requests . The equipment may be one physical computer or one physical computer system, but neither one nor the other is mandatory 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, completed or initiated to be executed by the same server (that is, by the same software software and / or hardware); this means that any number of software items or hardware devices can be involved in the reception / transmission, execution or initiation of any request or the consequences of any request associated with the client device, and all this software and hardware can be one server or several servers , both options are included in the expression “at least one server”.

[0040] В контексте настоящего описания, если четко не указано иное, «клиентское устройство» или «мобильное устройство связи пользователя» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.[0040] In the context of the present description, unless clearly indicated otherwise, "client device" or "mobile user communication device" means a hardware device capable of working with software suitable for solving the corresponding problem. Thus, examples of client devices (among others) include personal computers (desktop computers, laptops, netbooks, etc.), smartphones, tablets, and network equipment such as routers, switches, and gateways. It should be borne in mind that a device behaving as a client device in the present context may behave like a server in relation to other client devices. The use of the expression “client device” does not exclude the possibility of using multiple client devices to receive / send, execute, or initiate the execution of any task or request, or the consequences of any task or request, or the steps of any method described above.

[0041] В контексте настоящего описания, если четко не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.[0041] In the context of the present description, unless clearly indicated otherwise, the term "database" means any structured data set that is independent of the specific structure, database management software, hardware of the computer on which the data is stored, used or otherwise are available for use. The database may reside on the same hardware that runs 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.

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

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

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

[0045] В контексте настоящего описания, если четко не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий «второй сервер» обязательно должен существовать в той или иной ситуации.[0045] In the context of the present description, unless clearly indicated otherwise, the words "first", "second", "third", etc. used in the form of adjectives solely to distinguish the nouns to which they relate 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, chronology, hierarchy or ranking (for example) of servers / between servers, as well as their use (by itself) does not imply that a certain “second server” must exist in a given situation.

[0046] Перечень ключевых компонент системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, представленной на Фиг. 8, включает в себя нижеуказанные элементы.[0046] A list of key components of an emulated mobile operating system detection system using the machine learning methods of FIG. 8 includes the following items.

[0047] Сборщиком данных является мобильное приложение, которое устанавливается на устройство под управлением ОС Android и выполняет сбор данных, как показано на Фиг. 2, которые представляют собой различные метрики устройства, подробно описанные ниже. В некоторых вариантах реализации, получаемые данные делятся на группы признаков, которые позволяют в дальнейшем более точно классифицировать принадлежность признака к той или иной группе[0047] The data collector is a mobile application that installs on an Android device and collects data, as shown in FIG. 2, which are various device metrics described in detail below. In some implementations, the resulting data is divided into groups of signs that allow further classification of the sign of a sign to a particular group.

[0048] Группа статистических признаков может включать наличие Bluetooth модуля и наличие Vibracall модуля в мобильном устройстве связи пользователя.[0048] A statistical feature group may include the presence of a Bluetooth module and the presence of a Vibracall module in a user's mobile communication device.

[0049] Группа динамических признаков может включать показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения.[0049] The group of dynamic features may 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.

[0050] Группа пользовательских метрик может включать такие признаки как количество SMS/MMS, количество контактов, количество выполненных звонков, количество фотографий (пользовательских файлов), история в браузере и т.д.[0050] A group of user metrics may include features such as the number of SMS / MMS, the number of contacts, the number of calls made, the number of photos (user files), a browser history, etc.

[0051] Группа файловых метрик может включать, например, наличие файла наличие токена «network_thoughput» в файле /proc/mosc, наличие токена «0ff\0:» в файле /proc/ioports, наличие файла /proc/uid_stat, наличие токена «MINOR=5» в файле /sys/device/virtual/misc/cpu_dma_latency/uevent. Группа модифицированных метрик, включающая набор различных токенов в параметрах, например, токен «userdebug» в параметре Build.DISPLAY, токены «userdebug», «vbox86» или «remix» в параметре Build.FINGERPRINT и т.д.[0051] A group of file metrics can include, for example, the presence of the file network_thoughput token in the / proc / mosc file, the presence of the 0ff \ 0: token in the / proc / ioports file, the presence of the / proc / uid_stat file, the presence of the token “ MINOR = 5 "in the file / sys / device / virtual / misc / cpu_dma_latency / uevent. A group of modified metrics, including a set of different tokens in the parameters, for example, the userdebug token in the Build.DISPLAY parameter, userdebug, vbox86 or remix tokens in the Build.FINGERPRINT parameter, etc.

[0052] Парсер текста или синтаксический анализатор находится на серверной части системы, осуществляет разбор строки данных и маппинг в базу данных полей из JSON файла, в котором могут находиться признаки, в поля БД. В качестве парсера JSON может быть использован любой Open Source продукт, решающий эту задачу, или парсер собственной разработки. Передача данных средствами JSON-файла не является единственным возможным и ограничивающим вариантом реализации. Так же для передачи данных могут использоваться прямые запросы (команда Insert) в БД, либо осуществляться передача данных путем формирования и передачи XML, YML, ТХТ и других форматов текстовых файлов, не ограничиваясь.[0052] The text parser or parser is located on the server side of the system, parses the data string and maps the fields into the database from the JSON file, which may contain attributes, into the database fields. As an JSON parser, any Open Source product that solves this problem, or a proprietary parser can be used. Data transfer by means of a JSON file is not the only possible and limiting implementation option. Also, direct requests (Insert command) to the database can be used to transfer data, or data can be transferred by generating and transmitting XML, YML, TXT and other text file formats, not limited to.

[0053] База данных находится на серверной части, осуществляет долгосрочное хранение данных. База данных используется в процессе исследования механизмов ОС (например, Android) для сбора и хранения списка всех метрик, потенциально свидетельствующих о наличии эмулируемой среды. База данных хранит итоговый список метрик.[0053] The database is located on the server side, provides long-term data storage. The database is used in the process of studying the mechanisms of the OS (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.

[0054] Статистической моделью, которая находятся на серверной части, может быть логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов и другие алгоритмы машинного обучения. Данная статистическая модель осуществляет обработку и анализ данных с последующим формированием выходного результата (является ли устройство эмулятором, либо реальным устройством). Предварительно происходит формирование обучающей выборки и ее разметка. В некоторых вариантах реализации дополнительно с обучающей выборкой используют тестовую выборку для контролирования качества обучения. Для обучения статистической модели данные собираются из множества реальных устройств и множества доступных в настоящий момент эмуляторов. Затем происходит процесс обучения модели. Например, для дерева решений процесс обучения заключается в построении оптимального дерева, путем поиска признаков, наилучшим образом разделяющих всю выборку на два класса - эмуляторы и реальные устройства. В конкретном варианте реализации данного технического решения необходимо ответить от одного до трех вопросов, как показано на Фиг. 7, чтобы однозначно сказать, используется эмулятор или реальное устройство.[0054] The statistical model that resides on the server side may be logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or a support vector method and other machine learning algorithms. This statistical model processes and analyzes data with the subsequent formation of an output result (whether the device is an emulator or a real device). Previously, the formation of the training sample and its marking. In some implementations, in addition to the training set, a test set is used to control the quality of training. To train the statistical model, data is collected from a variety of real devices and many currently available emulators. Then comes the learning process of the model. For example, for a decision tree, the learning process is to build an optimal tree by searching for features that best divide the entire sample into two classes - emulators and real devices. In a particular embodiment of this technical solution, one to three questions must be answered, as shown in FIG. 7, to clearly say, an emulator or a real device is used.

[0055] В качестве примерного варианта реализации могут использоваться следующие вопросы:[0055] As an exemplary embodiment, the following questions may be used:

• есть ли файл uid_stat в директории /proc/?• 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 gyro sensor values changed since the last data collection?

[0056] На следующем шаге проверяется эффективность полученной модели на различных наборах данных. В некоторых вариантах реализации для этого используется кросс-валидация, согласно которой происходит разбивка набора данных и построение статистической модели на одной части данных (называемой тренировочным набором или обучающей выборкой), затем происходит валидация результатов работы модели на другой части (называемой тестовым набором или тестовой выборкой). Таким образом, в примерном варианте реализации было выполнено 20 циклов кросс-валидации. Чтобы уменьшить разброс результатов, разные циклы кросс-валидации проводились на разных разбиениях, как показано на Фиг. 6. Результаты по каждому циклу кросс-валидации представлены ниже.[0056] In the next step, the effectiveness of the obtained model is tested on various data sets. In some implementations, cross-validation is used for this, according to which the data set is broken down and the statistical model is built on one part of the data (called the training set or training sample), then the model results are validated on the other part (called the test set or test sample ) Thus, in an exemplary embodiment, 20 cross-validation cycles were performed. In order to reduce the scatter of the results, different cross-validation cycles were performed on different partitions, as shown in FIG. 6. The results for each cross-validation cycle are presented below.

[0057] В качестве примера реализации ниже описан алгоритм работы одной из статистических моделей, которая может использоваться для выявления эмулируемой среды. Метод дерево решений (англ. «DecisionTree») является одним из наиболее популярных способов решения задач классификации и прогнозирования в области машинного обучения. Итак, в конкретном варианте реализации, как показано на Фиг. 7, основными элементами дерева решений являются:[0057] As an example of implementation, the algorithm of one of the statistical models that can be used to identify the emulated environment is described below. The decision tree method (English “DecisionTree”) is one of the most popular methods for solving classification and forecasting problems in the field of machine learning. So, in a specific embodiment, as shown in FIG. 7, the main elements of the decision tree are:

[0058] Корнем дерева решений является признак «f3» - наличие файла /proc/uid_stat. Внутренним узлом дерева или узлом проверки является признак «f6» - наличие файла /sys/device/virtual/switch. Листом (конечным узлом дерева) является узел решения или вершина «эмулятор», «реальное устройство». Ветвью дерева (случаи ответа) может быть «Да» или «Нет».[0058] The root of the decision tree is the flag “f3” - the presence of the file / proc / uid_stat. The internal node of the tree or the verification node is the sign “f6” - the presence of the file / sys / device / virtual / switch. A leaf (the final node of the tree) is the decision node or the vertex “emulator”, “real device”. The tree branch (response cases) can be “Yes” or “No”.

[0059] Для формирования обучающей выборки осуществляют подготовку инфраструктуры, включающую работу сборщика данных, синтаксического анализатора JSON-файла и БД. Сборщик данных реализован в виде мобильного приложения, которое устанавливается на множество реальных устройств или в эмулируемую операционную систему и с заданным интервалом времени (например, один раз в 5 секунд) собирает данные по исследуемым метрикам. Синтаксический анализатор JSON-файла и БД устанавливаются на отдельный сервер, который может располагаться, как в облачном хранилище данных (в конкретном примере реализации в MS Azure), так и локально.[0059] To form a training sample, the infrastructure is prepared, including the operation of a data collector, a JSON file parser, and a database. The data collector is implemented as a mobile application that is installed on many real devices or in an emulated operating system and with a given time interval (for example, once every 5 seconds) collects data on the metrics under study. The JSON file parser and database are installed on a separate server, which can be located both in the cloud data storage (in a specific example of implementation in MS Azure) and locally.

[0060] Синтаксический анализатор осуществляет разбор элементов JSON-файла, содержащих собранные признаки, в соответствии с наименованием их полей. Затем происходит маппинг в одноименные с JSON-файлом поля в БД. Нижеприведенный пример показывает возможное содержимое JSON-файла, для случая использования метода деревьев решений, описывающего эмулируемую операционную систему:[0060] The parser parses the elements of the JSON file containing the collected features, in accordance with the name of their fields. Then, mapping occurs in the fields of the same name with the JSON file in the database. The following example shows the possible contents of the JSON file for the case of using the decision tree method that describes the emulated operating system:

Figure 00000001
Figure 00000001

[0061] Алгоритм синтаксического разбора такого JSON-файла включает следующие шаги:[0061] The parsing algorithm for 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. search for the second token - f6 and write data to variable B;

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

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

[0063] В данном техническом решении для осуществления изобретения был собран набор данных, включивший в себя данные по 125 признакам, собранным с 631 устройства (246 - эмуляторов, 385 - реальных телефонов). После очистки и обработки данных были выбраны наиболее значимые признаки, которые использовались для обучения финальной статистической модели. Значимость признака определяется на основании эффективности разделения набора данных, т.е. каждый из 125 признаков последовательно проверяется на способность достоверно разделить сформированный набор данных на множество данных с реальных устройств и множество данных с эмуляторов.[0063] In this technical solution for implementing 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 that were used to train the final statistical model. Significance of a trait is determined based on the efficiency of dividing the data set, i.e. each of 125 features is sequentially tested for the ability to reliably divide the generated data set into a lot of data from real devices and a lot of data from emulators.

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

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

[0066] После проведения анализа собранных данных и отбора наиболее значимых параметров, были выделены следующие метрики, не требующие дополнительных модификаций: наличие и доступность модуля Bluetooth, наличие функции виброзвонка, наличие токена «network_thoughput» в файле /proc/mosc, наличие токена «0ff\0:» в файле /proc/ioports, наличие файла /proc/uid_stat, наличие токена «MINOR=5» в файле /sys/device/virtual/misc/cpu_dma_latency/uevent, наличие файла /sys/device/virtual/ррр, наличие файла /sys/device/virtual/switch, наличие файла /sys/module/alarm/parameters, наличие файла /sys/device/system/cpu/cpuO/cpufreq, наличие файла /sys/device/virtual/misc/android_adb, наличие файла /proc/sys/net/ipv4/tcp_syncookies и т.д., не ограничиваясь.[0066] After analyzing the collected data and selecting the most significant parameters, the following metrics were selected that do not require additional modifications: the presence and accessibility of the Bluetooth module, the presence of a vibrating alert function, the presence of the network_thoughput token in the / proc / mosc file, and the presence of the 0ff token \ 0: "in the file / proc / ioports, the presence of the file / proc / uid_stat, the presence of the token" MINOR = 5 "in the file / sys / device / virtual / misc / cpu_dma_latency / uevent, the presence of the file / sys / device / virtual / pp , 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 / virtual / misc / android_adb , on the Ichiye file / proc / sys / net / ipv4 / tcp_syncookies, etc., without limitation.

[0067] Отбор значимых признаков происходит после формирования набора данных. Отбор значимых признаков происходит путем анализа собранных данных и выбора признаков, позволяющих максимально эффективно разделить множество устройств на реальные устройства и эмуляторы. Анализ заключается в подсчете показателя эффективности разделения множества устройств на эмуляторы и реальные устройства по каждому из 125 признаков последовательно. Затем происходит оценка возможности модификации признака и проводится повторный анализ аналогичным образом. Оценка возможности модификации признака носит аналитический характер и осуществляется на основе данных, характерных для конкретного признака. Например, данными возвращаемыми функцией telephonyManager.getAIICelllnfo(), является список идентификаторов GSM, LTE и WCDMA вышек. В исходном виде эти данные не являются эффективным признаком для разделения всего набора данных на две группы: 1 -данные с эмуляторов, 2 - данные с реальных устройств. Но после анализа этих данных, а именно подсчета количества каждого типа вышек в данных с эмуляторов и в данных с реальных устройств удается эффективно разделить весь набор данных по следующему критерию: наличие вышек типов LTE и WCDMA с высокой вероятностью свидетельствует о том, что данные получены с реального устройства. На основе этой аналитики были сформированы два модифицированных признака: n_cells_lte - количество вышек LTE, n_cells_wcdma - количество вышек WCDMA в выводе функции telephonyManager.getAIICelllnfo().[0067] The selection of significant features occurs after the formation of the data set. Significant features are selected by analyzing the data collected and selecting features that allow the most efficient way to split multiple devices into real devices and emulators. The analysis consists in calculating the efficiency indicator of the separation of multiple devices into emulators and real devices for each of 125 features in series. Then there is an assessment of the possibility of modifying the trait and re-analysis is carried out in a similar way. Assessment of the possibility of modifying a feature is analytical in nature and is based on data specific to a particular feature. For example, the data returned by the telephonyManager.getAIICelllnfo () function is a list of GSM, LTE, and WCDMA tower identifiers. In the initial form, this data is not an effective sign for dividing the entire data set into two groups: 1 - data from emulators, 2 - data from real devices. But after analyzing these 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 were obtained from real device. Based on this analytics, two modified attributes 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.

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

[0069] Затем по этим признакам был выполнен повторный анализ на эффективность разделения всего набора данных на две группы - данные с эмуляторов и данные с реальных устройств. Некоторые признаки успешно разделили набор данных и были использованы в моделях. Например, в вышеописанной модели «дерево решений» успешно используется признак gyroscope_val ue_m.[0069] Then, based on these characteristics, a repeated analysis was performed on the effectiveness of dividing the entire data set into two groups — data from emulators and data from real devices. Some features successfully shared the data set and were used in the models. For example, the gyroscope_val ue_m attribute is successfully used in the above decision tree model.

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

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

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

Figure 00000002
Figure 00000002

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

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

[0075] При добавлении к набору данных динамических метрик общее число рассматриваемых признаков увеличилось до 35. Оценка моделей проводилась аналогичным описанному выше способом.[0075] When dynamic metrics were added to the dataset, the total number of features considered increased to 35. Models were evaluated in the same way as described above.

Figure 00000003
Figure 00000003

[0076] Как видно из приведенных данных, отобранные признаки позволили построить статистические модели, демонстрирующие близкие к идеальным результатам. По результатам проведенных тестов наилучшие показатели демонстрируют случай лес, метод опорных векторов и логистическая регрессия, достигая на имеющихся данных вероятности выявления эмулируемой среды близкой к 1. На Фиг. 3-4 показаны примеры коэффициентов для этих моделей.[0076] As can be seen from the above data, the selected features allowed us to build statistical models that demonstrate close to ideal results. According to the results of the tests, the best indicators are demonstrated by the case of forest, the support vector method and logistic regression, reaching the available data on the probability of detecting an emulated medium close to 1. In FIG. 3-4 examples of coefficients for these models are shown.

[0077] Все рассмотренные статистические модели стабильно демонстрируют высокую точность даже без использования данных с датчиков. Последние хоть и увеличивают точность отдельных моделей, но, как правило, требуют большего расхода заряда батареи устройства, что накладывает свои ограничения. На Фиг. 5 представлена информация по потреблению энергии, в зависимости от используемых функций мобильного устройства связи пользователя. Процесс принятия решения состоит из следующих шагов:[0077] All considered statistical models stably 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 consumption of the device, which imposes its limitations. In 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;

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

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

[0078] После сбора данных и работы синтаксического анализатора, соответствующие поля передаются в статистическую модель, где подвергаются анализу. Пример процесса анализа описан выше на примере метода деревьев решений. Результатом работы такой модели является вердикт, однозначно определяющий на реальном устройстве или в эмулируемой операционной системе запущено мобильное приложение. Результат работы статистической модели может передаваться в дальнейшем в систему фрод-мониторинга для последующей обработки, либо мобильному приложению для ограничения функционала или возможности запуска. Процесс передачи результата в приложение может осуществляться посредством одного из известных в уровне техники программных интерфейсов для обеспечения обмена данными между процессами, например, Socket, и/или WebSocket, и/или WCF, и/или REST и т.д.[0078] After collecting the data and using the parser, the corresponding fields are passed 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 this model is a verdict that uniquely identifies a mobile application on an actual device or in an emulated operating system. The result of the statistical model can be transferred further to the fraud monitoring system for further processing, or to a mobile application to limit the functionality or launch ability. The process of transferring the result to the application can be carried out by means of one of the software 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.

[0079] Например, приложение может выполнять проверку операционной системы на предмет эмулируемой среды в момент запуска, либо при наступлении определенных событий - регистрация нового пользователя, смена пароля и другие.[0079] For example, an application can check the operating system for an emulated environment at launch, or when certain events occur, register a new user, change a password, and others.

[0080] Архитектура всей системы выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения показана на Фиг. 8.[0080] The architecture of the entire detection system of an emulated mobile operating system using machine learning techniques is shown in FIG. 8.

[0081] На Фиг. 9 представлен пример вычислительного устройства 800, которое может применяться для выполнения функций по логической обработке необходимых данных для реализации заявленного способа выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения. Необходимо отметить, что указанные в материалах настоящей заявки компьютерное устройство пользователя и сервер, могут представлять собой один из вариантов воплощения вычислительного устройства 800.[0081] In FIG. 9 illustrates an example of a computing device 800 that can be used to perform logical processing functions of 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 computer device and server indicated in the materials of this application may be one of the embodiments of computing device 800.

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

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

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

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

[0086] Для организации работы компонентов устройства 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 и т.п.[0086] To organize the operation of the components of the device 800 and organize the work of external connected devices, various types of I / O 804 interfaces are used. The choice of appropriate interfaces depends on the particular design of the computing device, which may include, but 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.

[0087] Для обеспечения взаимодействия пользователя с вычислительным устройством 800 применяются различные средства 805 В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.[0087] Various means of 805 I / O information are used to facilitate user interaction with computing device 800, such as a keyboard, display (monitor), touch screen, touch pad, joystick, mouse pad, light pen, stylus pen, touch pad, trackball , speakers, microphone, augmented reality tools, optical sensors, tablet, light indicators, projector, camera, biometric identification tools (retina scanner, fingerprint scanner, voice recognition module), etc.

[0088] Средство сетевого взаимодействия 806 обеспечивает передачу данных устройством 800 посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств 806 может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.[0088] The network interaction tool 806 enables data transmission by the device 800 via an internal or external computer network, such as an Intranet, Internet, LAN, or 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 communications module, NFC module, Bluetooth and / or BLE module, Wi-Fi module, etc.

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

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

[0091] Следует принять во внимание, что настоящее изобретение не ограничивается точной конструкцией или реализацией, которая была описана выше и проиллюстрирована на прилагаемых чертежах, и различные модификации и изменения могут быть выполнены без отступления от его объема. Предполагается, что объем настоящего изобретения ограничивается только прилагаемой формулой изобретения.[0091] 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.

ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИUSED INFORMATION SOURCES

[0092] 1. Petsas Т. 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.[0092] 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.

[0093] 2. Jing Y. et al. Morpheus: automatically generating heuristics to detect Android emulators // Proceedings of the 30th Annual Computer Security Applications Conference. ACM, 2014. P. 216-225.[0093] 2. Jing Y. et al. Morpheus: automatically generating heuristics to detect Android emulators // Proceedings of the 30th Annual Computer Security Applications Conference. ACM, 2014. P. 216-225.

Claims (23)

1. Способ выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, включающий следующие шаги:1. A method for identifying an emulated mobile operating system using machine learning methods, comprising the following steps: • осуществляют сбор данных на мобильном приложении, которое установлено на мобильное устройство связи пользователя;• collect data on a mobile application that is installed on the user's mobile communication device; • направляют полученные на предыдущем шаге данные из мобильного устройства связи пользователя на сервер;• send the data obtained in the previous step from the user's mobile communication device to the server; • осуществляет выделение полученных данных посредством синтаксического анализатора, содержащих собранные признаки, в соответствии с наименованием полей;• extracts the received data through a parser containing the collected features, in accordance with the name of the fields; • направляют выделенные признаки в обученную статистическую модель данных, расположенную на сервере, содержащую группы признаков, которые включают группу статистических признаков, включающих наличие Bluetooth модуля и наличие Vibracall модуля (виброзвонка) в мобильном устройстве связи пользователя, динамических признаков, включающих показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения, пользовательских метрик, файловых метрик и модифицированных метрик, включающих набор токенов в параметрах мобильного устройства связи пользователя;• direct the selected features to a trained statistical data model located on the server, containing groups of features that include a group of statistical features, including the presence of a Bluetooth module and the presence of a Vibracall module (vibrating alert) in the user's mobile communication device, dynamic signs, including the readings of the accelerometer, gyroscope, light sensor, linear acceleration sensor, battery level, magnetic field sensor readings, motion sensor readings, distance sensor readings, readings rotation sensor, user metrics, file metrics and modified metrics, including a set of tokens in the parameters of the user's mobile communication device; • принимают решение посредством обученной статистической модели данных установлено мобильное приложение на реальном устройстве или в эмулируемой мобильной операционной системе.• make a decision using a trained statistical data model, a mobile application is installed on a real device or in an emulated mobile operating system. 2. Способ по п. 1, характеризующийся тем, что сбор данных на мобильном приложении осуществляются в JSON-файл и/или XML, и/или YML, и/или ТХТ.2. The method according to p. 1, characterized in that the data collection 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 p. 1, characterized in that the server is located in a cloud data warehouse or locally. 4. Способ по п. 1, характеризующийся тем, что статистической моделью является логистическая регрессия, или дерево решений, или случайный лес, или наивный байесовский классификатор, или метод опорных векторов.4. The method according to claim 1, characterized in that the statistical model is a logistic regression, or a decision tree, or a random forest, or a naive Bayesian classifier, or a support vector method. 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 p. 1, characterized in that the parser parses the elements containing the collected features, in accordance with the name of their fields. 7. Способ по п. 1, характеризующийся тем, что синтаксический анализатор после разбора файла осуществляет маппинг признаков в поля таблицы в базу данных.7. The method according to claim 1, characterized in that the parser, after parsing the file, maps the attributes to the table fields in the database. 8. Способ по п. 7, характеризующийся тем, что маппинг данных в поля таблицы в базу данных происходит путем выполнения INSERT-запроса.8. The method according to claim 7, characterized in that the mapping of the data into the table fields in the database occurs by executing an INSERT request. 9. Способ по п. 1, характеризующийся тем, что при выделении посредством синтаксического анализатора признаков, делят их на статические и динамические.9. The method according to p. 1, characterized in that when highlighting through a parser of signs, they are divided into static and dynamic. 10. Способ по п. 1, характеризующийся тем, что к динамическим данным относятся показания акселерометра и/или гироскопа, и/или датчика освещенности, и/или датчика магнитного поля, и/или датчика движения, и/или датчика расстояния, и/или датчика вращения.10. The method according to p. 1, characterized in that the dynamic data include readings of the accelerometer and / or gyroscope, and / or light sensor, and / or magnetic field sensor, and / or motion sensor, and / or distance sensor, and / or rotation sensor. 11. Система выявления эмулируемой мобильной операционной системы с использованием методов машинного обучения, содержащая:11. A system for identifying an emulated mobile operating system using machine learning methods, comprising: • по меньшей мере одно мобильное устройство связи пользователя, на которое установлено мобильное приложение, выполненное с возможностью• at least one mobile user communication device on which a mobile application is installed, configured to • осуществления сбора данных;• data collection; • направления полученных данных из мобильного устройства связи пользователя на по меньшей мере один сервер;• directing the received data from the user's mobile communication device to at least one server; • по меньшей мере один сервер, выполненный с возможностью• at least one server configured to • осуществления выделения полученных данных из мобильного устройства связи пользователя посредством синтаксического анализатора, причем данные содержат собранные признаки, в соответствии с наименованием полей;• extracting the received data from the mobile communication device of the user by means of a parser, the data containing the collected features, in accordance with the name of the fields; • направления синтаксическим анализатором выделенных признаков в обученную статистическую модель данных, содержащую группы признаков, которые включают группу статистических признаков, включающих наличие Bluetooth модуля и наличие Vibracall модуля (виброзвонка) в мобильном устройстве связи пользователя, динамических признаков, включающих показания акселерометра, гироскопа, датчика освещения, датчика линейного ускорения, уровень заряда батареи, показания датчика магнитного поля, показания датчика движения, показания датчика расстояния, показания датчика вращения, пользовательских метрик, файловых метрик и модифицированных метрик, включающих набор токенов в параметрах мобильного устройства связи пользователя;• directions by the parser of the selected features to the trained statistical data model containing groups of features that include a group of statistical features, including the presence of a Bluetooth module and the presence of a Vibracall module (vibrating alert) in the user's mobile communication device, dynamic signs, including the readings of the accelerometer, gyroscope, light sensor , linear acceleration sensor, battery level, magnetic field sensor readings, motion sensor readings, distance sensor readings, while anija rotation sensor, user metrics file metrics and the modified metrics which include a set of tokens in the mobile communication device user parameters; • принятия решения посредством обученной статистической модели данных установлено мобильное приложение на реальном устройстве или эмулируемой мобильной операционной системе.• making 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.
RU2018140416A 2018-11-15 2018-11-15 Method and system for detecting emulated mobile operating system using machine learning techniques RU2713760C1 (en)

Priority Applications (3)

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
PCT/RU2018/000753 WO2020101524A1 (en) 2018-11-15 2018-11-15 Detecting an emulated mobile operating system using machine learning
EA201892371A EA038038B1 (en) 2018-11-15 2018-11-19 Method and system for detecting an emulated mobile operating system using methods of machine learning

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 (1)

Publication Number Publication Date
RU2713760C1 true RU2713760C1 (en) 2020-02-07

Family

ID=69625535

Family Applications (1)

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

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
US20160306974A1 (en) * 2010-11-29 2016-10-20 Biocatch Ltd. Identification of computerized bots, and identification of automated cyber-attack modules
US9667613B1 (en) * 2014-12-10 2017-05-30 EMC IP Holding Company LLC Detecting mobile device emulation
RU2654146C1 (en) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" System and method of detecting malicious files accompanied with using the static analysis elements
US10049209B2 (en) * 2010-11-29 2018-08-14 Biocatch Ltd. Device, method, and system of differentiating between virtual machine and non-virtualized device

Family Cites Families (3)

* 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
US11076291B2 (en) * 2017-01-10 2021-07-27 Paypal, Inc. Emulated mobile device identification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160306974A1 (en) * 2010-11-29 2016-10-20 Biocatch Ltd. Identification of computerized bots, and identification of automated cyber-attack modules
US10049209B2 (en) * 2010-11-29 2018-08-14 Biocatch Ltd. Device, method, and system of differentiating between virtual machine and non-virtualized device
US9667613B1 (en) * 2014-12-10 2017-05-30 EMC IP Holding Company LLC Detecting mobile device emulation
RU2654146C1 (en) * 2017-06-16 2018-05-16 Акционерное общество "Лаборатория Касперского" System and method of detecting malicious files accompanied with using the static analysis elements

Also Published As

Publication number Publication date
EA038038B1 (en) 2021-06-28
EA201892371A1 (en) 2020-05-29
WO2020101524A1 (en) 2020-05-22

Similar Documents

Publication Publication Date Title
US11880270B2 (en) Pruning and prioritizing event data for analysis
Qu et al. Autocog: Measuring the description-to-permission fidelity in android applications
US10216558B1 (en) Predicting drive failures
EP3191964B1 (en) Memory leak analysis by usage trends correlation
US10621074B2 (en) Intelligent device selection for mobile application testing
JP7153004B2 (en) COMMUNITY Q&A DATA VERIFICATION METHOD, APPARATUS, COMPUTER DEVICE, AND STORAGE MEDIUM
CN110442712B (en) Risk determination method, risk determination device, server and text examination system
US10896037B2 (en) Method and apparatus for open source analytics for information handling systems
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
RU2722692C1 (en) Method and system for detecting malicious files in a non-isolated medium
US10785087B2 (en) Modifying computer configuration to improve performance
WO2015073469A1 (en) Functional validation of software
US20210150270A1 (en) Mathematical function defined natural language annotation
Yu et al. Localizing function errors in mobile apps with user reviews
US20160283522A1 (en) Matching untagged data sources to untagged data analysis applications
RU2713760C1 (en) Method and system for detecting emulated mobile operating system using machine learning techniques
WO2023066237A1 (en) Artificial intelligence model learning introspection
US20220122038A1 (en) Process Version Control for Business Process Management
US10216610B2 (en) Debug session analysis for related work item discovery
RU2743620C1 (en) Method and system for determining malicious activity by analyzing the behaviour of objects in non-insulated environment
US11972382B2 (en) Root cause identification and analysis
US11971887B2 (en) Identifying and replacing logically neutral phrases in natural language queries for query processing
US20160283521A1 (en) Matching untagged data sources to untagged data analysis applications
US20230306022A1 (en) Identifying and replacing logically neutral phrases in natural language queries for query processing