Способ обнаружения работы вредоносной программы, запущенной с клиента, на сервере
METHOD FOR DETECTION WORKING MALICIOUS SOFTWARE RUNNED FROM CLIENT, ON SERVER

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к способам обнаружения работы вредоносных программ, шифрующих данные.
Уровень техники
В настоящее время среди вредоносных программ получили распространение так называемые программы-шифровальщики (англ. cryptor ransomware), которые при запуске на компьютере пользователя шифруют наиболее важные данные (например, изображения, текстовые файлы и другие файлы, которые обычно используют пользователи). После шифрования пользователю предлагается заплатить мошеннику деньги, чтобы получить ключ для расшифровки файлов. Учитывая, что мошенниками все чаще используется асимметричное шифрование, то без знания закрытого ключа для расшифрования данных восстановление данных пользователя практически невозможно. Примером подобных программ-шифровальщиков может служить вредоносная программа CryptoLocker.
Разработчики антивирусных приложений давно знают о подобных программах и разработали ряд технологий, позволяющих определить работу программы-шифровальщика. Например, в патентной заявке US 20150058987 описан алгоритм подсчета энтропии для определения факта шифрования файла. Также в заявке учитывается исключение файлов по типу их формата для уменьшения ложных срабатываний и повышения быстродействия.
Подобные методы обнаружения хорошо зарекомендовали себя при работе на компьютере пользователя, позволяя вовремя обнаружить программу-шифровальщика. Однако существует проблема, связанная с тем, что если программа-шифровальщик будет перебирать диски на компьютере пользователя, на которых потом будет шифровать данные, то при обнаружении сетевого диска (который физически находиться на сервере) подобная вредоносная программа может зашифровать данные также и на сервере. Конечно, отслеживание всей файловой активности на сервере позволило бы решить указанную проблему, однако это серьезно снижает производительность работы сервера, что зачастую является неприемлемым. Таким образом, требуется новое решение для определения факта работы программы-шифровальщика, запущенной с клиента, на сервере.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий, недостатки которых решаются настоящим изобретением, а именно способом обнаружения работы вредоносных программ, шифрующих данные.
Раскрытие изобретения
Технический результат настоящего изобретения заключается в обеспечении определения файловой операции, запущенной на сервере с компьютера пользователя, как работы вредоносной программы.
Согласно одному из вариантов реализации, предлагается способ определения работы вредоносной программы, запущенной с компьютера пользователя, на сервере: перехватывают файловую операцию со стороны компьютера пользователя на сервере с помощью перехватчика; передают данные по перехваченной файловой операции анализатору, при этом данные включают по меньшей мере одно из: тип файловой операции, буферы данных с оригинальным содержимым файла и модифицированным содержимым файла, данные о компьютере пользователя; подсчитывают информационную энтропию для буфера данных с оригинальным содержимым файла с помощью анализатора; подсчитывают информационную энтропию для буфера данных с модифицированным содержимым файла с помощью анализатора; подсчитывают разность полученных значений энтропии на этапах выше помощью анализатора; при превышении порогового значения подсчитанной разности определяют файловую операцию со стороны компьютера пользователя на сервере как работу вредоносной программы.
В еще одном варианте реализации вредоносной программой является программа-шифровальщик (англ. cryptor ransomware).
В другом варианте реализации дополнительно производят создание резервной копии файла, над которым совершается файловая операция. Также дополнительно производят восстановление резервной копии файла на сервере после определения файловой операции со стороны компьютера пользователя на сервере как работу вредоносной программы.
В еще одном варианте реализации перехватчик и анализатор работают в асинхронном режиме.
В другом варианте реализации на компьютере пользователя установлено антивирусное приложение, которому передается информация о работе вредоносной программы.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 показывает пример работы программы-шифровальщика на сервере.
Фиг. 2 показывает пример работы настоящего изобретения.
Фиг. 3 иллюстрирует способ работы настоящего изобретения.
Фиг. 4 иллюстрирует функцию вероятности.
Фиг. 5 показывает пример компьютерной системы, с помощью которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Фиг. 1 показывает пример работы программы-шифровальщика на стороне сервера. На компьютере пользователя 120 запускается программа-шифровальщик 140 (это может сделать как сам пользователь, приняв программу 140 за легитимную программу, или же программа 140 запустится сама, например, при старте компьютера 120 через ключ реестра, используемый для автозапуска). Если к компьютеру 120 подключен сетевой диск на сервере 110, то программа-шифровальщик 140 может также зашифровать файлы 130 на сетевом диске сервера 110.
Фиг. 2 показывает пример работы настоящего изобретения. По сравнению с Фиг. 1 добавлены перехватчик 150 и анализатор 160. В частном случае реализации перехватчик 150 является файловым драйвер-фильтром, а анализатор 160 является антивирусным приложением. Перехватчик 150 перехватывает запросы на работу с файлами 130 и передает данные анализатору 160. Перехват запросов на работу с файлами в одном из вариантов реализации основан на перехвате вызовов таких системных функций как CreateFile, ReadFile/WriteFile, DeleteFile, GetFileInformationByHandle, FindFirstFile и других (данный список функций применим для операционной системы Windows).
Для определения факта работы программы-шифровальщика 140 важно перехватить не только вызов системной функции, но также данные, которые она пытается записать вместо оригинального файла 130. Стоит отметить, что программы-шифровальщики 140 могут работать, как правило, с использованием двух алгоритмов при шифровании файлов 130: во-первых, они могут создать копию файла 130 и шифровать данные созданной копии, удалив после этого оригинальный файл 130; во-вторых, они могут перезаписывать непосредственно данные файла 130, считывая оригинальные данные в буфер, шифруя их и записывая их обратно.
В рамках настоящей заявки для определения факта работы программы-шифровальщика 140 использует известный подход по подсчету энтропии при записи данных на диск. Определение информационной энтропии (далее будем просто говорить об энтропии) дано в статье The Mathematical Theory of Communication, (с) 1949 by the Board of Trustees of the University of Illinois. Ha Фиг. 4 приведен пример расчета энтропии для одного и того же файла до его зашифровки и после. По оси X указан код символа (например, символы а, b, с и т.д. и соответствующие коды от 00h до FFh), а по оси Y - вероятность их появления в файле. Приведенный на Фиг. 4 график - функция вероятности - определяет вероятность появления определенного символа (байта) в файле. Энтропия же показывает, сколько нужно бит, чтобы закодировать эту информацию (символ). Таким образом, чем меньше упорядоченной информации в файле, тем больше энтропия (таким образом, файл с максимальной энтропией представляет беспорядочный набор символов, каждый из которых встречается примерно одинаковое число раз). Например, для текстового файла, где были лишь английские символы, энтропия была меньше, чем после его шифрования.
Функция вероятности А на Фиг. 4 характерна для незашифрованного файла, где наибольшую вероятность появления имеет ограниченный набор символов - это верно для текстовых файлов, а также для заголовков бинарных файлов, так как заголовок описывает тип (формат) файла. После шифрования файла программой-шифровальщиком 140 функция вероятности примет вид функции В, где различное количество символов будут встречаться примерно с одинаковой частотой.
Один из известных вариантов определения факта работы программы-шифровальщика 140 заключается в подсчете "конвергенции" энтропии файла, т.е. разницы двух энтропий. Если "конвергенция" (далее будем использовать без кавычек) превышает определенный порог, то определяется, что файл был изменен (зашифрован). Максимальное значение "конвергенции" не превышает несколько десятков байт. Конвергенция может быть подсчитана по формуле
где Р - значение конвергенции в байтах,
modified
H - значение энтропии после изменения файла (шифрования),
original
H - значение энтропии до изменения файла.
Фиг. 3 иллюстрирует способ работы настоящего изобретения. На этапе 310 происходит перехват файловой операции (вызова системной функции в виде запроса на работу с файлами) со стороны компьютера пользователя 120 на сервере 110. На этапе 320 создается резервная копия файла, который подвергается изменению. Создание резервной копии файла является известной технологией и может быть реализовано с помощью копирования файла в тот же самый каталог (или временный каталог для хранения резервных копий). Примером приложения, которое осуществляет резервное копирование, является Acronis Backup & Recovery.
На этапе 330 данные, связанные с перехваченной файловой операцией, отправляются на анализ анализатору 160. Данные могут включать тип файловой операции (вызванная API функция), буферы данных (с оригинальным содержимым файла и модифицированным содержимым), данные о компьютере пользователя 120. На этапе 340 происходит анализ буфера данных, которые будут записаны в файл 130. В том случае, если было определено, что по результатам анализа буфера данных файловую операцию пытается совершить известная программа-шифровальщик 140 (например, используя известную сигнатуру, с помощью которой ищут следы работы программы-шифровальщика 140 в буфере), то на этапе 370 соединение компьютера пользователя 120 с сервером 110 блокируется или разрывается. Дальнейшие этапы будут рассмотрены ниже.
Если же по анализу данных известная программа-шифровальщик 140 не была обнаружена, то на этапе 350 подсчитывается энтропия для перезаписанного участка файла и подсчитывается конвергенция энтропии для оригинального и перезаписанного участка файла с помощью анализатора 160. Предпочтительный вариант реализации включает анализ заголовка файла, который включает описание формата (типа) файла 130. При шифровании файла заголовок файла перезаписывается, что приводит к изменению формата файла (его потере). Как правило, для подобного анализа достаточно первых несколько килобайт файла. Подобный анализ выполняется на этапе 360 и если конвергенция не превышается заданный порог (например, 10 байт), то на этапе 365 разрешаются дальнейшие файловые операции (вызовы системных функций) со стороны компьютера пользователя 120.
В случае, если конвергенция энтропии превысила заданный порог, то определяется работа программы-шифровальщика 140 и на этапе 370 происходит блокировка (или разрыв) соединения компьютера пользователя 120 с сервером 110. На этапе 380 происходит восстановление (откат) резервной копии файла.
Важно отметить, что выполнение файловых операций со стороны компьютера пользователя 120 не блокируется, а выполняется без задержек со стороны перехватчика 150 - так называемый асинхронный режим работы. С одной стороны, выполнение файловых операций происходит без потери производительности, но с другой стороны требует создания резервных копий, т.к. при асинхронном режиме работы исходный файл оказывается частично перезаписан (зашифрован).
На этапе 390 происходит взаимодействие со стороны анализатора 160 с компьютером пользователя 120. В том случае, если на компьютере пользователя 120 установлено антивирусное приложение (не отображено), то анализатор 160 может получить от него информацию о процессе (имя процесса, сколько времени процесс работает, хеш сумма файла из которого был запущен процесс, наличие цифровой подписи и т.д.), который сейчас работает с файлами 130 на сервере 110. В одном из вариантов реализации с этой целью используется протокол CIFS (Common Internet File System).
Приведем пример взаимодействия анализатора 160 с антивирусным приложением на компьютере пользователя 120. После перехвата с помощью перехватчика 150 файловой операции со стороны компьютера пользователя 120 на сервере 110 и после получения вердикта со стороны анализатора 160 о факте работы программы-шифровальщика 140 антивирусному приложению на стороне компьютера пользователя отправляется информация о процессе, который шифрует файлы 130. В качестве примера информация может включать:
Имя процесса: winserv.exe
Наличие цифровой подписи: нет
Исходя из полученной информации, антивирусное приложение на стороне компьютера пользователя 120 запускает поиск процесса с указанным именем winserv.exe среди всех запущенных процессов в операционной системе, после нахождения которого останавливает найденный процесс и удаляет файл, из которого последний был запущен.
В еще одном варианте реализации файлы 130 хранятся не на сервере 110, а на сетевой системе хранения данных (NAS, Network Attached Storage, не отображено на Фиг. 2), которая связана с сервером 110. Особенность работы с сетевой системой хранения данных требует расширения (или поддержки) протокола обмена данными между ней и сервером 110. В одном из вариантов реализации требуется расширение протокола ICAP (Internet Content Adaptation Protocol).
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.