Система и способ выявления измененных системных файлов для проверки на вредоносность в облачном сервисе
SYSTEM AND METHOD OF DETECTING CHANGED SYSTEM FILES FOR CHECKING FOR MALWARE IN A CLOUD SERVICE

Область техники
Изобретение относится к решениям для выявления файлов для проверки на вредоносность, а более конкретно к системам и способам выявления системных файлов для проведения проверки на вредоносность в облачном сервисе.
Уровень техники
В настоящее время растет количество вредоносного программного обеспечения (например, компьютерные вирусы, трояны, сетевые черви), направленного на причинение ущерба как данным пользователя, так и самому пользователю электронного устройства, зараженного вредоносным программным обеспечением. Ущерб может быть причинен повреждением или удалением файлов пользователя, использованием ресурсов вычислительного устройства пользователя для "добычи" (англ. mining) криптовалют, кражей конфиденциальных данных пользователя (переписки, изображений, логинов, паролей, данных банковских карт) и прочими действиями. Кроме того, вредоносное программное обеспечение постоянно изменяется, так как его авторы прибегают к новым способам атак на устройства пользователей и защиты от приложений безопасности. Используются различные механизмы, например, обфускация (другими словами приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции, например) вредоносного кода или использование механизмов противодействия эмуляции (например, вредоносное программное обеспечение наделено функциями распознавания того, что оно исполняется в виртуальной среде, и не проявляет свою вредоносную активность).
Кроме того, зачастую вредоносное программное обеспечение не проявляет свою вредоносную активность сразу, вместо этого производит множество (порядка миллионов вызовов) вызовов API-функций, огромные циклы (порядка миллиардов итераций), приостанавливает свою работу на некоторое время сразу после запуска (например, на 1 час использованием функции «Sleep()»). Вычислительные устройства пользователя в настоящее время имеют высокую производительность, используют многоядерные процессоры (есть и многопроцессорные системы), поэтому пользователь может не увидеть или не придать значения загруженности одного из ядер. Кроме того, обычно пользователь пользуется устройством после включения более одного часа. Поэтому вредоносному программному обеспечению, если оно запустилось, нет необходимости сразу проявлять свою активность.
Также известны так называемые атаки типа «целевая атака» (англ. advanced persistent threat, APT). Такие атаки выполняются на организации и компании в целом, осуществляются на инфраструктуру посредством эксплуатации программных уязвимостей и методов «социальной инженерии». Известны случаи, когда такие атаки производилась с использованием нескольких простых приложений, которые не проявляли никакой вредоносной активности по отдельности, но по мере попадания в инфраструктуру атакуемой компании выполнялись совместно, в общем образуя вредоносный функционал и нанося вред атакуемой компании.
Стоит отметить, что приложения безопасности используют различные методы выявления вредоносного программного обеспечения, например, такие технологии, как сигнатурный и/или эвристический анализ. Если в процессе анализа вредоносность файла не была определена, он может быть передан приложением безопасности на анализ поведения в упомянутую виртуальную машину (например, если не имеет цифровой подписи доверенного производителя программного обеспечения). Затем переданный файл исполняется в виртуальной машине, в процессе исполнения происходит перехват его действий и событий, возникающих в результате вызовов различных функций, информация о перехваченных событиях и действиях сохраняется в журнал и в дальнейшем анализируется приложением безопасности или экспертом по информационной безопасности с целью выявления вредоносного программного обеспечения. Зачастую такие виртуальные машины называются "песочницами" (от англ. sandbox). Гипервизоры, под управлением которых работают такие виртуальные машины, содержат механизмы перехвата функций, вызываемых исполняемыми в виртуальных машинах приложениями. Также в последнее время стали использоваться алгоритмы, использующие нейронные сети для выявления вредоносного программного обучения.
Кроме того, зачастую упомянутые способы не могут эффективно решить задачу выявления на локальном вычислительном устройстве пользователя упомянутых вредоносных файлов. Зачастую (например, в случае АРТ-атаки) такие файлы могут быть подписаны доверенным сертификатом и выполнять действия, которые нельзя однозначно трактовать вредоносными. Например, открыть «.DOC» файл, закрыть, не изменяя его, отослать пакет данных или электронное письмо. Упомянутые действия вполне безопасны с точки зрения приложения безопасности (есть множество программ, которые умеют открывать текстовые файлы и отсылать сообщения и/или электронные письма), но в результате их выполнения возможна кража конфиденциальных данных из упомянутого открытого файла. Зачастую упомянутые вредоносные файлы изменяют или подменяют собой системные файлы операционной системы (или приложений) для выполнения вредоносной активности.
Существуют решения, которые выявляют измененные системные файлы, а также измененные файлы приложений. Например, в публикации US9158605B2 описаны система и способ, в которых выявляют поврежденные и низменные файлы операционной системы или приложений и заменяют резервными копиями из локального или сетевого хранилища. Однако, упомянутые решения не выявляют причину повреждения или изменения системных файлов.
Недостатком многих упомянутых способов проверки файлов на вредоносность является сложность проверки на вредоносность. Для проведения проверки требуется значительное время и ресурсы вычислительного устройства, что создает неудобства для пользователя.
Одним аз вариантов решения является использование так называемых облачных технологий (англ. cloud technologies) проверки файла на вредоносность, такие как, например, Kaspersky Security Network. Упомянутые выше методы могут быть реализованы не на вычислительном устройстве пользователя, а на удаленном сервере или в облаке, при этом нет ограничений по времени и сложности проверки файла на вредоносность, и не создаются неудобства для пользователя. Поэтому необходимо выявлять файлы на вычислительном устройстве пользователя, которые необходимо проверить на вредоносность с использованием облачных технологий. Отправлять все системные файлы на проверку для выявления вредоносности нецелесообразно в силу объемов данных и значительного времени, требуемого на проверку всех упомянутых системных файлов.
Настоящее изобретение позволяет решать задачи выявления вредоносных файлов с использованием облачных технологий путем выявления системных файлов с дальнейшей отправкой их на более глубокий анализ в облачный антивирусный сервис.
Сущность изобретения
Настоящее изобретение предназначено для выявления системных файлов для проверки на вредоносность в облачном сервисе.
Технический результат настоящего изобретения заключается в реализации заявленного назначения.
Согласно одному из вариантов реализации предоставляется способ выявления системных файлов для проверки на вредоносность в облачном сервисе, содержащий этапы, на которых: выбирают с помощью приложения безопасности по меньшей мере один системный файл и выявляют его атрибуты; получают с помощью приложения безопасности из хранилища резервных копий системных файлов операционной системы атрибуты упомянутого выбранного системного файла; сравнивают с помощью приложения безопасности полученные из хранилища резервных копий системных файлов операционной системы атрибуты упомянутого выбранного системного файла и выявленные атрибуты упомянутого выбранного системного файла; в случае, если атрибуты упомянутого выбранного системного файла, полученные из хранилища резервных копий системных файлов операционной системы, и выявленные атрибуты упомянутого выбранного системного файла не совпадают, с помощью приложения безопасности передают упомянутый выбранный системный файл в облачный сервис для проверки на вредоносность.
Согласно другому частному варианту реализации предоставляется способ, в котором системным является файл, информация о котором содержится в хранилище резервных копий системных файлов операционной системы.
Согласно еще одному частному варианту реализации предоставляется способ, в котором системный файл выбирают случайно.
Согласно еще одному частному варианту реализации предоставляется способ, в котором выбирают системный файл, который недавно появился на вычислительном устройстве пользователя.
Согласно еще одному частному варианту реализации предоставляется способ, в котором выбирают системный файл, который недавно был изменен.
Согласно еще одному частному варианту реализации предоставляется способ, в котором атрибутом системного файла является его хеш-сумма.
Согласно еще одному частному варианту реализации предоставляется способ, в котором до сравнения атрибутов с помощью приложения безопасности производят локальную проверку выбранного системного файла на вредоносность.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 отображает структуру системы выявления вредоносных файлов на основании одного вредоносного файла.
Фиг. 2 отображает структуру способа выявления вредоносных файлов на основании одного вредоносного образца.
Фиг. 3 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Под средствами системы в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 3). При этом компоненты (каждое из средств) системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Фиг. 1 отображает структуру системы выявления системных файлов для проверки на вредоносность с использованием облачного сервиса.
Система выявления системных файлов для проверки на вредоносность с использованием облачного сервиса состоит из приложения безопасности 110 (например, антивирусного приложения) и облачного сервиса проверки файлов на вредоносность 120.
В общем случае приложение безопасности 110 исполняется на вычислительном устройстве пользователя 150.
Приложение безопасности 110 выбирает (например, во время плановой проверки на вредоносность) по меньшей мере один системный файл 180. В рамках настоящего изобретения системный файл 180 - это любой файл, информация о котором содержится в хранилище резервных копий системных файлов операционной системы 190. Хранилище резервных копий системных файлов 190 создается операционной системой в процессе установки операционной системы на вычислительное устройство.
Хранилище резервных копий системных файлов 190 содержит по меньшей мере следующую информацию о системном файле 180 (атрибуты системного файла 180):
- копию системного файла 180 (бинарные данные);
- путь, по которому расположен системный файл 180;
- дата и время добавления системного файла 180 в хранилище резервных копий системных файлов 190;
- хеш-сумму системного файла 180.
Известно, что операционная система (например, семейства Windows) производит мониторинг системных файлов 180 и выполняет их восстановление из хранилища резервных копий системных файлов операционной системы 190 в случае, если системный файл 180 изменен, поврежден или отсутствует. Однако, стоит понимать, что известное из уровня техники вредоносное программное обеспечение имеет механизмы изменения системных файлов 180, которые не обнаруживаются операционной системой, в результате чего операционная система не производит восстановление системных файлов 180 из хранилища резервных копий системных файлов 190. Кроме того, при восстановлении системного файла 180 операционной системой из хранилища резервных копий системных файлов 190 не выявляется и не устраняется причина, по которой системный файл 180 был изменен или поврежден. Например, вредоносный файл вносит вредоносный код в существующий системный файл 180 (заражает системный файл 180). Затем при запуске вредоносный файл производит мониторинг обращений к зараженному системному файлу 180 и препятствует его модификации (скрывает системный файл 180, запрещает запись, завершает процесс, который пытается открыть системный файл 180 с правами на запись, и т.д.). В другом примере вредоносный файл замещает собой системный файл 180. При этом при исполнении эмитирует работу (повторяет функционал) оригинального системного файла 180, стараясь не вызвать подозрения пользователя. Еще в одном примере вредоносный файл модифицирует (изменяет) системный файл 180 так, чтобы при запуске модифицированный системный файл 180 выполнил загрузку вредоносного файла. В некоторых случаях вредоносный файл также может повредить механизмы восстановления системных файлов.
Кроме того, операционная система имеет механизмы пополнения и поддержания в актуальном состоянии упомянутого хранилища резервных копий системных файлов 190 операционной системы. При обновлении системных файлов (например, устанавливается обновление безопасности или обновленная сборка операционной системы) обновляется и хранилище резервных копий системных файлов 190.
Настоящее изобретение применимо для всех операционных систем, которые имеют хранилище резервных копий системных файлов 190, как для операционных систем широкого применения (например, Windows), так и для специализированных операционных систем (например, KasperskyOS),
В одном из вариантов реализации приложение безопасности 110 выбирает системные файлы 180 случайным образом. В другом варианте реализации выбираются те системные файлы 180, которые недавно (не позднее, чем за заданный промежуток времени) появились на вычислительном устройстве пользователя 150. В еще одном из вариантов реализации выбираются те системные файлы 180, которые недавно были изменены (модифицированы), что может свидетельствовать о том, что на вычислительном устройстве пользователя 150 исполнилось вредоносное приложение, например, изменив или пропатчив (от англ. patch) системный файл 180.
В одном из вариантов реализации приложение безопасности 110 производит локальную проверку выбранных системных файлов 180 на вредоносность известными из уровня техники способами (например, с помощью сигнатурного или эвристического анализа, а также эмуляции).
В общем случае, а также в случае, если проведена проверка на вредоносность, и вредоносность выбранных системных файлов 180 не выявлена, приложение безопасности 110 для выбранных системных файлов 180 получает атрибуты из хранилища резервных копий системных файлов операционной системы 190, выявляет атрибуты для выбранных системных файлов 180 (по меньшей мере вычисляет хеш-сумму) и сравнивает их с полученными из хранилища резервных копий системных файлов операционной системы 190.
В случае, если атрибуты системного файла 180 (по меньшей мере хеш-сумма) не соответствует атрибутам этого файла из хранилища резервных копий системных файлов операционной системы 190, то, вероятно, системный файл был изменен, и приложение безопасности 110 отсылает этот измененный системный файл 180 в облачный сервис проверки файлов на вредоносность 120 (например, в Kaspersky Security Network). В облачном сервисе проверки файлов на вредоносность 120 измененный системный файл проходит более углубленный анализ на вредоносность как с помощью автоматических известных из уровня техники средств, так и с участием специалиста по информационной безопасности. Результатом облачного анализа измененного системного файла 180 в случае, если системный файл 180 был изменен вредоносным программным обеспечением, являются данные для обнаружения вредоносного программного обеспечения (сигнатурные или поведенческие записи), которые будут добавлены в антивирусные базы и будут использованы приложением безопасности 110 для обнаружения вредоносного программного обеспечения на вычислительных устройствах пользователей, получивших обновление антивирусных баз (что позволит предотвратить заражение на других вычислительных устройствах). Стоит понимать, что есть существенная разница во времени между обнаружением вредоносного файла (например, системного файла 180, измененного вредоносным программным обеспечением) приложением безопасности 110 на вычислительном устройстве и его обнаружение путем анализа в облачном сервисе проверки файлов на вредоносность 120.
Фиг. 2 отображает структуру способа выявления системных файлов для проверки на вредоносность с использованием облачного сервиса.
На этапе 210 выбирают с помощью приложения безопасности 110 по меньшей мере один системный файл 180 и выявляют его атрибуты. В одном из вариантов реализации приложение безопасности 110 выбирает системные файлы 180 случайным образом. В другом варианте реализации выбираются те системные файлы 180, которые недавно (не позднее, чем за заданный промежуток времени) появились на вычислительном устройстве пользователя 150. В еще одном из вариантов реализации выбираются те системные файлы 180, которые недавно были изменены (модифицированы), Атрибутами системного файла 180 являются по меньшей мере:
- копия системного файла 180 (бинарные данные);
- путь, по которому расположен системный файл 180;
- дата и время добавления системного файла 180 в хранилище резервных копий системных файлов 190;
- хеш-сумма системного файла 180.
В одном из вариантов реализации приложение безопасности 110 также производит локальную проверку выбранных системных файлов 180 на вредоносность известными из уровня техники способами.
На этапе 220 получают с помощью приложения безопасности 110 из хранилища резервных копий системных файлов операционной системы 190 атрибуты упомянутого выбранного системного файла 180.
На этапе 230 с помощью приложения безопасности 110 сравнивают полученные из хранилища резервных копий системных файлов операционной системы 190 атрибуты упомянутого выбранного системного файла 180 и выявленные атрибуты упомянутого выбранного системного файла 180.
В случае, если при сравнении на этапе 235 атрибуты упомянутого выбранного системного файла 180, полученные из хранилища резервных копий системных файлов операционной системы 190, и выявленные атрибуты упомянутого выбранного системного файла 180 не совпадают, то на этапе 240 с помощью приложения безопасности передают упомянутый выбранный системный файл 180 в облачный сервис 120 для проверки на вредоносность. Результатом облачного анализа системного файла 180 в случае, если системный файл 180 был изменен вредоносным программным обеспечением, являются данные для обнаружения вредоносного программного обеспечения (сигнатурные или поведенческие записи), которые будут добавлены в антивирусные базы и будут использованы приложением безопасности 110 для обнаружения вредоносного программного обеспечения на вычислительных устройствах пользователей, получивших обновление антивирусных баз
В одном из вариантов реализации далее происходит возврат к этапу 210, и шаги настоящего способа повторяются.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 3. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN- сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.