RU2848976C1 - System and method for detecting anomalies in telemetry stream - Google Patents
System and method for detecting anomalies in telemetry streamInfo
- Publication number
- RU2848976C1 RU2848976C1 RU2025115680A RU2025115680A RU2848976C1 RU 2848976 C1 RU2848976 C1 RU 2848976C1 RU 2025115680 A RU2025115680 A RU 2025115680A RU 2025115680 A RU2025115680 A RU 2025115680A RU 2848976 C1 RU2848976 C1 RU 2848976C1
- Authority
- RU
- Russia
- Prior art keywords
- time series
- expected values
- request
- range
- value
- Prior art date
Links
Abstract
Description
Область техникиField of technology
Изобретение относится к области информационной безопасности, а более конкретно к системам и способам поиска аномалий в потоке телеметрии с помощью формирования временных рядов.The invention relates to the field of information security, and more specifically to systems and methods for searching for anomalies in a telemetry stream using the formation of time series.
Уровень техникиState of the art
В настоящее время собираемый объем различных данных для различных задач постоянно растет. Особенно это актуально для решений, направленных на выявление киберугроз и реагирование на них. Примерами таких решений являются решения, объединенные под названием «управляемое обнаружение и реагирование» (от англ. Managed Detection and Response, MDR). Они позволяют собирать данные из корпоративных сетей и анализировать их на предмет наличия индикаторов компрометации, а также автоматизировать рутинные задачи по реагированию на инциденты. Собираемые данные представляют собой поток телеметрии, при этом в зависимости от задачи тип собираемых данных в потоке телеметрии может сильно разниться.The volume of data collected for various tasks is constantly growing. This is especially true for solutions aimed at detecting and responding to cyberthreats. Examples of such solutions include those collectively known as Managed Detection and Response (MDR). They allow for the collection of data from corporate networks and analysis for indicators of compromise, as well as the automation of routine incident response tasks. The collected data constitutes a telemetry stream, and the type of data collected in the telemetry stream can vary greatly depending on the task.
Для улучшения качества и обеспечения безопасности работы систем необходимо осуществлять поиск аномалий в потоке телеметрии. Поиск аномалий осуществляется на основании обнаружения отклонения от стандартного поведения, например произошел резкий всплеск собираемых данных или количество происходящих ошибок при обращении к какому-либо устройству в сети резко увеличилось. Для определения отклонений необходимо проводить анализ как за все время наблюдения (сбора данных), так и за определенные ограниченные промежутки времени. Таким образом, собираемые данные в потоке телеметрии представляются в виде временных рядов. To improve the quality and ensure the security of systems, it is necessary to search for anomalies in the telemetry stream. Anomalies are detected based on the detection of deviations from standard behavior, such as a sudden surge in collected data or a sharp increase in the number of errors occurring when accessing a network device. To identify deviations, it is necessary to analyze both the entire monitoring (data collection) period and specific time intervals. Therefore, the collected data in the telemetry stream is presented as a time series.
Также одним из важных условий для корректного определения аномалий является учет контекста анализируемого временного ряда. Контекст временного ряда является критерием, относительно которого рассматривается временной ряд. В общем случае для всего временного ряда устанавливается статический диапазон ожидаемых значений, и аномалия определяется каждый раз, когда какое-либо значение временного ряда выходит за пределы этого диапазона. Однако такой подход непригоден для выявления некоторых видов аномалий. Например, если аномалией является резкий спад количества пользователей какой-либо платформы, то аномалию следует фиксировать только в момент обнаружения такого спада, все же последующие значения должны оцениваться с учетом того, что спад количества пользователей уже произошел, то есть в рамках нового диапазона ожидаемых значений. Таким образом, необходима адаптивность диапазона ожидаемых значений к каждому новому значению временного ряда.Another important condition for correctly identifying anomalies is taking into account the context of the analyzed time series. The context of a time series is the criterion against which the time series is evaluated. Generally, a static range of expected values is established for the entire time series, and an anomaly is defined whenever any value in the time series falls outside this range. However, this approach is unsuitable for identifying certain types of anomalies. For example, if the anomaly is a sharp decline in the number of users on a platform, the anomaly should be recorded only at the moment such a decline is detected. All subsequent values should be assessed taking into account that the decline in user numbers has already occurred, that is, within the new range of expected values. Therefore, the range of expected values must be adaptive to each new value in the time series.
Так, в патентной публикации US 20230038977 A1 представлено решение для прогнозирования аномальных событий в системе. С помощью системы для каждого набора данных (временного ряда) выявляются аномалии и рассчитываются ожидаемые значения, среди которых также выявляются аномалии, о которых уже уведомляют пользователя. В последствии необходимость в переобучении алгоритма работы системы определяется на основании сравнения ожидаемых значений с выявленными аномалиями. В представленном решении обновление алгоритма работы системы основывается только на факте отклонения ожидаемых значений от выявленных аномалий и при этом отсутствует адаптация к новым значениям или контексту временных рядов.For example, patent publication US 20230038977 A1 presents a solution for predicting anomalous events in a system. The system identifies anomalies for each data set (time series) and calculates expected values. Among these, anomalies are also identified and notified to the user. The need to retrain the system's algorithm is subsequently determined by comparing the expected values with the identified anomalies. In the presented solution, the system's algorithm is updated only based on the deviation of expected values from the identified anomalies, without adapting to new values or the context of the time series.
В другой патентной публикации US 20230368069 A1 представлен метод мониторинга характеристик модели машинного обучения и выявления аномалий. Для выявления аномалий с использованием набора исторических значений прогнозируются ожидаемое значение и ожидаемый диапазон значений, которые сравниваются со значениями временного ряда. Также осуществляется учет сезонности путем определения показателя сезонности набора исторических значений. Однако в данной публикации обучение осуществляется на основании исторических данных и может занимать длительное время, при этом отсутствие переобучения не гарантирует адаптивность к новым временным рядам. Another patent publication, US 20230368069 A1, presents a method for monitoring the performance of a machine learning model and detecting anomalies. To detect anomalies, an expected value and expected range of values are predicted using a set of historical values and compared with the time series values. Seasonality is also accounted for by determining a seasonality indicator for the set of historical values. However, in this publication, training is performed based on historical data and can take a long time, and the absence of overfitting does not guarantee adaptability to new time series.
Существующие решения для поиска аномалий в потоке телеметрии на основании временных рядов не позволяют адаптироваться к новым категориям временных рядов в режиме реального времени. Например, временные ряды, основанные на значениях времени входа пользователей на страницу сайта, могут быть разных категорий, таких как временные ряды рабочих часов и нерабочих часов. У каждой категории временного ряда разный порог аномальных значений: в рабочее время на сайт заходит меньше пользователей, поэтому и порог для такого ряда ниже. Таким образом, возможны ситуации, когда для временных рядов, построенных на основании одной и той же телеметрии, выявление аномалий необходимо осуществлять с использованием порогового значения, которое зависит от контекста сбора телеметрии. Существующие решения не позволяют решить указанную задачу. Предлагаемое решение обеспечивает возможность обнаружения аномалий в потоке телеметрии с учетом всех изложенных особенностей, связанных с анализом телеметрии. Existing solutions for detecting anomalies in telemetry streams based on time series are unable to adapt to new time series categories in real time. For example, time series based on user login times on a website page may have different categories, such as business hours and non-business hours time series. Each time series category has a different threshold for detecting anomalies: fewer users visit the site during business hours, so the threshold for such a series is lower. Therefore, situations may arise where, for time series constructed from the same telemetry, anomaly detection must be performed using a threshold that depends on the telemetry collection context. Existing solutions are unable to address this issue. The proposed solution enables anomaly detection in a telemetry stream, taking into account all the described features related to telemetry analysis.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Заявленное изобретение направлено на улучшение выявления аномалий в потоке телеметрии за счет разделения потока телеметрии на временные ряды, расчета диапазона ожидаемых значений временных рядов на основе исторических данных и обновления диапазонов ожидаемых значений на основе каждого последующего значения временного ряда. Также в данном изобретении используется подход, который позволяет обнаружить аномалии на основании сравнения каждого текущего значения каждого временного ряда с соответствующим рассчитанным ожидаемым значением.The claimed invention aims to improve anomaly detection in a telemetry stream by dividing the telemetry stream into time series, calculating the range of expected time series values based on historical data, and updating the ranges of expected values based on each subsequent value in the time series. The invention also utilizes an approach that enables anomaly detection by comparing each current value of each time series with the corresponding calculated expected value.
Технический результат заключается в повышении точности определения аномалий во временных рядах потоков телеметрии за счет расчета диапазонов ожидаемых значений временного ряда, а именно за счет обновления диапазонов ожидаемых значений для каждого последующего значения каждого временного ряда. The technical result consists in increasing the accuracy of determining anomalies in time series of telemetry streams by calculating ranges of expected values of the time series, namely by updating the ranges of expected values for each subsequent value of each time series.
Согласно варианту реализации, используется способ поиска аномалий в потоке телеметрии, включающий в себя этапы, на которых: получают запрос на сбор данных, который включает в себя по меньшей мере следующую информацию: набор полей, в рамках которых формируют временные ряды, период проведения пересчета диапазона ожидаемых значений для каждого временного ряда, период проведения поиска аномалий в каждом временном ряду, пороговое значение, на основании превышения которого значение считают аномалией в каждом временном ряду; получают актуальный диапазон ожидаемых значений для временных рядов, соответствующих полученному запросу; собирают данные согласно полученному запросу за интервал времени, равный периоду проведения поиска аномалий; формируют по меньшей мере один временной ряд на основании собранных данных для указанного в запросе диапазона полей; выявляют аномалию в собранных данных на основании сравнения каждого текущего значения каждого сформированного временного ряда с актуальным диапазоном ожидаемых значений для соответствующего временного ряда с учетом порогового значения, при этом пересчитывают актуальный диапазон ожидаемых значений для временных рядов на основании каждого текущего значения соответствующего временного ряда.According to an embodiment, a method for searching for anomalies in a telemetry stream is used, which includes the following steps: receiving a data collection request that includes at least the following information: a set of fields within which time series are formed, a period for recalculating the range of expected values for each time series, a period for searching for anomalies in each time series, a threshold value, based on the excess of which the value is considered an anomaly in each time series; obtaining an actual range of expected values for the time series corresponding to the received request; collecting data according to the received request for a time interval equal to the period of searching for anomalies; forming at least one time series based on the collected data for the range of fields specified in the request; detecting an anomaly in the collected data based on a comparison of each current value of each formed time series with the actual range of expected values for the corresponding time series, taking into account the threshold value, while recalculating the actual range of expected values for the time series based on each current value of the corresponding time series.
Согласно частному варианту реализации при получении актуального диапазона ожидаемых значений проверяют наличие ранее рассчитанного диапазона ожидаемых значений и определяют, что он является актуальным, если выполняется каждое из следующих условий: запрос не является новым; время перерасчета, которое определяется на основании указанного в запросе периода проведения пересчета диапазонов ожидаемы значений, не наступило.According to a particular embodiment of the invention, when receiving the current range of expected values, the presence of a previously calculated range of expected values is checked and it is determined that it is current if each of the following conditions is met: the request is not new; the recalculation time, which is determined on the basis of the period for recalculating the ranges of expected values specified in the request, has not arrived.
Согласно другому частному варианту реализации при отсутствии актуального диапазона ожидаемых значений выполняют этапы, на которых: собирают данные по запросу за исторический промежуток времени; формируют по меньшей мере один временной ряд на основании собранных данных за исторический промежуток времени; рассчитывают диапазон ожидаемых значений для каждого временного ряда.According to another particular embodiment, in the absence of a current range of expected values, the following steps are performed: collecting data on request for a historical period of time; forming at least one time series based on the collected data for the historical period of time; calculating the range of expected values for each time series.
Согласно еще одному варианту реализации упомянутый временной ряд при расчете диапазона ожидаемых значений разбивают на периодические составляющие на основании значений разбиения каждого временного ряда из запроса.According to another embodiment, the said time series is divided into periodic components when calculating the range of expected values based on the partition values of each time series from the query.
Согласно еще одному варианту реализации упомянутый диапазон ожидаемых значений формируется на основании первого математического ожидания и второго математического ожидания временного ряда.According to another embodiment, the said range of expected values is formed on the basis of the first mathematical expectation and the second mathematical expectation of the time series.
Согласно другому частному варианту реализации наличие аномалии определяется при превышении отклонения по меньшей мере одного значения в одном временном ряду порогового значения, указанного в полученном запросе.According to another particular embodiment, the presence of an anomaly is determined when the deviation of at least one value in one time series exceeds a threshold value specified in the received request.
Согласно другому частному варианту реализации после выявления аномалии во временном ряду отправляют уведомление о выявленной аномалии на устройство пользователя, на котором был сформирован запрос.According to another particular implementation option, after an anomaly is detected in a time series, a notification about the detected anomaly is sent to the user's device on which the request was generated.
Согласно еще одному частному варианту реализации система поиска аномалий в потоке телеметрии, которая включает: средство сбора данных, предназначенное для получения запросов на сбор данных, которые включают в себя по меньшей мере следующую информацию: набор полей, в рамках которых формируют временные ряды, период проведения пересчета диапазона ожидаемых значений для каждого временного ряда, период проведения поиска аномалий в каждом временном ряду, пороговое значение, на основании превышения которого значение считают аномалией в каждом временном ряду и передачи запросов средству расчета диапазона ожидаемых значений и средству формирования временных рядов; средство расчета диапазонов ожидаемых значений, предназначенное для формирования временных рядов, на основании собранных данных для указанного в запросе диапазона полей, расчета диапазона ожидаемых значений для каждого временного ряда запроса и передачи запросов и диапазонов ожидаемых значений для каждого временного ряда средству формирования временных рядов; средство формирования временных рядов, предназначенное для формирования временных рядов и передачи их и запросов средству анализа значений временного ряда; средство анализа значений временного ряда, предназначенное для выявления аномалии в собранных данных на основании сравнения каждого текущего значения каждого сформированного временного ряда с актуальным диапазоном ожидаемых значений для соответствующего временного ряда с учетом порогового значения, а также для пересчета актуального диапазона ожидаемых значений для временных рядов на основании каждого текущего значения соответствующего временного ряда.According to another particular embodiment, a system for searching for anomalies in a telemetry stream, which includes: a data collection means intended for receiving requests for collecting data, which include at least the following information: a set of fields within which time series are formed, a period for recalculating the range of expected values for each time series, a period for searching for anomalies in each time series, a threshold value, based on the excess of which a value is considered an anomaly in each time series, and transmitting requests to a means for calculating the range of expected values and a means for generating time series; a means for calculating the ranges of expected values, intended for generating time series, based on the collected data for the range of fields specified in the request, calculating the range of expected values for each time series of the request and transmitting the requests and ranges of expected values for each time series to the means for generating time series; a means for generating time series, intended for generating time series and transmitting them and requests to a means for analyzing time series values; a time series value analysis tool designed to detect anomalies in collected data by comparing each current value of each generated time series with the current range of expected values for the corresponding time series, taking into account a threshold value, and to recalculate the current range of expected values for the time series based on each current value of the corresponding time series.
Согласно другому частному варианту реализации средство расчета ожидаемых значений дополнительно проверяет наличие ранее рассчитанного диапазона ожидаемых значений и определяет, что он является актуальным, если выполняется каждое из следующих условий: запрос не является новым; время перерасчета, которое определяется на основании указанного в запросе периода проведения пересчета диапазонов ожидаемы значений, не наступило.According to another particular embodiment, the means for calculating expected values additionally checks for the existence of a previously calculated range of expected values and determines that it is current if each of the following conditions is met: the request is not new; the recalculation time, which is determined on the basis of the period for recalculating the ranges of expected values specified in the request, has not arrived.
Согласно другому частному варианту реализации при отсутствии актуального диапазона ожидаемых значений средство расчета ожидаемых значений выполняет этапы, на которых: собирают данные по запросу за исторический промежуток времени; формируют по меньшей мере один временной ряд на основании собранных данных за исторический промежуток времени; рассчитывают диапазон ожидаемых значений для каждого временного ряда.According to another particular embodiment, in the absence of a current range of expected values, the means for calculating expected values performs the following steps: collecting data on request for a historical period of time; forming at least one time series based on the collected data for the historical period of time; calculating the range of expected values for each time series.
Согласно еще одному частному варианту реализации упомянутый временной ряд при расчете диапазона ожидаемых значений разбивают на периодические составляющие на основании значений разбиения каждого временного ряда из запроса.According to another particular embodiment, the said time series is divided into periodic components when calculating the range of expected values based on the partition values of each time series from the query.
Согласно другому частному варианту реализации упомянутый диапазон ожидаемых значений формируется на основании первого математического ожидания и второго математического ожидания временного ряда.According to another particular embodiment, the said range of expected values is formed on the basis of the first mathematical expectation and the second mathematical expectation of the time series.
Согласно другому частному варианту реализации наличие аномалии определяется при превышении отклонения по меньшей мере одного значения в одном временном ряду порогового значения, указанного в полученном запросе.According to another particular embodiment, the presence of an anomaly is determined when the deviation of at least one value in one time series exceeds a threshold value specified in the received request.
Согласно другому частному варианту реализации после выявления аномалии во временном ряду отправляют уведомление о выявленной аномалии на устройство пользователя, на котором был сформирован запрос.According to another particular implementation option, after an anomaly is detected in a time series, a notification about the detected anomaly is sent to the user's device on which the request was generated.
Краткое описание чертежейBrief description of the drawings
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objects, features and advantages of the present invention will be apparent from reading the following description of the embodiment of the invention with reference to the accompanying drawings, in which:
На Фиг. 1 представлен пример реализации системы обнаружения аномалий в потоке телеметрии. Fig. 1 shows an example of the implementation of a system for detecting anomalies in a telemetry stream.
На Фиг. 2 представлен пример проведения расчета диапазона ожидаемых значений. Fig. 2 shows an example of calculating the range of expected values.
На Фиг. 3 представлена блок-схема, иллюстрирующая способ обнаружения аномалий в потоке телеметрии.OnFig. 3presented A flowchart illustrating a method for detecting anomalies in a telemetry stream.
На Фиг. 4 представлена блок-схема, иллюстрирующая способ проведения поиска аномалий.OnFig. 4presented A flow chart illustrating how to conduct an anomaly search.
На Фиг. 5 представлен пример компьютерной системы общего назначения. Fig. 5 shows an example of a general-purpose computer system.
Осуществление изобретенияImplementation of the invention
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящее изобретение не ограничивается иными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы. The objects and features of the present invention, and methods for achieving these objects and features, will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the embodiments disclosed below; it may be embodied in various forms. The substance given in the description is nothing more than specific details provided to assist those skilled in the art in a comprehensive understanding of the invention, and the present invention is defined within the scope of the appended claims.
На Фиг. 1 представлена система обнаружения аномалий в потоке телеметрии 101, которая реализуется по меньшей мере на одном устройстве 102. Fig. 1 shows a system for detecting anomalies in a telemetry stream 101 , which is implemented on at least one device 102 .
Потоком телеметрии являются данные, которые представляются в виде временного ряда. Поток телеметрии отслеживают такие системы, например, как: система обнаружения спам-рассылок (модуль Анти-Спам от Kaspersky, Who calls, Call Blocker), система отслеживания ошибок (YouTrack, SpireTeam, Jira Software).A telemetry stream is data presented as a time series. Telemetry streams are monitored by systems such as spam detection systems (Kaspersky Anti-Spam, Who Calls, Call Blocker) and error tracking systems (YouTrack, SpireTeam, Jira Software).
Примерами данных, которые требуется анализировать для выявления аномалий, являются данные из указанных источников, представляющие собой информацию о работе устройств.Examples of data that need to be analyzed to detect anomalies include data from the specified sources that represent information about the operation of devices.
Устройство 102 осуществляет сбор данных потоков телеметрии с устройств 103 через компьютерную сеть 104 и при помощи системы обнаружения аномалий в потоке телеметрии 101 (далее также – система 101) формирует для каждого полученного запроса временные ряды, для которых рассчитывает диапазоны ожидаемых значений, на основании которых обнаруживает аномалии во временных рядах. Кроме того, осуществляется подстраивание ожидаемого значения под каждое следующее наблюдаемое (возникающие) значение временного ряда. Device 102collects telemetry stream data from devices103via a computer network104and using a system for detecting anomalies in the telemetry stream101(hereinafter also referred to as the system101) For each received request, it generates time series for which it calculates ranges of expected values, which are used to detect anomalies in the time series. Furthermore, the expected value is adjusted to each subsequent observed (emerging) value in the time series.
Как указано выше, система 101 формирует временной ряд данных в рамках полученного запроса на сбор данных в потоке телеметрии. Полученный запрос на сбор данных предварительно может быть сформирован либо пользователем (оператором), либо системой (в частности, удаленной, не показана на Фиг. 1), предназначенной для формирования запросов. Полученный запрос сформирован таким образом, что в нем указано, на основании каких полей собирать агрегированную статистику (данные) во времени. Далее из значений для различных полей формируют отдельные временные ряды в рамках запроса. Например, в виде временного ряда предоставляются данные о производительности устройств в сети, таких как маршрутизатор, коммутатор, сервер и т.д.As noted above, system 101 generates a time series of data within the received data collection request in the telemetry stream. The received data collection request may be pre-formed either by the user (operator) or by a system (in particular, a remote system, not shown in Fig. 1 ) designed to generate requests. The received request is configured in such a way that it specifies the fields based on which aggregated statistics (data) will be collected over time. Individual time series are then formed from the values for the various fields within the request. For example, data on the performance of network devices, such as routers, switches, servers, etc., is provided as a time series.
Каждый запрос включает в себя по меньшей мере следующую информацию:Each request includes at least the following information:
• набор полей, в рамках которых формируют временные ряды;• a set of fields within which time series are formed;
• период проведения пересчета диапазона ожидаемых значений для каждого временного ряда; • the period for recalculating the range of expected values for each time series;
• период проведения поиска аномалий в каждом временном ряду;• the period of searching for anomalies in each time series;
• пороговое значение, превышение которого считается аномалией в каждом временном ряду; • a threshold value, the excess of which is considered an anomaly in each time series;
• значения разбиения временного ряда на периодические составляющие;• values of dividing a time series into periodic components;
• время получения запроса.• time of receipt of the request.
Например, полями, в рамках которых формируются временные ряды, могут быть такие поля, как «клиенты», «регион», «клиенты + регион».For example, the fields within which time series are formed may be fields such as “clients”, “region”, “clients + region”.
В предпочтительном варианте реализации устройство 102 является сервером. Устройствами 103 являются, например, компьютерные системы, которые размещают данные и хранят их. В еще одном варианте реализации устройства 103 представляют собой любые компьютерные устройства пользователя, включая ПК, ноутбуки, мобильные устройства. In a preferred embodiment, device 102 is a server. Devices 103 are, for example, computer systems that host and store data. In another embodiment, devices 103 are any user-provided computing devices, including PCs, laptops, and mobile devices.
В частном варианте реализации устройства 102 и 103 могут располагаться в одной сети. В таком варианте реализации устройство 102 может быть выполнено в виде сервера или компьютера общего назначения, на котором реализована указанная система 101.In a particular embodiment, devices 102 and 103 may be located on the same network. In such an embodiment, device 102 may be implemented as a server or general-purpose computer on which said system 101 is implemented.
Примерами устройств 102 и устройства 103 также могут являться IoT-устройства (от англ. Industrial Internet of Things), ECU-модули (от англ. Electronic Control Unit) или компьютерные системы, например такая, как система, представленная на Фиг. 5. Взаимодействие устройств 103 с устройством 102 осуществляется как по проводной связи, так и по беспроводной связи, например через компьютерную сеть 104. В одном из вариантов реализации компьютерная сеть 104 представляет собой один из локальных сетевых узлов сети Интернет. Еще одним примером компьютерной сети 104 может являться вся сеть Интернет.Examples of devices 102 and device 103 may also include IoT devices (Industrial Internet of Things), ECU modules (Electronic Control Units), or computer systems, such as the system shown in Fig. 5. Devices 103 interact with device 102 both via wired and wireless communications, such as via computer network 104. In one embodiment, computer network 104 is one of the local network nodes of the Internet. Another example of computer network 104 may be the entire Internet.
Система обнаружения аномалий в потоке телеметрии 101 включает в себя средство сбора данных 110, средство расчета диапазонов ожидаемых значений 120 и средство обнаружения аномалий 130, которое, в свою очередь, включает в себя средство формирования временных рядов 140 и средство анализа значений временного ряда 150. В зависимости от варианта реализации, система 101 может быть реализована как в рамках одного устройства 102, так и быть распределенной системой, реализованной на нескольких устройствах, таких как устройство 102.The telemetry stream anomaly detection system 101 includes a data collection means 110 , a means for calculating ranges of expected values 120 , and an anomaly detection means 130 , which in turn includes a time series generation means 140 and a time series value analysis means 150. Depending on the implementation option, the system 101 can be implemented within a single device 102 , or be a distributed system implemented on several devices, such as device 102 .
Средство сбора данных (далее – средство сбора) 110 предназначено для взаимодействия с устройствами 103 через сеть 104, для получения запросов на сбор данных потока телеметрии из списка запросов и их передачи средству расчета диапазонов ожидаемых значений 120, а также для сбора данных потока телеметрии и их передачи средству расчета диапазона ожидаемых значений 120 и средству формирования временных рядов 140. Список с запросами состоит по меньшей мере из одного запроса. The data collection means (hereinafter referred to as the collection means) 110 is intended for interaction with the devices 103 via the network 104 , for receiving requests for collecting telemetry stream data from the request list and transmitting them to the means for calculating the ranges of expected values 120 , as well as for collecting telemetry stream data and transmitting them to the means for calculating the range of expected values 120 and the means for generating time series 140. The list of requests consists of at least one request.
В частном случае реализации средство сбора 110 получает от устройств 103 через сеть 104 список с запросами на сбор данных и передает по очереди каждый из запросов средству расчета диапазонов ожидаемых значений 120. Работа рассматриваемой системы осуществляется на основании двух этапов: предварительный этап и этап обнаружения. На первом (предварительном) этапе выполняется определение диапазонов ожидаемых значений для каждого временного ряда, сформированного для запроса. На втором этапе (этапе обнаружения) выполняется поиск аномалий во временных рядах потока телеметрии на основании диапазонов ожидаемых значений. На основании результатов, полученных на втором этапе, выполняется пересчет диапазонов ожидаемых значений.In a particular implementation, collection means 110 receives a list of data collection requests from devices 103 via network 104 and transmits each request in turn to expected value range calculator 120. The system operates in two stages: a preliminary stage and a detection stage. In the first (preliminary) stage, expected value ranges are determined for each time series generated for the request. In the second stage (detection stage), anomalies are searched for in the telemetry stream time series based on the expected value ranges. Based on the results obtained in this second stage, the expected value ranges are recalculated.
Предварительный этапPreliminary stage
Средство расчета диапазонов ожидаемых значений (далее – средство расчета) 120 предназначено для определения диапазонов ожидаемых значений для каждого временного ряда, сформированного для запроса. Для этого средство расчета 120 на основании полученных от средства 110 исторических данных, собранных для указанного в запросе набора полей, формирует временные ряды. Затем средство расчета 120 для каждого сформированного временного ряда рассчитывает диапазон ожидаемых значений и передает рассчитанные диапазоны вместе с запросами средству обнаружения аномалий 130. Expected value range calculator (hereinafter referred to as calculator) 120 is designed to determine expected value ranges for each time series generated for a query. To do this, calculator 120 generates time series based on historical data collected for the set of fields specified in the query, obtained from calculator 110. Calculator 120 then calculates a range of expected values for each generated time series and transmits the calculated ranges, along with the queries, to anomaly detection tool 130 .
При этом сначала средство расчета 120 для каждого временного ряда, соответствующего полученному запросу, проверяет наличие ранее рассчитанного диапазона ожидаемых значений и определяет, является ли он актуальным. Ранее рассчитанный диапазон ожидаемых значений является актуальным, если выполняется каждое из следующих условий: First, the calculation tool 120 checks for the presence of a previously calculated range of expected values for each time series corresponding to the received request and determines whether it is current. A previously calculated range of expected values is current if each of the following conditions is met:
• запрос не является новым; • the request is not new;
• время пересчета, которое определяется на основании указанного в запросе периода проведения пересчета диапазонов ожидаемых значений, не наступило.• the recalculation time, which is determined on the basis of the period for recalculating the ranges of expected values specified in the request, has not arrived.
Запрос считается новым, если средство сбора 110 получило его впервые. Также запрос считается новым, если в любой своей части он отличается от предыдущего. Например, средство сбора 110 получило запрос, у которого от ранее присланного запроса отличается только одно поле в наборе полей, в разрезе которых будут формироваться временные ряды. Например, поле «клиенты» поменялось на поле «клиенты + регион». Изменение полей запроса приводит к изменению сформированных временных рядов, из-за чего, в свою очередь, изменяются и, соответственно, подлежат пересчету диапазоны ожидаемых значений. A request is considered new if it is the first time the 110 data collection tool has received it. A request is also considered new if any part of it differs from the previous request. For example, data collection tool 110 received a request that differs from the previously submitted request in only one field in the set of fields used to generate the time series. For example, the "clients" field was changed to "clients + region." Changing the request fields changes the generated time series, which in turn changes and, accordingly, requires recalculation of the expected value ranges.
Время пересчета по запросу определяется значением периода проведения пересчета диапазона ожидаемых значений для временного ряда, указанным в информации запроса. Например, условием наступления времени пересчета является выполнение следующего неравенства: The recalculation time for a request is determined by the recalculation period for the range of expected values for the time series, specified in the request information. For example, the condition for the recalculation time to occur is the fulfillment of the following inequality:
[Tnow – Tlast] > Trequest, где:[T now – T last ] > T request , where:
• Tnow – текущий момент времени;• T now – current moment in time;
• Tlast – момент времени, когда в последний раз пересчитывали диапазон ожидаемых значений для текущего запроса;• T last – the point in time when the range of expected values for the current request was last recalculated;
• Trequest – период проведения пересчета диапазона ожидаемых значений.• T request – the period for recalculating the range of expected values.
Например, для запроса необходимо пересчитывать диапазон ожидаемых значений раз в месяц, тогда период проведения пересчета «Trequest» будет задаваться как «30D», т.е. 30 дней.For example, if a request requires recalculating the range of expected values once a month, then the recalculation period “T request ” will be set as “30D”, i.e. 30 days.
В случае если неравенство не выполняется, пересчет диапазонов ожидаемых значений не требуется и для определения аномалий будут использоваться ранее рассчитанные значения из базы данных ожидаемых значений (не изображено на Фиг. 1). В этом случае средство расчета 120 передает запрос средству обнаружения аномалий 130. В ином случае (если неравенство выполняется) средство расчета 120 рассчитает диапазон ожидаемых значений заново. Для этого средство расчета 120 запрашивает сбор данных потока телеметрии у средства сбора 110 на основании информации из запроса за исторический промежуток времени и формирует по меньшей мере один временной ряд. В рамках описания под историческим промежутком времени понимается по меньшей мере один прошедший промежуток времени. Для каждого временного ряда средство расчета 120 рассчитывает диапазон ожидаемых значений. Диапазон ожидаемых значений формируется на основании первого и второго момента (математических ожиданий) временного ряда. Для расчета диапазона ожидаемых значений временной ряд, в свою очередь, разбивается на периодические составляющие на основании значений разбиения временного ряда из запроса. Например, значения разбиения могут быть следующими: только выходные дни, только будние дни, только по вторникам, только по средам в 18:00, каждый день в 12:00 или значение может отсутствовать. В случае отсутствия значения разбиения, берутся все значения из указанного временного ряда.If the inequality is not satisfied, recalculation of the ranges of expected values is not required, and previously calculated values from the expected value database (not shown in Fig. 1 ) will be used to determine anomalies. In this case, calculation tool 120 transmits a request to anomaly detection tool 130. Otherwise (if the inequality is satisfied), calculation tool 120 will recalculate the range of expected values. For this purpose, calculation tool 120 requests the collection of telemetry stream data from collection tool 110 based on the information from the request for a historical period of time and forms at least one time series. Within the framework of the description, a historical period of time is understood to be at least one past period of time. For each time series, calculation tool 120 calculates the range of expected values. The range of expected values is formed based on the first and second moments (mathematical expectations) of the time series. To calculate the range of expected values, the time series, in turn, is divided into periodic components based on the values of the time series partition from the request. For example, the partition values can be as follows: weekends only, weekdays only, Tuesdays only, Wednesdays only at 6:00 PM, every day at 12:00 PM, or no value. If a partition value is missing, all values from the specified time series are taken.
На Фиг. 2 представлен пример проведения расчета диапазона ожидаемых значений. Для проведения расчета собираются данные (X1 – Xn) за прошедший промежуток времени (T1 – Tn). На Фиг. 2 показаны два временных ряда: начальный (временной ряд 1) и последний (временной ряд k). Значения (X1 – Xn) из каждого временного ряда берутся согласно информации из запроса. В данном случае временные значения (X1 – Xn-1) зеленого цвета соответствуют агрегированной статистике за период с 11:00 до 12:00, временные значения (X2 – Xn) синего цвета соответствуют агрегированной статистике за период с 17:00 до 18:00, а временные значения (Xn-1 – Xn) красного цвета соответствуют выходному дню. Для каждого временного ряда 1 – k на основании выделенных значений (X1 – Xn) рассчитывается первый момент (математическое ожидание) и второй момент временного ряда. На основании первого и второго моментов формируется диапазон ожидаемых значений. Например, для каждой периодической составляющей с помощью метода моментов получают распределение величин, на базе которого и формируется диапазон ожидаемых значений. Fig. 2 shows an example of calculating the range of expected values. To perform the calculation, data (X1 – Xn) are collected for the past time period (T1 – Tn). Fig. 2 shows two time series: the initial (time series 1) and the last (time series k). The values (X1 – Xn) from each time series are taken according to the information from the request. In this case, the green time values (X1 – Xn-1) correspond to the aggregated statistics for the period from 11:00 to 12:00, the blue time values (X2 – Xn) correspond to the aggregated statistics for the period from 17:00 to 18:00, and the red time values (Xn-1 – Xn) correspond to a day off. For each time series 1 – k, the first moment (mathematical expectation) and the second moment of the time series are calculated based on the selected values (X1 – Xn). The range of expected values is formed based on the first and second moments. For example, for each periodic component, using the method of moments, a distribution of values is obtained, on the basis of which a range of expected values is formed.
Средство расчета 120 передает запросы и диапазоны ожидаемых значений для каждого временного ряда средству обнаружения аномалий 130.The calculator 120 passes the queries and ranges of expected values for each time series to the anomaly detector 130 .
Этап обнаруженияDetection stage
Средство обнаружения аномалий 130 предназначено для поиска аномалий во временных рядах потока телеметрии. Средство обнаружения аномалий 130 состоит из средства формирования временных рядов 140 и средства анализа значений временного ряда 150. Anomaly detection tool 130 is designed to detect anomalies in telemetry stream time series. Anomaly detection tool 130 consists of a time series generator 140 and a time series value analyzer 150.
Средство формирования временных рядов (далее – средство формирования) 140 предназначено для взаимодействия со средством сбора 110, формирования временных рядов и передачи их и запросов средству анализа значений временного ряда 150. The time series generation tool (hereinafter referred to as the generation tool) 140 is intended for interaction with the collection tool 110 , generation of time series and transmission of them and requests to the time series value analysis tool 150 .
Сначала средство формирования 140 определяет необходимость в проведении поиска аномалий в каждом временном ряду запроса. Таким образом средство формирования 140 выявляет те временные ряды в запросе, для которых настало время проводить поиск аномалий. Необходимость определяется на основании выполнения следующего неравенства: First, the generation tool 140 determines whether anomaly detection is required for each query time series. Thus, the generation tool 140 identifies those time series in the query for which it is time to perform anomaly detection. This determination is based on the following inequality:
[Tnow – Tlast] > Trequest, где:[T now – T last ] > T request , where:
• Tnow – текущий момент времени;• T now – current moment in time;
• Tlast – момент времени, когда в последний раз проводили поиск аномалий для текущего запроса;• T last – the point in time when the anomaly search was last performed for the current query;
• Trequest – период проведения поиска аномалий.• T request – the period for searching for anomalies.
При отсутствии необходимости в проведении поиска аномалий в каждом временном ряду запроса переходят к следующему запросу. В ином случае средство формирования 140 запрашивает сбор данных потока телеметрии у средства сбора 110 на основании информации из запроса за интервал времени, равный периоду проведения поиска аномалий, и формирует по меньшей мере один временной ряд на основании собранных данных для указанного в запросе набора полей. If there is no need to search for anomalies in each time series, the query moves on to the next query. Otherwise, the generation tool140requests collection of stream data telemetry at the collection facility110based on the information from the query for a time interval equal to the period of the anomaly search, and forms at least one time series based on the collected data for the set of fields specified in the query.
Средство формирования 140 передает запросы и сформированные временные ряды средству анализа значений временного ряда 150.The generation tool 140 transmits the queries and generated time series to the time series value analysis tool 150 .
Средство анализа значений временного ряда (далее – средство анализа) 150 предназначено для анализа временных рядов и передачи результата анализа средству расчета 120. The time series value analysis tool (hereinafter referred to as the analysis tool) 150 is intended for analyzing time series and transmitting the analysis result to the calculation tool 120.
Средство анализа 150 проводит анализ значений отдельно для каждого временного ряда следующим образом: каждое текущее значение каждого сформированного временного ряда сравнивается с диапазоном ожидаемых значений для соответствующего временного ряда. Если по меньшей мере одно значение временного ряда выходит за рамки диапазона, при этом разница между текущим значением и ожидаемым значением превышает пороговое значение, а также выполняются дополнительные условия (которые, например, могут быть заданы в конфигурационном файле), то средство анализа 150 выявляет аномалию и отправляет уведомление об аномалии на устройство пользователя, на котором был сформирован запрос. Пороговое значение устанавливается либо в рамках запроса, либо, в случае необходимости, для конкретного временного ряда отдельно (например, если при анализе значений определенного временного ряда появляется необходимость увеличить заданное в запросе пороговое значение). Кроме того, пороговое значение может быть также определено опытным путем или задано пользователем, обладающим определенными знаниями.The analysis tool 150 analyzes the values separately for each time series as follows: each current value of each generated time series is compared to a range of expected values for the corresponding time series. If at least one value of the time series is outside the range, and the difference between the current value and the expected value exceeds a threshold, and additional conditions are met (which, for example, can be specified in a configuration file), the analysis tool 150 detects an anomaly and sends an anomaly notification to the user device on which the request was generated . The threshold value is set either within the request or, if necessary, separately for a specific time series (for example, if, when analyzing the values of a specific time series, it becomes necessary to increase the threshold value specified in the request). In addition, the threshold value can also be determined empirically or specified by a user with certain knowledge.
Дополнительные условия могут быть указаны отдельно для каждого временного ряда в конфигурационном файле. В виде дополнительного условия может быть задано уточненное пороговое значение для определенной ситуации. Например, во временном ряду, значения которого варьируются вокруг значения 10, появляется текущее значение 100, при этом в дополнительных условиях указано, что разовый всплеск до 100 является допустимым. Таким образом, значение 100 выходит за диапазон ожидаемых значений и должно быть определено как аномалия. Однако в данном случае оно не будет являться аномалией согласно дополнительному условию.Additional conditions can be specified separately for each time series in the configuration file. An additional condition can be used to specify a more precise threshold value for a specific situation. For example, in a time series whose values fluctuate around 10, a current value of 100 appears, although the additional conditions specify that a one-time spike to 100 is acceptable. Therefore, the value 100 is outside the expected range and should be considered an anomaly. However, in this case, it would not be considered an anomaly according to the additional condition.
Также в дополнительных условиях может быть задано пороговое значение для группы временных рядов. Например, в общем случае при анализе сервисов аномалией является отклонение значения временного ряда от диапазона ожидаемых значений только в 3 раза и в запросе указывается пороговое значение, требуемое для общего случая, но для группы критических сервисов аномалией, которая требует уведомления, является отклонение уже в 1.5 раза. Поэтому в дополнительных условиях для группы критических сервисов будет указано свое пороговое значение.A threshold value for a time series group can also be specified in additional conditions. For example, in a general case of service analysis, an anomaly is defined as a time series value deviating from the expected value range by only a factor of 3, and the threshold required for the general case is specified in the request. However, for a group of critical services, an anomaly requiring notification is a deviation of 1.5 times. Therefore, a specific threshold value will be specified in the additional conditions for the critical service group.
После этого средство анализа 150 отправляет результат анализа каждого текущего значения каждого сформированного временного ряда и каждое текущее значение каждого сформированного временного ряда на средство расчета диапазона ожидаемых значений 120. Средство расчета 120 обновляет диапазон ожидаемых значений для каждого текущего значения каждого сформированного временного ряда на основании каждого текущего значения соответствующего временного ряда. Обновление диапазона ожидаемых значений необходимо проводить после анализа каждого текущего значения каждого сформированного временного ряда. Обновленные ожидаемые значения позволяют системе адаптироваться к каждому следующему значению во временном ряду. Использование моментов позволяет обновлять диапазон ожидаемых значений в реальном времени и при этом не хранить предыдущие значения. В частном случае реализации каждому моменту присваивается весовой коэффициент и при расчете момента для каждого текущего значения временного ряда учитываются моменты для каждого предыдущего значения временного ряда, которые взяты с их весовым коэффициентом. Момент для каждого текущего значения временного ряда рассчитывается по следующей формуле: где:After this, the analysis tool 150 sends the result of the analysis of each current value of each generated time series and each current value of each generated time series to the expected value range calculator 120. The calculator 120 updates the expected value range for each current value of each generated time series based on each current value of the corresponding time series. The expected value range must be updated after analyzing each current value of each generated time series. The updated expected values allow the system to adapt to each subsequent value in the time series. The use of moments allows updating the expected value range in real time without storing previous values. In a particular implementation case, each moment is assigned a weighting coefficient, and when calculating the moment for each current value of the time series, the moments for each previous value of the time series, taken with their weighting coefficient, are taken into account. The moment for each current value of the time series is calculated using the following formula: Where:
• - момент для текущего значения временного ряда;• - the moment for the current value of the time series;
• - момент для предыдущего значения временного ряда;• - the moment for the previous value of the time series;
• - вес момента для текущего значения временного ряда;• - the weight of the moment for the current value of the time series;
• - вес момента для предыдущего значения временного ряда.• - the weight of the moment for the previous value of the time series.
Данный вариант расчета моментов делает систему адаптивной к каждому новому значению временного ряда с помощью возможности изменения весовых коэффициентов для каждого из моментов. This option for calculating moments makes the system adaptive to each new value of the time series by allowing the weighting coefficients to be changed for each moment.
В частном случае реализации после каждого выявления аномалии и уведомления об этом пользователя для каждой системы выполняются заданные действия. Например, в случае отслеживания аномалий по сервисам уведомления об аномалиях получают устройства (компьютерные системы) пользователей, которые, например, отвечают за поддержку и разработку и которые впоследствии решают задачу устранения ошибок и последствий. В другом примере, в случае отслеживания спама, уведомления об аномалиях приходят на устройства пользователей, которые осуществляют дополнительную оценку спам-рассылки и используют полученную информацию для создания правил для дальнейшей блокировки писем из схожей рассылки.In a specific implementation scenario, after each anomaly is detected and a user is notified, predefined actions are performed for each system. For example, in the case of anomaly tracking across services, anomaly notifications are sent to the devices (computer systems) of users responsible for, for example, support and development, who subsequently resolve the errors and consequences. In another example, in the case of spam tracking, anomaly notifications are sent to the devices of users who perform additional spam email evaluation and use the information received to create rules for further blocking of emails from similar email campaigns.
На Фиг. 3 представлен способ обнаружения аномалий в потоке телеметрии. Fig. 3 shows a method for detecting anomalies in a telemetry stream.
На этапе 310 с помощью средства сбора 110 получают запрос на сбор данных. Полученный запрос сформирован таким образом, что в нем указано, на основании каких полей собирать агрегированную статистику (данные) во времени. Далее из значений для различных полей формируют отдельные временные ряды в рамках запроса. Каждый запрос включает в себя по меньшей мере следующую информацию:At step 310, a data collection request is received using collection tool 110. The received request is configured to specify which fields to use to collect aggregated statistics (data) over time. Individual time series are then formed from the values for the various fields within the request. Each request includes at least the following information:
• набор полей, в рамках которых формируют временные ряды;• a set of fields within which time series are formed;
• период проведения пересчета диапазона ожидаемых значений для каждого временного ряда; • the period for recalculating the range of expected values for each time series;
• период проведения поиска аномалий в каждом временном ряду;• the period of searching for anomalies in each time series;
• пороговое значение, превышение которого считается аномалией в каждом временном ряду; • a threshold value, the excess of which is considered an anomaly in each time series;
• значения разбиения временного ряда на периодические составляющие;• values of dividing a time series into periodic components;
• время получения запроса.• time of receipt of the request.
В частном случае реализации с помощью средства сбора 110 от устройств 103 через сеть 104 получают список с запросами на сбор данных и передают по очереди каждый из запросов средству расчета диапазонов ожидаемых значений 120 на следующий этап. Список с запросами состоит по меньшей мере из одного запроса.In a particular implementation case, a list of data collection requests is received from devices 103 via network 104 using collection means 110 , and each request is transmitted in turn to the expected value range calculator 120 for the next step. The list of requests consists of at least one request.
На этапе 315 с помощью средства расчета 120 проверяют наличие ранее рассчитанного диапазона ожидаемых значений и определяют, является ли он актуальным. Ранее рассчитанный диапазон ожидаемых значений является актуальным, если выполняется каждое из следующих условий:At step 315, the calculation tool 120 checks for the existence of a previously calculated range of expected values and determines whether it is current. A previously calculated range of expected values is current if each of the following conditions is met:
• запрос не является новым;• the request is not new;
• время пересчета, которое определяется на основании указанного в запросе периода проведения пересчета диапазонов ожидаемых значений, не наступило.• the recalculation time, which is determined on the basis of the period for recalculating the ranges of expected values specified in the request, has not arrived.
Запрос считается новым, если средство сбора 110 получило его впервые. Также запрос считается новым если в любой своей части он отличается от предыдущего. Изменение полей запроса приводит к изменению сформированных временных рядов, из-за чего, в свою очередь, изменяются и, соответственно, подлежат пересчету диапазоны ожидаемых значений. A request is considered new if it is the first time the 110 collection tool has received it. A request is also considered new if any part of it differs from the previous one. Changing the request fields changes the generated time series, which in turn changes the expected value ranges and, accordingly, requires recalculation.
Время пересчета по запросу определяется значением периода проведения пересчета диапазона ожидаемых значений для временного ряда, указанным в информации запроса. Например, условием наступления времени пересчета является выполнение следующего неравенства: The recalculation time for a request is determined by the recalculation period for the range of expected values for the time series, specified in the request information. For example, the condition for the recalculation time to occur is the fulfillment of the following inequality:
[Tnow – Tlast] > Trequest, где:[T now – T last ] > T request , where:
• Tnow – текущий момент времени;• T now – current moment in time;
• Tlast – момент времени, когда в последний раз пересчитывали диапазон ожидаемых значений для текущего запроса;• T last – the point in time when the range of expected values for the current request was last recalculated;
• Trequest – период проведения пересчета диапазона ожидаемых значений.• T request – the period for recalculating the range of expected values.
В случае если неравенство не выполняется, переходят на этап 335, в ином случае переходят на следующий этап 320.If the inequality is not satisfied, proceed to step 335 , otherwise proceed to the next step 320 .
На этапе 320 с помощью средства расчета 120 запрашивают сбор данных потока телеметрии у средства сбора 110 на основании информации из запроса за исторический промежуток времени и формируют по меньшей мере один временной ряд. В рамках описания под историческим промежутком времени понимается по меньшей мере один прошедший промежуток времени.At the stage320using a calculation tool120request the collection of telemetry stream data from the collection tool110based on information from a request for a historical period of time And form at least one time series. For the purposes of this description, a historical time period is understood to mean at least one past time interval.
На этапе 325 с помощью средства расчета 120 на основании собранных данных формируют по меньшей мере один временной ряд. At step 325, using the calculation means 120, at least one time series is formed based on the collected data.
На этапе 330 с помощью средства расчета 120 рассчитывают диапазон ожидаемых значений для каждого временного ряда. Диапазон ожидаемых значений формируется на основании первого момента (математическое ожидание) и второго момента временного ряда. Для формирования диапазона ожидаемых значений временной ряд, в свою очередь, разбивается на периодические составляющие на основании значений разбиения временного ряда из запроса. В случае отсутствия значения разбиения берутся все значения из указанного временного ряда.At step 330, the range of expected values for each time series is calculated using calculation tool 120. The range of expected values is formed based on the first moment (the mathematical expectation) and second moment of the time series. To form the range of expected values, the time series is, in turn, partitioned into periodic components based on the time series partition values from the query. If a partition value is missing, all values from the specified time series are taken.
На этапе 335 с помощью средства формирования 140 определяют необходимость в проведении поиска аномалий во временном ряду запроса. Определение необходимости проведения поиска аномалий служит для выявления временных рядов в запросе, для которых настало время проводить поиск аномалий. Необходимость определяется на основании выполнения следующего неравенства: At step 335, the need for anomaly scanning in the query time series is determined using generation tool 140. Determining the need for anomaly scanning serves to identify time series in the query for which it is time to perform anomaly scanning. The need is determined based on the following inequality:
[Tnow – Tlast] > Trequest, где:[T now – T last ] > T request , where:
• Tnow – текущий момент времени;• T now – current moment in time;
• Tlast – момент времени, когда в последний раз проводили поиск аномалий для текущего запроса;• T last – the point in time when the anomaly search was last performed for the current query;
• Trequest – период проведения поиска аномалий.• T request – the period for searching for anomalies.
При невыполнении неравенства и отсутствии необходимости в проведении поиска аномалий в каждом временном ряду запроса переходят к следующему запросу на этап 310. В ином случае, при выполнении неравенства, переходят на следующий этап.If the inequality is not satisfied and there is no need to search for anomalies in each time series, the query proceeds to the next query at step 310. Otherwise, if the inequality is satisfied, proceed to the next step.
На этапе 340 с помощью средства обнаружения аномалий 130 проводят поиск аномалий во временных рядах. В случае обнаружения аномалии средство 130 отправляет уведомление на устройство пользователя, на котором был сформирован запрос. Пример поиска аномалий на этапе 340 представлен при описании Фиг. 4. At step 340, anomaly detection tool 130 is used to search for anomalies in the time series. If an anomaly is detected, tool 130 sends a notification to the user's device where the request was generated. An example of anomaly detection at step 340 is presented in the description of Fig. 4.
На Фиг. 4 приведен пример способа проведения поиска аномалий во временных рядах. Fig. 4 shows an example of a method for searching for anomalies in time series.
На этапе 410 с помощью средства формирования 140 запрашивают сбор данных потока телеметрии у средства сбора 110 на основании информации из запроса за интервал времени равный периоду проведения поиска аномалий. At step 410, using the generating means 140 , a request is made to collect the telemetry stream data from the collecting means 110 based on the information from the request for a time interval equal to the period of the anomaly search.
На этапе 415 с помощью средства формирования 140 формируют по меньшей мере один временной ряд на основании собранных данных для указанного в запросе набора полей.At step 415, at least one time series is generated using the generation tool 140 based on the collected data for the set of fields specified in the request.
На этапе 420 с помощью средства анализа 150 каждое текущее значение каждого сформированного временного ряда сравнивают с диапазоном ожидаемых значений для соответствующего временного ряда. Если по меньшей мере одно значение временного ряда вышло за диапазон ожидаемых значений, то переходят на следующий этап, в ином случае переходят на этап 435. At step 420, using analysis tool 150, each current value of each generated time series is compared to the range of expected values for the corresponding time series. If at least one time series value falls outside the range of expected values, the next step is performed; otherwise, the process proceeds to step 435.
На этапе 425 с помощью средства анализа 150 оценивают величину отклонения каждого текущего значения каждого сформированного временного ряда от диапазона ожидаемых значений временного ряда и проверяют факт выполнения дополнительных условий. Если отклонение текущего значения временного ряда от диапазона ожидаемых значений превышает заданное пороговое значение, а также выполняются дополнительные условия (которые, например, могут быть заданы в конфигурационном файле), то переходят на этап 430. В ином случае переходят на этап 435.At step 425, the deviation of each current value of each generated time series from the range of expected time series values is assessed using analysis tool 150 , and additional conditions are verified. If the deviation of the current time series value from the range of expected values exceeds a specified threshold, and additional conditions are also met (which, for example, can be specified in a configuration file), then proceed to step 430. Otherwise, proceed to step 435 .
На этапе 430 с помощью средства анализа 150 выявляют аномалию и отправляют уведомление об аномалиях на устройство пользователя, на котором был сформирован запрос, если по меньшей мере одно значение временного ряда выходит за рамки заданного диапазона, при этом разница между текущим значением и ожидаемым значением превышает пороговое значение, а также выполняются дополнительные условия. Пороговое значение устанавливается либо в рамках запроса, либо, в случае необходимости, для конкретного временного ряда отдельно (например, если при анализе значений определенного временного ряда появляется необходимость увеличить заданное в запросе пороговое значение). Кроме того, пороговое значение может быть также определено опытным путем или задано пользователем, обладающим определенными знаниями. Дополнительные условия указываются отдельно для каждого временного ряда в конфигурационном файле. Примеры дополнительных условий представлены при описании Фиг. 1. At step 430, an anomaly is detected using the analysis tool 150 and an anomaly notification is sent to the user's device on which the request was generated if at least one value of the time series is outside a specified range, while the difference between the current value and the expected value exceeds a threshold value, and additional conditions are met. The threshold value is set either within the request or, if necessary, separately for a specific time series (for example, if, when analyzing the values of a specific time series, it becomes necessary to increase the threshold value specified in the request). In addition, the threshold value can also be determined empirically or specified by a user with certain knowledge. Additional conditions are specified separately for each time series in the configuration file. Examples of additional conditions are presented in the description of Fig. 1 .
На этапе 435 с помощью средства расчета 120 пересчитывают диапазон ожидаемых значений для каждого текущего значения каждого сформированного временного ряда на основании каждого текущего значения соответствующего временного ряда. Пересчет диапазона ожидаемых значений необходимо проводить после анализа каждого текущего значения каждого сформированного временного ряда. Обновленные ожидаемые значения позволяют системе адаптироваться к каждому следующему значению во временном ряду. At step 435 , calculation tool 120 recalculates the range of expected values for each current value of each generated time series based on each current value of the corresponding time series. Recalculating the range of expected values must be performed after analyzing each current value of each generated time series. The updated expected values allow the system to adapt to each subsequent value in the time series.
На Фиг. 5 представлена компьютерная система, на которой могут быть реализованы различные варианты систем и способов, раскрытых в настоящем документе. Компьютерная система 20 может представлять собой систему, сконфигурированную для реализации настоящего изобретения, и может быть в виде одного вычислительного устройства или в виде нескольких вычислительных устройств, например, настольного компьютера, портативного компьютера, ноутбука, мобильного вычислительного устройства, смартфона, планшетного компьютера, сервера, мейнфрейма, встраиваемого устройства и других форм вычислительных устройств. Fig. 5 shows a computer system on which various embodiments of the systems and methods disclosed in this document can be implemented. Computer system 20 can be a system configured to implement the present invention and can be in the form of a single computing device or in the form of multiple computing devices, such as a desktop computer, a portable computer, a notebook, a mobile computing device, a smartphone, a tablet computer, a server, a mainframe, an embedded device, and other forms of computing devices.
Как показано на Фиг. 5, компьютерная система 20 включает в себя: центральный процессор 21, системную память 22 и системную шину 23, которая связывает разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, способную взаимодействовать с любой другой шинной архитектурой. Примерами шин являются: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C и другие подходящие соединения между компонентами компьютерной системы 20. Центральный процессор 21 содержит один или несколько процессоров, имеющих одно или несколько ядер. Центральный процессор 21 исполняет один или несколько наборов машиночитаемых инструкций, реализующих способы, представленные в настоящем документе. Системная память 22 может быть любой памятью для хранения данных и/или компьютерных программ, исполняемых центральным процессором 21. Системная память может содержать как постоянное запоминающее устройство (ПЗУ) 24, так и память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами компьютерной системы 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.As shown in Fig. 5 , the computer system 20 includes: a central processor 21 , a system memory 22 and a system bus 23 that connects various system components, including memory connected to the central processor 21. The system bus 23 is implemented as any bus structure known in the art, which in turn contains a bus memory or a bus memory controller, a peripheral bus and a local bus capable of interacting with any other bus architecture. Examples of buses are: PCI, ISA, PCI-Express, HyperTransport™, InfiniBand™, Serial ATA, I2C and other suitable connections between the components of the computer system 20. The central processor 21 contains one or more processors having one or more cores. The central processor 21 executes one or more sets of machine-readable instructions that implement the methods presented in this document. The system memory 22 may be any memory for storing data and/or computer programs executed by the central processor 21. The system memory may contain both a read-only memory (ROM) 24 and a random access memory (RAM) 25. The main input/output system (BIOS) 26 contains the main procedures that ensure the transfer of information between elements of the computer system 20 , for example, at the time of loading the operating system using the ROM 24 .
Компьютерная система 20 включает в себя одно или несколько устройств хранения данных, таких как одно или несколько извлекаемых запоминающих устройств 27, одно или несколько неизвлекаемых запоминающих устройств 28, или комбинации извлекаемых и неизвлекаемых устройств. Одно или несколько извлекаемых запоминающих устройств 27 и/или неизвлекаемых запоминающих устройств 28 подключены к системной шине 23 через интерфейс 32. В одном из вариантов реализации извлекаемые запоминающие устройства 27 и соответствующие машиночитаемые носители информации представляют собой энергонезависимые модули для хранения компьютерных инструкций, структур данных, программных модулей и других данных компьютерной системы 20. Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28 могут использовать различные машиночитаемые носители информации. Примеры машиночитаемых носителей информации включают в себя машинную память, такую как кэш-память, SRAM, DRAM, ОЗУ не требующую конденсатора (Z-RAM), тиристорную память (T-RAM), eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; флэш-память или другие технологии памяти, такие как твердотельные накопители (SSD) или флэш-накопители; магнитные кассеты, магнитные ленты и магнитные диски, такие как жесткие диски или дискеты; оптические носители, такие как компакт-диски (CD-ROM) или цифровые универсальные диски (DVD); и любые другие носители, которые могут быть использованы для хранения нужных данных и к которым может получить доступ компьютерная система 20.The computer system 20 includes one or more data storage devices, such as one or more removable storage devices 27 , one or more non-removable storage devices 28 , or combinations of removable and non-removable devices. One or more removable storage devices 27 and/or non-removable storage devices 28 are connected to the system bus 23 via the interface 32. In one embodiment, the removable storage devices 27 and the corresponding computer-readable storage media are non-volatile modules for storing computer instructions, data structures, program modules and other data of the computer system 20. The system memory 22 , the removable storage devices 27 and the non-removable storage devices 28 can use various computer-readable storage media. Examples of computer-readable storage media include computer memory such as cache memory, SRAM, DRAM, Z-RAM, Thyristor RAM (T-RAM), eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technologies such as solid-state drives (SSD) or flash drives; magnetic cassettes, magnetic tapes, and magnetic disks such as hard disks or floppy disks; optical media such as compact discs (CD-ROM) or digital versatile discs (DVD); and any other media that can be used to store desired data and that can be accessed by a computer system 20 .
Системная память 22, извлекаемые запоминающие устройства 27 и не извлекаемые запоминающие устройства 28, содержащиеся в компьютерной системе 20 используются для хранения операционной системы 35, приложений 37, других программных модулей 38 и программных данных 39. Компьютерная система 20 включает в себя периферийный интерфейс 46 для передачи данных от устройств ввода 40, таких как клавиатура, мышь, стилус, игровой контроллер, устройство голосового ввода, устройство сенсорного ввода, или других периферийных устройств, таких как принтер или сканер через один или несколько портов ввода/вывода, таких как последовательный порт, параллельный порт, универсальная последовательная шина (USB) или другой периферийный интерфейс. Устройство отображения 47, такое как один или несколько мониторов, проекторов или встроенных дисплеев, также подключено к системной шине 23 через выходной интерфейс 48, такой как видеоадаптер. Помимо устройств отображения 47, компьютерная система 20 оснащена другими периферийными устройствами вывода (на Фиг. 6 не показаны), такими как динамики и другие аудиовизуальные устройства.The system memory 22 , the removable storage devices 27 and the non-removable storage devices 28 contained in the computer system 20 are used to store the operating system 35 , applications 37 , other program modules 38 and program data 39. The computer system 20 includes a peripheral interface 46 for transmitting data from input devices 40 , such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices, such as a printer or scanner through one or more input/output ports, such as a serial port, a parallel port, a universal serial bus (USB) or another peripheral interface. A display device 47 , such as one or more monitors, projectors or built-in displays, is also connected to the system bus 23 through an output interface 48 , such as a video adapter. In addition to the display devices 47 , the computer system 20 is equipped with other peripheral output devices (not shown in Fig. 6 ), such as speakers and other audiovisual devices.
Компьютерная система 20 может работать в сетевом окружении, используя сетевое соединение с одним или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является рабочим персональным компьютером или сервером, который содержит большинство или все упомянутые компоненты, отмеченные ранее при описании сущности компьютерной системы 20, представленной на Фиг. 5. В сетевом окружении также могут присутствовать и другие устройства, например, маршрутизаторы, сетевые станции или другие сетевые узлы. Компьютерная система 20 может включать один или несколько сетевых интерфейсов 51 или сетевых адаптеров для связи с удаленными компьютерами 49 через одну или несколько сетей, таких как локальная компьютерная сеть (LAN) 50, глобальная компьютерная сеть (WAN), интранет и Интернет. Примерами сетевого интерфейса 51 являются интерфейс Ethernet, интерфейс Frame Relay, интерфейс SONET и беспроводные интерфейсы.The computer system 20 may operate in a network environment using a network connection with one or more remote computers 49. The remote computer (or computers) 49 is a working personal computer or a server that contains most or all of the components mentioned earlier in the description of the essence of the computer system 20 shown in Fig. 5. Other devices may also be present in the network environment, such as routers, network stations or other network nodes. The computer system 20 may include one or more network interfaces 51 or network adapters for communicating with the remote computers 49 via one or more networks, such as a local area network (LAN) 50 , a wide area network (WAN), an intranet and the Internet. Examples of a network interface 51 are an Ethernet interface, a Frame Relay interface, a SONET interface and wireless interfaces.
Варианты раскрытия настоящего изобретения могут представлять собой систему, способ, или машиночитаемый носитель (или носитель) информации.Embodiments of the present disclosure may be a system, a method, or a computer-readable storage medium (or carrier).
Машиночитаемый носитель информации является осязаемым устройством, которое сохраняет и хранит программный код в форме машиночитаемых инструкций или структур данных, к которым имеет доступ центральный процессор 21 компьютерной системы 20. Машиночитаемый носитель может быть электронным, магнитным, оптическим, электромагнитным, полупроводниковым запоминающим устройством или любой подходящей их комбинацией. В качестве примера, такой машиночитаемый носитель информации может включать в себя память с произвольным доступом (RAM), память только для чтения (ROM), EEPROM, портативный компакт-диск с памятью только для чтения (CD-ROM), цифровой универсальный диск (DVD), флэш-память, жесткий диск, портативную компьютерную дискету, карту памяти, дискету или даже механически закодированное устройство, такое как перфокарты или рельефные структуры с записанными на них инструкциями. A computer-readable storage medium is a tangible device that stores and stores program code in the form of computer-readable instructions or data structures accessible by the central processing unit 21 of the computer system 20. The computer-readable storage medium may be an electronic, magnetic, optical, electromagnetic, semiconductor memory device, or any suitable combination thereof. By way of example, such a computer-readable storage medium may include random access memory (RAM), read-only memory (ROM), EEPROM, a portable compact disc with read-only memory (CD-ROM), a digital versatile disc (DVD), flash memory, a hard drive, a portable computer floppy disk, a memory card, a floppy disk, or even a mechanically encoded device such as punched cards or embossed structures with instructions recorded thereon.
Система и способ, настоящего изобретения, могут быть рассмотрены в терминах средств. Термин "средство", используемый в настоящем документе, относится к реальному устройству, компоненту или группе компонентов, реализованных с помощью аппаратного обеспечения, например, с помощью интегральной схемы, специфичной для конкретного приложения (ASIC) или FPGA, или в виде комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора машиночитаемых инструкций для реализации функциональности средства, которые (в процессе выполнения) превращают микропроцессорную систему в устройство специального назначения. Средство также может быть реализовано в виде комбинации этих двух компонентов, при этом некоторые функции могут быть реализованы только аппаратным обеспечением, а другие функции - комбинацией аппаратного и программного обеспечения. В некоторых вариантах реализации, по крайней мере, часть, а в некоторых случаях и все средство может быть выполнено на центральном процессоре 21 компьютерной системы 20. Соответственно, каждое средство может быть реализовано в различных подходящих конфигурациях и не должно ограничиваться каким-либо конкретным вариантом реализации, приведенным в настоящем документе.The system and method of the present invention can be considered in terms of means. The term "means" as used herein refers to an actual device, component, or group of components implemented using hardware, such as an application-specific integrated circuit (ASIC) or FPGA, or as a combination of hardware and software, such as a microprocessor system and a set of machine-readable instructions for implementing the functionality of the means, which (during execution) transform the microprocessor system into a special-purpose device. The means can also be implemented as a combination of these two components, with some functions being implemented only by hardware and other functions by a combination of hardware and software. In some embodiments, at least part, and in some cases all, of the means can be executed on the central processor 21 of the computer system 20. Accordingly, each means can be implemented in various suitable configurations and should not be limited to any particular embodiment given in this document.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information provided in the description are examples that do not limit the scope of the present invention defined by the claims.
Claims (42)
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2848976C1 true RU2848976C1 (en) | 2025-10-22 |
Family
ID=
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11340774B1 (en) * | 2014-10-09 | 2022-05-24 | Splunk Inc. | Anomaly detection based on a predicted value |
| US20230038977A1 (en) * | 2021-08-06 | 2023-02-09 | Peakey Enterprise LLC | Apparatus and method for predicting anomalous events in a system |
| US20230368069A1 (en) * | 2022-05-16 | 2023-11-16 | Microsoft Technology Licensing, Llc | Machine learning feature health monitoring and anomaly detection |
| RU2811840C1 (en) * | 2023-03-23 | 2024-01-18 | Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Method for detecting anomalous network traffic |
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11340774B1 (en) * | 2014-10-09 | 2022-05-24 | Splunk Inc. | Anomaly detection based on a predicted value |
| US20230038977A1 (en) * | 2021-08-06 | 2023-02-09 | Peakey Enterprise LLC | Apparatus and method for predicting anomalous events in a system |
| US20230368069A1 (en) * | 2022-05-16 | 2023-11-16 | Microsoft Technology Licensing, Llc | Machine learning feature health monitoring and anomaly detection |
| RU2811840C1 (en) * | 2023-03-23 | 2024-01-18 | Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Method for detecting anomalous network traffic |
| RU2827689C2 (en) * | 2023-03-27 | 2024-10-01 | Акционерное общество "Лаборатория Касперского" | Method for predictive analysis in cyber-physical system in real time |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11943235B2 (en) | Detecting suspicious user logins in private networks using machine learning | |
| US9769190B2 (en) | Methods and apparatus to identify malicious activity in a network | |
| US8966036B1 (en) | Method and system for website user account management based on event transition matrixes | |
| WO2021212756A1 (en) | Index anomaly analysis method and apparatus, and electronic device and storage medium | |
| US11244043B2 (en) | Aggregating anomaly scores from anomaly detectors | |
| US20160042289A1 (en) | Systems and methods for adaptive thresholding using maximum concentration intervals | |
| US11693842B2 (en) | Generating compact data structures for monitoring data processing performance across high scale network infrastructures | |
| WO2021242301A1 (en) | Actionability metric generation for events | |
| US12184743B2 (en) | Resource de-duplicator for data-provider agnostic cloud security tool | |
| US20240356957A1 (en) | Iterative cross-product threat detection based on network telemetry relationships | |
| US11743284B2 (en) | Multi-factor illicit enumeration detection | |
| RU2848976C1 (en) | System and method for detecting anomalies in telemetry stream | |
| CN113472582B (en) | Systems and methods for alarm association and alarm aggregation in information technology monitoring | |
| CN119011661B (en) | Method and device for determining service migration information, electronic equipment, storage medium and product | |
| US20250007938A1 (en) | Detection of anomalous data exfiltration using intelligent detection thresholds | |
| US20250088521A1 (en) | Identifying similarities in complex objects at scale | |
| EP3799638B1 (en) | Optimizing large scale data analysis | |
| US20250036971A1 (en) | Managing data processing system failures using hidden knowledge from predictive models | |
| US12238127B1 (en) | Anomalous data transfer detection | |
| US20250211600A1 (en) | Context-based anomaly detection | |
| US12199996B1 (en) | Confidence scoring for detectors used to detect anomalous behavior | |
| JP7302668B2 (en) | Level estimation device, level estimation method, and level estimation program | |
| US20250322075A1 (en) | Systems and methods for identifying security threats | |
| US20250371271A1 (en) | Inference model training and tuning using augmented questions and answers | |
| CN114936239A (en) | Data detection method, device, equipment and storage medium |