СПОСОБ И СИСТЕМА ПЕРЕХВАТА .NET ВЫЗОВОВ ПОСРЕДСТВОМ ПАТЧЕЙ НА ПРОМЕЖУТОЧНОМ ЯЗЫКЕ Российский патент 2024 года по МПК G06F21/14 G06F8/40 

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

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

[0001] Данное техническое решение относится к области вычислительной техники, а именно к способам и системам перехвата.NET вызовов посредством патчей на промежуточном языке.

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

[0002] Данное техническое решение относится к области вычислительной техники, а именно к способам и системам перехвата.NET вызовов посредством патчей на промежуточном языке.

[0003] Эксперты из области кибербезопасности прогнозируют, что количество и техническая сложность киберпреступлений продолжит возрастать. Злоумышленники быстро адаптируют ВПО для повышения его эффективности и преодоления известными способам борьбы с ВПО. В ответ на техническое развитие ВПО происходит развитие технических средств для противодействия ВПО, таким образом, происходит своеобразная "гонка вооружений". Предлагаемый к патентованию метод является очередной итерацией в упомянутой "гонке вооружений" со стороны, противодействующей злоумышленникам.

[0004] Большинство традиционных техник борьбы с киберугрозами сосредоточено на перехвате системных вызовов: получив доступ к системным вызовам, злоумышленники получают возможность выполнять потенциально мошеннические действия, например кража данных аутентификации, кодирование жесткого диска системы и так далее. Однако существует отдельный вид вредоносного программного обеспечения, которое способно достигать тех же результатов, но в обход системных вызовов. Речь идет о вредоносном программном обеспечении, разработанном с использованием .NET платформы. Подробное описание .NET платформы доступно по следующей ссылке https://en.wikipedia.org/wiki/.NET_Framework. В программной платформе .NET есть набор легитимных функций, который позволяет реализовывать мошенническую активность, ниже будет дана ссылка на ресурс с описанием таких операций. Такие операции могут не использовать системные вызовы или какое-либо системное API, либо использовать на очень низком уровне. При такой реализации сложно понять какая вредоносная активность была применена. Также невозможно получить какие-либо значимые маркеры и артефакты мошеннической активности ввиду значительного видоизменения й "обрезанных" данных, которые доходят до такого низкого уровня.

[0005] .NET или NET Framework - программная платформа, выпущенная компанией Microsoft в 2002 году. .NET платформа стала популярной средой разработки и часто используется на виртуальных машинах из-за реализованного универсального функционала. Платформа может быть установлена на разные операционные системы и поддерживает использование большого списка языков программирования, по следующей ссылке доступе список CLI языков https://en.wikipedia.org/wiki/List_of_CLI_languages. Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), подробно описанная по следующей ссылке https://en.wikipedia.org/wiki/Common_Language_Runtime.

[0006] Любой высокоуровневый язык перед запуском в среде .NET компилируется в промежуточный язык. Промежуточный язык - это язык программирования, разработанный для программной платформы .NET, более подробное описание промежуточного языка доступно по следующей ссылке https://en.wikipedia.org/wiki/Common_Tntermed.iate_Language. После компиляции в промежуточный код, код либо исполняется CLR, либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Описание утилиты NGen.exe доступно по следующей ссылке https://en.wikipedia.org/wiki/Native_Image_Generator. Использование виртуальной машины дает преимущества, так как избавляет от необходимости заботиться об особенностях аппаратной части. В случае использования CLR встроенный в нее JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Подробно JIT-компилятор описан по следующей ссылке https://en.wikipedia.org/wiki/Just-in-time_cornpilation. Описание байт-кода доступно по следующей ссылке https://en.wikipedia.org/wiki/Bytecode. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.

[0007] Как было упомянуто ранее, CLR в своей функциональной реализации имеет набор легитимных функций, которые могут быть использованы мошенниками. В частности, в 70-м выпуске Phrack пошагово описан способ реализации инъекций в CLR, который позволяет получить контроль над .NET приложением и похитить, например, данные аутентификации. Вот ссылка на описание данного способа http://phrack.org/.i.ssues/70/6.html.

[0008] Из области техники известно несколько способов противостояния мошенничествам в программной платформе .NET. посредствам перехватов. Описание одного из способов доступно по следующей ссылке https://github.com/tandasat/DotNetHooking. Данное решение реализует защиту .NET приложения посредствам перехватов через мониторинг и принудительную генерацию конечного машинного кода, который исполняется процессором. После этого выполняется стандартная работа с перехватами для системных библиотек, например, WinAPI. Этот метод хоть и решает похожую задачу - защиту .NET приложения, но полностью отличается от предлагаемого к патентованию решения в части реализации: модификация выполняется непосредственно на уровне машинного кода, а не на уровне промежуточного языка.

[0009] Из области техники также широко известно использование .dll инжекта. Один из примеров такого решения доступен по следующей ссылке https://stackoverflow.com/questions/25803/how-do-i-interctpt-a-method-call-in-c. В данном решении посредствам АОР и инжекта перехватывают методы. Описание аспектно-ориентированного программирования доступно по следующей ссылке https://habr.com/ru/post/428548/. Но, в отличие от предлагаемого к патентованию способа, данный способ выполняет перехват собственных библиотек. Кроме этого перехват выполняется в рамках одного процесса - dll-инжекта. Стандартная техника выполнения dll-инжекта подразумевает обозначенную цель, куда выполняют инжект, то есть специалист непосредственно указывает определенный процесс, находящийся в данный момент в исполнении, и в этот указанный специалистом процесс выполняется инжект. В отличие от данного решения в решении, предлагаемом к патентованию, используется патчинг усовершенствованного вида. Усовершенствованный патчинг предполагает модификацию кода на промежуточном языке на подготовительном этапе, а на этапе запуска, когда файл исполняет перехватываемый метод, выполняется подгрузка заданной .dll. Такой способ позволяет определить и автоматизировать вызов нужных методов.

[0010] В другом известном способе https://www.codeproject.com/Articles/463508/NET-CLR-Infection-Modify-IL-Code-during-Run-time предложено решение для похожей задачи. Но решение отличается тем, что оно, опираясь на pdb-файлы, изменяет поведение CLR, а именно ЛТ-компилятора. Метод не работает с системными библиотеками, такими как mscorlib. Из-за этого большая часть.NET платформы остается незащищенной, а именно Native Image. Native Image - это образы на машинном коде в.NET платформе. Native Image позволяет выполнять операции без использования ЛТ-компилятора. Больше информации о Native Image можно найти: пройдя по следующей ссылке https://ru.wikipedia.org/wiki/Ngen.

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

[0011] В рамках настоящего описания, если это не оговорено непосредственно по месту применения, нижеперечисленные специальные термины используются в следующих значениях:

патчинг, патч - автоматизированное внесения определенных изменений кода путем добавления/удаления/изменения его участков

модуль постобработки - набор программных средств для сбора, обработки и отправки информации в соответствии заданными параметрами

изолированная среда - виртуальная среда, предназначенная для анализа ВПО

метод - это функция или процедура, принадлежащая какому-то классу или объекту.

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

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

[0013] Технический результат заключается в реализации перехвата вызовов внутри .NET платформы.

[0014] К патентованию предлагается способ перехвата .NET вызовов посредствам патчей на промежуточном языке, способ выполняется сервером. Способ состоит из набора шагов, реализуемых сервером. Способ включает подготовительный и рабочие этапы. На подготовительном этапе для реализации способа выполняют следующие шаги: идентифицируют директорию .NET библиотеки; для каждой версии .NET библиотеки идентифицируют класс из предопределенного набора классов; в идентифицированном классе идентифицируют метод из предопределенного набора методов; идентифицированный метод изменяют посредствам добавления полезной нагрузки, которая инициирует запуск легирования и передачу контроля от системной библиотеки к детектирущему модулю; сохраняют измененный метод; в ответ на обнаружение native images, скрывают библиотеку native image, содержащую идентифицированный класс, из директории native images; генерируют измененную библиотеку native image; заменяют библиотеку native image измененной библиотекой native image. На рабочем этапе для реализации способа выполняют следующие шаги: в ответ на вызов .NET приложением по меньшей мере одного из: измененного метода; измененной библиотеки native image; запускают логирование и передают контроль от системной библиотеки к модулю постобработки. Далее сохраняют лог и сохраненных лог передают на анализ в модуль постобработки. После возвращают контроль .NET приложению. При этом набор предопределенных классов содержит: Assembly, Process, WebRequest.Набор предопределенных методов содержит: Load; GetProcesses; Create. Способ, в одной из реализаций предполагает, что перед изменением класса получают доступ к классу. Доступ классу получают посредствам утилиты takeown.Также сервер в дополнение к изменению класса может изменить поведение оригинального метода. В другой дополнительной реализации способа перед тем как скрывать библиотеку native image, получают к библиотеке native image доступ, гдеде доступ к библиотеке native image получают посредствам утилиты takeown. В другой дополнительной реализации способа измененную библиотеку native image генерируют посредствам утилиты ngen.exe.

[0015] Также к патентованию предлагается система для перехвата .NET вызовов посредствам патчей на промежуточном языке, система представлена по меньшей мере одним сервером, выполняющим шаги, описанные ниже. Система включает подготовительный и рабочие этапы. На подготовительном этапе в реализуемой системе выполняют следующие шаги: идентифицируют директорию .NET библиотеки; для каждой версии .NET библиотеки идентифицируют класс из предопределенного набора классов; в идентифицированном классе идентифицируют метод из предопределенного набора методов; идентифицированный метод изменяют посредствам добавления полезной нагрузки, которая инициирует запуск логирования и передачу контроля от системной библиотеки к детектирущему модулю; сохраняют измененный метод; в ответ на обнаружение native images, скрывают библиотеку native image, содержащую идентифицированный класс, из директории native images; генерируют измененную библиотеку native image; заменяют библиотеку native image измененной библиотекой native image. На рабочем этапе в реализуемой системе выполняют следующие шаги: в ответ на вызов .NET приложением по меньшей мере одного из: измененного метода; измененной библиотеки native image; запускают логирование и передают контроль от системной библиотеки к модулю постобработки. Далее сохраняют лог и сохраненных лог передают на анализ в модуль постобработки. После возвращают контроль .NET приложению. При этом набор предопределенных классов содержит: Assembly, Process, WebRequest. Набор предопределенных методов содержит: Load; GetProcesses; Create. Система, в одной из реализаций предполагает, что перед изменением класса получают доступ к классу. Доступ классу получают посредствам утилиты takeown. Также сервер в дополнение к изменению класса может изменить поведение оригинального метода. В другой дополнительной реализации перед тем как скрывать библиотеку native image, получают к библиотеке native image доступ, гдеде доступ к библиотеке native image получают посредствам утилиты takeown. В другой дополнительной реализации измененную библиотеку native image генерируют посредствам утилиты ngen.exe.

[0016] Решение, предлагаемое к патентованию позволяет в автоматическом режиме обнаруживать вызовы в .NET платформе и осуществлять их перехват. Перехват выполняется посредствам патчей на промежуточном языке.

ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0017] Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:

Фиг. 1 иллюстрирует общую схему .NET платформы.

Фиг. 2 иллюстрирует подготовительный этап способа.

Фиг. 3 иллюстрирует рабочий этап способа.

Фиг. 4 иллюстрирует схему вычислительного устройства

ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

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

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

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

[0021] В другом примере реализации перехват вызовов в .NET платформе используют для изменения поведения оригинальной функции, например путем подмены входных параметров. Так, в случае подмены параметра в методе Assembly::Load(byte[]) изменяют сборку, которую в дальнейшем загружают посредствам оригинального метода. В результате исполнения этой реализации изменяют поведение ВПО или конкретной сборки, загружаемой через вышеописанный метод. Такая реализация позволяет улучшить детектируемость ВПО.

[0022] В третьем примере реализации посредствам перехвата вызовов в .NET платформе изменяют поведение оригинальной функции, например изменяют логику оригинальной функции, тем самым добавляют дополнительные действия и убирают основные. Например, в методе Assembly::Load(byte[]) помимо логирования входных параметров добавляют логику получения информации об окружении процесса, сбора данных об исполняемом файле процесса, его метаинформацию. Благодаря этому получают детальное представление о том, какое ВПО и при каких обстоятельствах вызвало перехватываемую функцию.

[0023] На Фиг. 1 показана общая схема.NET платформы 100. В одном из примеров реализации .NET платформу устанавливают на виртуальной машине внутри изолированной среды для анализа вредоносного программного обеспечения. В другом примере реализации .NET платформу устанавливают на любой рабочей машине или любом другом вычислительном устройстве.

[0024] В .NET платформе 100 запускают .NET приложение, такое как .NET приложение 110. Посредствам CLR 120 выполняют запуск кода .NET приложения, такого как приложение 110. Код .NET приложения, такого как 110 содержит команды обращающиеся к библиотекам, таким как библиотека .NET 131 и образам Native Images таким как Native Images 132.

[0025] В .NET платформе посредствам запуска заранее подготовленного .NET приложения, выполняют модификацию по меньшей мере одной библиотеки, такой как библиотека-NET 131, также выполняют модификацию по меньшей мере одного Native Image, такого как Native Image 132. В результате модификации получают по меньшей мере одну модифицированную библиотеку, такую как модифицированная библиотека .NET 133 и по меньшей мере один модифицированный Native Image 134. Модифицированные библиотеки и модифицированные Native Images могут содержать патчи (на Фиг. 1 не показан) на промежуточном языке, при исполнении которых исполняют желаемое поведение, например, запускают логирование событий для последующего анализа и детекции ВПО.

[0026] Посредствам исполнения патча также запускают модуль постобработки, такой как модуль 150. Модуль постобработки, такой как модуль 150 используют для подготовки и передачи логов для последующего анализа.

[0027] Предлагаемый к патентованию способ состоит из подготовительного этапа 200 и рабочего этапа 300. На подготовительном этапе 200 выполняют упомянутую ранее модификацию библиотек с помощью патча. Аналогичным образом на рабочем этапе выполняют модификацию Native Images, если Native Images обнаружены. На рабочем этапе 300 выполняют запуск .NET приложения и как следствие патча.

[0028] Ниже подготовительный этап 200 будет подробно описан со ссылкой на Фиг. 2, а рабочий этап 300 со ссылкой на Фиг. 3. Для простоты изложения и понимания сути способа подготовительный этап 200 и рабочий этап 300 будут описаны на примере перехвата метода Assembly Load библиотеки mscorlib.dll, но специалисту в области техники будет очевидно, что возможна обработка нескольких библиотек и нескольких Native Images посредствам выполнения нескольких патчей.

[0029] Подготовительный этап 200 начинается с шага 205. На шаге 205 выполняют идентификацию библиотеки .NET платформы. Идентификацию библиотеки .NET платформы выполняют посредствам запуска заранее подготовленного скрипта 140, содержащегося в .NET приложении 120, который при запуске определяет архитектуру и версию установленной операционной системы, версию установленной .NET платформы и исходя из этих данных определяет все возможные директории расположения библиотеки. Также на шаге 205 получают доступ к библиотеке.

[0030] В приведенном примере для библиотеки mscorlib.dll посредствам запуска скрипта 140 идентифицируют директорию.net runtime directory, GAC32/64. Идентифицированную директорию сохраняют в памяти. Также на шаге 205 к библиотеке mscorlib.dll получают доступ, доступ может быть получен, например посредствам команды takeown. Команда takeown позволяет передать права на чтение/выполнение/запись к любому пользователю. Специалисту в области техники будет очевидно, что получение доступа к библиотеке может быть выполнено любым другим известным в области техники способом.

[0031] На этом шаг 205 завершается и способ переходит к следующему шагу 210.

[0032] На шаге 210 для .NET библиотеки идентифицируют класс из предопределенного набора классов. Набор предопределенных классов, также как и процесс идентификации может быть заранее задан скриптом 140 в .NET приложении 120. Другими словами идентификацию класса из предопределенного набора классов выполняют посредствам запуска заранее подготовленного скрипта 140. Идентифицированным классом может быть класс Assembly; Process; WebRequest или любой другой класс. Идентифицированный класс сохраняют.

[0033] В приведенном примере заранее заданным классом является класс System.Reflection.Assembly.

[0034] Шаг 210 завершается сохранением идентифицированного класса и способ переходит к шагу 215.

[0035] На шаге 215 для идентифицированного класса идентифицируют метод и предопределенного набора методов. Предопределенный набор методов, также как и процесс идентификации заранее определяют скриптом 140. То есть, идентификацию метода из предопределенного набора методов выполняют посредствам запуска заранее подготовленного скрипта 140, в котором прописан набор методов для идентификации. Идентифицированным методом может быть метод Load; GetProcesses; Create или любой другой метод. Идентифицированный метод сохраняют.

[0036] В приведенном примере методом из заранее заданного набора методов является метод Load. С помощью скрипта идентифицируют метод Load и сохраняют. На этом шаг 215 завершается и способ переходит к шагу 220.

[0037] На шаге 220 идентифицированный метод изменяют посредствам патча, то есть добавления полезной нагрузки в код на промежуточном языке. Ниже представлен пример полезной нагрузки, которую используют для изменения метода:

[0038] Код может быть добавлен посредствам заранее подготовленного скрипта 140. В зависимости от версии .NET платформы используют разные техники добавления полезной нагрузки. Например в .NET платформе версии 4 полезную нагрузку добавляют посредствам копирования оригинального кода в отдельный, специально созданный метод.

[0039] При этом в оригинальном методе остается только полезная нагрузка. Таким образом, на рабочем этапе полезную нагрузку выполняют, вызывая копию оригинального метода. Такая реализация является вынужденной и определена атрибутами безопасности кода, введенными в 4-ой версии .NET платформы.

[0040] В приведенном примере реализации добавленная полезная нагрузка на рабочем этапе инициирует запуск легирования и передачу контроля от системной библиотеки к модулю постобработки. Модулем постобработки может являться подгружаемая библиотека, которая преобразует полученные данные в определенный формат.

[0041] Измененный код на промежуточном языке сохраняют и подписывают строгим именем для обеспечения однозначности при обращении к коду. Подпись выполняют, например с помощью утилиты sn.exe. На этот шаг 220 завершается и способ переходит к шагу 225.

[0042] На шаге 225 посредствам заранее подготовленного скрипта 140 выполняют идентификацию Native Images. Если Native Images не обнаружены, то способ переходит к шагу 310 рабочего этапа 300, показанного на Фиг. 3. Если Native Images обнаружены, то способ переходит к шагу 230 подготовительного этапа 200.

[0043] На шаге 230 идентифицируют библиотеку Native Image, а также ее директорию, содержащую по меньшей мере один класс, идентифицированный на шаге 210. Посредствам команды takeown получают доступ к идентифицированной директории Native Image.

[0044] На этом шаг 230 завершается и алгоритм переходит к шагу 235.

[0045] На шаге 235 библиотеку Native Image, идентифицированную на шаге 230, копируют и скрывают из директорий Native Images.

[0046] В приведенном примере идентифицированную библиотеку Native Image, содержащую идентифицированный класс System.Reflection.Assembly копируют и скрывают из Native Images директорий, например, (v2 86/64, v4 86/64).

[0047] На этом шаг 235 завершается и алгоритм переходит к шагу 240.

[0048] На шаге 240 к классу идентифицированной библиотеки Native Image применяют изменения, аналогичные изменениям, применяемым к методам на шаге 220.

[0049] В приведенном примере класс System.Reflection.Assembly из библиотеку Native Image модифицируют и затем на основе модифицированного класса генерируют модифицированную библиотеку Native Image. Для генерации модифицированной библиотеки Native Image может быть использована, например утилита Ngen.exe. На этом шаг 240 заканчивается и способ переходит к шагу 245.

[0050] На шаге 245 библиотеку Native Image 132 заменяют на модифицированную библиотеку Native Image 134. Изменения сохраняют. На этом шаг 245 и подготовительный этап завершаются и способ переходит к рабочему этапу 300.

[0051] Рабочий этап 300 начинается с шага 310.

[0052] На шаге 310 в результате вызова метода из модифицированной библиотеки .NET 133, например, метода Load класса System.Reflection.Assembly выполняют заранее заданное действие, которое определено в полезной нагрузке данного метода.

[0053] В приведенном ранее примере полезная нагрузка следующая:

[0054] В результате выполнения данной полезной нагрузки управление от .NET приложения передают модулю, указанному в полезной нагрузке, например модулю постобработки 150. На этом шаг 310 завершается и способ переходит к шагу 320.

[0055] На шаге 320 выполняют действие, заданное в полезной нагрузке, например, логирование. Логирование выполняют любым известным методом. Собранный лог сохраняют. На этом шаг 320 завершается и способ переходит к шагу 330.

[0056] На шаге 330 сохраненный лог передают в модуль постобработки 150. Передача осуществляется по закрытому каналу. Передача модуля постобработки может быть выполнена любым известным способом.

[0057] На этом шаг завершается и способ переходит к шагу 340.

[0058] На шаге 340 подготовленный лог передают из модуля постобработки в изолированную среду для проведения анализа и обнаружения признаков вредоносной активности. Анализ вредоносной активности может быть выполнен любым известным способом.

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

[0060] В общем случае устройство (400) содержит такие компоненты, как: один или более процессоров (401), по меньшей мере одну память (402), средство хранения данных (403), интерфейсы ввода/вывода (404), средство В/В (405), средства передачи данных (406).

[0061] Процессор (401) устройства выполняет основные вычислительные операции, необходимые для функционирования устройства (400) или функциональности одного или более его компонентов. Процессор (401) исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти (402).

[0062] Память (402), как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.

[0063] Средство хранения данных (403) может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п. Средство (403) позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых файлов, промежуточных данных, списков, баз данных и т.п.

[0064] Интерфейсы (404) представляют собой стандартные средства для подключения и работы, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, FireWire и т.п.

[0065] Выбор интерфейсов (404) зависит от конкретного исполнения устройства (400), которое может представлять собой персональный компьютер, мейнфрейм, сервер, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.

[0066] В качестве средств В/В данных (405) может использоваться клавиатура. Помимо клавиатуры, в составе средств В/В данных также может использоваться: джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.

[0067] Средства сетевого взаимодействия (406) выбираются из устройств, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п.С помощью средств (406) обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.

[0068] Компоненты устройства (400) сопряжены посредствам общей шины передачи данных (410).

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

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

название год авторы номер документа
Способ ограничения доступа образа машинного кода к ресурсам операционной системы 2016
  • Иванов Дмитрий Геннадьевич
  • Павлов Никита Алексеевич
  • Швецов Дмитрий Владимирович
  • Горшенин Михаил Александрович
RU2625052C1
Способ категоризации сборок и зависимых образов 2015
  • Иванов Дмитрий Геннадьевич
  • Павлов Никита Алексеевич
  • Швецов Дмитрий Владимирович
  • Горшенин Михаил Александрович
RU2635271C2
Способ антивирусной проверки компьютерной системы 2015
  • Солодовников Андрей Юрьевич
  • Ладиков Андрей Владимирович
  • Цветков Сергей Валерьевич
RU2617925C2
Способ обнаружения вредоносных сборок 2015
  • Иванов Дмитрий Геннадьевич
  • Павлов Никита Алексеевич
  • Швецов Дмитрий Владимирович
  • Горшенин Михаил Александрович
RU2628920C2
Система и способ категоризации .NET приложений 2018
  • Кусков Владимир Анатольевич
  • Аникин Денис Вячеславович
  • Кирсанов Дмитрий Александрович
RU2756186C2
Способ и система диагностирования патологических изменений в биоптате предстательной железы 2021
  • Попов Геннадий Викторович
  • Чуб Александр Андреевич
  • Маевских Павел Андреевич
  • Юровский Владимир Андреевич
RU2757256C1
СИСТЕМА И СПОСОБ АВТОМАТИЧЕСКОЙ ОБРАБОТКИ СИСТЕМНЫХ ОШИБОК ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 2012
  • Антух Александр Эдуардович
  • Маланов Алексей Владимирович
RU2521265C2
КОМПЬЮТЕРНАЯ КЛАССИФИКАЦИЯ БИОЛОГИЧЕСКОЙ ТКАНИ 2019
  • Пападжаннакис, Эммануил
  • Эткинсон, Элестер
RU2765619C1
СПОСОБ СОРТИРОВКИ ЦИФРОВЫХ ИЗОБРАЖЕНИЙ ДЛЯ КАЧЕСТВЕННОЙ ПЕЧАТИ 2006
  • Ефимов Сергей Викентьевич
  • Рычагов Михаил Николаевич
RU2312395C1
Система классификации трафика 2018
  • Горькова Мария Давидовна
RU2697648C2

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

Реферат патента 2024 года СПОСОБ И СИСТЕМА ПЕРЕХВАТА .NET ВЫЗОВОВ ПОСРЕДСТВОМ ПАТЧЕЙ НА ПРОМЕЖУТОЧНОМ ЯЗЫКЕ

Изобретение относится к способам перехвата .NET вызовов. Технический результат заключается в реализации перехвата вызовов внутри .NET платформы. Технический результат достигается за счет того, что на подготовительном этапе для реализации способа выполняют следующие шаги: идентифицируют директорию .NET библиотеки; для каждой версии .NET библиотеки идентифицируют класс из предопределенного набора классов; в идентифицированном классе идентифицируют метод из предопределенного набора методов; идентифицированный метод изменяют посредством добавления полезной нагрузки, которая инициирует запуск логирования и передачу контроля от системной библиотеки к детектирующему модулю; сохраняют измененный метод; в ответ на обнаружение native images скрывают библиотеку native image, содержащую идентифицированный класс, из директории native images; генерируют измененную библиотеку native image; заменяют библиотеку native image измененной библиотекой native image; затем на рабочем этапе в ответ на вызов .NET приложением измененного метода или измененной библиотеки native image запускают логирование и передают контроль от системной библиотеки к модулю постобработки; сохраняют лог и передают его на анализ в модуль постобработки; и возвращают контроль .NET приложению. 2 н. и 16 з.п. ф-лы, 4 ил.

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

1. Способ перехвата .NET вызовов посредством патчей на промежуточном языке, способ, выполняемый сервером, способ, содержащий:

на подготовительном этапе:

- идентифицируют директорию .NET библиотеки;

- для каждой версии .NET библиотеки идентифицируют класс из предопределенного набора классов;

- в идентифицированном классе идентифицируют метод из предопределенного набора методов;

- идентифицированный метод изменяют посредством добавления полезной нагрузки, которая инициирует запуск логирования и передачу контроля от системной библиотеки к детектирующему модулю;

- сохраняют измененный метод;

- в ответ на обнаружение native images скрывают библиотеку native image, содержащую идентифицированный класс, из директории native images;

- генерируют измененную библиотеку native image;

- заменяют библиотеку native image измененной библиотекой native image;

на рабочем этапе:

- в ответ на вызов .NET приложением по меньшей мере одного из:

- измененного метода;

- измененной библиотеки native image; запускают логирование;

- передают контроль от системной библиотеки к модулю постобработки;

- сохраняют лог;

- передают лог на анализ в модуль постобработки;

- возвращают контроль .NET приложению.

2. Способ по п. 1, где набор предопределенных классов содержит:

- Assembly;

- Process;

- WebRequest.

3. Способ по п. 1, где набор предопределенных методов содержит:

- Load;

- GetProcesses;

- Create.

4. Способ по п. 1, где перед изменением класса получают доступ к классу.

5. Способ по п. 4, где доступ классу получают посредством утилиты takeown.

6. Способ по п. 1, где сервер в дополнение к изменению класса изменяет поведение оригинального метода.

7. Способ по п. 1, где перед тем как скрывать библиотеку native image, получают к библиотеке native image доступ.

8. Способ по п. 7, где доступ к библиотеке native image получают посредством утилиты takeown.

9. Способ по п. 1, где измененную библиотеку native image генерируют посредством утилиты ngen.exe.

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

на подготовительном этапе:

- идентифицируют директорию .NET библиотеки;

- для каждой версии .NET библиотеки идентифицируют класс из предопределенного набора классов;

- в идентифицированном классе идентифицируют метод из предопределенного набора методов;

- идентифицированный метод изменяют посредством добавления полезной нагрузки, которая инициирует запуск логирования и передачу контроля от системной библиотеки к детектирующему модулю;

- сохраняют измененный метод;

- в ответ на обнаружение native images скрывают библиотеку native image, содержащую идентифицированный класс, из директории native images;

- генерируют измененную библиотеку native image;

- заменяют библиотеку native image измененной библиотекой native image;

на рабочем этапе:

- в ответ на вызов .NET приложением по меньшей мере одного из:

- измененного метода;

- измененной библиотеки native image; запускают логирование;

- передают контроль от системной библиотеки к модулю постобработки;

- сохраняют лог;

- передают лог на анализ в модуль постобработки;

- возвращают контроль .NET приложению.

11. Система по п. 10, где набор предопределенных классов содержит:

- Assembly;

- Process;

- WebRequest.

12. Система по п. 10, где набор предопределенных методов содержит:

- Load;

- GetProcesses;

- Create.

13. Система по п. 10, где перед изменением класса получают доступ к классу.

14. Система по п. 13, где доступ классу получают посредством утилиты takeown.

15. Система по п. 10, где сервер в дополнение к изменению класса изменяет поведение оригинального метода.

16. Система по п. 10, где перед тем как скрывать библиотеку native image, получают к библиотеке native image доступ.

17. Система по п. 16, где доступ к библиотеке native image получают посредством утилиты takeown.

18. Система по п. 10, где измененную библиотеку native image генерируют посредством утилиты ngen.exe.

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

US 20160328221 A1, 10.11.2016
US 20210073015 A1, 11.03.2021
US 8954929 B2, 10.02.2015
US 20150277867 A1, 01.10.2015
Способ обнаружения вредоносных сборок 2015
  • Иванов Дмитрий Геннадьевич
  • Павлов Никита Алексеевич
  • Швецов Дмитрий Владимирович
  • Горшенин Михаил Александрович
RU2628920C2

RU 2 815 242 C1

Авторы

Третьяков Юрий Алексеевич

Сачков Илья Константинович

Даты

2024-03-12Публикация

2022-12-16Подача