[go: up one dir, main page]

RU2739867C1 - Method of determining application module associated with cause of problem encountered during operation of application - Google Patents

Method of determining application module associated with cause of problem encountered during operation of application Download PDF

Info

Publication number
RU2739867C1
RU2739867C1 RU2019138378A RU2019138378A RU2739867C1 RU 2739867 C1 RU2739867 C1 RU 2739867C1 RU 2019138378 A RU2019138378 A RU 2019138378A RU 2019138378 A RU2019138378 A RU 2019138378A RU 2739867 C1 RU2739867 C1 RU 2739867C1
Authority
RU
Russia
Prior art keywords
application
modules
module
cause
diagnostic rule
Prior art date
Application number
RU2019138378A
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 RU2019138378A priority Critical patent/RU2739867C1/en
Application granted granted Critical
Publication of RU2739867C1 publication Critical patent/RU2739867C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

FIELD: computer equipment.
SUBSTANCE: invention relates to computer engineering. Disclosed is a method of determining an application module associated with a cause of a problem encountered during operation of an application, implemented by a computer, wherein: a) disabling at least one application module in accordance with a diagnosis rule for said problem; b) checking the troubleshooting due to disconnection of at least one application module; and c) in case of troubleshooting, determining at least one said application module as related to the cause of the fault.
EFFECT: technical result is enabling determination of an application module associated with a cause of a problem encountered during operation of the application.
16 cl, 5 dwg, 1 tbl

Description

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

Изобретение относится к области информационной безопасности, а более конкретно к способам определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения.The invention relates to the field of information security, and more specifically to methods for determining the application module associated with the cause of the problem that occurred during the operation of the application.

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

Современные компьютерные приложения (программное обеспечение, ПО) являются технически сложными, и поэтому неизбежно могут содержать программные ошибки. Программные ошибки могут влиять как на функциональность самого приложения, так и на функциональность стороннего ПО, операционной системы (ОС) и различных сервисов ОС. А при взаимодействии приложения со сторонним ПО или с ОС, из-за программной ошибки стороннего ПО или ОС могут возникнуть неполадки в работе компьютера. Например, если приложение использует драйвер ОС, в котором содержится программная ошибка, может возникнуть неполадка, такая как, например, перезагрузка компьютера, отключение указанного драйвера или другая неполадка. Однако, даже из-за ошибки в ОС, для возобновления корректной работы приложения, зачастую быстрее будет изменить или отключить функциональность приложения, использующего ошибку ОС, чем ждать обновления ОС, в котором исправят указанную ошибку. Многое современное ПО использует модульную архитектуру. То есть содержит множество независимых модулей (компонентов, драйверов, плагинов), каждый из которых отвечает за определенный функционал ПО. Поэтому, в случае возникновении неполадок, связанных с работой приложения (как из-за программных ошибок в самом приложении, так и из-за программных ошибок в стороннем ПО и ОС), системные администраторы, обычно, вручную ищут модуль приложения, связанный с неполадкой. После чего отключают найденный модуль, пока истинная причина неполадки не будет найдена и исправлена. Поэтому возникает техническая проблема, заключающаяся в сложности определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения.Modern computer applications (software, software) are technically complex and therefore may inevitably contain software errors. Software errors can affect both the functionality of the application itself and the functionality of third-party software, operating system (OS), and various OS services. And when the application interacts with third-party software or OS, due to a software error of third-party software or OS, computer malfunctions may occur. For example, if an application uses an OS driver that contains a software error, a problem may occur, such as restarting the computer, disabling the specified driver, or other problem. However, even due to an error in the OS, in order to resume the correct operation of the application, it will often be faster to change or disable the functionality of the application using the OS error than to wait for the OS update, which will fix the specified error. A lot of modern software uses a modular architecture. That is, it contains many independent modules (components, drivers, plugins), each of which is responsible for a specific software functionality. Therefore, in case of problems related to the operation of the application (both due to software errors in the application itself, and due to software errors in third-party software and OS), system administrators usually manually search for the application module associated with the problem. After that, the found module is turned off until the true cause of the problem is found and fixed. Therefore, a technical problem arises in that it is difficult to determine the application module associated with the cause of the problem that occurred during the application.

Из уровня техники известны различные способы поиска ошибок в приложениях, в частности, в патенте US 9442832 описан способ обнаружения ошибок в приложении путем симуляции действий пользователя, повлекших возникновение ошибки. В заявке US 20190129824 описан модуль, собирающий информацию о действиях пользователя в приложении. При получении информации об ошибке, модуль передает службе поддержки записи действий пользователя и информацию от устройства для дальнейшего определения причин возникшей ошибки.Various methods of searching for errors in applications are known from the prior art, in particular, US Pat. No. 9,442,832 describes a method for detecting errors in an application by simulating user actions that caused the error. Application US 20190129824 describes a module that collects information about user actions in an application. Upon receipt of information about an error, the module transmits to the support service records of user actions and information from the device to further determine the causes of the error.

Однако, известные из уровня техники технологии не позволяют решить заявленную техническую проблему, поэтому возникает необходимость в способе определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения.However, the technologies known from the prior art do not solve the claimed technical problem, therefore, there is a need for a method for determining the application module associated with the cause of the problem that occurred during the operation of the application.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

Технический результат заключается в реализации назначения.The technical result consists in the implementation of the purpose.

Согласно варианту реализации используется способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения, реализуемый компьютером, в котором: отключают по меньшей мере один модуль приложения в соответствии с правилом диагностики для упомянутой неполадки; проверяют устранение неполадки вследствие отключения по меньшей мере одного модуля приложения; и в случае устранения неполадки, определяют по меньшей мере один упомянутый модуль приложения, как связанный с причиной неполадки.According to an embodiment, a computer-implemented method for determining an application module associated with the cause of a problem that occurs during the operation of an application is used, in which: at least one application module is disabled in accordance with a diagnostic rule for said problem; checking the elimination of the problem due to the disconnection of at least one application module; and if the problem is corrected, at least one said application module is determined as associated with the cause of the problem.

Согласно одному из вариантов реализации правило диагностики определяет порядок отключения модулей приложения для проверки устранения неполадки.In one implementation, the diagnostic rule determines the order in which application modules are disabled to test that the problem has been resolved.

Согласно другому варианту реализации правило диагностики дополнительно определяет порядок включения модулей приложения для проверки устранения неполадки.In another implementation, the diagnostic rule further defines the order in which application modules are enabled to test for a problem.

Согласно еще одному варианту реализации порядок отключения модулей приложения зависит от частоты возникновения неполадки из-за соответствующего модуля приложения.In another embodiment, the order in which the application modules are disabled depends on the frequency of the problem due to the corresponding application module.

Согласно одному из вариантов реализации если отключили по меньшей мере два модуля приложения, после чего неполадка была устранена, включают упомянутые модули приложения и повторяют предыдущие шаги, поочередно отключая каждый из упомянутых модулей приложения в соответствии с правилом диагностики, при этом, если после отключения каждого из упомянутых модулей приложения в соответствии с правилом диагностики, неполадка не была устранена, определяют упомянутые по меньшей мере два модуля приложения как связанные с причиной неполадки.According to one of the embodiments, if at least two application modules were disabled, after which the problem was eliminated, the mentioned application modules are turned on and the previous steps are repeated, alternately disabling each of the mentioned application modules in accordance with the diagnostic rule, while if after disabling each of of the mentioned application modules in accordance with the diagnostic rule, the problem was not resolved, identify the mentioned at least two application modules as related to the cause of the problem.

Согласно другому варианту реализации в случае сохранения неполадки повторяют предыдущие шаги с учетом правила диагностики и результатов выполненной проверки до наступления одного из условий: устранения неполадки; невозможности устранения неполадки после отключения модулей приложения в соответствии с правилом диагностики, при этом определяют отсутствие модулей приложения, связанных с причиной неполадки.According to another embodiment, if the problem persists, the previous steps are repeated taking into account the diagnostic rule and the results of the performed check until one of the following conditions occurs: elimination of the problem; the failure to resolve the problem after disabling the application modules in accordance with the diagnostic rule, while determining the absence of application modules associated with the cause of the problem.

Согласно еще одному варианту реализации перед повторением предыдущих шагов включают по меньшей мере один ранее отключенный модуль приложения.In another embodiment, at least one previously disabled application module is turned on before repeating the previous steps.

Согласно одному из вариантов реализации в ходе проверки устранения неполадки включают трассировку работы приложения в журнал трассировки и, в случае, определения по меньшей мере одного модуля приложения, как связанного с причиной неполадки, используют журнал для определения по меньшей мере одного упомянутого модуля приложения, как связанного с причиной неполадки, а в случае невозможности устранения неполадки, передают упомянутый журнал трассировки на удаленный сервер для определения по меньшей мере одного упомянутого модуля приложения, как связанного с причиной неполадки.In one implementation, the troubleshooting check includes a trace of application activity in the trace log and, if at least one application module is identified as associated with the cause of the problem, the log is used to determine at least one said application module as related. with the cause of the problem, and if it is impossible to eliminate the problem, transfer said trace log to the remote server to determine at least one said application module as associated with the cause of the problem.

Согласно другому варианту реализации правило диагностики определяет необходимость перезапуска приложения или перезагрузки операционной системы (далее - ОС) после отключения по меньшей мере одного определенного модуля приложения, при этом перезагрузка приложения или соответственно ОС осуществляется после отключения упомянутого модуля приложения.According to another embodiment, the diagnostic rule determines the need to restart the application or restart the operating system (hereinafter referred to as OS) after disabling at least one specific application module, while the application or OS is rebooted after the said application module is disabled.

Согласно еще одному варианту реализации тип неполадки является, в частности, одним из: аварийным завершением работы операционной системы; выгрузкой процесса приложения из памяти; зависанием приложения; зависанием операционной системы; повышенной нагрузкой на процессор по сравнению с типичной нагрузкой на процессор при работе упомянутого модуля; снижением производительности по сравнению с типичным значением производительности при работе упомянутого модуля; избыточным использованием ресурсов; снижением скорости сетевого трафика; недоступностью сети; наличием программной ошибки в коде модуля упомянутого приложения; наличием программной ошибки в коде по меньшей мере одного стороннего приложения, установленного на компьютере; наличием программной ошибки в операционной системе; предоставлением несанкционированного доступа; наличием известной уязвимости.In another embodiment, the type of problem is, in particular, one of: abnormal termination of the operating system; unloading the application process from memory; freezing of the application; freezing of the operating system; increased load on the processor compared to the typical load on the processor during the operation of the said module; a decrease in productivity compared to the typical value of productivity during the operation of the said module; excessive use of resources; decrease in the speed of network traffic; network unavailability; the presence of a program error in the code of the module of the mentioned application; the presence of a software error in the code of at least one third-party application installed on the computer; the presence of a software error in the operating system; providing unauthorized access; a known vulnerability.

Согласно одному из вариантов реализации проверяют устранение неполадки путем воспроизведения действий пользователя на компьютере и состояния компьютера, предшествующих возникновению неполадки, и последующей проверки возникновения неполадки.One implementation verifies the problem by replaying user actions on the computer and the state of the computer prior to the problem, and then verifying that the problem occurred.

Согласно другому варианту реализации модуль приложения является, в частности, одним из: компонентом приложения, драйвером, библиотекой.In another embodiment, the application module is, in particular, one of: an application component, a driver, a library.

Согласно еще одному варианту реализации при отключении определенных модулей запрашивают подтверждения отключения упомянутых модулей у пользователя.According to another embodiment, when certain modules are disabled, the user is asked to confirm the disconnection of said modules.

Согласно одному из вариантов реализации обновляют правила диагностики с использованием удаленного сервера.In one embodiment, the diagnostic rules are updated using a remote server.

Согласно другому варианту реализации каждому правилу диагностики соответствует вес, определяющий порядок применения правила диагностики для данного типа неполадки, в случае, если для данного типа неполадки задано более одного правила диагностики.According to another implementation, each diagnostic rule has a weight that determines how the diagnostic rule is applied for a given problem type, if more than one diagnostic rule is defined for this problem type.

Согласно еще одному варианту реализации правило диагностики зависит, в частности, от одного из: версии приложения; версий модулей упомянутого приложения; версии ОС; установленных сторонних приложений; установленного оборудования компьютера; установленных драйверов.In another embodiment, the diagnostic rule depends, in part, on one of: the version of the application; versions of the modules of the mentioned application; OS version; installed third-party applications; installed computer hardware; installed drivers.

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

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых: На Фиг. 1 представлен пример архитектуры операционной системы (ОС).Additional objects, features and advantages of the present invention will become apparent from a reading of the following description of an embodiment of the invention with reference to the accompanying drawings, in which: FIG. 1 shows an example of an operating system (OS) architecture.

На Фиг. 2 приведен возможный набор модулей приложения на примере антивирусного приложения.FIG. 2 shows a possible set of application modules using the example of an anti-virus application.

На Фиг. 3 представлен способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения.FIG. 3 shows a method for identifying the application module associated with the cause of an application problem.

На Фиг. 4 представлен пример реализации способа устранения неполадки, возникшей при работе приложения.FIG. 4 shows an example of the implementation of a method for troubleshooting a problem that occurred during the operation of the application.

Фиг. 5 представляет пример компьютерной системы общего назначенияFIG. 5 presents an example of a general purpose computer system

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

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.Objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, but may be embodied in various forms. The foregoing description is intended to assist a person skilled in the art for a comprehensive understanding of the invention, which is defined only within the scope of the appended claims.

На Фиг. 1 представлен пример архитектуры операционной системы (ОС). После загрузки операционной системы, установленной на компьютере пользователя 100, процессор компьютера может работать в пользовательском режиме (англ. user mode) или в режиме ядра (англ. kernel mode). В пользовательском режиме приложения имеют доступ только к своему виртуальному адресному пространству и не имеют доступ к адресному пространству других приложений или адресному пространству, зарезервированному ОС. В этом режиме работают приложения 110 и драйверы пользовательского режима 130. Приложения, выполняющиеся в режиме ядра имеют общее адресное пространство. В режиме ядра работают драйверы режима ядра 140, ядро операционной системы 160 и соответственно подпрограммы поддержки драйверов 150.FIG. 1 shows an example of an operating system (OS) architecture. After loading the operating system installed on the user's computer 100, the computer's processor can operate in user mode or in kernel mode. In user mode, applications only have access to their virtual address space and do not have access to the address space of other applications or the address space reserved by the OS. In this mode, applications 110 and user-mode drivers 130 operate. Applications that run in kernel mode share a common address space. Kernel mode is used by kernel mode 140 drivers, operating system kernel 160 and, accordingly, driver support routines 150.

Приложения 110, а также драйверы пользовательского режима 130 взаимодействуют с ядром операционной системы 160 посредством интерфейса прикладных программ 120 (англ. application program interface - API). Драйверы режима ядра 140 используются для взаимодействия ядра ОС 160 и драйверов пользовательского режима 130 с аппаратным обеспечением 180 через слой аппаратных абстракций 170 (англ. Hardware Abstraction Layer - HAL). Кроме того, драйверы режима ядра 140 могут включать фильтр-драйверы, которые расширяют или изменяют поведения устройств. Изобретение, раскрываемое в настоящей заявке, служит для определения модуля приложения 111, связанного с причиной неполадки, возникшей при работе приложения 111. Для определенности, приложения 112-113 будут называться сторонними приложениями 112-113 по отношению к приложению 111. Приложение 111 может быть любым программный обеспечением, установленным на компьютере пользователя 100, в частности, антивирусным приложением. Далее, для определенности, приложение 111 будет рассматриваться на примере антивирусного приложения.Applications 110, as well as user-mode drivers 130, interact with the kernel of the operating system 160 through an application program interface (API) 120. Kernel-mode drivers 140 are used to communicate between the OS kernel 160 and the user-mode drivers 130 with the hardware 180 through the Hardware Abstraction Layer (HAL) 170. In addition, kernel mode drivers 140 may include filter drivers that extend or modify device behavior. The invention disclosed in this application serves to define the application module 111 associated with the cause of the problem that occurred during the operation of application 111. To be specific, applications 112-113 will be referred to as third-party applications 112-113 with respect to application 111. Application 111 can be anything software installed on the user's computer 100, in particular, an anti-virus application. Further, for the sake of clarity, application 111 will be considered on the example of an antivirus application.

Приложение 111 содержит модули определенного функционала. К числу таких модулей могут относиться некоторые драйверы пользовательского режима 130 и драйверы режима ядра 140, необходимые для выполнения функционала приложения. Особенностью большинства современных приложений, в частности, антивирусных приложений является наличие большого количества модулей, таких как файловый сканер, эмулятор, сетевой экран, различные драйверы, например, фильтр-драйверы и другие модули (более подробно модули приложения описаны на Фиг. 2). Таким образом, в процессе работы приложения 111 могут возникать различные неполадки (повышенная нагрузка на процессор по сравнению с обычной нагрузкой на процессор при работе упомянутого модуля, снижение производительности, зависание ОС и др.). Такие неполадки могут быть вызваны программными ошибками в одном из модулей приложения 111. Также неполадки могут быть вызваны несовместимостью одного из модулей приложения 111 со сторонними приложениями 112-113 из-за программных ошибок в сторонних приложениях 112-113. В еще одном примере, неполадки могут быть вызваны несовместимостью одного из модулей приложения с ОС 160 или драйверами пользовательского режима 130 или драйверами режима ядра 140. Например, если модуль приложения 111 обращается к функции драйвера режима ядра 140, при этом в упомянутом драйвере присутствует ошибка, то может возникнуть неполадка, такая как перезагрузка компьютера. Для решения заявленной технической проблемы и достижения технического результата используется способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения, реализуемый компьютером, а именно средством диагностики 115. Средство диагностики 115 является одним из приложений 110. В частном примере реализации средство диагностики 115 является модулем приложения 111. В другом частном примере реализации, средство диагностики 115 является отдельным приложением.Application 111 contains modules of certain functionality. Such modules may include some of the user-mode drivers 130 and the kernel-mode drivers 140 required to execute the functionality of the application. A feature of most modern applications, in particular antivirus applications, is the presence of a large number of modules, such as a file scanner, emulator, firewall, various drivers, for example, filter drivers and other modules (application modules are described in more detail in Fig. 2). Thus, during the operation of the application 111, various problems may occur (increased load on the processor compared to the normal load on the processor during the operation of the said module, decreased performance, freeze of the OS, etc.). Such problems can be caused by software errors in one of the modules of application 111. Also, problems can be caused by the incompatibility of one of the modules of application 111 with third-party applications 112-113 due to software errors in third-party applications 112-113. In another example, problems can be caused by the incompatibility of one of the application modules with the OS 160 or the user-mode drivers 130 or the kernel-mode drivers 140. For example, if the application module 111 accesses a function of the kernel-mode driver 140, and there is an error in said driver, then a problem such as restarting the computer may occur. To solve the claimed technical problem and achieve a technical result, a method is used to determine the application module associated with the cause of the problem that occurred during the operation of the application, implemented by the computer, namely by the diagnostic tool 115. The diagnostic tool 115 is one of the applications 110. In a particular implementation example, the diagnostic tool 115 is an application module 111. In another particular implementation, diagnostic tool 115 is a separate application.

На Фиг. 2 приведен возможный набор модулей приложения 111 на примере антивирусного приложения. Антивирусное приложение может содержать модули, предназначенные для обеспечения безопасности компьютера: файловый сканер, почтовый антивирус, веб-антивирус, модуль проактивной защиты, модуль HIPS (англ. Host Intrusion Prevention System - система предотвращения вторжений), DLP-модуль (англ. data loss prevention - предотвращение утечки данных), сканер уязвимостей, эмулятор, сетевой экран и др. В частном примере реализации указанные модули могут быть составной частью антивирусного приложения. В еще в одном примере реализации данные модули могут быть реализованы в виде отдельных программных компонентов.FIG. 2 shows a possible set of modules for application 111 using an antivirus application as an example. An antivirus application can contain modules designed to ensure computer security: file scanner, mail antivirus, web antivirus, proactive protection module, HIPS module (Host Intrusion Prevention System), DLP module (data loss prevention - data leakage prevention), a vulnerability scanner, an emulator, a firewall, etc. In a particular implementation example, these modules can be part of an anti-virus application. In yet another embodiment, these modules may be implemented as separate software components.

Файловый сканер содержит функционал обнаружения вредоносной активности файлов на компьютерной системе пользователя. Файловый сканер может работать в различных режимах, например, в режиме сканирования файлов по доступу (англ. on-access scanner) или по требованию (англ. on-demand scanner). В режиме сканирования файлов по доступу, сканируют открываемые, запускаемые и сохраняемые файлы. В режиме сканирования файлов по требованию сканируют заданные пользователем файлы и директории по требованию пользователя.The file scanner contains functionality for detecting malicious file activity on the user's computer system. The file scanner can operate in various modes, for example, in the on-access scanner or on-demand scanner. On-access file scanning mode scans opened, launched and saved files. On-demand file scan mode scans user-specified files and directories at the user's request.

Почтовый антивирус необходим для контроля входящей и исходящей электронной почты на предмет содержания вредоносных объектов. Веб-антивирус служит для предотвращения исполнения вредоносного кода, который может содержаться на веб-сайтах при их посещении пользователем, а также для блокирования открытия веб-сайтов. Модуль HIPS служит для обнаружения нежелательной и вредоносной активности программ и блокирования ее в момент исполнения. DLP-модуль служит для обнаружения и предотвращения утечки конфиденциальных данных за пределы компьютера или сети. Сканер уязвимостей необходим для обнаружения уязвимостей на компьютере (например, отключены некоторые компоненты средства защиты, устаревшие вирусные базы, закрыт сетевой порт и пр.). Сетевой экран осуществляет контроль и фильтрацию сетевого трафика в соответствии с заданными правилами. Работа эмулятора заключается в имитации гостевой системы во время исполнения кода в эмуляторе. Модуль проактивной защиты использует поведенческие сигнатуры для обнаружения поведения исполняемых файлов и их классификации по уровню доверия. Модуль самозащиты служит для предотвращения несанкционированного отключения антивирусного приложения и других попыток нарушить его нормальное функционирование.Mail antivirus is required to monitor incoming and outgoing e-mail for malicious objects. Web antivirus is used to prevent the execution of malicious code that may be contained on websites when the user visits them, as well as to block the opening of websites. The HIPS module is used to detect unwanted and malicious program activity and block it at the time of execution. DLP module is used to detect and prevent leakage of confidential data outside the computer or network. Vulnerability Scanner is required to detect vulnerabilities on a computer (for example, some protection components are disabled, outdated virus databases, a network port is closed, etc.). Firewall monitors and filters network traffic in accordance with the specified rules. The emulator's job is to simulate the guest system while executing code in the emulator. The proactive defense module uses behavioral signatures to detect the behavior of executable files and classify them by trust level. The self-defense module is used to prevent unauthorized shutdown of the anti-virus application and other attempts to disrupt its normal operation.

На Фиг. 3 представлен способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения, реализуемый компьютером, а именно средством диагностики 115. На шаге 301 средство диагностики 115 получает информацию о неполадке, возникшей при работе приложения. Такая информация о неполадке может включать, в частности, факт наличия неполадки, тип неполадки. Информация о неполадке может быть получена, например, от пользователя компьютера или от одного из модулей приложения 111, который зафиксировал неполадку, а также от ОС (например, из дампов памяти или при критической ошибке ядра ОС). Модуль приложения 111 может определить наличие неполадки и соответствующий тип неполадки, например, если произошло нештатное завершение работы указанного модуля или если ресурсы приложения 111 или ОС стали недоступны.FIG. 3 shows a method for determining an application module associated with the cause of an application problem, implemented by a computer, namely diagnostic tool 115. At step 301, diagnostic tool 115 obtains information about the problem that occurred during application operation. Such information about the problem may include, in particular, the fact that there is a problem, the type of problem. Information about the problem can be obtained, for example, from the computer user or from one of the modules of application 111 that recorded the problem, as well as from the OS (for example, from memory dumps or from a critical error in the OS kernel). The application module 111 can determine if there is a problem and the corresponding type of problem, for example, if the specified module has abnormally terminated or if the resources of the application 111 or the OS become unavailable.

Затем, на шаге 302 отключают по меньшей мере один модуль приложения в соответствии с правилом диагностики для данного типа неполадки. Далее, на шаге 303 проверяют устранение неполадки вследствие отключения по меньшей мере одного модуля приложения. И, в случае устранения неполадки (шаг 304), на шаге 305 определяют по меньшей мере один модуль приложения, как связанный с причиной неполадки. При этом, в одном примере реализации в случае сохранения неполадки (шаг 306) повторяют шаги 302-304 с учетом правила диагностики и результатов выполнения проверки на шаге 303, до наступления одного из условий: устранения неполадки либо невозможности устранения неполадки после отключения модулей приложения в соответствии с правилом диагностики, при этом определяют отсутствие модулей приложения, связанных с причиной неполадки (шаг 307). В еще одном частном примере реализации, перед повторением шагов 302-304, включают по меньшей мере один ранее отключенный модуль. При этом, в случае отсутствия модулей приложения, связанных с причиной неполадки, отключенные ранее модули приложения 111 будут вновь включены для корректной работы приложения 111.Then, at step 302, at least one application module is disabled in accordance with a diagnostic rule for this type of problem. Next, at step 303, troubleshooting due to disconnection of at least one application module is checked. And, if the problem is resolved (step 304), at step 305, at least one application module is determined as associated with the cause of the problem. At the same time, in one implementation example, if the problem persists (step 306), steps 302-304 are repeated taking into account the diagnostic rule and the results of the check at step 303, until one of the conditions occurs: the problem is resolved or the problem cannot be rectified after the application modules are disabled in accordance with with a diagnostic rule, while determining that there are no application modules associated with the cause of the problem (step 307). In yet another particular embodiment, before repeating steps 302-304, at least one previously disabled module is turned on. In this case, if there are no application modules associated with the cause of the problem, the previously disabled application modules 111 will be re-enabled for the correct operation of application 111.

В одном частном примере реализации в ходе проверки устранения неполадки на шаге 303, средство диагностики 115 может запросить у пользователя воспроизвести шаги, предшествующие возникновению неполадки. После чего пользователь сообщит об устранении неполадки или о сохранении неполадки. В другом частном примере реализации, средство диагностики 115 может самостоятельно воспроизвести шаги, предшествующие возникновению неполадки и проверить, устранена ли неполадка. Например, если неполадка заключалась в недоступности ресурсов ОС, то после воспроизведения упомянутых шагов, средство диагностики 115 проверит, стали ли доступны ресурсы ОС.In one particular implementation, during a troubleshooting test at step 303, diagnostic tool 115 may prompt the user to reproduce steps prior to the problem occurring. After that, the user will inform about the elimination of the problem or the persistence of the problem. In another particular implementation, the diagnostic tool 115 can independently reproduce the steps prior to the problem and see if the problem is resolved. For example, if the problem was OS resources being unavailable, then after repeating the above steps, diagnostic tool 115 will check to see if OS resources are available.

В частном примере реализации после отключения по меньшей мере одного модуля приложения, средство диагностики 115 может перезапустить приложение 111. В другом частном примере реализации после отключения по меньшей мере одного модуля приложения средство диагностики 115 может перезапустить ОС 160. Например, если был отключен драйвер, для полного отключения упомянутого драйвера потребуется перезагрузка ОС 160.In a particular implementation, after disabling at least one application module, the diagnostic tool 115 can restart the application 111. In another particular implementation, after disabling at least one application module, the diagnostic tool 115 can restart the OS 160. For example, if the driver was disabled, for completely disabling said driver will require a reboot of OS 160.

В частном примере реализации правило диагностики определяет порядок отключения (или включения) модулей приложения 111 для проверки устранения неполадки. В еще одном частном примере реализации порядок отключения модулей приложения зависит от частоты возникновения неполадки из-за соответствующего модуля приложения.In a particular implementation example, the diagnostic rule determines the order in which the application modules 111 are disabled (or enabled) to verify that the problem is resolved. In yet another particular implementation, the order in which the application modules are disabled depends on the frequency of the problem due to the corresponding application module.

В еще одном частном примере реализации, если на шаге 302 отключили по меньшей мере два модуля приложения, после чего неполадка была устранена, повторяют шаги 302-304, поочередно отключая каждый из упомянутых модулей приложения в соответствии с правилом диагностики. При этом, если после отключения каждого из упомянутых модулей приложения в соответствии с правилом диагностики, неполадка не была устранена, определяют упомянутые по меньшей мере два модуля приложения как связанные с причиной неполадки. Это соответствует шагу 304а.In another particular embodiment, if at step 302 at least two application modules have been disabled and the problem has been resolved, steps 302-304 are repeated, alternately disabling each of said application modules in accordance with a diagnostic rule. In this case, if, after disconnecting each of the mentioned application modules in accordance with the diagnostic rule, the problem has not been eliminated, the mentioned at least two application modules are determined as related to the cause of the problem. This corresponds to step 304a.

В частном примере реализации после устранения неполадки, изменяют порядок отключения модулей приложения в правиле диагностики таким образом, чтобы сократить время обнаружения неполадки. Для этого, например, на удаленном сервере могут собирать данные о результатах обнаружения неполадок с различных компьютеров пользователей согласно способу по Фиг. 3. Такая информация может включать, в частности: тип неполадки; время с момента получения информации о неполадке до устранения неполадки; правила диагностики, использованные для устранения неполадки; количество повторений способа (согласно порядку отключения модулей приложения), после которых неполадка была устранена. После анализа полученной информации, правила диагностики могут быть изменены для сокращения времени обнаружения неполадки. В частности, если какое-либо правило диагностики не использовалось для устранения неполадки определенного типа, вес упомянутого правила диагностики может быть снижен или правило диагностики может быть удалено. И наоборот - если для определенного типа неполадки правило с меньшим весом чаще позволяло устранить неполадку, чем правило с большим весом, то веса правил могут быть скорректированы пропорционально частоте, с которой они использовали при устранении неполадки.In a particular implementation example, after troubleshooting the problem, change the order in which application modules are disabled in the diagnostic rule in such a way as to reduce the time it takes to detect the problem. For this, for example, data on the results of the problem detection from various user computers can be collected on a remote server according to the method of FIG. 3. Such information may include, but is not limited to: the type of problem; time from the moment information about the problem is received until the problem is resolved; Diagnostic rules used to troubleshoot the problem the number of repetitions of the method (according to the order of disconnecting application modules), after which the problem was resolved. After analyzing the information received, the diagnostic rules can be changed to reduce the time it takes to detect a problem. In particular, if a diagnostic rule was not used to troubleshoot a particular type of problem, the weight of the said diagnostic rule may be reduced or the diagnostic rule may be deleted. Conversely, if for a particular type of problem, a rule with a lower weight was more likely to fix the problem than a rule with a higher weight, then the weights of the rules can be adjusted in proportion to the frequency with which they were used to solve the problem.

В другом примере, если в правиле диагностики присутствует модуль, который ни на одном компьютере пользователя не был определен как связанный с причиной неполадки, упомянутый модуль могут исключить из правила диагностики. Это позволит сократить количество отключаемых модулей согласно правилу диагностики и снизить время обнаружения неполадки.In another example, if a diagnostic rule contains a module that has not been identified as associated with the cause of the problem on any of the user's computers, the module can be excluded from the diagnostic rule. This will reduce the number of modules to be disabled according to the diagnostic rule and reduce the time it takes to detect a problem.

В еще одном примере реализации, для изменения правил диагностики с целью сокращения времени обнаружения неполадки, могут использоваться алгоритмы машинного обучения, обучаемые на данных о результатах обнаружения неполадок, перечисленных выше.In another example implementation, machine learning algorithms can be used to train on the data on the results of the detection of the problems listed above to change the diagnostic rules in order to reduce the time to detect a problem.

Возможные правила диагностики для приложения 111 на примере антивирусного приложения (см. Фиг. 2) представлены в таблице 1. Так, при снижении сетевого трафика, согласно правилу 1 из таблицы 1, на шаге 302 первым отключают модуль самозащиты. Затем, после выполнения шага 303 на шаге 304 проверяют устранение неполадки. И, если неполадка не будет устранена, шаги 302-303 повторяют для сетевого экрана. Аналогично, если неполадка не будет устранена, шаги 302-303 повторяют для сканера уязвимости. Т.к. сканер уязвимости - последний модуль в правиле 1, то в случае сохранения неполадки после отключения сканера уязвимости, на шаге 307 определяют отсутствие модулей приложения, связанных с причиной неполадки. То есть причина неполадки не в приложении 111 и не в модулях приложения 111.Possible diagnostic rules for application 111 using an anti-virus application as an example (see Fig. 2) are presented in Table 1. Thus, when the network traffic decreases, according to rule 1 from Table 1, at step 302, the self-defense module is disabled first. Then, after step 303 is performed, step 304 checks the troubleshooting. And if the problem is not resolved, steps 302-303 are repeated for the firewall. Similarly, if the problem persists, steps 302-303 are repeated for the vulnerability scanner. Because Vulnerability Scanner is the last module in Rule 1, then if the problem persists after disabling the vulnerability scanner, at step 307 it is determined that there are no application modules associated with the cause of the problem. That is, the cause of the problem is not in application 111 or in modules in application 111.

Figure 00000001
Figure 00000001

Правило 2 также служит для определения неполадки типа «снижение сетевого трафика». Правило 2 соответствует шагу 304а. Согласно правилу 2 вначале отключают приложение 111 целиком (то есть все модули приложения), чтобы определить, связана ли неполадка с приложением 111. Затем локализуют модуль или несколько модулей, связанных с неполадкой. Таким образом, далее возобновляют работу приложения 111, после чего отключают сетевой экран и, если это не устранит неполадку, отключают веб-антивирус.Rule 2 is also used to identify a low traffic problem. Rule 2 corresponds to step 304a. Rule 2 first disables the entire application 111 (that is, all application modules) to determine if the problem is with application 111. Then, the module or multiple modules associated with the problem are localized. Thus, the application 111 is then resumed, after which the firewall is turned off and, if this does not fix the problem, the web antivirus is turned off.

При этом, если и отключение веб-антивируса не привело к устранению неполадки, определяют целиком приложение 111 как связанное с неполадкой. Правило 3 в таблице 1 может применяться, когда тип неполадки заключается в недоступности ресурсов стороннего приложения, например, если почтовый клиент не отправляет и не принимает почту. В этом случае будет отключен почтовый антивирус.However, if disabling Web Antivirus did not resolve the problem, the entire application 111 is identified as related to the problem. Rule 3 in Table 1 can be applied when the type of problem is the unavailability of third-party application resources, for example, if the mail client does not send or receive mail. In this case, mail antivirus will be disabled.

В частном примере реализации правила диагностики дополнительно зависят, в частности, от одного из:In a particular example of implementation, the diagnostic rules additionally depend, in particular, on one of:

а) версии приложения;a) application version;

б) версий модулей упомянутого приложения;b) versions of the modules of the mentioned application;

в) версии ОС;c) OS version;

г) установленных сторонних приложений;d) installed third-party applications;

д) установленного оборудования компьютера;e) installed computer hardware;

е) установленных драйверов.f) installed drivers.

В одном частном примере реализации в ходе проверки устранения неполадки включают трассировку работы приложения в журнал трассировки и, в случае, определения по меньшей мере одного модуля приложения, как связанного с причиной неполадки, используют журнал для определения по меньшей мере одного объекта упомянутого модуля приложения, как связанного с причиной неполадки. А в случае невозможности устранения неполадки, передают упомянутый журнал трассировки на удаленный сервер (на фигурах не указан) для определения по меньшей мере одного объекта упомянутого модуля приложения, как связанного с причиной неполадки. При этом трасса выполнения содержит непрерывную последовательность выполняемых на процессоре инструкций и снимки внутреннего состояния процессора при выполнении каждой инструкции процесса, вызванного из приложения 111.In one particular implementation example, during a troubleshooting check, a trace of application operation is included in the trace log and, in the event that at least one application module is identified as associated with the cause of the problem, the log is used to determine at least one object of said application module as related to the cause of the problem. And if it is impossible to eliminate the problem, the mentioned trace log is transmitted to a remote server (not indicated in the figures) to determine at least one object of the mentioned application module as associated with the cause of the problem. In this case, the execution trace contains a continuous sequence of instructions executed on the processor and snapshots of the internal state of the processor during the execution of each instruction of the process called from application 111.

В другом частном примере реализации правило диагностики определяет необходимость перезапуска приложения или перезагрузки операционной системы (далее - ОС) после отключения по меньшей мере одного определенного модуля приложения, при этом перезапуск приложения или соответственно перезагрузка ОС осуществляется после отключения упомянутого модуля приложения.In another particular example of implementation, the diagnostic rule determines the need to restart the application or reboot the operating system (hereinafter referred to as the OS) after disabling at least one specific application module, while the application is restarted or, accordingly, the OS is rebooted after the said application module is disabled.

В частном примере реализации неполадка при работе приложения, затронула, в частности, упомянутое приложение или стороннее приложение. Кроме того, неполадка может затронуть сервисы операционной системы, сетевое подключение или файловую систему.In a private example of implementation, a problem with the application, in particular, affected the mentioned application or third-party application. In addition, the problem can affect operating system services, network connection, or file system.

При этом, тип неполадки является, в частности, одним из:In this case, the type of problem is, in particular, one of:

а) аварийным завершением работы операционной системы;a) emergency shutdown of the operating system;

б) выгрузкой процесса приложения из памяти;b) unloading the application process from memory;

в) зависанием приложения;c) freezing of the application;

г) зависанием операционной системы;d) freezing of the operating system;

д) повышенной нагрузкой на процессор по сравнению с типичной нагрузкой на процессор при работе упомянутого модуля;e) increased load on the processor compared to the typical load on the processor during the operation of the said module;

е) снижением производительности по сравнению с типичным значением производительности при работе упомянутого модуля;f) a decrease in performance compared to the typical value of performance during the operation of the said module;

ж) избыточным использованием ресурсов;g) excessive use of resources;

з) снижением скорости сетевого трафика;h) reducing the speed of network traffic;

и) недоступностью сети;i) network unavailability;

к) наличием программной ошибки в коде модуля упомянутого приложения;j) the presence of a software error in the code of the module of the mentioned application;

л) наличием программной ошибки в коде по меньшей мере одного стороннего приложения, установленного на компьютере;k) the presence of a software error in the code of at least one third-party application installed on the computer;

м) наличием программной ошибки в операционной системе;l) the presence of a software error in the operating system;

н) предоставлением несанкционированного доступа; о) наличием известной уязвимости.m) providing unauthorized access; o) the presence of a known vulnerability.

Стоит отметить, что перечисленный список неполадок не является полным и может включать другие типа неполадок. Например, неполадка может возникнуть из-за зависания приложения 111, после которого по цепочке зависли одно или несколько сторонних приложений 112-113, ожидающих данные от первого приложения. При этом, применяя заявленное изобретение позволит определить модуль или модули приложения, вызывающие упомянутую неполадку, после отключения которых, работоспособность приложения 111 и приложений 112-113 будет восстановлена.It should be noted that this list of problems is not complete and may include other types of problems. For example, a problem may arise when application 111 hangs, after which one or more third-party applications 112-113 hang along the chain, waiting for data from the first application. At the same time, using the claimed invention, it will be possible to determine the application module or modules that cause the mentioned problem, after the disconnection of which, the operability of the application 111 and applications 112-113 will be restored.

В еще одном частном примере реализации проверяют устранение неполадки путем воспроизведения действий пользователя на компьютере и состояния компьютера, предшествующих возникновению неполадки, и последующей проверки возникновения неполадки. В еще одном частном примере реализации модуль приложения является, в частности, одним из: компонентом приложения, драйвером, библиотекой (динамической или статической).Another particular example of an implementation tests the problem by replaying user actions on the computer and the state of the computer prior to the occurrence of the problem, and then checking the problem. In another particular example of implementation, the application module is, in particular, one of: an application component, a driver, a library (dynamic or static).

В одном из частных примеров реализации при отключении определенных модулей запрашивают подтверждения отключения упомянутых модулей у пользователя. Запрос подтверждения может заключаться в необходимости ввести пароль, ввести капчу (англ. от САРТСНА - англ. Completely Automated Public Turing test to tell Computers and Humans Apart - полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей), нажать подтверждающую кнопку, отправить подтверждающую команду и пр.In one of the private examples of implementation, when certain modules are disabled, the user is asked to confirm the disconnection of said modules. A confirmation request may consist in the need to enter a password, enter a captcha (English from CAPTSNA - English Completely Automated Public Turing test to tell Computers and Humans Apart - a fully automated public Turing test to distinguish between computers and people), press the confirmation button, send a confirmation command etc.

В другом частном примере реализации обновляют правила диагностики с использованием удаленного сервера.In another particular implementation, the diagnostic rules are updated using a remote server.

В еще одном частном примере реализации каждому правилу диагностики соответствует вес, определяющий порядок применения правила диагностики для данного типа неполадки, в случае, если для данного типа неполадки задано более одного правила диагностики.In another particular example of implementation, each diagnostic rule has a weight that determines the order in which the diagnostic rule is applied for a given type of problem, if more than one diagnostic rule is specified for this type of problem.

На Фиг. 4 представлен пример реализации способа устранения неполадки, возникшей при работе приложения. После устранения неполадки (шаг 304) проверяют, возможно ли отключить меньшее количество модулей приложения (шаг 304а). Это необходимо, чтобы более точно определить, какой именно модуль приложения связан с причиной неполадки в том случае, если на шаге 302 было отключено два или более модулей приложения. В случае положительного ответа, на шаге 401 включают по меньшей мере один модуль приложения из числа отключенных модулей приложения в соответствии с правилом диагностики для упомянутой неполадки. Затем, на шаге 402 проверяют сохранение неполадки вследствие включения по меньшей мере одного модуля приложения.FIG. 4 shows an example of the implementation of a method for troubleshooting a problem that occurred during the operation of the application. After troubleshooting the problem (step 304), it is tested if it is possible to disable fewer application modules (step 304a). This is necessary to more accurately determine which application module is associated with the cause of the problem in the event that two or more application modules were disabled in step 302. If the answer is yes, at step 401, at least one application module from the disabled application modules is turned on in accordance with the diagnostic rule for the mentioned problem. Then, at step 402, it is verified that the problem persists due to the inclusion of at least one application module.

В случае сохранения неполадки, определяют по меньшей мере один упомянутый модуль приложения, как связанный с причиной неполадки (шаг 305). А в случае устранения неполадки, повторяют шаги 401-402 для по меньшей мере одного другого модуля приложения из числа отключенных модулей приложения.If the problem persists, at least one said application module is determined as associated with the cause of the problem (step 305). And if the problem is resolved, repeat steps 401-402 for at least one other application module from among the disabled application modules.

В частном примере реализации, если после отключения по меньшей мере двух модулей приложения, неполадка устранена (шаг 403), то включают по меньшей мере один модуль приложения из числа отключенных в соответствии с правилом диагностики для упомянутой неполадки и проверяют сохранение неполадки. При этом, если после включения по меньшей мере двух модулей приложения, ранее устраненная неполадка воспроизводится (шаг 402), то отключают по меньшей мере один модуль приложения из числа включенных в соответствии с правилом диагностики для упомянутой неполадки и проверяют устранение неполадки (шаги 403, 302, 303). Это необходимо, чтобы более точно определить, какой именно модуль приложения связан с причиной неполадки в том случае, если на шаге 401 было включено два или более модулей приложения.In a particular example of implementation, if after disconnecting at least two application modules, the problem is eliminated (step 403), then at least one application module is turned on from among those disabled in accordance with the diagnostic rule for the mentioned problem and the problem persistence is checked. In this case, if, after turning on at least two application modules, the previously resolved problem is reproduced (step 402), then at least one application module is turned off from among those included in accordance with the diagnostic rule for the mentioned problem and the troubleshooting is checked (steps 403, 302 , 303). This is necessary to more accurately determine which application module is associated with the cause of the problem if two or more application modules were included in step 401.

В итоге, на шаге 404 устраняют неполадку путем отключения по меньшей мере одного модуля приложения, который был определен как связанный с причиной неполадки. Таким образом, выполнение упомянутых шагов способа позволит более точно определить те модули, которые связаны с причиной неполадки и отключить их, без отключения других модулей, не связанных с причиной неполадки.Finally, at step 404, the problem is resolved by disabling at least one application module that has been determined to be associated with the cause of the problem. Thus, following the above steps of the method will allow you to more accurately identify those modules that are associated with the cause of the problem and disable them, without disabling other modules not related to the cause of the problem.

Возможный пример работы способа по Фиг. 4 отражен в правиле 4 таблицы 1. В этом случае, при недоступности ресурсов стороннего приложения, вначале отключают все приложение, после чего включают все модули приложения за исключением почтового антивируса и проверяют устранение неполадки. Также очевидно, что при использовании правила 3 с помощью способа по Фиг. 3 и правила 4 с помощью способа по Фиг. 4 будет достигнут одинаковый результат.A possible example of the operation of the method of FIG. 4 is reflected in rule 4 of table 1. In this case, if the resources of a third-party application are unavailable, the entire application is first disabled, then all application modules are turned on except for the mail antivirus and the problem is checked. It is also obvious that when using rule 3 with the method of FIG. 3 and rule 4 using the method of FIG. 4 will achieve the same result.

В частном примере реализации, в случае устранения неполадки вследствие включения по меньшей мере одного модуля приложения, повторяют шаги 303-304а, 401 для по меньшей мере одного другого модуля приложения из числа отключенных модулей приложения с учетом правила диагностики и результатов выполненной проверки, при этом в случае устранения неполадки после включения всех модулей приложения в соответствии с правилом диагностики (то есть те модули, которые указаны в правиле диагностики), определяют по меньшей мере один модуль приложения, оказавшийся не включенным (то есть модуль, отсутствующий в правиле диагностики), как связанный с причиной неполадки. Очевидно, что после включения всех модулей приложения в соответствии с правилом диагностики, будут определены, как связанные с причиной неполадки, те модули приложения, которые были определены ранее, на шаге 304.In a particular implementation example, if the problem is eliminated due to the inclusion of at least one application module, steps 303-304a, 401 are repeated for at least one other application module from among the disabled application modules, taking into account the diagnostic rule and the results of the check performed, while in if the problem is resolved after enabling all application modules in accordance with the diagnostic rule (that is, those modules that are specified in the diagnostic rule), define at least one application module that was not included (that is, the module that is not in the diagnostic rule) as linked with the cause of the problem. Obviously, after enabling all application modules in accordance with the diagnostic rule, those application modules that were previously identified in step 304 will be determined as related to the cause of the problem.

В одном частном примере реализации может быть осуществлен выбор правил диагностики - использовать правила диагностики, определяющие порядок отключения модулей или правила диагностики, определяющие порядок включения модулей или использовать все правила диагностики. Для этого, может быть выбран критерий, в зависимости от которого будет выбран один из вариантов правил диагностики. Критерий может быть, например, одним из следующих: сокращение времени определения модуля, сокращение количества итераций для определения модуля. Например, согласно критерию «сокращение времени определения модуля» правило 3 таблицы 1 будет предпочтительнее правила 4 таблицы 1. Т.к. в случае правила 4 потребуется вначале отключить все приложение, а затем включить все модули приложения за исключением почтового антивируса. Очевидно, что отключение приложения и включение модулей займет больше времени, чем отключение одного модуля, как в правиле 3. Кроме того, данный пример удовлетворяет также критерию «сокращение количества итераций для определения модуля», т.к. в правиле 4 - две итерации, а в правиле 3 - одна итерация.In one particular example of implementation, the choice of diagnostic rules can be made - use diagnostic rules that determine the order of disabling modules or diagnostic rules that determine the order of enabling modules, or use all diagnostic rules. For this, a criterion can be selected, depending on which one of the diagnostic rule options will be selected. The criterion can be, for example, one of the following: reducing the time for determining the module, reducing the number of iterations for determining the module. For example, according to the criterion "reducing the time for determining the module" rule 3 of table 1 will be preferable to rule 4 of table 1. Since in the case of rule 4, you will first need to disable the entire application, and then enable all application modules except for mail antivirus. It is obvious that disabling an application and enabling modules will take longer than disabling one module, as in rule 3. In addition, this example also satisfies the criterion of "reducing the number of iterations to define a module", since rule 4 has two iterations, and rule 3 has one iteration.

Стоит отметить, что частные варианты реализации, описанные к способу по Фиг. 3, также применимы и к способу по Фиг. 4.It should be noted that the particular embodiments described for the method of FIG. 3 are also applicable to the method of FIG. 4.

Таким образом, заявленное изобретение позволяет решить поставленную техническую проблему и достичь заявленный технический результат.Thus, the claimed invention allows solving the technical problem posed and achieving the claimed technical result.

Фиг. 5 представляет пример компьютерной системы общего назначения, с помощью которой может быть реализовано настоящее изобретение. Персональный компьютер или сервер 20, содержит центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.FIG. 5 is an example of a general-purpose computer system with which the present invention may be implemented. The personal computer or server 20 contains a central processor 21, a system memory 22 and a system bus 23, which contains various system components, including memory associated with the central processor 21. The system bus 23 is implemented as any bus structure known from the prior art, which in turn contains a bus memory or a bus memory controller, a peripheral bus and a local bus that can interact with any other bus architecture. System memory contains read-only memory (ROM) 24, random access memory (RAM) 25. The main input / output system (BIOS) 26 contains basic procedures that transfer information between the elements of the personal computer 20, for example, at the time of loading the operating room systems using ROM 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20, in turn, contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29 and an optical drive 30 for reading and writing to removable optical disks 31, such as CD-ROM, DVD -ROM and other optical media. The hard disk 27, the magnetic disk drive 28, and the optical drive 30 are connected to the system bus 23 via the hard disk interface 32, the magnetic disk interface 33, and the optical drive interface 34, respectively. Drives and corresponding computer storage media are non-volatile storage media for computer instructions, data structures, program modules and other data of a personal computer 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27, a removable magnetic disk 29 and a removable optical disk 31, but it should be understood that other types of computer storage media 56 can be used that are capable of storing data in a computer readable form (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.), which are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь (оператор) имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.Computer 20 has a file system 36, where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38 and program data 39. The user (operator) has the ability to enter commands and information into the personal computer 20 through input devices (keyboards 40 , manipulator "mouse" 42). Other input devices can be used (not shown): microphone, joystick, game console, scanner, etc. Such input devices are conventionally connected to the computer system 20 through a serial port 46, which in turn is connected to the system bus, but can be connected in another way, for example, using a parallel port, game port, or universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), for example, speakers, a printer, etc. ...

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment using a network connection with other or more remote computers 49. The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the entity the personal computer 20 shown in FIG. 5. There may also be other devices in a computer network, such as routers, network stations, peer-to-peer devices, or other network nodes.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях (также - информационных системах), внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks (also information systems), internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, personal computer 20 is connected to local network 50 through a network adapter or network interface 51. When using networks, personal computer 20 may use a modem 54 or other means of providing communication with a wide area network, such as the Internet. Modem 54, which is an internal or external device, is connected to the system bus 23 via a serial port 46. It should be noted that the network connections are only exemplary and are not required to reflect the exact configuration of the network, i.e. in fact, there are other ways of establishing a connection by technical means of communication of one computer with another.

В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.In accordance with the description, the components, stages of execution, data structure described above can be performed using various types of operating systems, computer platforms, programs.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information given in the description are examples, which do not limit the scope of the present invention defined by the claims.

Claims (41)

1. Способ определения модуля приложения, связанного с причиной неполадки, возникшей при работе приложения, реализуемый компьютером, в котором:1. A method for determining the application module associated with the cause of the problem that occurred during the operation of the application, implemented by a computer, in which: а) отключают по меньшей мере один модуль приложения в соответствии с правилом диагностики для упомянутой неполадки;a) disable at least one application module in accordance with the diagnostic rule for the problem; б) проверяют устранение неполадки вследствие отключения по меньшей мере одного модуля приложения; иb) checking the elimination of the problem due to the disconnection of at least one application module; and в) в случае устранения неполадки определяют по меньшей мере один упомянутый модуль приложения как связанный с причиной неполадки.c) in case of troubleshooting, at least one said application module is identified as associated with the cause of the problem. 2. Способ по п. 1, в котором правило диагностики определяет порядок отключения модулей приложения для проверки устранения неполадки.2. The method of claim 1, wherein the diagnostic rule determines the order in which application modules are disabled to verify that the problem has been resolved. 3. Способ по п. 2, в котором правило диагностики дополнительно определяет порядок включения модулей приложения для проверки устранения неполадки.3. The method according to claim 2, wherein the diagnostic rule further defines the order in which application modules are enabled to verify that the problem has been resolved. 4. Способ по п. 2, в котором порядок отключения модулей приложения зависит от частоты возникновения неполадки из-за соответствующего модуля приложения.4. The method of claim 2, wherein the order in which the application modules are disabled depends on the frequency of the problem due to the corresponding application module. 5. Способ по п. 1, в котором, если на шаге а) отключили по меньшей мере два модуля приложения, после чего неполадка была устранена, включают упомянутые модули приложения и повторяют шаги а)-в), поочередно отключая каждый из упомянутых модулей приложения в соответствии с правилом диагностики, при этом, если после отключения каждого из упомянутых модулей приложения в соответствии с правилом диагностики неполадка не была устранена, определяют упомянутые по меньшей мере два модуля приложения как связанные с причиной неполадки.5. The method according to claim 1, in which if at step a) at least two application modules are disabled, after which the problem has been eliminated, turn on said application modules and repeat steps a) -c), alternately disabling each of said application modules in accordance with the diagnostic rule, and if the problem has not been resolved after disconnecting each of the mentioned application modules in accordance with the diagnostic rule, the at least two application modules are determined as related to the cause of the problem. 6. Способ по п. 1, в котором в случае сохранения неполадки на шаге б) повторяют шаги а)-б) с учетом правила диагностики и результатов выполненной проверки до наступления одного из условий:6. The method according to claim 1, in which, if the problem persists at step b), steps a) -b) are repeated, taking into account the diagnostic rule and the results of the test performed before one of the conditions occurs: а) устранения неполадки;a) troubleshooting; б) невозможности устранения неполадки после отключения модулей приложения в соответствии с правилом диагностики, при этом определяют отсутствие модулей приложения, связанных с причиной неполадки.b) the impossibility of eliminating the problem after disabling the application modules in accordance with the diagnostic rule, while determining the absence of application modules associated with the cause of the problem. 7. Способ по п. 6, в котором перед повторением шагов а)-б) включают по меньшей мере один ранее отключенный модуль приложения.7. The method of claim 6, wherein prior to repeating steps a) to b), at least one previously disabled application module is turned on. 8. Способ по п. 6, в котором в ходе проверки устранения неполадки включают трассировку работы приложения в журнал трассировки и в случае определения по меньшей мере одного модуля приложения как связанного с причиной неполадки используют журнал для определения по меньшей мере одного упомянутого модуля приложения как связанного с причиной неполадки, а в случае невозможности устранения неполадки передают упомянутый журнал трассировки на удаленный сервер для определения по меньшей мере одного упомянутого модуля приложения как связанного с причиной неполадки.8. The method of claim 6, wherein during the troubleshooting check, the application is traced to the trace log, and if at least one application module is identified as related to the cause of the problem, the log is used to determine at least one said application module as related. with the cause of the problem, and if it is impossible to eliminate the problem, the mentioned trace log is transmitted to the remote server to determine at least one said application module as related to the cause of the problem. 9. Способ по п. 1, в котором правило диагностики определяет необходимость перезапуска приложения или перезагрузки операционной системы (далее - ОС) после отключения по меньшей мере одного определенного модуля приложения, при этом перезагрузка приложения или соответственно ОС осуществляется после отключения упомянутого модуля приложения.9. The method according to claim 1, in which the diagnostic rule determines the need to restart the application or restart the operating system (hereinafter referred to as OS) after disconnecting at least one specific application module, wherein the application or OS is rebooted after the said application module is disconnected. 10. Способ по п. 1, в котором тип неполадки является, в частности, одним из:10. The method of claim 1, wherein the type of problem is, in particular, one of: а) аварийным завершением работы операционной системы;a) emergency shutdown of the operating system; б) выгрузкой процесса приложения из памяти;b) unloading the application process from memory; в) зависанием приложения;c) freezing of the application; г) зависанием операционной системы;d) freezing of the operating system; д) повышенной нагрузкой на процессор по сравнению с типичной нагрузкой на процессор при работе упомянутого модуля;e) increased load on the processor compared to the typical load on the processor during the operation of the said module; е) снижением производительности по сравнению с типичным значением производительности при работе упомянутого модуля;f) a decrease in performance compared to the typical value of performance during the operation of the said module; ж) избыточным использованием ресурсов;g) excessive use of resources; з) снижением скорости сетевого трафика;h) reducing the speed of network traffic; и) недоступностью сети;i) network unavailability; к) наличием программной ошибки в коде модуля упомянутого приложения;j) the presence of a software error in the code of the module of the mentioned application; л) наличием программной ошибки в коде по меньшей мере одного стороннего приложения, установленного на компьютере;k) the presence of a software error in the code of at least one third-party application installed on the computer; м) наличием программной ошибки в операционной системе;l) the presence of a software error in the operating system; н) предоставлением несанкционированного доступа;m) providing unauthorized access; о) наличием известной уязвимости.o) the presence of a known vulnerability. 11. Способ по п. 1, в котором проверяют устранение неполадки путем воспроизведения действий пользователя на компьютере и состояния компьютера, предшествующих возникновению неполадки, и последующей проверки возникновения неполадки.11. The method according to claim 1, in which the problem is checked by reproducing the user's actions on the computer and the state of the computer prior to the problem, and then checking the problem. 12. Способ по п. 1, в котором модуль приложения является, в частности, одним из: компонентом приложения, драйвером, библиотекой.12. The method according to claim 1, wherein the application module is, in particular, one of: an application component, a driver, a library. 13. Способ по п. 1, в котором при отключении определенных модулей запрашивают подтверждения отключения упомянутых модулей у пользователя.13. The method according to claim 1, wherein when certain modules are disabled, the user is requested to confirm the disconnection of said modules. 14. Способ по п. 1, в котором обновляют правила диагностики с использованием удаленного сервера.14. The method of claim 1, wherein the diagnostic rules are updated using a remote server. 15. Способ по п. 1, в котором каждому правилу диагностики соответствует вес, определяющий порядок применения правила диагностики для данного типа неполадки, в случае если для данного типа неполадки задано более одного правила диагностики.15. The method according to claim 1, in which each diagnostic rule corresponds to a weight that determines the order in which the diagnostic rule is applied for this type of problem, if more than one diagnostic rule is specified for this type of problem. 16. Способ по п. 1, в котором правило диагностики зависит, в частности, от одного из:16. The method according to claim 1, wherein the diagnostic rule depends, in particular, on one of: а) версии приложения;a) application version; б) версий модулей упомянутого приложения;b) versions of the modules of the mentioned application; в) версии ОС;c) OS version; г) установленных сторонних приложений;d) installed third-party applications; д) установленного оборудования компьютера;e) installed computer hardware; е) установленных драйверов.f) installed drivers.
RU2019138378A 2019-11-27 2019-11-27 Method of determining application module associated with cause of problem encountered during operation of application RU2739867C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2019138378A RU2739867C1 (en) 2019-11-27 2019-11-27 Method of determining application module associated with cause of problem encountered during operation of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2019138378A RU2739867C1 (en) 2019-11-27 2019-11-27 Method of determining application module associated with cause of problem encountered during operation of application

Publications (1)

Publication Number Publication Date
RU2739867C1 true RU2739867C1 (en) 2020-12-29

Family

ID=74106452

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2019138378A RU2739867C1 (en) 2019-11-27 2019-11-27 Method of determining application module associated with cause of problem encountered during operation of application

Country Status (1)

Country Link
RU (1) RU2739867C1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2462754C2 (en) * 2006-12-29 2012-09-27 Майкрософт Корпорейшн Automatic detection and response to vulnerabilities
US20130198565A1 (en) * 2010-01-28 2013-08-01 Drexel University Detection, diagnosis, and mitigation of software faults
US20150309906A1 (en) * 2012-03-13 2015-10-29 Truemetrics Llc System and methods for automated testing of functionally complex systems
US20190250978A1 (en) * 2005-10-25 2019-08-15 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting anomalous program executions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190250978A1 (en) * 2005-10-25 2019-08-15 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for detecting anomalous program executions
RU2462754C2 (en) * 2006-12-29 2012-09-27 Майкрософт Корпорейшн Automatic detection and response to vulnerabilities
US20130198565A1 (en) * 2010-01-28 2013-08-01 Drexel University Detection, diagnosis, and mitigation of software faults
US20150309906A1 (en) * 2012-03-13 2015-10-29 Truemetrics Llc System and methods for automated testing of functionally complex systems

Similar Documents

Publication Publication Date Title
EP3474176B1 (en) System and method of detecting a malicious file
US10546129B2 (en) Method to scan a forensic image of a computer system with multiple malicious code detection engines simultaneously from a master control point
US7437764B1 (en) Vulnerability assessment of disk images
US11070570B2 (en) Methods and cloud-based systems for correlating malware detections by endpoint devices and servers
US10242186B2 (en) System and method for detecting malicious code in address space of a process
EP2610774B1 (en) System and method for detecting malware targeting the boot process of a computer
RU2571723C2 (en) System and method of reducing load on operating system when executing antivirus application
CN110119619B (en) System and method for creating anti-virus records
CN109074450B (en) Threat defense techniques
US20100175108A1 (en) Method and system for securing virtual machines by restricting access in connection with a vulnerability audit
US20140165130A1 (en) Application-specific re-adjustment of computer security settings
US8782615B2 (en) System, method, and computer program product for simulating at least one of a virtual environment and a debugging environment to prevent unwanted code from executing
RU2634175C2 (en) Method for implementation of anti-virus checks
CN109684833B (en) System and method for adapting program dangerous behavior patterns to user computer system
US11797676B2 (en) Exception handlers in a sandbox environment for malware detection
US20070094654A1 (en) Updating rescue software
EP3029564B1 (en) System and method for providing access to original routines of boot drivers
RU101233U1 (en) SYSTEM OF RESTRICTION OF RIGHTS OF ACCESS TO RESOURCES BASED ON THE CALCULATION OF DANGER RATING
US10204036B2 (en) System and method for altering application functionality
RU2739867C1 (en) Method of determining application module associated with cause of problem encountered during operation of application
RU2460133C1 (en) System and method of protecting computer applications
RU2739831C1 (en) Application operation troubleshooting method
US8201253B1 (en) Performing security functions when a process is created
EP3522058B1 (en) System and method of creating antivirus records
RU2638735C2 (en) System and method of optimizing anti-virus testing of inactive operating systems