Система и способ блокировки вредоносной активности легитимных драйверов Российский патент 2025 года по МПК G06F21/56 

Описание патента на изобретение RU2840426C1

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

Настоящее изобретение относится к области информационных технологий, а более конкретно к системам и способам блокировки вредоносной активности легитимных драйверов.

Уровень техники

Вредоносное программное обеспечение постоянно развивается, побуждая поставщиков услуг информационной безопасности не отставать от непрерывно меняющегося ландшафта угроз. В том числе злоумышленники развивают и пути распространения вредоносного программного обеспечения (ПО), используют новые уязвимости для проникновения в компьютерные системы.

В настоящий момент используются различные варианты атак на ресурсы компьютерной сети. Например, атака на компьютерную систему с использованием руткит-драйвера. В качестве примера руткит-драйверов рассмотрим skyu24.sys и qz.sys, которые устанавливает и регистрирует в реестре руткит Haxdoor. Указанные драйверы перехватывают определенный ряд функций режима ядра, например: ZwCreateProcess, ZwCreateProcessEx, ZwOpenProcess, ZwOpenThread, ZwQueryDirectoryFile, ZwQuerySystemInformation и другие. С помощью перехваченных функций руткит-драйверы могут изменять системную информацию (в частности, список процессов и DLL), отслеживать открытие и создание процессов, а также выполнять другие действия на зараженной компьютерной системе.

Для противодействия руткит-драйверам компания Microsoft Corp. ввела требование подписи драйверов. Благодаря указанному нововведению на операционной системе Windows стала возможна загрузка только подписанных драйверов, которые заведомо не предназначены для атаки на компьютерную систему.

Однако злоумышленники в свою очередь изобрели метод атаки BYOVD (от англ. Bring Your Own Vulnerable Driver). Согласно этому методу для проведения атаки используют легитимный драйвер, который содержит известные уязвимости. Поскольку у таких драйверов есть подпись, операционная система позволяет их установить и запустить.

Один из вариантов борьбы с подобного вида атаками применила компания Microsoft Corp. Данный вариант заключается в создании «черного» списка, в который включали легитимные драйверы, содержащие известный уязвимости, и дальнейшем запрете установки и запуска таких драйверов в ОС. Очевидным недостатком данного варианта является полный запрет выполнения функциональности, заложенной в драйвер, в том числе и необходимой для работы различных устройств, что в свою очередь может негативно повлиять на работу всей операционной системы.

Таким образом, существует потребность в создании решения, которое устраняло бы указанный недостаток и позволяло бы осуществлять контроль над вызовами функций легитимного драйвера и блокировать только вредоносную активность легитимных драйверов в операционной системе.

Раскрытие сущности изобретения

Задача предлагаемого решения заключается в мониторинге и контроле вызовов легитимных драйверов с целью обнаружения вредоносной активности в операционной системе.

Технический результат заключается в повышении безопасности операционной системы и достигается с помощью предлагаемого решения, предназначенного для блокировки вредоносной активности легитимных драйверов.

В качестве одного варианта исполнения настоящего изобретения предлагается способ блокировки вредоносной активности легитимных драйверов в операционной системе (далее - ОС), выполненный с возможностью реализации шагов, согласно которым: собирают информацию о защищаемых объектах и информацию о загруженных в ОС драйверах; обнаруживают по меньшей мере один загруженный в ОС легитимный драйвер посредством информации о загруженных в ОС драйверах и правил обнаружения вредоносной активности из базы данных правил; используют по меньшей мере один из следующих видов перехватов вызовов обнаруженных легитимных драйверов: перехват IAT; перехват IOCTL; блокируют направленные к защищаемым объектам перехваченные вызовы обнаруженных легитимных драйверов на основании собранной информации о защищаемых объектах и правил обнаружения вредоносной активности.

В другом варианте реализации способа защищаемым объектом является по меньшей мере один из: загружаемые в память ядра ОС драйверы, физическая память, процессы, файловые объекты, реестровые объекты.

В ещё одном варианте реализации способа информация о защищаемых объектах содержит по меньшей мере одно из: таблица страниц для процесса SYSTEM, маска пути до файловых объектов, маска пути до реестровых объектов, идентификатор процесса, информация о базовом адресе процесса, информация о размере выделенной для процесса памяти.

В другом варианте реализации способа информация о загруженных драйверах содержит по меньшей мере одно из: имя драйвера, путь в системе до драйвера, адрес загрузки драйвера, поля PE-заголовка драйвера, версия драйвера, путь до файла символов драйвера.

В ещё одном варианте реализации способа база данных правил является частью системного реестра операционной системы. В другом варианте реализации способа для использования перехвата IAT осуществляют замену адреса анализируемой функции из правила обнаружения вредоносной активности на адрес функции-перехватчика.

В ещё одном варианте реализации способа для использования перехвата IOCTL применяют метод сплайсинга на точку входа обнаруженного легитимного драйвера.

В другом варианте реализации способа для использования перехвата IOCTL: перехватывают реестровые операции ОС в контексте процесса “SYSTEM”, обнаруживают операцию с типом RegNtPostQueryKeyName, извлекают ключ из реестрового пути обнаруженной операции, получают на основании извлеченного ключа объект устройства, получают доступ к входящим IOCTL-вызовам посредством перехвата функции DriverInit.

В ещё одном варианте реализации способа для использования перехвата IOCTL получают объект легитимного драйвера посредством перебора сервисов в системном реестре и сравнения пути до легитимного драйвера со значением ImagePath указанных сервисов.

В качестве другого варианта исполнения настоящего изобретения предлагается система блокировки вредоносной активности легитимных драйверов в ОС, состоящая по меньшей мере из одной компьютерной системы и содержащая: модуль сбора информации, предназначенный для: сбора информации о защищаемых объектах; сбора информации о загруженных в ОС драйверах; модуль обнаружения, предназначенный для: получения правил обнаружения вредоносной активности из базы данных правил; обнаружения загрузки легитимных драйверов в ОС; использования по меньшей мере одного из следующих видов перехватов вызовов обнаруженных легитимных драйверов: перехват IAT; перехват IOCTL; обнаружения вредоносной активности легитимных драйверов с помощью правил обнаружения вредоносной активности и информации о защищаемых процессах; блокировки направленной на защищаемые процессы вредоносной активности легитимных драйверов на основании перехваченных функций.

В другом варианте реализации системы защищаемым объектом является по меньшей мере один из: загружаемые в память ядра ОС драйверы, физическая память, процессы, файловые объекты, реестровые объекты. В ещё одном варианте реализации системы информация о защищаемых объектах содержит по меньшей мере одно из: таблица страниц для процесса SYSTEM, маска пути до файловых объектов, маска пути до реестровых объектов, идентификатор процесса, информация о базовом адресе процесса, информация о размере выделенной для процесса памяти.

В другом варианте реализации системы информация о загруженных драйверах содержит по меньшей мере одно из: имя драйвера, путь в системе до драйвера, адрес загрузки драйвера, поля PE-заголовка драйвера, версия драйвера, путь до файла символов драйвера.

В ещё одном варианте реализации системы база данных правил является частью системного реестра операционной системы.

В другом варианте реализации системы для использования перехвата IAT модуль обнаружения осуществляет замену адреса анализируемой функции из правила обнаружения вредоносной активности на адрес функции-перехватчика.

В ещё одном варианте реализации системы для использования перехвата IOCTL модуль обнаружения использует метод сплайсинга на точку входа обнаруженного легитимного драйвера.

В другом варианте реализации системы для использования перехвата IOCTL модуль обнаружения: перехватывает реестровые операции ОС в контексте процесса “SYSTEM”, обнаруживает операцию с типом RegNtPostQueryKeyName, извлекает ключ из реестрового пути обнаруженной операции, получает на основании извлеченного ключа объект устройства получает доступ к входящим IOCTL-вызовам посредством перехвата функции DriverInit.

В ещё одном варианте реализации системы для использования перехвата IOCTL модуль обнаружения получает объект легитимного драйвера посредством перебора сервисов в системном реестре и сравнения пути до легитимного драйвера со значением ImagePath указанных сервисов.

Краткое описание чертежей

Фиг. 1 иллюстрирует схему системы блокировки вредоносной активности легитимных драйверов.

Фиг. 2 иллюстрирует пример правил обнаружения вредоносной активности на основании перехвата IAT.

Фиг. 3 иллюстрирует пример правил обнаружения вредоносной активности на основании перехвата IAT.

Фиг. 4 иллюстрирует пример правил обнаружения вредоносной активности на основании перехвата IOCTL.

Фиг. 5 иллюстрирует способ блокировки вредоносной активности легитимных драйверов.

Фиг. 6 иллюстрирует пример компьютерной системы, пригодной для реализации не имеющих ограничительного характера вариантов осуществления настоящего изобретения.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.

Осуществление изобретения

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Приведенное описание предназначено для помощи специалисту в области техники для исчерпывающего понимания изобретения, которое определяется только в объеме приложенной формулы.

На Фиг. 1 представлена схема системы блокировки вредоносной активности легитимных драйверов (далее – система) 100. Стоит отметить, что система 100 приведена лишь для демонстрации по меньшей мере одного варианта реализации настоящего изобретения. Кроме того, следует понимать, что система 100 в некоторых случаях может представлять собой вариант упрощенной реализации настоящего изобретения, и что такие варианты представлены, чтобы способствовать лучшему ее пониманию. Специалистам в данной области должно быть понятно, что другие варианты осуществления настоящего изобретения могут быть значительно сложнее.

Легитимный драйвер - это драйвер, который не является вредоносным, но при этом может содержать используемые злоумышленниками уязвимости.

Система 100 предназначена для блокировки вредоносной активности легитимных драйверов в операционной системе, установленной на компьютерной системе, например такой, которая представлена на Фиг. 6.

Система 100 запускается на этапе загрузки операционной системы. Под вредоносной активностью понимаются вызовы функций, направленные на нарушение работоспособности заранее определенных защищаемых объектов. Примерами нарушений работоспособности защищаемых объектов являются: остановка защищаемого процесса или модификация защищаемого драйвера. Под защищаемыми объектами понимается по меньшей мере одно из:

• загруженные в память ядра операционной системы драйверы, например драйвер антивирусного программного обеспечения;

• физическая память, например верхний уровень таблицы страницы для процесса SYSTEM;

• процессы, например процессы антивирусного программного обеспечения;

• файловые объекты, например файловые объекты антивирусного программного обеспечения, расположенные по пути “\\PROGRAMDATA\\KASPERSKY LAB\\*”;

• реестровые объекты, например реестровые объекты антивирусного программного обеспечения, расположенные по пути “*\\SYSTEM\\CURRENTCONTROLSET\\SERVICES\\KL*”.

В общем случае система 100 содержит модуль сбора информации 110, модуль обнаружения 120 и базу данных правил 130.

В частном варианте реализации база данных правил 130 является частью системного реестра операционной системы.

В частном варианте реализации система 100 реализована в виде по меньшей мере одного драйвера, работающего на уровне ядра операционной системы. Стоит отметить, что уровень ядра операционной системы относится к нулевому кольцу защиты (ring 0) согласно архитектуре информационной безопасности и функциональной отказоустойчивости, реализующей аппаратное разделение системного и пользовательского уровней привилегий.

Модуль сбора информации 110 предназначен для сбора информации о защищаемых объектах и сбора информации о загруженных в операционную систему драйверах.

Модуль сбора информации 110 осуществляет сбор информации о таком защищаемом объекте, как защищаемый процесс, следующим образом:

1) определяет, запущен ли защищаемый процесс;

2) если защищаемый процесс не запущен, то запускает защищаемый процесс;

3) собирает информацию о защищаемом процессе посредством операционной системы;

4) при необходимости, завершает защищаемый процесс, например, если на момент сбора информации нет необходимости в работе одного из процессов антивирусного программного обеспечения.

Под собираемой информацией о каждом защищаемом процессе понимается по меньшей мере следующая информация:

• информация о базовом адресе;

• информация о размере выделенной для процесса памяти;

• идентификатор защищаемого процесса.

Под собираемой информацией о каждом загруженном в ОС драйвере понимается по меньшей мере следующая информация:

• имя драйвера;

• путь до драйвера;

• адрес загрузки драйвера в памяти;

• поля PE-заголовка драйвера.

В частном варианте реализации модуль сбора информации 110 при наличии соответствующей информации в операционной системе дополнительно собирает по меньшей мере одно из:

• путь до файла символов драйвера;

• версию драйвера.

Модуль сбора информации 110 осуществляет сбор информации об остальных защищаемых объектах из операционной системы. К указанной информации относится по меньшей мере одно из:

• таблица страниц для процесса SYSTEM;

• маска пути до файловых объектов;

• маска пути до реестровых объектов.

Файл символов (англ. Program Database, PDB) - файл базы данных программы, который содержит отладочную информацию для скомпилированного исполняемого файла.

Portable Executable (PE, «переносимый исполняемый») - формат исполняемых файлов, объектного кода и динамических библиотек. Формат PE представляет собой структуру данных, содержащую всю информацию, необходимую PE-загрузчику для отображения файла в память.

PE-заголовок содержит основную информацию о файле (драйвере), необходимую для его загрузки и выполнения. PE-заголовок включает в себя:

• MS-DOS Header - заголовок совместимости с MS-DOS, содержит информацию о старом формате исполняемых файлов.

• PE Signature - сигнатура, идентифицирующая файл как PE-формат.

• COFF File Header - заголовок COFF, содержит общую информацию об исполняемом файле, такую как тип машины, количество секций, время создания и т.д.

• Optional Header - дополнительный заголовок, содержит информацию, специфичную для Windows, такую как адрес точки входа, размер кода и данных, информацию о динамических библиотеках и т.д.

Модуль сбора информации 110 передает собранную информацию о защищаемых объектах и информацию о загруженных в операционную систему драйверах в модуль обнаружения 120.

Модуль обнаружения 120 предназначен для получения правил обнаружения вредоносной активности из базы данных правил 130, обнаружения загруженных в операционную систему легитимных драйверов, перехвата вызовов легитимных драйверов, обнаружения вредоносной активности легитимных драйверов и блокировки соответствующих перехваченных вызовов легитимных драйверов. Правила обнаружения вредоносной активности позволяют обнаруживать легитимный драйвер и в случае определения вредоносной активности обнаруженного легитимного драйвера осуществлять действия по его нейтрализации, например путем блокировки вызовов функций, относящихся к вредоносной активности. Такие правила позволяют блокировать только часть вызовов обнаруженных уязвимых легитимных драйверов, благодаря чему не нарушается работоспособность обнаруженных драйверов и операционной системы в целом. Примеры правил обнаружения вредоносной активности представлены при описании Фиг. 2–4. Под вредоносной активностью легитимных драйверов понимаются вызовы, направленные к защищаемым объектам, указанный в правилах обнаружения вредоносной активности. Таким образом, если легитимный драйвер материнской платы обращается к процессу антивирусного программного обеспечения, например выполняет попытку остановки данного процесса, это явно указывает на вредоносную активность указанного драйвера.

Модуль обнаружения 120 посредством правила обнаружения вредоносной активности обнаруживает по меньшей мере один легитимный драйвер и осуществляет перехват вызовов обнаруженного драйвера. Для обнаружения легитимного драйвера модуль обнаружения 120 использует правила, основанные на одном из следующих подходов:

• обнаружение легитимного драйвера на основании PE-заголовков (далее – PE-правило). PE-правило предназначено для обнаружения легитимного драйвера на основании PE-заголовков файлов, загруженных в операционную систему драйверов;

• обнаружение легитимного драйвера на основании PDB-файла (далее – PDB-правило). PDB-правило предназначено для обнаружения легитимного драйвера на основании PDB-файлов, загруженных в операционную систему драйверов.

Любое правило обнаружения вредоносной активности содержит либо PE-правило, либо PDB-правило.

Модуль обнаружения 120 осуществляет перехват вызовов функций на основании указанных правил, при этом каждое правило дополнительно содержит информацию для применения одного из двух описанных далее вариантов для перехвата.

Первый вариант (далее – перехват IAT) заключается в использовании таблицы импортов (англ. Import Address Table, IAT), в которой модуль обнаружения 120 осуществляет замену адреса анализируемой функции из правила обнаружения вредоносной активности на адрес функции-перехватчика.

Таблица импортов – таблица, в которой хранятся виртуальные адреса функций, импортируемых из динамических библиотек. Данная таблица используется для отображения импортируемых функций в память при запуске исполняемого файла. Таблица импортов содержит информацию об адресе функций в динамических библиотеках, что позволяет программе вызывать указанные функции.

Второй вариант (далее – перехват IOCTL) заключается в использовании системного вызова input/output control (IOCTL).

Системный вызов IOCTL - системный вызов, который позволяет управлять устройствами и выполнять операции ввода-вывода, которые не могут быть выражены с помощью регулярных файловых операций. Данный вызов предоставляет интерфейс для приложений, позволяющий напрямую взаимодействовать с драйверами устройств, выполнять различные операции, такие как управление параметрами устройства, получение информации о состоянии устройства, форматирование диска и т.д.

Для использования перехвата IOCTL модуль обнаружения 120 применяет метод сплайсинга (англ. splicing) на точку входа обнаруженного легитимного драйвера.

Сплайсинг - метод перехвата API-функций путём изменения кода целевой функции. Обычно изменяются первые несколько байт функции. Вместо них вставляется переход на необходимую функцию. Чтобы обеспечить корректность выполнения операции, модуль обнаружения 120 должен дать возможность выполниться коду, который был изменён в результате сплайсинга. Для этого модуль обнаружения 120 сохраняет заменяемый участок памяти, а после отработки функции перехвата восстанавливает изменённый участок функции и дает полностью выполниться исходной функции.

В частном варианте реализации для использования перехвата IOCTL модуль обнаружения 120 перехватывает реестровые операции операционной системы в контексте процесса “SYSTEM” с целью последующего выявления имени легитимного драйвера. При обнаружении операции с типом RegNtPostQueryKeyName модуль обнаружения 120 извлекает ключ из реестрового пути указанной операции, после чего получает на основании извлеченного ключа объект устройства. Если объект драйвера находится в неинициализированном состоянии, модуль обнаружения 120 устанавливает перехват функции DriverInit и после того, как перехват реестровых операций сработает, модуль обнаружения 120 получит информацию об объекте драйвера и, следовательно, получит доступ к входящим IOCTL вызовам.

Объект устройства (DEVICE_OBJECT) - структура данных, используемая операционной системой для представления объекта устройства. Объект устройства может быть представлен как логическое, виртуальное или физическое устройство, для которого драйвер обрабатывает запросы ввода-вывода.

В ещё одном частном варианте реализации для использования перехвата IOCTL модуль обнаружения 120 получает объект драйвера посредством пути до драйвера. Для этого модуль обнаружения 120 выполняет перебор сервисов в реестре, сравнивает путь до драйвера со значением ImagePath сервиса и в случае совпадения пути до драйвера со значением ImagePath сервиса получает объект драйвера, посредством которого модуль обнаружения 120 получает доступ к входящим IOCTL-вызовам.

Для обнаружения вредоносной активности легитимных драйверов на основании перехватов IAT и IOCTL модуль обнаружения 120 применяет правила обнаружения вредоносной активности к перехваченным вызовам. В случае если перехваченный вызов направлен к защищаемому объекту и в сработавшем правиле обнаружения вредоносной активности указана блокировка вызовов, модуль обнаружения 120 блокирует перехваченный вызов с целью обеспечения безопасности указанного защищаемого объекта. Стоит отметить, что модуль обнаружения 120 устанавливает факт направления перехваченного вызова к защищаемому объекту на основании собранной о защищаемых объектах информации.

В частном варианте реализации после обнаружения направленной на защищаемые процессы вредоносной активности легитимных драйверов модуль обнаружения 120 всегда блокирует соответствующие перехваченные вызовы.

Антивирусное приложение 140, функционирующее в операционной системе на пользовательском уровне, периодически обновляет правила обнаружения вредоносной активности в базе данных правил 130, например один раз в сутки. Стоит отметить, что пользовательский уровень относится к третьему кольцу защиты (ring 3).

В частном варианте реализации антивирусное приложение 140 устанавливает систему 100 в операционную систему.

Примеры правил обнаружения вредоносной активности на основании перехвата IAT представлены на Фиг. 2 и Фиг. 3.

Первая строка PE-правила предназначена для указания группы перехватов. В рассматриваемом примере указана группа PHYSMEM_GROUP, означающая необходимость использования перехвата с целью контроля операций (вызовов) над защищаемой физической памятью.

Стоит отметить, что в других примерах правил вместо группы PHYSMEM_GROUP могут быть указаны такие группы, как: PROCESS_GROUP – контроль операций (вызовов) с защищаемыми объектами, DEV_PHYSMEM_GROUP – контроль операций (вызовов), направленных на взаимодействие с директорией \device\PhysicalMemory, и другие группы. При этом правило обнаружения вредоносной активности может содержать указания как на одну группу, так и на несколько групп.

Вторая строка PE-правила предназначена для указания флагов. В рассматриваемом примере установлен флаг NOTIFY. В случае срабатывания перехвата в модуль обнаружения 120 придет нотификация о том, что перехват сработал. В противном случае, если перехват не сработал, в модуль обнаружения 120 придет нотификация о том, что перехват не сработал. Правило с флагом NOTIFY полезно для сбора статистики о работе перехвата. Также возможна установка флага SETUP_HOOKS. В случае установки данного флага и срабатывании перехвата модуль обнаружения 120 заблокирует перехваченный вызов. Пример правила с установленным флагом SETUP_HOOKS представлен на Фиг. 3.

Третья строка PE-правила предназначена для указания нижней и верхней границ версии легитимного драйвера.

Четвертая строка PE-правила состоит из полей PE-файла: смещение до точки входа в легитимный драйвер (entryPoint), размер инициализированных данных (sizeOfInitedData), размер кода (sizeOfCode), размер образа (sizeOfImage), временная отметка (timestamp) и контрольная сумма (checksum).

Пятая строка PE-правила состоит из двух полей PE-файла, а именно старшей (linkerMajor) и младшей (linkerMinor) версий линкера.

Шестая строка PE-правила предназначена для добавления комментария, который отобразится в нотификации.

PDB-правило для перехвата IAT задается идентично PE-правилу, однако вместо четвертой и пятой строк указан путь до PDB-файла. Стоит отметить, что может быть указан как абсолютный путь (Фиг. 2), так и маска пути (пример представлен на Фиг. 3)

На Фиг. 4 представлен пример правил обнаружения вредоносной активности на основании перехвата IOCTL. Начиная со строки “IAT_MINIMUM_FILE_VERSION, IAT_MAXIMUM_FILE_VERSION”, представленные на Фиг. 4 правила обнаружения вредоносной активности идентичны описанию к Фиг. 2 и Фиг. 3.

Первая строка PDB-правила и PE-правила указывает на то, что данное правило предназначено для контроля IOCTL операций (вызовов).

Вторая строка PDB-правила и PE-правила указывает на значение IOCTL, при котором вызов будет заблокирован.

В PDB-правиле третья строка содержит размер входного буфера для проверки при выставленном управляющем флаге EQUAL_INPUT_SIZE.

Четвертая строка в PDB-правиле идентична третьей строке в PE-правиле и содержит управляющие флаги. В приведенном примере FILTER_BY_FIELD указывает на то, что контроль IOCTL будет осуществляться на основании данных из входящего буфера. Помимо указанного, к управляющим флагам относят DUMP_INPUT_BUFFER – сохранение входного буфера для заданного IOCTL, DUMP_OUTPUT_BUFFER – сохранение выходного буфера для заданного IOCTL, BLOCK_ALWAYS – безусловная блокировка заданного IOCTL, EQUAL_INPUT_SIZE – валидация размера входящего буфера.

Пятая строка в PDB-правиле идентична четвертой строке в PE-правиле и указывает, на что направлена защита на основании данного правила. В примере PhysicalMemoryAddress – защита физических адресов в операционной системе.

На Фиг. 5 представлен способ блокировки вредоносной активности легитимных драйверов. В некоторых вариантах осуществления настоящего изобретения способ может быть выполнен при помощи системы 100 (см. Фиг. 1). Далее более подробно описаны различные шаги способа.

На этапе 510 собирают информацию о защищаемых объектах и информацию о загруженных в операционную систему драйверах. Под защищаемыми объектами понимается по меньшей мере одно из: память ядра операционной системы, а именно загруженные драйверы; физическая память; процессы; файловые объекты; реестровые объекты.

Сбор информации обо всех защищаемых объектах, кроме процессов, осуществляется посредством операционной системы. Сбор информации о защищаемых процессах осуществляется следующим образом:

1) если защищаемый процесс не запущен, то защищаемый процесс запускают;

2) собирают информацию о защищаемом процессе посредством операционной системы;

3) при необходимости завершают защищаемый процесс, например, если на момент сбора информации нет необходимости в работе одного из процессов антивирусного программного обеспечения.

На этапе 520 обнаруживают по меньшей мере один загруженный в операционную систему легитимный драйвер посредством информации о загруженных в операционную систему драйверах и правил обнаружения вредоносной активности из базы данных правил 130.

На этапе 530 устанавливают посредством правил обнаружения вредоносной активности по меньшей мере один из следующих видов перехватов вызовов обнаруженных легитимных драйверов:

• перехват IAT;

• перехват IOCTL.

На этапе 540 блокируют направленные к защищаемым объектам перехваченные вызовы обнаруженных легитимных драйверов на основании собранной на этапе 510 информации о защищаемых объектах и правил обнаружения вредоносной активности из базы данных правил 130.

На Фиг. 6 представлена компьютерная система, на которой могут быть реализованы различные варианты систем и способов, раскрытых в настоящем документе. Компьютерная система 20 может представлять собой систему, сконфигурированную для реализации настоящего изобретения, и может быть в виде одного вычислительного устройства или в виде нескольких вычислительных устройств, например, настольного компьютера, портативного компьютера, ноутбука, мобильного вычислительного устройства, смартфона, планшетного компьютера, сервера, мейнфрейма, встраиваемого устройства и других форм вычислительных устройств.

Как показано на Фиг. 6, компьютерная система 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.

Компьютерная система 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.

Системная память 22, извлекаемые запоминающие устройства 27 и неизвлекаемые запоминающие устройства 28, содержащиеся в компьютерной системе 20 используются для хранения операционной системы 35, приложений 37, других программных модулей 38 и программных данных 39. Компьютерная система 20 включает в себя периферийный интерфейс 46 для передачи данных от устройств ввода 40, таких как клавиатура, мышь, стилус, игровой контроллер, устройство голосового ввода, устройство сенсорного ввода, или других периферийных устройств, таких как принтер или сканер через один или несколько портов ввода/вывода, таких как последовательный порт, параллельный порт, универсальная последовательная шина (USB) или другой периферийный интерфейс. Устройство отображения 47, такое как один или несколько мониторов, проекторов или встроенных дисплеев, также подключено к системной шине 23 через выходной интерфейс 48, такой как видеоадаптер. Помимо устройств отображения 47, компьютерная система 20 оснащена другими периферийными устройствами вывода (на Фиг. 6 не показаны), такими как динамики и другие аудиовизуальные устройства.

Компьютерная система 20 может работать в сетевом окружении, используя сетевое соединение с одним или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является рабочим персональным компьютером или сервером, который содержит большинство или все упомянутые компоненты, отмеченные ранее при описании сущности компьютерной системы 20, представленной на Фиг. 6. В сетевом окружении также могут присутствовать и другие устройства, например, маршрутизаторы, сетевые станции или другие сетевые узлы. Компьютерная система 20 может включать один или несколько сетевых интерфейсов 51 или сетевых адаптеров для связи с удаленными компьютерами 49 через одну или несколько сетей, таких как локальная компьютерная сеть (LAN) 50, глобальная компьютерная сеть (WAN), интранет и Интернет. Примерами сетевого интерфейса 51 являются интерфейс Ethernet, интерфейс Frame Relay, интерфейс SONET и беспроводные интерфейсы.

Варианты раскрытия настоящего изобретения могут представлять собой систему, способ, или машиночитаемый носитель (или носитель) информации.

Машиночитаемый носитель информации является осязаемым устройством, которое сохраняет и хранит программный код в форме машиночитаемых инструкций или структур данных, к которым имеет доступ центральный процессор 21 компьютерной системы 20. Машиночитаемый носитель может быть электронным, магнитным, оптическим, электромагнитным, полупроводниковым запоминающим устройством или любой подходящей их комбинацией. В качестве примера, такой машиночитаемый носитель информации может включать в себя память с произвольным доступом (RAM), память только для чтения (ROM), EEPROM, портативный компакт-диск с памятью только для чтения (CD-ROM), цифровой универсальный диск (DVD), флэш-память, жесткий диск, портативную компьютерную дискету, карту памяти, дискету или даже механически закодированное устройство, такое как перфокарты или рельефные структуры с записанными на них инструкциями.

Система и способ настоящего изобретения могут быть рассмотрены в терминах средств. Термин "средство", используемый в настоящем документе, относится к реальному устройству, компоненту или группе компонентов, реализованных с помощью аппаратного обеспечения, например, с помощью интегральной схемы, специфичной для конкретного приложения (ASIC) или FPGA, или в виде комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора машиночитаемых инструкций для реализации функциональности средства, которые (в процессе выполнения) превращают микропроцессорную систему в устройство специального назначения. Средство также может быть реализовано в виде комбинации этих двух компонентов, при этом некоторые функции могут быть реализованы только аппаратным обеспечением, а другие функции - комбинацией аппаратного и программного обеспечения. В некоторых вариантах реализации, по крайней мере, часть, а в некоторых случаях и все средство может быть выполнено на центральном процессоре 21 компьютерной системы 20. Соответственно, каждое средство может быть реализовано в различных подходящих конфигурациях и не должно ограничиваться каким-либо конкретным вариантом реализации, приведенным в настоящем документе.

В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что при разработке любого реального варианта осуществления настоящего изобретения необходимо принять множество решений, специфических для конкретного варианта осуществления, для достижения конкретных целей, и эти конкретные цели будут разными для разных вариантов осуществления. Понятно, что такие усилия по разработке могут быть сложными и трудоемкими, но тем не менее они будут обычной инженерной задачей для тех, кто обладает обычными навыками в данной области, пользуясь настоящим раскрытием изобретения.

Похожие патенты RU2840426C1

название год авторы номер документа
СИСТЕМА И СПОСОБ ЗАЩИТЫ КОМПЬЮТЕРНЫХ ПРИЛОЖЕНИЙ 2011
  • Русаков Вячеслав Евгеньевич
  • Ширяев Александр Васильевич
RU2460133C1
СПОСОБ ВЫЗОВА СИСТЕМНЫХ ФУНКЦИЙ В УСЛОВИЯХ ИСПОЛЬЗОВАНИЯ СРЕДСТВ ЗАЩИТЫ ЯДРА ОПЕРАЦИОННОЙ СИСТЕМЫ 2014
  • Юдин Максим Витальевич
  • Тарасенко Александр Сергеевич
  • Левченко Вячеслав Иванович
  • Кумагин Игорь Юрьевич
RU2585978C2
СПОСОБ СОЗДАНИЯ ОБРАБОТЧИКА СИСТЕМНЫХ ВЫЗОВОВ 2014
  • Юдин Максим Витальевич
  • Тарасенко Александр Сергеевич
  • Левченко Вячеслав Иванович
  • Кумагин Игорь Юрьевич
RU2596577C2
Система и способ обнаружения приложения удалённого администрирования 2016
  • Головкин Максим Юрьевич
  • Романенко Алексей Михайлович
  • Монастырский Алексей Владимирович
RU2634173C1
Система и способ обнаружения вредоносного приложения путем перехвата доступа к отображаемой пользователю информации 2016
  • Калинин Александр Валентинович
  • Полозов Павел Леонидович
  • Левченко Вячеслав Иванович
  • Юдин Максим Витальевич
RU2634176C1
Система и способ блокирования доступа к защищаемым приложениям 2016
  • Калинин Александр Валентинович
  • Полозов Павел Леонидович
  • Левченко Вячеслав Иванович
  • Юдин Максим Витальевич
RU2634168C1
СПОСОБ ФОРМИРОВАНИЯ АНТИВИРУСНОЙ ЗАПИСИ ПРИ ОБНАРУЖЕНИИ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2592383C1
СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2589862C1
Система и способ обнаружения вредоносного кода в файле 2016
  • Головкин Максим Юрьевич
  • Монастырский Алексей Владимирович
  • Пинтийский Владислав Валерьевич
  • Павлющик Михаил Александрович
  • Бутузов Виталий Владимирович
  • Карасовский Дмитрий Валериевич
RU2637997C1
СПОСОБ ВЫПОЛНЕНИЯ ОБРАЩЕНИЯ К ПРОЦЕДУРАМ ЗАГРУЗОЧНОГО ДРАЙВЕРА 2014
  • Русаков Вячеслав Евгеньевич
  • Киржеманов Андрей Леонидович
  • Паршин Юрий Геннадьевич
RU2586576C1

Иллюстрации к изобретению RU 2 840 426 C1

Реферат патента 2025 года Система и способ блокировки вредоносной активности легитимных драйверов

Изобретение относится к области информационных технологий, а более конкретно к системам и способам блокировки вредоносной активности легитимных драйверов. Технический результат заключается в повышении безопасности операционной системы и достигается с помощью предлагаемого решения, предназначенного для блокировки вредоносной активности легитимных драйверов. Согласно варианту реализации используется способ блокировки вредоносной активности легитимных драйверов в операционной системе (далее - ОС), выполненный с возможностью реализации шагов, согласно которым: собирают информацию о защищаемых объектах и информацию о загруженных в ОС драйверах; обнаруживают по меньшей мере один загруженный в ОС легитимный драйвер посредством информации о загруженных в ОС драйверах и правил обнаружения вредоносной активности из базы данных правил; используют по меньшей мере один из следующих видов перехватов вызовов обнаруженных легитимных драйверов: перехват IAT; перехват IOCTL; блокируют направленные к защищаемым объектам перехваченные вызовы обнаруженных легитимных драйверов на основании собранной информации о защищаемых объектах и правил обнаружения вредоносной активности. 2 н. и 16 з.п. ф-лы, 6 ил.

Формула изобретения RU 2 840 426 C1

1. Способ блокировки вредоносной активности легитимных драйверов в операционной системе (далее - ОС), выполненный с возможностью реализации шагов, согласно которым:

а) собирают информацию о защищаемых объектах и информацию о загруженных в ОС драйверах;

обнаруживают по меньшей мере один загруженный в ОС легитимный драйвер посредством информации о загруженных в ОС драйверах и правил обнаружения вредоносной активности из базы данных правил;

б) используют по меньшей мере один из следующих видов перехватов вызовов обнаруженных легитимных драйверов:

• перехват IAT;

• перехват IOCTL;

в) блокируют направленные к защищаемым объектам перехваченные вызовы обнаруженных легитимных драйверов на основании собранной на этапе а) информации о защищаемых объектах и правил обнаружения вредоносной активности.

2. Способ по п. 1, в котором защищаемым объектом является по меньшей мере один из:

• загружаемые в память ядра ОС драйверы,

• физическая память,

• процессы,

• файловые объекты,

• реестровые объекты.

3. Способ по п. 1, в котором информация о защищаемых объектах содержит по меньшей мере одно из:

• таблица страниц для процесса SYSTEM,

• маска пути до файловых объектов,

• маска пути до реестровых объектов,

• идентификатор процесса,

• информация о базовом адресе процесса,

• информация о размере выделенной для процесса памяти.

4. Способ по п. 1, в котором информация о загруженных драйверах содержит по меньшей мере одно из:

• имя драйвера,

• путь в системе до драйвера,

• адрес загрузки драйвера,

• поля PE-заголовка драйвера,

• версия драйвера,

• путь до файла символов драйвера.

5. Способ по п. 1, в котором база данных правил является частью системного реестра операционной системы.

6. Способ по п. 1, в котором для использования перехвата IAT осуществляют замену адреса анализируемой функции из правила обнаружения вредоносной активности на адрес функции-перехватчика.

7. Способ по п. 1, в котором для использования перехвата IOCTL применяют метод сплайсинга на точку входа обнаруженного легитимного драйвера.

8. Способ по п. 1, в котором для использования перехвата IOCTL:

а) перехватывают реестровые операции ОС в контексте процесса “SYSTEM”,

б) обнаруживают операцию с типом RegNtPostQueryKeyName,

в) извлекают ключ из реестрового пути обнаруженной операции,

г) получают на основании извлеченного ключа объект устройства,

д) получают доступ к входящим IOCTL-вызовам посредством перехвата функции DriverInit.

9. Cпособ по п. 1, в котором для использования перехвата IOCTL получают объект легитимного драйвера посредством перебора сервисов в системном реестре и сравнения пути до легитимного драйвера со значением ImagePath указанных сервисов.

10. Система блокировки вредоносной активности легитимных драйверов в ОС, состоящая по меньшей мере из одной компьютерной системы и содержащая:

а) модуль сбора информации, предназначенный для:

• сбора информации о защищаемых объектах;

• сбора информации о загруженных в ОС драйверах;

б) модуль обнаружения, предназначенный для:

• получения правил обнаружения вредоносной активности из базы данных правил;

• обнаружения загрузки легитимных драйверов в ОС;

• использования по меньшей мере одного из следующих видов перехватов вызовов обнаруженных легитимных драйверов:

- перехват IAT;

- перехват IOCTL;

• обнаружения вредоносной активности легитимных драйверов с помощью правил обнаружения вредоносной активности и информации о защищаемых процессах;

• блокировки направленной на защищаемые процессы вредоносной активности легитимных драйверов на основании перехваченных функций.

11. Система по п. 10, в которой защищаемым объектом является по меньшей мере один из:

• загружаемые в память ядра ОС драйверы,

• физическая память,

• процессы,

• файловые объекты,

• реестровые объекты.

12. Система по п. 10, в которой информация о защищаемых объектах содержит по меньшей мере одно из:

• таблица страниц для процесса SYSTEM,

• маска пути до файловых объектов,

• маска пути до реестровых объектов,

• идентификатор процесса,

• информация о базовом адресе процесса,

• информация о размере выделенной для процесса памяти.

13. Система по п. 1, в которой информация о загруженных драйверах содержит по меньшей мере одно из:

• имя драйвера,

• путь в системе до драйвера,

• адрес загрузки драйвера,

• поля PE-заголовка драйвера,

• версия драйвера,

• путь до файла символов драйвера.

14. Система по п. 10, в которой база данных правил является частью системного реестра операционной системы.

15. Система по п. 10, в которой для использования перехвата IAT модуль обнаружения осуществляет замену адреса анализируемой функции из правила обнаружения вредоносной активности на адрес функции-перехватчика.

16. Система по п. 10, в которой для использования перехвата IOCTL модуль обнаружения использует метод сплайсинга на точку входа обнаруженного легитимного драйвера.

17. Система по п. 10, в которой для использования перехвата IOCTL модуль обнаружения:

а) перехватывает реестровые операции ОС в контексте процесса “SYSTEM”,

б) обнаруживает операцию с типом RegNtPostQueryKeyName,

в) извлекает ключ из реестрового пути обнаруженной операции,

г) получает на основании извлеченного ключа объект устройства,

д) получает доступ к входящим IOCTL-вызовам посредством перехвата функции DriverInit.

18. Система по п. 10, в которой для использования перехвата IOCTL модуль обнаружения получает объект легитимного драйвера посредством перебора сервисов в системном реестре и сравнения пути до легитимного драйвера со значением ImagePath указанных сервисов.

Документы, цитированные в отчете о поиске Патент 2025 года RU2840426C1

Способ обнаружения вредоносного файла с использованием базы уязвимых драйверов 2022
  • Лопатин Евгений Игоревич
  • Кондратьев Дмитрий Андреевич
RU2794713C1
Система и способ обнаружения вредоносного скрипта 2017
  • Павлющик Михаил Александрович
RU2659738C1
Способ обнаружения вредоносного приложения на устройстве пользователя 2016
  • Колотинский Евгений Борисович
  • Скворцов Владимир Александрович
RU2617924C1
Двухосный автомобиль 1924
  • У. Павези
SU2024A1
US 10909236 B2, 02.02.2021.

RU 2 840 426 C1

Авторы

Киржеманов Андрей Леонидович

Паршин Юрий Геннадьевич

Справцев Юрий Владимирович

Даты

2025-05-23Публикация

2024-10-24Подача