Область техники
Изобретение относится к области информационной безопасности и предназначено для обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-сёрфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и объёма программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
Такого развития компьютерных технологий и угроз серьёзной задачей стала защита пользовательских вычислительных устройств от удалённых атак на них (в том числе целевых атак), и как следствие также захвата управления указанных устройство, т.е. удалённого исполнения команд на них (в том числе с использованием бэкдор программ, англ. Backdoor) и использования после захвата вычислительных устройств злоумышленниками (к примеру, для проведения DDoS-атак, в качестве терминала и т.д.).
В настоящий момент существует множество разнообразных техник защиты вычислительных устройств от удалённых атак – в частности, контроль входящего сетевого трафика, закрытие известных уязвимостей, блокировка потенциально опасного функционала операционных систем, контроль легального программного обеспечения, которое при использовании злоумышленниками может причинить вред вычислительному устройству или данным на нём, если будет использовано злоумышленниками (например, использование функционала программ-архиваторов для шифрования данных путём архивации данных с паролем). Тем не менее злоумышленники находят всё новые и новые способы внедрения вредоносного функционала на вычислительные устройства жертвы, а защита сталкивается с дилеммой формирования защищённой, но неудобной в использовании среды, или сохранения комфортной работы, но с шансом осуществления вредоносной активности.
В патентной публикации US20170339166A1 описывается технология обнаружения в сетевом трафике так называемых инструкций reverse shell (возможность удаленного запуска командной строки), которые могут использоваться для удалённых атак, в том числе и целевых атак, на вычислительные устройства пользователя. В частности, осуществляется анализ сетевых пакетов для выявления упомянутого reverse shell.
Недостатком описанной технологии является её узкая специализация. Из всего объёма доступных для анализа данных используются только данные о сетевых пакетах, т.е. анализа сетевого трафика. В результате чего во-первых невозможно определить конечного адресата передаваемых по сети команд на защищаемое устройство, а во-вторых невозможно эффективно противостоять описанной атаке, т.е. её можно прервать, но уже постфактум, когда команды были переданы в систему и исполнены.
Настоящее изобретение предназначено для обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки. При этом обнаружение подозрительной активности осуществляется для различных интерпретаторов командной строки, для различных режимов работы указанных интерпретаторов командной строки и для различных типов данных, с которыми работают указанные интерпретаторы командной строки.
Раскрытие изобретения
Изобретение предназначено для обеспечения информационной безопасности. Технический результат заключается в обнаружении подозрительной активности использования интерпретатора командной строки. Указанный технический результат достигается с использованием компьютерно-реализуемого способа обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки по которому обнаруживают исполнение интерпретатора командной строки; собирают информацию об активности обнаруженного интерпретатора командной строки; обнаруживают интерактивный ввод, осуществляемый при помощи межпроцессного взаимодействия в интерпретатор командной строки, на основании анализа собранной информации об активности, связанной с использованием интерпретатора командной строки; собирают данные об обнаруженном интерактивном вводе; выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки на основании анализа собранных данных.
Данный результат достигается с помощью использования реализуемого при помощи компьютера способа обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки: обнаруживают исполнение интерпретатора командной строки; собирают информацию об активности, связанной с исполнением обнаруженного интерпретатора командной строки; обнаруживают интерактивный ввод, осуществляемый при помощи межпроцессного взаимодействия, в интерпретатор командной строки на основании анализа собранной информации об активности, связанной с использованием интерпретатора командной строки; собирают данные об обнаруженном интерактивном вводе; выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки на основании анализа собранных данных.
В другом частном случае реализации способа обнаруживают исполнение интерпретатора командной строки в скрытом от пользователя режиме.
Ещё в одном частном случае реализации способа собирают информацию об активности, связанной с использованием интерпретатора командной строки за счёт агента, внедрённого в адресное пространство интерпретатора командной строки.
В другом частном случае реализации способа в качестве агента выступает по меньшей мере один из: драйвер; библиотека, подгружаемая в интерпретатор командной строки.
Ещё в одном частном случае реализации способа обнаруживают интерактивный ввод путём отслеживания исполнение по меньшей мере одного из: функций API операционной системы; внутренних функций интерпретатора командной строки.
В другом частном случае реализации способа в качестве функций API операционной системы для операционных систем Windows выступает по меньшей мере одна из функций: SetConsoleCursorPosition; ReadConsoleInputW; ReadConsoleW; ReadFile; Fgetc; Fgets; Fgetws; Fgetwc; Getwc.
Ещё в одном частном случае реализации способа межпроцессным взаимодействием, с помощью которого осуществляют интерактивный ввода в интерпретатор командной строки, является по меньшей мере один из методов: неименованный канал; именованный канал.
В другом частном случае реализации способа собираемыми данными об обнаруженном интерактивном вводе является информация о совокупности действий, которая при исполнении интерпретатором командной строки приведёт по меньшей мере к одному из результатов: модификации одного или нескольких файлов; передаче данных по сети; получению доступа к управлению правами пользователя.
Ещё в одном частном случае реализации способа собираемыми данными об обнаруженном интерактивном вводе является информация о совокупности действий, направленных на подмену одного файла другим файлом.
В другом частном случае реализации способа файлом, подменяющим другой файл, является DLL-библиотека с использованием технологии Dll Search Order Hijacking.
Ещё в одном частном случае реализации способа анализ собранных данных об обнаруженном интерактивном вводе заключается в вычислении вероятности того, что активность интерпретатора командной строки на основании интерактивного ввода приведёт к по меньшей мере одному из последствий: угрозе целостности данных пользователя; несанкционированному обмену данными пользователя.
В другом частном случае реализации способа выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки в случае, если вычисленная вероятность превышает заранее заданное пороговое значение.
Ещё в одном частном случае реализации способа дополнительно после вынесения решения о подозрительной активности, связанной с использованием интерпретатора командной строки, осуществляют действия по ограничению работы указанного интерпретатора командной строки.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки.
Фиг. 2 представляет структурную схему способа обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки.
Фиг. 3 представляет пример компьютерной системы, с помощью которой осуществляются различные варианты реализации настоящего изобретения.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведённая в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объёме приложенной формулы.
Фиг. 1 представляет структурную схему системы обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки.
Структурная схема системы обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки, включает интерпретатор командной строки 100, средство обнаружения исполнения 110, средство сбора информации об активности 120, средство обнаружения интерактивного ввода 130, средство анализа 140 и средство ограничения работы 150.
Описанные ниже средства реализованы как элементы компьютерной системы или совокупности компьютерных систем, более подробно описанных на Фиг. 3, или могут быть реализованы с использованием указанных элементов.
В общем случае в качестве подозрительной активности понимается активность на вычислительном устройстве (при этом в общем случае признак «вычислительное устройство» представляет собой компьютерную систему, описанною на Фиг. 3), которая потенциально может нанести ущерб данным на вычислительном устройстве или нанести ущерб работоспособности вычислительного устройства, но при этом не обязательно такой ущерб нанесёт (например, для этого необходимы дополнительные условия, в частности вычислительные ресурсы, данные и т.п.), а также активность, которая гарантированно наносит ущерб данным на вычислительном устройстве или ущерб работоспособности вычислительного устройства.
В общем случае активность, связанная с интерпретатором командной строки 100, вызывается за счёт команд или сценариев, передаваемых указанному интерпретатору командной строки 100 и обрабатываемых им в соответствии с логикой интерпретатора командной строки 100.
В частном случае команды или сценарии передаются в интерпретатор командной строки 100 с помощью интерактивного ввода.
В рамках заявленного изобретения обнаружение подозрительной активности на вычислительном устройстве осуществляется на основании заранее заданных критериев. Под критерием понимается как единичное событие (команда), например, запрос на повышение прав, так и ряд событий (команд), которые могут произойти как последовательно, так и в определенный промежуток времени.
Например, подозрительной активностью может пониматься обращение в определённое время к файлам с заданным размером, хотя в общем случае такая активность не является вредоносной, однако по статистике такое поведение встречается среди известного вредоносного программного обеспечения в значимом проценте случаев.
В частном случае в качестве критериев выступают, по меньшей мере:
• критерии, связанные с соответствием или схожестью с заранее сформированным набором команд, выполняемых в операционной системе (в том числе интерпретатором командной строки 100), при этом схожие наборы команд встречаются среди известного вредоносного программного обеспечения в значимом проценте случаев;
• критерии, связанные с формируемыми данными в операционной системе (в том числе интерпретатором командной строки 100), при этом схожие данные формируются известным вредоносным программным обеспечением в значимом проценте случаев.
Например, упаковка данных с шифрованием (одна из возможностей всех известных программ-архиваторов) является подозрительной, потому что широко используется таким классом вредоносных программ, как программы-шифровальщики.
Ещё в одном примере получение данных по компьютерной сети и последующая передача данных по компьютерной сети, при этом с сохранением зависимости «адрес, передающий данные, - адрес, получающий данные» также является подозрительным, потому что широко используется таким классом вредоносных программ, как бэкдор программы.
В одном из вариантов реализации системы в качестве подозрительной активности, связанной с использованием интерпретатора командной строки 100, выступает по меньшей мере один из:
• вредоносная активность, осуществляемая с помощью интерпретатора командной строки 100, т.е. активность не являющаяся результатом сбоя работы интерпретатора командной строки 100 или некорректно составленного скрипта для интерпретатора командной строки 100, в частности или операционной системы в целом, а в общем случае - активность, инициатор которой сознательно ставил цель достижения вредоносной задачи;
• активность, которая может нанести ущерб данным, на компрометацию данных на вычислительном устройстве или нанести ущерб работоспособности вычислительного устройства.
Другими словами:
• активность, осуществляемая с помощью интерпретатора командной строки 100, которая соответствует по меньшей мере одному критерию вредоносной активности, в частности, направленная на нанесение ущерба данным, или компрометацию данных, или на нанесение ущерба работоспособности вычислительном устройству, или на передачу пользовательских данных. Вредоносная активность не является результатом сбоя работы интерпретатора командной строки 100 или некорректно составленного скрипта для интерпретатора командной строки 100 в частности или операционной системы в целом;
• активность, осуществляемая с помощью интерпретатора командной строки 100, которая соответствует по меньшей мере одному критерию подозрительной активности и которая, в частности, может нанести ущерб данным на вычислительном устройстве или нанести ущерб работоспособности вычислительного устройства при дополнительных условиях.
Например, в качестве гарантированного нанесения ущерба данным выступает активность, направленная по меньшей мере на:
• удаление файлов (к примеру, интерпретатор командной строки выполняет команду «remove-item»);
• шифрование файлов методами, исключающими их расшифровку пользователем (например, с использованием ассиметричного шифрования).
Ещё в одном примере в качестве гарантированного нанесения ущерба работоспособности вычислительного устройства выступает активность, направленная по меньшей мере на:
• создание процессов, использующих процессор на 100% (к примеру, для вычисления криптовалют);
• запуск сервисных приложений для проверки элементов вычислительного устройства, что в свою очередь приводит к снижению эффективности работы указанного устройства в остальных задачах (к примеру, использование программ для сканирования поверхности жёсткого диска);
• передачи больших объёмов данных по сети, провоцируя DoS и DDoS атаки.
Ещё в одном примере в качестве гарантированной передачи пользовательских данных выступает активность, направленная по меньшей мере на:
• сбор пользовательских данных (в том числе загрузку данных во временный файл), при этом сбор пользовательских данных может осуществляться через вызовы API функций операционной системы или приложений, запросы данных от сервисов, работающих на вычислительном устройстве пользователя и т.д.;
• передачу собранных данных по компьютерной сети.
Средство обнаружения исполнения 110 предназначено для обнаружения исполнения (работы) интерпретатора командной строки 100 и передачи данных об обнаруженном интерпретаторе командной строки 100 средству сбора информации об активности 120.
Например, в операционной системе Windows в качестве интерпретатора командной строки 100 может выступать:
• встроенный интерфейс командной строки cmd;
• PowerShell (для ОС семейства Windows);
• bash, sh (для ОС семейства Unix).
В одном из вариантов реализации системы средство обнаружения исполнения 110 обнаруживает исполнение интерпретатора командной строки 100 в скрытом от пользователя режиме.
Например, интерпретатор командной строки 100 может работать в составе приложения PowerShell, запущенного скрытно от пользователя, по меньшей мере одним из следующих способов:
• на новом рабочем столе;
• в окне приложения (в оконном интерфейсе PowerShell или оконном интерфейсе консольного приложения) с нулевыми размерами;
• в окне приложения со 100% прозрачностью;
• в окне приложения, размещённом вне видимой области рабочего стола;
• в окне приложения с настройками видимости WM_HIDE.
В одном из вариантов реализации системы в качестве данных об интерпретаторе командной строки 100 выступает по меньшей мере одно из:
• идентификатор процесса интерпретатора командной строки 100;
• данные о расположении файлов интерпретатора командной строки 100 (например, пути к файлам приложения интерпретатора командной строки, пути к файлам, которые использует для своей работы интерпретатор командной строки, к примеру файлы, в которых записаны скрипты для упомянутого интерпретатора).
В одном из вариантов реализации системы средство обнаружения исполнения 110 обнаруживает исполнение интерпретатора командной строки 100 с помощью использования по меньшей мере одного из:
• эвристических правил, применяемым к сформированному интерпретатором командной строки 100 журналу, содержащему информацию об исполняемых приложениях и операционной системы команд (например, API функций);
• анализа журналов, динамически формируемых интерпретатором командной строки 100 во время исполнения упомянутым интерпретатором полученных команд (в том числе скриптов);
• анализа сетевого трафика, в котором осуществляется поиск команд управления, сценариев и иных данных, передаваемых приложениям, в том числе интерпретатору командной строки 100.
Средство сбора информации об активности 120 предназначено для сбора информации об активности 121, связанной с исполнением обнаруженного интерпретатора командной строки 100 и передачи собранной информации об активности 121 средству обнаружения интерактивного ввода 130.
В одном из вариантов реализации системы средство сбора информации 120 собирает информацию об активности, связанной с использованием интерпретатора командной строки 100, за счёт агента, внедрённого в адресное пространство интерпретатора командной строки 100. При этом указанный агент является одним из компонентов средства сбора информации 120, которое в свою очередь обладает необходимыми правами для выполнения сбора информации об активности 121 (например, работающего в режиме ядра, в отличии от средства сбора информации, работающего в режиме пользователя) и таким образом указанный агент также обладает необходимыми правами для своей работы (наследование прав и привилегий).
В одном из вариантов реализации агент является «лёгким», т.е. обладающим небольшим размером и использующим незначительный объём вычислительных ресурсов. При этом само средство сбора информации 120 такими характеристиками для эффективной работы может не обладать.
Ещё в одном из вариантов реализации системы в качестве агента выступает по меньшей мере один из:
• драйвер;
• библиотека, подгружаемая в интерпретатор командной строки 100 во время его запуска.
Например, интерпретатор командной строки 100 использует собственную библиотеку «engine_funcs.dll», которая содержит API для интерпретации команд. Средство сбора информации 120 подменяет эту библиотеку собственной, содержащей модифицированные импортируемые функции.
Ещё в одном из вариантов реализации средство сбора информации 120 внедряет агент в адресное пространство интерпретатора командной строки не только после обнаружения исполнения интерпретатора командной строки 100, но и до обнаружения исполнения интерпретатора командной строки 100. Например, внедрение агента осуществляется в адресное пространство по меньшей мере любого интерпретатора командной строки 100, установленного в операционной системе защищаемого вычислительного устройства, или интерпретатора командной строки 100 из заранее сформированного списка (например, на основании данных о интерпретаторах командной строки 100, найденных и проанализированных на иных вычислительных устройствах).
Ещё в одном из вариантов реализации системы в качестве информации об активности 121 выступает по меньшей мере одно из:
• совокупность вызовов функций и описывающие эти функции параметры (например, API функции и их параметры);
• данные, предоставленные интерпретатору командной строки 100 по меньшей мере путем:
передачи по сети (например, с использованием элементов межпроцессного взаимодействия),
получения от пользователя через механизм ввода/вывода,
имитации пользовательского ввода (например, через перехват драйвера клавиатуры),
исполнения скрипта, если интерпретатор командной строки поддерживает интерпретацию скриптов;
• параметры выполнения служб операционной системы и приложений, работающих под управлением операционной системы (при выполнении команд интерпретатором командной строки 100 могут запускаться разные службы операционной системы, например службы, отвечающие за работу с файловой системой или компьютерной сетью, анализируя параметры выполнения указанных служб можно делать косвенные выводы по об активности).
Средство обнаружения интерактивного ввода 130 предназначено для обнаружения интерактивного ввода, осуществляемого при помощи межпроцессного взаимодействия, в интерпретатор командной строки 100, сбора данных об интерактивном вводе 131 и передачи собранных данных об интерактивном вводе 131 средству анализа 140. Обнаружение интерактивного ввода осуществляется на основании анализа полученной информации об активности 121 от средства сбора информации об активности 120.
В одном из вариантов реализации системы в качестве интерактивного ввода понимают по меньшей мере одно из:
• передачу данных (в том числе команд и сценариев) интерпретатору командной строки 100 в процессе его работы (т.е. динамически), в том числе по сети;
• передачу данных с устройств ввода (например, клавиатуры, в том числе виртуальной) или с характеристиками, соответствующими вводу данных с устройств ввода (например, передачи данных по сети посимвольно и т.п.).
Ещё в одном из вариантов реализации системы в качестве данных об интерактивном вводе 131 выступает по меньшей мере одно из:
• текстовые данные, передаваемые интерпретатору командной строки 100;
• скорость, частота, периодичность и другие временные характеристики передачи данных интерпретатору командной строки 100;
• функциональная связь между передаваемыми данными и вызываемыми функциями (т.е. интерпретация данных в команды интерпретатора командной строки 100).
Ещё в одном из вариантов реализации системы дополнительно обнаруживают интерактивный ввод путём отслеживания исполнения по меньшей мере одного из:
• функций API операционной системы,
• внутренних функций интерпретатора командной строки 100.
Ещё в одном из вариантов реализации системы в качестве функций API операционной системы для операционных систем Windows выступает по меньшей мере одна из функций:
• SetConsoleCursorPosition;
• ReadConsoleInputW;
• ReadConsoleW;
• ReadFile;
• Fgetc;
• Fgets;
• Fgetws;
• Fgetwc;
• Getwc.
Ещё в одном из вариантов реализации системы межпроцессным взаимодействием, с помощью которого осуществляют интерактивный ввод в интерпретатор командной строки 100, является по меньшей мере один из методов:
• неименованный канал (англ. anonymous pipe);
• именованный канал (англ. named pipe).
Ещё в одном из вариантов реализации системы собираемыми данными об интерактивном вводе 131 является информация о совокупности действий, которая при исполнении интерпретатором командной строки 100, приводит по меньшей мере к одному из результатов:
• модификации одного или нескольких файлов;
• передаче данных по сети;
• получению доступа к управлению правами пользователя (на действия в операционной системе в целом или в отдельных приложениях в частности, при этом управление правами пользователя в отдельных приложениях может осуществляться не средствами операционной системы, а средствами указанных приложений, т.е. нестандартными средствами).
Ещё в одном из вариантов реализации системы собираемыми данными об обнаруженном интерактивном вводе 131 является информация о совокупности действий, направленных на подмену одного файла другим файлом.
Например, подменой файлов является по меньшей мере одно из:
• переименование исходного (подменяемого) и конечного (подменяющего) файлов;
• перемещение исходного файла в другую (временную) папку и помещение в исходную папку конечного файла;
• удаление исходного файла и помещение в исходную папку конечного файла;
• перезапись исходного файла конечным файлом;
• изменение настроек операционной системы (например, переменных окружения), чтобы использовался конечный, а не исходный файл.
Ещё в одном из вариантов реализации системы файлом, подменяющим другой файл, является DLL-библиотека с использованием технологии Dll Search Order Hijacking. DLL Hijacking — в самом широком смысле, обман легитимного (доверенного) приложения для загрузки произвольной библиотеки DLL. Существует множество подходов, успех которых зависит от того, какие настройки имеет приложение относительно загрузки необходимых библиотек DLL. Среди возможных вариантов выделяют:
• DLL replacement: нужно заменить законную DLL на вредоносную DLL. Это может быть осуществлено в сочетании с DLL проксированием, которое дает возможность всем свойствам оригинальных файлов остаться неизменными.
• DLL search order hijacking: библиотеки DLL, указанные приложением без пути, разыскиваются в указанных местах в определенном порядке. Процесс происходит путем размещения вредоносной библиотеки DLL в том месте, которое находится в поиске до фактической библиотеки DLL. Иногда оно содержит рабочий каталог целевого приложения.
• Phantom DLL hijacking: вредоносная DLL используется вместо несуществующей DLL, после этого нужно попытаться загрузить легитимное приложение.
• DLL redirection: надо изменить путь, по которому выполняется поиск DLL, например, отредактировав переменную окружения %PATH% или файлы .exe.manifest/.exe.local для перемещения папки, содержащей вредоносную DLL (Подробнее почитать об этом можно здесь или, перейдя по этой ссылке).
• WinSxS DLL replacement: следует заменить легитимную DLL на вредоносные dll файлы в соответствующей папке winsxs целевых файлов. Этот способ часто называется еще DLL side-loading.
• Relative path DLL Hijacking: нужно скопировать (и необязательно переименовать) легитимное приложение в папку, доступную для осуществления записи пользователем, вместе с вредоносной DLL. В использовании этого способа есть сходство с (Signed) Binary Proxy Execution, разновидностью которого также является «bring your own LOLbin». В последнем же легитимное приложение перемещается вместе с вредоносной DLL, а не копируется из легитимного местоположения на машине жертвы.
Средство анализа 140 предназначено для анализа данных об интерактивном вводе 131, полученных от средства обнаружения интерактивного ввода 130, и вынесения решения о подозрительной активности, связанной с использованием интерпретатора командной строки 100.
В одном из вариантов реализации системы средство анализа 140 осуществляет анализ собранных данных об интерактивном вводе 131 путем вычисления вероятности того, что активность интерпретатора командной строки 100 на основании интерактивного ввода приведёт к по меньшей мере одному из результатов:
• угрозе целостности данных пользователя;
• несанкционированному обмену данными пользователя (в том числе персональными).
Вычисление вероятности того, что активность интерпретатора командной строки 100 приведёт к описанным выше результатам осуществляется по меньшей мере одним из следующих способов:
• с использованием обученной модели, при этом обученная модель формируется с помощью одного из методов машинного обучения на основании заранее сформированной обучающей выборке, где каждой порции (логически завершённому набору) команд для интерпретатора командной строки 100 поставлено (аналитиком или заранее сформированной автоматикой) числовое значение, представляющее собой вероятность того, что указанный набор команд при использовании интерпретатором командной строки 100 вызовет описанные выше результаты (при этом числовое значение может выставляться из набора фиксированного количества значений, например только 0 или 1, означающих чётко определённые состояния, в частности 0 - гарантированно не вызовет описанных выше последствий, 1 - гарантированно вызовет описанные выше последствия);
• с использованием заранее сформированных эвристических правил, с помощью которых анализируют данные об интерактивном вводе для интерпретатора командной строки 100, при этом каждому эвристическому правилу поставлен в соответствие определённый вес, а срабатывание эвристического правила изменяет итоговую вероятность на основании соответствующего указанному правилу весу (например, веса складываются или вычисляется на основании одной из мер центральной тенденции (1 Weisberg H.F (1992) Central Tendency and Variability, Sage University Paper Series on Quantitative Applications in the Social Sciences, ISBN 0-8039-4007-6 p.2).
В качестве нарушения целостности данных пользователя может выступать по меньшей мере:
• модификация данных пользователя;
• удаление данных пользователя;
• замена данных пользователя сторонними данными.
Ещё в одном из вариантов реализации системы средства анализа 140 преобразует данные об интерактивном вводе 131 в команды интерпретатора командной строки 100, после чего полученные команды и характеризующие их параметры средство анализа 140 анализирует эвристическими правилами или с использованием предварительно обученной модели.
В качестве примера команд, интерпретируемых интерпретатором командной строки 100 во вредоносную активность, может выступать удаление всех файлов с рабочего стола пользователя:
Remove-item C:\Users\user-name\Desktop
Ещё в одном из вариантов реализации системы средство анализа 140 выносит решение о подозрительной активности, связанной с использованием интерпретатора командной строки 100 в случае, если вычисленная вероятность превышает заранее заданное пороговое значение.
Ещё в одном из вариантов реализации системы работу интерпретатора командной строки 100 с помощью средства ограничения работы 150 приостанавливают выполнение интерпретатором командной строки 100 данных об интерактивном вводе 131. Приостановка выполнения интерпретатором командной строки 100 данных об интерактивном вводе 131 осуществляется после перехвата данных об интерактивном вводе 131 и до проведения анализа и выноса вердикта о подозрительной активности, связанной с использованием интерпретатора командной строки 100.
Средство ограничения работы 150 предназначено для осуществления действий по ограничению работы интерпретатора командной строки 100 после вынесения решения о подозрительной активности, связанной с использованием интерпретатора командной строки 100, средством анализа 140.
В одном из вариантов реализации системы средство ограничения работы 150 осуществляет ограничения работы интерпретатора командной строки 100 по меньшей мере одним из способов:
• приостановкой работы интерпретатора командной строки 100 до окончания проведения одной или более проверок:
i. данных об интерактивном вводе 131,
ii. интерпретатора командной строки 100,
iii. активности операционной системы или приложений, работающих в операционной системе, файловой системы и т.п. любым известным из уровня техники способом;
• прерывание работы интерпретатора командной строки 100 (т.е. завершение процесса интерпретатора командной строки 100);
• блокировки модификации данных на диске и вне памяти процесса интерпретатора командной строки 100.
Ещё в одном из вариантов реализации системы дополнительно средство ограничения работы 150 информирует пользователя о результатах анализа данных об интерактивном вводе 131 и получает информацию от пользователя о выполнении последующих действий по работе интерпретатора командной строки 100.
Ещё в одном из вариантов реализации системы дополнительно средство ограничения работы 150 собирает данные об изменениях в операционной системе (в том числе в файловой системе), выполненных интерпретатором командной строки 100, и осуществляет восстановление состояния операционной системы до начала работы интерпретатора командной строки 100 (например, как описано в патенте RU2468427).
Например, удалённые файлы в операционной системе Windows могут быть восстановлены с помощью по меньшей мере сервиса резервного копирования и восстановления или с помощью журналов файлов.
Таким образом, представленное изобретение в виде системы позволяет увеличить эффективность обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки. Увеличение эффективности связано в первую очередь с тем, что из-за приостановки выполнения интерпретатором командной строки 100 данных об интерактивном вводе 131 реализуют возможность использования большего числа ресурсов для выполнения необходимого анализа, в частности возможность использования большего объёма машинного времени, а значит и более медленных, но эффективных методов антивирусного анализа.
Фиг. 2 представляет структурную схему способа обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки.
Структурная схема способа обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки, включает этап 210, на котором обнаруживают исполнение интерпретатора 100, этап 220, на котором собирают информацию об активности, этап 230, на котором обнаруживают интерактивный ввод, этап 240, на котором собирают данные об интерактивном вводе, этап 250, на котором анализируют данные, и этап 260, на котором ограничивают работу интерпретатора.
Способ обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки 100 выполняют с помощью средств системы обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки, которая содержит для этой цели процессор и память и представлена при описании Фиг. 1.
На этапе 210 с помощью средства обнаружения исполнения 110 обнаруживают исполнение интерпретатора командной строки 100.
На этапе 220 с помощью средства сбора информации об активности 120 собирают информацию об активности 121, связанной с исполнением интерпретатора командной строки 100, обнаруженном на этапе 210.
На этапе 230 с помощью средства обнаружения интерактивного ввода 130 обнаруживают интерактивный ввод, осуществляемый при помощи межпроцессного взаимодействия, в интерпретатор командной строки 100 на основе анализа собранной на этапе 220 информации об активности 121, связанной с исполнением интерпретатора командной строки 100.
На этапе 240 с помощью средства обнаружения интерактивного ввода 130 собирают данные об обнаруженном интерактивном вводе 131.
На этапе 250 с помощью средства анализа 140 выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки 100 на основании анализа собранных на этапе 240 данных об интерактивном вводе 131.
Дополнительно на этапе 260 с помощью средства ограничения работы 150 после вынесения на этапе 250 решения о подозрительной активности, связанной с использованием интерпретатора командной строки 100, осуществляют действия по ограничению работы указанного интерпретатора командной строки 100.
На Фиг. 3 представлена компьютерная система, на которой могут быть реализованы различные варианты систем и способов, раскрытых в настоящем документе. Компьютерная система 20 может представлять собой систему, сконфигурированную для реализации настоящего изобретения и может быть в виде одного вычислительного устройства или в виде нескольких вычислительных устройств, например, настольного компьютера, портативного компьютера, ноутбука, мобильного вычислительного устройства, смартфона, планшетного компьютера, сервера, мейнфрейма, встраиваемого устройства и других форм вычислительных устройств.
Как показано на Фиг. 3, компьютерная система 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 оснащена другими периферийными устройствами вывода (на Фиг. 8 не показаны), такими как динамики и другие аудиовизуальные устройства.
Компьютерная система 20 может работать в сетевом окружении, используя сетевое соединение с одним или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 является рабочим персональным компьютером или сервером, который содержит большинство или все упомянутые компоненты, отмеченные ранее при описании сущности компьютерной системы 20, представленной на Фиг. 8. В сетевом окружении также могут присутствовать и другие устройства, например, маршрутизаторы, сетевые станции или другие сетевые узлы. Компьютерная система 20 может включать один или несколько сетевых интерфейсов 51 или сетевых адаптеров для связи с удаленными компьютерами 49 через одну или несколько сетей, таких как локальная компьютерная сеть (LAN) 50, глобальная компьютерная сеть (WAN), интранет и Интернет. Примерами сетевого интерфейса 51 являются интерфейс Ethernet, интерфейс Frame Relay, интерфейс SONET и беспроводные интерфейсы.
Варианты раскрытия настоящего изобретения могут представлять собой систему, способ, или машиночитаемый носитель (или носитель) информации.
Машиночитаемый носитель информации является осязаемым устройством, которое сохраняет и хранит программный код в форме машиночитаемых инструкций или структур данных, к которым имеет доступ центральный процессор 21 компьютерной системы 20. Машиночитаемый носитель может быть электронным, магнитным, оптическим, электромагнитным, полупроводниковым запоминающим устройством или любой подходящей их комбинацией. В качестве примера, такой машиночитаемый носитель информации может включать в себя память с произвольным доступом (RAM), память только для чтения (ROM), EEPROM, портативный компакт-диск с памятью только для чтения (CD-ROM), цифровой универсальный диск (DVD), флэш-память, жесткий диск, портативную компьютерную дискету, карту памяти, дискету или даже механически закодированное устройство, такое как перфокарты или рельефные структуры с записанными на них инструкциями.
Система и способ, настоящего изобретения, могут быть рассмотрены в терминах средств. Термин "средство", используемый в настоящем документе, относится к реальному устройству, компоненту или группе компонентов, реализованных с помощью аппаратного обеспечения, например, с помощью интегральной схемы, специфичной для конкретного приложения (ASIC) или FPGA, или в виде комбинации аппаратного и программного обеспечения, например, с помощью микропроцессорной системы и набора машиночитаемых инструкций для реализации функциональности средства, которые (в процессе выполнения) превращают микропроцессорную систему в устройство специального назначения. Средство также может быть реализовано в виде комбинации этих двух компонентов, при этом некоторые функции могут быть реализованы только аппаратным обеспечением, а другие функции - комбинацией аппаратного и программного обеспечения. В некоторых вариантах реализации, по крайней мере, часть, а в некоторых случаях и все средство может быть выполнено на центральном процессоре 21 компьютерной системы 20. Соответственно, каждое средство может быть реализовано в различных подходящих конфигурациях и не должно ограничиваться каким-либо конкретным вариантом реализации, приведенным в настоящем документе.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что при разработке любого реального варианта осуществления настоящего изобретения необходимо принять множество решений, специфических для конкретного варианта осуществления, для достижения конкретных целей, и эти конкретные цели будут разными для разных вариантов осуществления. Понятно, что такие усилия по разработке могут быть сложными и трудоемкими, но, тем не менее, они будут обычной инженерной задачей для тех, кто обладает обычными навыками в данной области, пользуясь настоящим раскрытием изобретения.
название | год | авторы | номер документа |
---|---|---|---|
Система и способ обнаружения вредоносного скрипта | 2017 |
|
RU2659738C1 |
Система и способ обнаружения вредоносного кода в адресном пространстве процессов | 2017 |
|
RU2665910C1 |
Система и способ обнаружения признаков компьютерной атаки | 2017 |
|
RU2661533C1 |
СИСТЕМА И СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ ОПРЕДЕЛЕННОГО ТИПА | 2014 |
|
RU2583712C2 |
Способ обнаружения вредоносных исполняемых файлов, содержащих интерпретатор, посредством комбинирования эмуляторов | 2015 |
|
RU2622627C2 |
Эмулятор и способ эмуляции | 2020 |
|
RU2757409C1 |
Система и способ обнаружения вредоносного файла | 2018 |
|
RU2739865C2 |
Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов | 2017 |
|
RU2659737C1 |
Система и способ классификации объектов вычислительной системы | 2018 |
|
RU2724710C1 |
Система и способ определения вредоносного файла | 2017 |
|
RU2673407C1 |
Изобретение предназначено для обеспечения информационной безопасности. Предлагается способ обнаружения подозрительной активности, согласно которому обнаруживают исполнение интерпретатора командной строки с помощью эвристических правил, применяемых к сформированному интерпретатором командной строки журналу; анализа журналов, динамически формируемых интерпретатором командной строки; анализа сетевого трафика, в котором осуществляется поиск команд управления, сценариев и иных данных, передаваемых интерпретатору командной строки; собирают информацию об активности, связанной с исполнением обнаруженного интерпретатора командной строки, при этом информацией является совокупность вызовов функций и описывающие эти функции параметры; данные, предоставленные интерпретатору командной строки путем: передачи по сети, получения от пользователя через механизм ввода/вывода, имитации пользовательского ввода или исполнения скрипта; обнаруживают интерактивный ввод, осуществляемый при помощи межпроцессного взаимодействия, в интерпретатор командной строки на основании анализа собранной информации об активности, связанной с использованием интерпретатора командной строки; собирают данные об обнаруженном интерактивном вводе, при этом собираемыми данными по меньшей мере является информация о действиях, направленных на подмену одного файла другим файлом; выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки, на основании анализа собранных данных; осуществляют действия по ограничению работы интерпретатора командной строки для устранения вероятного ущерба данным. Технический результат заключается в обнаружении подозрительной активности использования интерпретатора командной строки. 10 з.п. ф-лы, 3 ил.
1. Способ обнаружения подозрительной активности, связанной с использованием интерпретатора командной строки, реализуемый при помощи по меньшей мере одного компьютерного устройства, включающего память и аппаратный процессор, при этом:
а) обнаруживают исполнение интерпретатора командной строки с помощью по меньшей мере одного из:
i. эвристических правил, применяемым к сформированному интерпретатором командной строки журналу;
ii. анализа журналов, динамически формируемых интерпретатором командной строки;
iii. анализа сетевого трафика, в котором осуществляется поиск команд управления, сценариев и иных данных, передаваемых интерпретатору командной строки;
б) собирают информацию об активности, связанной с исполнением обнаруженного интерпретатора командной строки, при этом информацией является по меньшей мере одно из:
i. совокупность вызовов функций и описывающие эти функции параметры;
ii. данные, предоставленные интерпретатору командной строки путем: передачи по сети, получения от пользователя через механизм ввода/вывода, имитации пользовательского ввода или исполнения скрипта;
в) обнаруживают интерактивный ввод, осуществляемый при помощи межпроцессного взаимодействия, в интерпретатор командной строки на основании анализа собранной информации об активности, связанной с использованием интерпретатора командной строки;
г) собирают данные об обнаруженном интерактивном вводе, при этом собираемыми данными по меньшей мере является информация о действиях, направленных на подмену одного файла другим файлом;
д) выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки, на основании анализа собранных данных;
е) осуществляют действия по ограничению работы интерпретатора командной строки для устранения вероятного ущерба данным, или компрометации данных, или ущерба работоспособности компьютерного устройства, или передачи пользовательских данных.
2. Способ по п. 1, по которому обнаруживают исполнение интерпретатора командной строки в скрытом от пользователя режиме.
3. Способ по п. 1, по которому собирают информацию об активности, связанной с использованием интерпретатора командной строки за счёт агента, внедрённого в адресное пространство интерпретатора командной строки.
4. Способ по п. 3, по которому в качестве агента выступает по меньшей мере один из:
• драйвер;
• библиотека, подгружаемая в интерпретатор командной строки.
5. Способ по п. 1, по которому обнаруживают интерактивный ввод путём отслеживания исполнения по меньшей мере одного из:
• функций API операционной системы,
• внутренних функций интерпретатора командной строки.
6. Способ по п. 5, по которому в качестве функций API операционной системы для операционных систем Windows выступает по меньшей мере одна из функций:
• SetConsoleCursorPosition;
• ReadConsoleInputW;
• ReadConsoleW;
• ReadFile;
• Fgetc;
• Fgets;
• Fgetws;
• Fgetwc;
• Getwc.
7. Способ по п. 1, по которому межпроцессным взаимодействием, с помощью которого осуществляют интерактивный ввода в интерпретатор командной строки, является по меньшей мере один из методов:
• неименованный канал;
• именованный канал.
8. Способ по п. 1, по которому собираемыми данными об обнаруженном интерактивном вводе является информация о совокупности действий, которая при исполнении интерпретатором командной строки приведёт по меньшей мере к одному из результатов:
• модификации одного или нескольких файлов;
• передаче данных по сети;
• получению доступа к управлению правами пользователя.
9. Способ по п. 1, по которому файлом, подменяющим другой файл, является DLL-библиотека с использованием технологии Dll Search Order Hijacking.
10. Способ по п. 1, по которому анализ собранных данных об обнаруженном интерактивном вводе заключается в вычислении вероятности того, что активность интерпретатора командной строки на основании интерактивного ввода приведёт к по меньшей мере одному из последствий:
• угрозе целостности данных пользователя;
• несанкционированному обмену данными пользователя.
11. Способ по п. 10, по которому выносят решение о подозрительной активности, связанной с использованием интерпретатора командной строки в случае, если вычисленная вероятность превышает заранее заданное пороговое значение.
СПОСОБ И СИСТЕМА ПРИНЯТИЯ РЕШЕНИЯ О НЕОБХОДИМОСТИ АВТОМАТИЗИРОВАННОГО РЕАГИРОВАНИЯ НА ИНЦИДЕНТ | 2020 |
|
RU2738334C1 |
US 2021097186 A1, 01.04.2021 | |||
JP 6700351 B2, 27.05.2020 | |||
US 10764032 B2, 01.09.2020 | |||
EP 3964990 A1, 09.03.2022 | |||
EP 3800567 B1, 01.03.2023 | |||
US 2021117544 A1, 22.04.2021 | |||
US 11403389 B2, 02.08.2022 | |||
US 20220300609 A1, 22.09.2022 | |||
US 20230023584 A1, 26.01.2023 | |||
SG 10201900335 PA, 27.08.2019 | |||
US 11134093 B2, 28.09.2021 | |||
EP |
Авторы
Даты
2024-04-16—Публикация
2023-03-23—Подача