RU2621608C2 - Способ упреждающего сканирования на наличие вредоносного программного обеспечения - Google Patents

Способ упреждающего сканирования на наличие вредоносного программного обеспечения Download PDF

Info

Publication number
RU2621608C2
RU2621608C2 RU2013154735A RU2013154735A RU2621608C2 RU 2621608 C2 RU2621608 C2 RU 2621608C2 RU 2013154735 A RU2013154735 A RU 2013154735A RU 2013154735 A RU2013154735 A RU 2013154735A RU 2621608 C2 RU2621608 C2 RU 2621608C2
Authority
RU
Russia
Prior art keywords
files
application
access
directory
groups
Prior art date
Application number
RU2013154735A
Other languages
English (en)
Other versions
RU2013154735A (ru
Inventor
Павел ТУРБИН
Original Assignee
Ф-Секьюэ Корпорейшен
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ф-Секьюэ Корпорейшен filed Critical Ф-Секьюэ Корпорейшен
Publication of RU2013154735A publication Critical patent/RU2013154735A/ru
Application granted granted Critical
Publication of RU2621608C2 publication Critical patent/RU2621608C2/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Изобретение относится к области компьютерной безопасности. Технический результат заключается в минимизации задержек при выполнении приложений, вызываемых сканированием. Предложен способ сканирования на наличие вредоносного программного обеспечения, в котором ведут таблицу доступа к директории для отслеживания доступа к файлам, содержащимся в общей директории, со стороны приложения, при этом таблица доступа к директории включает путь к директории, содержащий имя или логическое местоположение общей директории, число срабатываний, указывающее количество событий доступа к файлам в общей директории, и состояние записи, указывающее, находится ли общая директория в состоянии до сканирования, состоянии сканирования, либо состоянии выполненного сканирования; обнаруживают события доступа приложения к файлам, содержащимся в общей директории; используют обнаруженные события доступа для идентификации одной или более групп файлов, содержащихся в общей директории, доступ к которым приложение может захотеть осуществить в дальнейшем, при выполнении приложения; сканируют указанную одну или более группу файлов на наличие вредоносного программного обеспечения при выполнении приложения и прежде, чем приложение попытается осуществить доступ к файлам группы или групп. 4 н. и 17 з.п. ф-лы, 7 ил.

Description

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству для выполнения сканирования на наличие вредоносного программного обеспечения. В частности, настоящее изобретение относится к способу и устройству для оптимизации производительности компьютерной системы, выполняющей сканирование группы файлов на наличие вредоносного программного обеспечения.
Уровень техники
«Вредоносное ПО» представляет собой сокращенное наименование вредоносных программных средств, используемое в качестве термина, относящегося к любым программам, предназначенным для проникновения или повреждения компьютерной системы без информированного согласия владельца. Вредоносное ПО может включать компьютерные вирусы, черви, «троянские кони», руткиты, рекламное и шпионское ПО, а также любые другие вредоносные или нежелательные программы.
Для обнаружения и возможного удаления вредоносного ПО многие конечные пользователи используют антивирусное программное обеспечение. Чтобы обнаружить вредоносный файл, антивирусное программное обеспечение должно иметь какой-либо способ, позволяющий идентифицировать его среди всех остальных файлов, присутствующих в устройстве. Как правило, для этого требуется, чтобы антивирусное программное обеспечение располагало базой данных, содержащей «сигнатуры» или «отпечатки» (fingerprints), которые являются характерными для отдельных файлов вредоносных программ. Когда поставщик антивирусного программного обеспечения выявляет угрозу нового вредоносного программного обеспечения, осуществляется анализ этой угрозы и генерация сигнатуры. После этого вредоносное программное обеспечение становится «известным», и его сигнатуру можно передавать конечным пользователям в качестве обновлений для их локальных баз данных антивирусного программного обеспечения.
Антивирусное программное обеспечение, как правило, обеспечивает сканирование файлов по требованию, при этом пользователь компьютерной системы определяет, когда следует сканировать файлы в компьютерной системе на наличие вредоносного ПО. При сканировании по требованию пользователь может активировать процесс сканирования вручную или настроить процесс сканирования на запуск при определенных обстоятельствах. Например, пользователь может настроить антивирусное программное обеспечение на еженедельное сканирование конкретных папок или директорий (эти термины будут использоваться здесь на равных основаниях) и сканировать все файлы в компьютерной системе раз в месяц. Кроме того, антивирусное программное обеспечение может также обеспечить защиту в режиме реального времени от вредоносного ПО путем выполнения сканирования по доступу.
В случае сканирования по доступу компьютерную систему контролируют на наличие вредоносного программного обеспечения, автоматически сканируя файлы в фоновом режиме по мере обнаружения доступа к файлам со стороны одного или нескольких приложений, выполняемых в компьютерной системе. Наиболее распространенным способом доступа к файлам является доступ с открытием файла только для чтения. Этот тип доступа является обычным для операций над несколькими файлами, например, поиска файлов/в файлах, запуска и выполнения приложения, копирования файлов из папки в папку (из директории в директорию), сжатия файлов и т.д. Следующие примеры дополнительно иллюстрируют некоторые из этих стандартных операций.
Пример 1, команда копирования:
С:\>сору source\*.*d:\dest
Эта команда (приложение) может быть представлена следующим псевдокодом:
для каждого файла в с:\source\*.*
открыть текущий файл только для чтения (с:\source\…)
прочитать данные из файла
закрыть файл
сохранить данные в d:\dest\
Команда копирования генерирует непрерывный последовательный доступ только для чтения ко всем исходным файлам.
Пример 2, приложение, выполняемое со многими файлами модулей. Предполагается, что данное приложение состоит из единственного исполняемого файла (.ЕХЕ) и набора модулей, таких как динамически подключаемые библиотеки (.DLL). Когда пользователь запускает приложение, последнее загружает необходимые библиотеки, а затем запускается. Эта операция может быть представлена следующим псевдокодом:
для файлов application.exe, module1.dll, module2.dll … moduleN.dll
открыть текущий файл только для чтения
загрузить данные из файла
Это приложение генерирует непрерывный последовательный доступ с открытием только для чтения к исходным файлам в директориях приложения и/или соответствующих модулей.
Аналогичные шаблоны непрерывного последовательного доступа с открытием только для чтения к нескольким файлам в данной директории встречаются в других командах или приложениях, напр., поиск шаблона в наборе файлов (grep.exe или findstr.exe), вычисление хэш-суммы файлов (md5.exe), упаковка файлов в контейнер (rar.exe или winzip.exe) и так далее.
На фиг. 1 изображено традиционное взаимодействие между приложением и антивирусным программным обеспечением, когда приложение выполняет доступ с открытием только для чтения к нескольким файлам. Во время этой операции антивирусное программное обеспечение начинает выполнять сканирование файлов по доступу только после того, как обнаружит событие доступа к файлам со стороны приложения.
В частности, когда приложение пытается открыть файл, запрос открытия перехватывается фильтром, генерирующим запрос на сканирование для использования антивирусным программным обеспечением и предотвращающим открытие и использование файла приложением. После приема запроса на сканирование антивирусное программное обеспечение сканирует файл и генерирует результат обычным способом. В зависимости от результата, доступ к файлу возвращается приложению для его использования, например, чтения, копирования или исполнения файла. Однако, если приложению необходим доступ к нескольким файлам, эта операция будет повторяться последовательно для доступа приложения к каждому последующему файлу, как показано на фиг. 1. Это очень медленный и трудоемкий процесс, влияющий на производительность приложения и компьютерной системы.
Большинство современных компьютерных систем в настоящее время оптимизированы для работы в многозадачном режиме. Типовой процессор (CPU) часто включает поддержку многоядерности (многопоточности), эффективно обеспечивающую возможность кажущегося одновременного выполнения задач приложения. Поток выполнения (поток) определяется как наименьшая единица обработки (например, задача или часть задачи), которая может быть спланирована операционной системой. Многопоточность относится к приложению, имеющему несколько потоков выполнения, в котором выполнение потоков планируется операционной системой на одно и то же время. В статье компании INTEL™ «Прогнозирование и измерение характеристик параллельного выполнения», 9 марта 2010 г., доступной по адресу http://software.intel.com/en-us/articles/predicting-and-measuring-parallel-performance/, раскрыта разработка распараллеленного программного обеспечения с использованием многопоточных приложений, чтобы позволить им обработать заданный набор данных за меньшее время, или обработать несколько наборов данных за фиксированное время.
Единственный процессор может выполнять многопоточную обработку за счет мультиплексирования по времени потоков выполнения (т.е. многозадачности) таким образом, чтобы процессор производил переключение контекста между различными потоками. Это переключение контекста происходит так часто, что пользователь воспринимает потоки или задачи как выполняющиеся одновременно или параллельно. В мультипроцессорной или многоядерной системе некоторые потоки или задачи фактически выполняются в одно и то же время (в зависимости от количества процессоров), при этом каждый процессор или ядро исполняет отдельный поток или задачу. Чтобы достичь максимальной производительности, приложения, выполняемые компьютерной системой, должны пытаться распараллеливать свои сложные уравнения или задачи.
Параллельное сканирование нескольких файлов антивирусным программным обеспечением на наличие вредоносного программного обеспечения может достигаться за счет одновременного планирования выполнения процесса сканирования каждого из файлов в одном или нескольких потоках. Как уже отмечалось, операционная система управляет выполнением потоков в многозадачной и/или многоядерной компьютерной системе. В целях увеличения производительности компьютерной системы параллельное сканирование может выполняться для нескольких файлов в очереди сканирования. Постановка в очередь файлов, к которым осуществляется доступ, в целях сканирования на наличие вредоносного программного обеспечения может использовать возможности параллельного сканирования. Такие сканирование может выполняться способами асинхронного сканирования по закрытию. Но даже при поддержке многоядерности параллельное сканирование по доступу нескольких файлов на наличие вредоносного программного обеспечения при доступе приложения с открытием только для чтения к нескольким файлам оказывается затруднительным. Постановка в очередь файлов для последующего параллельного или пакетного сканирования не является подходящим вариантом для приложений, требующих работы в режиме доступа с открытием только для чтения к файлам. Этот тип доступа к файлам требует немедленного синхронного отклика от антивирусного программного обеспечения, чтобы позволить приложению как можно быстрее продолжить работу. Запросы на сканирование от драйвера фильтра к антивирусному программному обеспечению нельзя поставить в очередь для будущей групповой обработки, поскольку антивирусное программное обеспечение не знает, какой следующий файл потребуется приложению.
Приложения могут генерировать произвольные множественные последовательные запросы на открытие файлов только для чтения, при этом типовая логика антивирусного сканирования требует, чтобы каждый запрос на открытие файла только для чтения инициировал событие или запрос сканирования этого файла. В связи с последовательным характером доступа к файлу логика сканирования не может определить, к каким файлам будет в дальнейшем осуществлять доступ приложение. Это не позволяет антивирусному программному обеспечению воспользоваться преимуществом пакетного или параллельного сканирования нескольких файлов в современных компьютерных системах. Из этого следует, что либо приложению перед запуском придется ожидать, пока не закончится сканирование на наличие вредоносного программного обеспечения по всем файлам, либо его выполнение будет прерываться при сканировании каждого файла, к которому необходимо получить доступ. Оба сценария существенно ухудшают производительность приложения и компьютерной системы.
Синхронный процесс сканирования по доступу блокирует запуск приложения или прерывает его выполнение, пока не будет завершено сканирование всех файлов или каждого файла на наличие вредоносного программного обеспечения. По этой причине антивирусное программное обеспечение препятствует работе приложения, замедляя скорость выполнения его задач. Это сказывается на производительности компьютерной системы.
Раскрытие изобретения
Целью настоящего изобретения является предложение способа выполнения сканирования на наличие вредоносного программного обеспечения, минимизирующего задержки, вызываемые сканированием при выполнении приложений в компьютерной системе, и, тем самым, оптимизирующего производительность компьютерной системы.
Согласно первому аспекту изобретения предлагается способ сканирования на наличие вредоносного программного обеспечения при выполнении приложения в компьютерной системе, включающий следующие шаги: обнаруживают события доступа приложения к файлам, содержащимся в общей директории, используют обнаруженные события доступа для идентификации одной или более групп файлов, содержащихся в указанной общей директории, доступ к которым приложение может захотеть получить в дальнейшем, и сканируют указанные одну или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
Варианты осуществления настоящего изобретения предусматривают, что антивирусное программное обеспечение может выполнять сканирование группы из множества файлов без необходимости полностью блокировать выполнение приложения до использования одного или более файлов в группе.
В качестве опции, способ включает также выбор группы или групп файлов на основе типов файлов, доступом к которым осуществляется приложением. Выбор файлов предпочтительно включает сопоставление типов файлов, доступом к которым осуществляется приложением, с типами файлов, содержащихся в общей директории. Файлы в группе или группах файлов предпочтительно являются файлами, требующими сканирования. В некоторых случаях способ дополнительно включает идентификацию одной или более групп файлов путем добавления текущего файла, для которого обнаружен доступ к нему приложения, к группе файлов для сканирования, когда текущий файл требует сканирования.
В некоторых случаях в способе использование обнаруженных событий доступа включает шаг определения количества обнаруженных событий доступа в общей директории и использования результатов для инициирования шага сканирования одной или более групп. Инициирование шага сканирования предпочтительно происходит, когда количество обнаруженных событий доступа достигает заданного порогового значения. В некоторых случаях использование обнаруженных событий доступа для идентификации одной или более групп файлов включает шаг добавления текущего файла, для которого обнаружен доступ к нему приложения, к группе файлов при инициировании шага сканирования. В некоторых случаях определение количества обнаруженных событий доступа включает шаг сброса количества обнаруженных событий доступа, когда истекает первый период времени, а шаг сканирования не был инициирован. В некоторых случаях способ включает шаг завершения сканирования группы или групп, когда истекает второй период времени после того, как был инициирован шаг сканирования.
В некоторых случаях в способе шаг использования обнаруженных событий доступа для идентификации одной или более групп файлов включает шаг ведения списка типов обнаруженных файлов, к которым осуществляется доступ, при этом шаг идентификации одной или более групп файлов включает шаг выбора файлов на основе списка типов файлов. Выбор файлов дополнительно включает сопоставление списка типов файлов, к которым осуществляется доступ приложения, с типами файлов, содержащихся в общей директории.
В качестве возможного варианта шаг обнаружения событий доступа приложения к файлам, содержащимся в общей директории, включает прием запроса на сканирование файла, к которому осуществляется доступ приложения, содержащегося в общей директории. В некоторых случаях шаг обнаружения событий доступа приложения к файлам, содержащимся в общей директории, включает обнаружение доступа приложения к файлу и генерацию запроса на сканирование файла, когда требуется сканирование.
Согласно второму аспекту настоящего изобретения предлагается компьютерная программа для сканирования на наличие вредоносного программного обеспечения при выполнении приложения в компьютерной системе, причем компьютерная программа содержит средства компьютерного программного кода, пригодные для реализации следующих шагов:
обнаружение события доступа приложения к файлам, содержащимся в общей директории;
использование обнаруженных событий доступа для идентификации одной или более групп файлов в указанной общей директории, доступ к которым приложение может захотеть осуществить в дальнейшем;
подача команды сканеру вредоносного программного обеспечения на выполнение сканирования указанных одной или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
Компьютерная программа может также содержать средства компьютерного программного кода, пригодные для выполнения сканирования указанной одной или более групп файлов на наличие вредоносного программного обеспечения.
Согласно третьему аспекту настоящего изобретения предлагается описанная выше компьютерная программа, сохраненная на машиночитаемом носителе информации.
Согласно четвертому аспекту изобретения предлагается компьютерная система, выполненная с возможностью сканирования файлов на наличие вредоносного программного обеспечения при выполнении приложения на процессоре, причем компьютерная система содержит модуль обнаружения, служащий для обнаружения событий доступа приложения к файлам в общей директории и использования обнаруженных событий доступа для идентификации одной или более групп файлов в указанной общей директории, доступом к которым приложение может захотеть осуществить в дальнейшем, а также подачи модулю сканирования команды сканировать указанные одну или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп. Компьютерная система может также содержать модуль сканирования для выполнения сканирования одной или более групп файлов.
Краткое описание чертежей
На фиг. 1 представлена диаграмма, иллюстрирующая относящийся к известному уровню техники процесс выполнения сканирования по доступу на наличие вредоносного программного обеспечения.
На фиг. 2 схематически изображена компьютерная система согласно одному из вариантов осуществления настоящего изобретения.
На фиг. 3 представлена диаграмма, иллюстрирующая процесс выполнения сканирования по доступу на наличие вредоносного программного обеспечения согласно одному из вариантов осуществления настоящего изобретения.
На фиг. 4 представлена диаграмма, иллюстрирующая процесс согласно одному из вариантов осуществления настоящего изобретения.
На фиг. 5 изображена таблица доступа к директориям для использования при обновлении и ведении директорий, к которым осуществляют доступ приложения согласно вариантам осуществления настоящего изобретения.
На фиг. 6 представлена диаграмма, иллюстрирующая процесс выполнения сканирования по доступу на наличие вредоносного программного обеспечения для приложения, осуществляющего доступ к файлам, согласно одному из вариантов осуществления настоящего изобретения.
На фиг. 7 представлена диаграмма, иллюстрирующая процесс выполнения сканирования по доступу на наличие вредоносного программного обеспечения для приложения, осуществляющего доступ к файлам, согласно другому варианту осуществления настоящего изобретения.
Осуществление изобретения
Чтобы по меньшей мере частично преодолеть описанные выше проблемы, в настоящей заявке предлагается повысить производительность компьютерной системы путем выполнения пакетного или параллельного сканирования по доступу нескольких файлов на наличие вредоносного программного обеспечения до использования приложением одного из нескольких файлов. Это означает, что выполнение приложения не блокируется полностью при последующих событиях доступа к файлам. Как описано выше, пакетное или параллельное сканирование представляет собой одновременное планирование сканирования группы файлов компьютерной системой. Например, одновременное планирование нескольких потоков сканирования, по одному потоку на каждый файл в группе, для выполнения в компьютерной системе.
Этот тип сканирования обеспечивается путем обнаружения событий доступа со стороны приложения к файлам, содержащимся в общей директории, использования обнаруженных событий доступа для идентификации одной или нескольких групп файлов, содержащихся в указанной общей директории, доступом к которым приложение может захотеть осуществить в дальнейшем, и сканирования указанных одной или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп. После сканирования группы файлов может быть идентифицирована и/или просканирована следующая группа файлов.
Благодаря выполнению пакетного или параллельного сканирования группы файлов, которые может использовать приложение, вероятность блокирования или постоянного прерывания работы приложения из-за сканирования на наличие вредоносного программного обеспечения сводится к минимуму. Это объясняется тем, что приложение может осуществить доступ и использовать просканированные файлы в группе, не требующие больше сканирования. По существу, если для каждого сканирования идентифицирована правильная группа файлов, задержка будет соответствовать сканированию только одного файла, после чего выполнение приложения не будет блокироваться какими-либо следующими циклами сканирования на наличие вредоносного программного обеспечения, когда приложение получает доступ к просканированным файлам. Этот тип пакетного или параллельного сканирования на наличие вредоносного программного обеспечения минимизирует задержку, вводимую сканированием по доступу на наличие вредоносного программного обеспечения, тем самым, оптимизируя производительность компьютерной системы.
На фиг. 2 схематически изображена компьютерная система 1 и удаленная компьютерная система 12 согласно вариантам осуществления настоящего изобретения. Компьютерная система 1 может быть реализована в виде комбинации компьютерного аппаратного и программного обеспечения. Компьютерная система 1 содержит память 2, кэш-память 3, процессор 4 и приемопередатчик 5. В памяти 2 хранятся все файлы, требующиеся компьютерной системе 1. Файлы, хранящиеся в памяти 2, содержат различные программы/исполняемые файлы, выполняемые процессором 4, а также какие-либо файлы 6 данных. Приложения/программы/исполняемые файлы, хранящиеся в памяти 2 и выполняемые процессором 4, содержат модуль 7 обнаружения и модуль 8 сканирования на наличие вредоносного программного обеспечения, каждый из которых может представлять собой подмодули антивирусного модуля 9, позволяющего выполнять антивирусные программы локально, а также файловую систему 10 и любые другие программы/приложения 11. Файлы 6 данных, хранящиеся в памяти 2, могут включать файлы данных приложений, таблицы доступа к директориям, как определено ниже, файлы данных с определениями вредоносного программного обеспечения, файлы, содержащие правила эвристического анализа, белые списки, черные списки и т.д. Кэш-память 3 обеспечивает модуль временного хранения для хранения данных, сканируемых модулем 8 сканирования на наличие вредоносного программного обеспечения. Приемопередатчик 5 может использоваться для осуществления связи по сети Интернет/локальной вычислительной сети ЛВС (LAN) или сети 13 с удаленной компьютерной системой 12. Удаленная компьютерная система 12 может обеспечивать хранение данных и службы приложений для компьютерной системы 1, например, удаленная компьютерная система 12 может представлять собой сервер приложений, обеспечивающий приложения программного обеспечения как сервиса (SaaS, Software as a Service) для пользователя компьютерной системы 1.
Управление удаленной компьютерной системой 12, как правило, осуществляет провайдер различных приложений, выполняемых в удаленной системе 12 и используемых дистанционно пользователем компьютерной системы 1. Удаленная компьютерная система 12 может быть реализована в виде комбинации компьютерного аппаратного и программного обеспечения, как и в случае компьютерной системы 1. Удаленная компьютерная система 12 содержит память 14, процессор 15 и приемопередатчик 16. Как и в случае компьютерной системы 1, в памяти 14 могут храниться файлы, включающие различные приложения/программы/исполняемые файлы, выполняемые процессором 15, а также какие-либо файлы данных. Приложения/программы/исполняемые файлы, хранящиеся в памяти 14 и выполняемые процессором 15, включают также модуль 18 обнаружения и модуль 19 сканирования на наличие вредоносного программного обеспечения, каждый из которых может представлять собой подмодули антивирусного модуля 20, позволяющего выполнять антивирусные программы локально в удаленной системе 12. Приемопередатчик 16 используется для осуществления связи с компьютерной системой 1 по сети 13.
Во время работы пользователь компьютерной системы 1 может выполнять приложения локально или в удаленной компьютерной системе 12. Модуль 8 сканирования на наличие вредоносного программного обеспечения компьютерной системы 1 может использоваться для сканирования на наличие вредоносного программного обеспечения в памяти 2, доступ к которой осуществляется локальными приложениями. Модуль 19 сканирования на наличие вредоносного программного обеспечения удаленной системы 12 может использоваться для сканирования файлов на наличие вредоносного программного обеспечения в памяти 14, доступ к которой осуществляется приложениями удаленной системы 12. Способы сканирования файлов в любой из этих систем могут основываться на способах, предлагаемых согласно настоящему изобретению. Следует понимать, что варианты осуществления изобретения согласно настоящему описанию могут быть реализованы в автономных или связанных в сеть компьютерных системах вплоть до распределенных компьютерных систем, где файлы и приложения хранятся и выполняются удаленно.
В частности, компьютерные системы 1 или 12 выполнены с возможностью сканирования файлов на наличие вредоносного программного обеспечения при выполнении приложения или приложений, исполняющихся на каком-либо из процессоров 4 или 15, соответственно. Компьютерные системы 1 или 12 содержат модули 7 или 18 обнаружения, соответственно, для обнаружения событий доступа приложения к файлам, содержащимся в общей директории, использования обнаруженных событий доступа для идентификации одной или более групп файлов, содержащихся в указанной общей директории, доступ к которым приложение может захотеть получить в дальнейшем, и подачи модулям 8 или 19 сканирования, соответственно, команды сканировать указанные одну или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп. Как показано на схеме, компьютерные системы 1 или 12 уже содержат модули 8 или 19 для сканирования указанных одной или более групп файлов в ответ на подачу команды модулями 7 или 18 обнаружения, соответственно. Следует понимать, что, хотя модули 8 или 19 сканирования реализованы в антивирусных модулях 9 и 20 соответственно, модули 8 или 19 сканирования можно также было бы реализовать на других компьютерных системах/серверах так, чтобы модуль 7 или 18 обнаружения передавал по сети 13 команды на сканирование одной или более групп файлов.
Следует понимать, что варианты осуществления изобретения можно использовать при облачных вычислениях или в распределенной компьютерной системе. Например, приложение может выполняться в удаленной компьютерной системе 12 и осуществлять доступ к файлам из удаленного центра обработки данных (не показан), причем обнаружение событий доступа к файлам производится в центре обработки данных, но сканирование на наличие вредоносного программного обеспечения выполняется в удаленной компьютерной системе 12. Удаленная компьютерная система 12 может выполнять «облачное» сканирование, что служит примером обеспечения возможности сканирования на наличие вредоносного программного обеспечения по сети или с помощью распределенной компьютерной системы. Чтобы минимизировать непроизводительные затраты ресурсов, связанные со сканированием файлов по сети, т.е. чтобы минимизировать объем передаваемых данных, сканирование можно ограничить проверкой метаданных, хранящихся в удаленном центре обработки данных (на удаленном сервере или базовом сервере). Метаданные могут создаваться для каждого файла на основе хэш-значения (напр., с помощью алгоритма SHA1), вычисленного по данным файла или конкретным частям данных файла. При обнаружении событий доступа к файлам, генерируемым пользовательским приложением, удаленная компьютерная система 12 загружает и сканирует только метаданные. Пользовательская главная компьютерная система 1 может обращаться к удаленной компьютерной системе 12 с запросом относительно данных сканируемого файла и принимать сведения о статусе на основе ограниченного проверочного сканирования (чистый, зараженный и название вредоносного программного обеспечения).
Варианты осуществления настоящего изобретения обеспечивают возможность параллельного сканирования (например, многопоточного сканирования) с помощью компьютерной системы 1 или удаленной компьютерной системы 14 для сканирования запросов, таких как запросы на сканирование по доступу файлов, открываемых только для чтения. Способы, раскрытые в настоящем документе, основаны на анализе поведения одного или более приложений в целях выявления зависимостей при генерации приложением последовательного доступа к нескольким файлам в текущей рабочей директории приложения или в общей директории. Термин «общая директория» относится к одному логическому местоположению в памяти (например, на дисковом накопителе), где хранится один или более файлов. Производительность оптимизируется благодаря тому, что приложения обычно осуществляют доступ ко многим файлам в одной и той же папке или директории. Если антивирусное программное обеспечение распознает эту схему поведения приложения, оно может выполнить упреждающее сканирование группы файлов, к которым в дальнейшем приложение может осуществить доступ или использовать эти файлы. После этого антивирусное программное обеспечение выполняет сканирование по доступу групп из нескольких файлов на наличие вредоносного программного обеспечения.
На фиг. 3 изображен процесс выполнения пакетного или параллельного сканирования по доступу на наличие вредоносного программного обеспечения в соответствии с одним из вариантов осуществления настоящего изобретения. Антивирусное программное обеспечение группирует вместе несколько файлов в зависимости от поведения приложений, осуществляющих доступ к файлам, и выполняет упреждающее сканирование по группам, состоящим из нескольких файлов. Результаты сканирований кэшируются, и, если приложение осуществляет доступ к файлу, просканированному подобным образом, оно получает от кэш-памяти ответ о том, что данный файл был просканирован, и что приложение может приступить к использованию файла.
На практике нормальное сканирование файлов осуществляется в пользовательском режиме, при этом антивирусное программное обеспечение перехватывает низкоуровневые события доступа к файлу со стороны приложения и посылает запрос на сканирование процессу пользовательского режима. Это дорогостоящая операция, требующая переключения контекста (из режима ядра в пользовательский режим и обратно). Следует понимать, что способы сканирования согласно настоящему описанию уменьшают количество обратных вызовов антивирусного программного обеспечения из приложения, что значительно повышает производительность. Например, в антивирусном программном обеспечении имеется драйвер-фильтр ядра, перехватывающий попытки приложения осуществить доступ или открыть файлы. Драйвер-фильтр ядра посылает запрос процессу пользовательского режима на выполнение задачи сканирования файла, к которому пытается осуществить доступ приложение. Служба сканирования, работающая в пользовательском режиме, выполняет фактическое сканирование файла на наличие вредоносного программного обеспечения и передает сведения о результатах и статусе сканирования обратно драйверу-фильтру ядра. Исходя из этих результатов, драйвер-фильтр ядра разрешает или запрещает приложению доступ к файлу.
Как показано на фиг. 3, когда приложение открывает файл, называемый file1, антивирусное программное обеспечение перехватывает запрос приложения на открытие файла file1. Определив по поведению приложения необходимость выполнения пакетного или параллельного сканирования, антивирусное программное обеспечение выполняет пакетное или параллельное сканирование группы файлов, которая может содержать запрашиваемый файл (например, file1, file2 и file3). После завершения сканирования файлов file1, file2 и file3 результаты кэшируются, и приложение может приступить к открытию и использованию файла file1 в обычном порядке. Поскольку файлы file2 и file3 также были просканированы, когда приложение открывает эти файлы, оно получает от кэш-памяти ответ, разрешающий приложению немедленно открыть и использовать файлы file2 и file3 (в зависимости от ответа). В этом примере пакетное или параллельное сканирование группы файлов разрешает приложению выполнение без дальнейших прерываний.
Хотя пакетное или параллельное сканирование группы файлов может существенно повысить общую производительность приложения или приложений, выполняемых компьютерной системой, производительность существенно улучшается, если группа сканируемых файлов содержит только файлы, требующиеся приложению (приложениям). Сканирование файлов, не используемых приложением, может повлиять на производительность, только если этот файл не будет использоваться другим приложением. Например, если антивирусное программное обеспечение сканирует упреждающим образом слишком много файлов, к которым не будет осуществляться доступ каким-либо приложением, оно лишь уменьшает общую производительность, поскольку ресурсы компьютеров при этом используются для сканирования ненужных файлов. Следующие варианты осуществления настоящего изобретения раскрывают способы минимизации количества сканирований файлов, максимально увеличивающие производительность приложения или приложений и компьютерной системы.
На фиг. 4 представлена схема, дополнительно иллюстрирующая процесс сканирования на наличие вредоносного программного обеспечения при выполнении одного или нескольких приложений компьютерной системой согласно одному из вариантов осуществления настоящего изобретения. Процессы, выполняемые модулем сканирования или антивирусным программным обеспечением для каждого приложения, осуществляющего доступ к файлам в общей директории, можно вкратце описать следующим образом.
А1. Обнаруживают события доступа со стороны приложения к файлам в общей директории.
А2. Используют обнаруженные события доступа для идентификации одной или более групп файлов в указанной общей директории, доступом к которым приложение может захотеть осуществить в дальнейшем.
A3. Сканируют указанные одну или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
На шаге А1 обнаружение событий доступа приложения к файлам, содержащимся в общей директории, включает прием запроса на сканирование файла, за доступом к которому обращается приложение (текущего файла, к которому осуществляется доступ), в общей директории. Обнаружение доступа со стороны приложения к файлу может, кроме того, включать перехват осуществления доступа к файлу, осуществляемого приложением, а также генерирование и передачу запроса на сканирование антивирусному программному обеспечению в целях выполнения сканирования, когда требуется сканирование.
На шаге А2 использование обнаруженных событий доступа для идентификации одной или более групп файлов может содержать шаг выбора группы или групп файлов на основе типов файлов для тех файлов, доступ к которым осуществляется приложением. При этом может выполняться выбор файлов, типы которых соответствуют типам файлов, за доступом к которым обращается приложение, содержащихся в общей директории. Кроме того, файлы в группе или группах файлов можно выбирать из числа файлов в общей директории, требующих сканирования. Текущий файл, к которому обнаружен доступ со стороны приложения, можно добавить к группе файлов для сканирования, если текущий файл требует сканирования.
Чтобы использовать обнаруженные события доступа и инициировать сканирование группы или групп файлов, шаг А2 может включать определение количества обнаруженных событий доступа в общей директории и использование результатов для инициирования шага сканирования одной или более групп. Инициирование сканирования может произойти, когда количество обнаруженных событий доступа достигает порогового значения N. Это пороговое значение может представлять собой заранее определенное пороговое значение или динамическое пороговое значение, определяемое антивирусным программным обеспечением на основе наблюдаемого поведения одного или более приложений, осуществляющих доступ к файлам в общей директории. Текущий обнаруженный файл, доступ к которому будет осуществлять одно или несколько приложений, можно добавить к группе файлов. Это может произойти до или при инициировании шага сканирования. Текущий файл, к которому осуществляется доступ, может соответствовать файлу, соответствующему принятому запросу на сканирование. После этого текущий файл добавляют к группе файлов для сканирования. Группа файлов сканируется, исходя из запроса на сканирование, принятого антивирусным программным обеспечением для текущего файла. Чтобы избежать ненужного сканирования, когда приложения нечасто обращаются за доступом к директории, шаг обнаружения количества событий доступа может содержать сброс количества обнаруженных событий доступа, когда истек первый период времени, а шаг сканирования не был инициирован.
Как объяснено ниже, использование обнаруженных событий доступа для идентификации одной или более групп файлов может включать шаг ведения списка типов файлов для обнаруженных файлов, к которым производится доступ, а шаг идентификации одной или более групп файлов включает шаг выбора файлов на основе списка типов файлов. Выбор файлов включает также сопоставление списка типов файлов, доступ к которым осуществляло приложение, с типами файлов, содержащихся в общей директории. Антивирусное программное обеспечение может вести список для каждой общей директории, содержащей файлы, к которым часто обращаются одно или более приложений.
На шаге A3 использование обнаруженных событий доступа для идентификации одной или более групп файлов может включать отслеживание количества обнаруженных событий доступа и инициирование шага A3 на основании результатов. Инициирование шага A3 может произойти, когда количество обнаруженных событий доступа достигает заданного порогового значения или порогового значения сканирования. Идентификация одной или более групп файлов для сканирования может включать выбор файлов в общей директории исходя из типов файлов, к которым осуществляло доступ раньше или осуществляет доступ в настоящий момент приложение. Альтернативно, выбор групп может определяться на основании сохраняемого списка типов или имен файлов, к которым осуществляли доступ различные приложения в общей директории. Кроме того, шаг A3 может включать прекращение сканирования после истечения заданного периода времени, например, если к директории часто осуществляется доступ, но не было обращений в течение периода времени достаточного, чтобы служить основанием для прекращения сканирования директории, сканирование одной или более групп файлов может быть прекращено, чтобы избежать ненужной обработки данных. Это может произойти, когда после того, как был инициирован шаг сканирования, истек второй период времени.
Отслеживание количества обнаруженных событий доступа (или число попаданий) к общей директории помогает определить, активно ли приложения осуществляют доступ к данной директории. Если директория имеет достаточно высокое «число срабатываний» вследствие осуществления доступа в течение короткого периода времени, то при последующих событиях доступа к файлам в директории антивирусное программное обеспечение может одновременно сканировать пакет файлов, выбранных по преобладающим типам сканируемых файлов, или по типу файла, к которому осуществляется доступ, и текущему файлу, к которому осуществляется доступ. Как упоминалось выше, одновременное сканирование может обеспечиваться одновременным планированием нескольких потоков сканирования в целях сканирования файлов, т.е. параллельным или пакетным сканированием. Сканирование инициируется после того, как количество обнаруженных событий доступа достигает порогового значения.
Сканирование группы файлов выполняется в том случае, если обнаружено, что текущий файл, к которому осуществляет доступ приложение, не был просканирован. В этом случае доступ к файлу обнаруживает или перехватывает драйвер-фильтр ядра, генерирующий запрос на сканирование, принимаемый антивирусным программным обеспечением для сканирования текущего файла, к которому осуществляется доступ. Вместо сканирования только того файла, который не был просканирован, антивирусное программное обеспечение не только сканирует файл, который не был просканирован и к которому осуществлялся доступ, но и загружает группу или группы файлов для сканирования. Антивирусное программное обеспечение выполняет сканирование текущего запроса на сканирование (запроса на сканирование для текущего файла, к которому осуществляется доступ) и одновременно планирует (или выполняет) сканирование для нескольких «захваченных с собой запросов на сканирование» файлов из загруженного списка. Загруженный список представляет собой генерируемый антивирусным программным обеспечение список файлов, к которым может осуществляться доступ, из директории, при этом он может содержать преобладающие типы файлов, к которым осуществляется доступ. Антивирусное программное обеспечение загружает выборку файлов из директории на основе загруженного списка.
Например, если директория (или папка) содержит файлы А, В, С, D, Е, то к моменту времени, когда файлы А и В были просканированы, может считаться, что к этой директории часто происходит доступ. Если файлы С, D и Е были включены в загруженный список, то, когда сканирование инициируется частыми событиями доступа, антивирусное программное обеспечение загружает файлы С, D, Е (файлы А, В пропускаются, поскольку они уже были просканированы). Если обнаружено, что приложение осуществляет доступ к файлу С, то запрос на сканирование файла С будет получен приложением, которое выполнит сканирование файла С вместе со сканированием файлов D и Е. Таким образом, когда впоследствии приложение будет осуществлять доступ к файлам D и Е, драйвером-фильтром не будут генерироваться запросы на сканирование этих файлов, поскольку они уже были просканированы.
Группа или группы файлов представляют собой файлы, выбранные из директории, доступ к которым приложение может захотеть осуществить в дальнейшем. Сканирование группы или групп «захватывает с собой» сканирование текущего файла, к которому осуществляется доступ, т.е. захватывает с собой запрос на сканирование текущего файла. Это предотвращает дальнейшую генерацию или направление запросов на сканирование для файлов группы.
Даже если приложение не осуществляет доступ к некоторым файлам, выбранным для сканирования как «захваченные с собой», потеря производительности в единственном «захваченном с собой» пакете пренебрежимо мала благодаря пакетному или параллельному сканированию. Когда приложение выполняет длительную обработку (например, копирование всей папки с данными), этот тип упреждающего сканирования значительно повышает общую производительность. Антивирусное программное обеспечение оценивает множество файлов, к которым может происходить доступ в директории, выбирая файлы, к которым наиболее часто осуществляют доступ приложения в директории за конкретный период времени. Это можно осуществить путем ведения динамической таблицы доступов к директории, зависящей от поведения различных выполняемых приложений.
На фиг. 5 изображена таблица доступа к директории, иллюстрирующая обновление и введение обнаруженных событий доступа со стороны приложений к файлам в одной или более директории согласно вариантам осуществления настоящего изобретения. Таблица доступа к директории может быть реализована в виде динамической таблицы поиска, хранящейся в памяти. Эту таблицу ведет антивирусное программное обеспечение для использования при определении количества событий осуществления доступа к файлам в директории.
Антивирусное программное обеспечение ведет динамическую таблицу доступа к директории (или таблицу доступа к директории), отслеживающую доступ к файлам со стороны приложений внутри директорий. В настоящем варианте осуществления таблица доступа к директории имеет следующие поля:
- путь к директории, содержащий имя или логическое местоположение директории, в которой осуществляется доступ к одному или более файлам;
- список расширений, к которым происходил доступ, содержащий список расширений файлов, к которым происходил доступ и которые были просканированы в директории;
- число срабатываний, показывающее количество событий доступа к файлам в данной директории; и
- состояние записи, определяющее цикл жизни записи директории.
В этом варианте осуществления поле Состояние записи имеет 3 логических состояния: Отмечено, Получено и Обработано. Состояние Отмечено (т.е. состояние до сканирования) указывает на то, что к файлу в директории осуществлялся доступ, но что число срабатываний в директории еще недостаточно, чтобы служить основанием для параллельного или пакетного сканирования. После того, как число срабатываний достигнет порогового значения, Состояние записи директории изменяется на состояние Получено (т.е. состояние сканирования). Состояние Получено означает, что какое-то приложение активно осуществляло или осуществляет доступ к директории, что служит основанием для параллельного или пакетного сканирования. Антивирусное программное обеспечение предварительно загружает группы файлов, имеющих расширения, перечисленные в Списке расширений, к которым происходил доступ, или расширения текущего файла, к которому происходит доступ, для параллельного или пакетного сканирования. Состояние Обработано означает, что упреждающее сканирование для данной директории уже выполнено, и файлы следует сканировать в нормальном режиме.
Каждое состояние имеет срок действия, после истечения которого запись директории удаляется из таблицы доступа, например, если в течение какого-то периода времени к файлам в директории не происходил доступу, считается, что срок действия записи истек. Состояние Отмечено имеет короткий срок действия и служит просто для распознавания директорий, доступ к которым может происходить часто. Состояния Получено и Обработано имеют более длительные сроки действия, чтобы учесть частоту событий доступа и избежать ненужного повторного сканирования файлов директории, к которым происходил доступ. Следует понимать, что эти сроки могут изменяться антивирусным программным обеспечением на основе любого временного масштаба.
Следует понимать, что поле Состояние записи используется для исключения перезагрузки и сканирования директории, если он лишь недавно был обработан (например, 10 минут назад). Другие варианты реализации таблицы доступа к директории могут исключать это поле и основываться на таймерах или других средствах предотвращения слишком частого сканирования директории, после того, как она была обработана.
На фиг. 6 представлена схема, дополнительно иллюстрирующая процесс использования таблицы, представленной на фиг. 5, при выполнении параллельного или пакетного сканирования по доступу на наличие вредоносного программного обеспечения согласно одному из вариантов осуществления настоящего изобретения. Шаги данного способа выполняются антивирусным программным обеспечением следующим образом.
B1. Для каждого файла, перехватываемого для сканирования на наличие вредоносного программного обеспечения, например, когда генерируется запрос на сканирование открываемого файла, перейти к шагу В2 для проверки таблицы доступа.
B2. Проверить, включена ли директория файла в таблицу доступа; если директория в таблице доступа отсутствует, перейти к шагу В3 для создания записи директории, в противном случае перейти к шагу В4.
B3. Создать запись таблицы доступа для директории файла и инициализировать Состояние записи директории, установив значение Отмечено, число срабатываний = 0, расширение файла добавляется к Списку расширений файла (или списку типов просканированных файлов), перейти для выполнения нормального сканирования на наличие вредоносного программного обеспечения файла, к которому осуществляется доступ.
B4. Проверить, находится ли Состояние записи директории в состоянии Отмечено; если Состояние записи соответствует значению Отмечено, перейти к шагу В5, в противном случае перейти к шагу В8.
B5. Увеличить на единицу Число срабатываний, представляющее собой количество событий доступа к файлам в данной директории со стороны различных приложений, и добавить расширение файла к Списку расширений, к которым происходил доступ.
B6. Проверить, достигает ли Число срабатываний (ЧС) порогового значения N (например, ЧС>=N, где N=5). Если Число срабатываний достигает порогового значения, перейти к шагу В7, в противном случае выполняется нормальное сканирование на наличие вредоносного программного обеспечения файла, к которому осуществляется доступ.
B7. Состояние записи директории изменяется на Получено, и процесс переходит к шагу В8, на котором антивирусное программное обеспечение загружает из директории группу файлов, содержащую файл, к которому осуществляется доступ, для параллельного или пакетного сканирования.
B8. Проверить, находится ли Состояние записи директории в состоянии Получено; если Состояние записи соответствует значению Получено, перейти к шагу В9, в противном случае перейти к шагу В10.
B9. Выполнить параллельное (или пакетное) сканирование на наличие вредоносного программного обеспечения группы или выборки файлов, которые не были просканированы, включающей текущий файл, в директории.
При выборе группы файлов для пакетного или параллельного сканирования можно использовать следующие правила:
- выбирать файлы с расширениями или типами файла, соответствующими файлу, к которому осуществляется доступ в данный момент; или
- выбирать файлы с расширениями или типами файлов, перечисленные в Списке расширений, к которым происходил доступ.
B10. Проверить, имеются ли в директории другие группы файлов. Файлы можно выбирать из загруженного списка. Если имеются другие группы файлов, выполнение способа переходит к шагу В11, в противном случае переходит к шагу В12.
B11. Из загруженного списка выбирают другую группу файлов, которые не были просканированы, выполняется пакетное или параллельное сканирование на наличие вредоносного программного обеспечения, затем выполнение способа переходит к шагу В10. Хотя антивирусное программное обеспечение должно избегать блокирования выполнения приложения, это может быть осуществлено, если поддержка многоядерности позволяет работать в многозадачном режиме, включающем приложение и антивирусное программное обеспечение. Таким образом, пакетное или параллельное сканирование других файлов, которые не были просканированы, из списка может выполняться в фоновом режиме, чтобы приложение могло продолжать работу.
B12. После того, как в директории не останется больше загруженных или файлов, которые не были просканированы, с расширениями, перечисленными в Списке расширений, к которым происходил доступ, Состояние записи директории изменяется на Обработано. Если директория находится в состоянии Обработано, процесс при необходимости выполняет нормальное сканирование файла на наличие вредоносного программного обеспечения.
Результаты сканирований на наличие вредоносного программного обеспечения добавляются в кэш-память сканирования и передаются приложению, когда оно осуществляет доступ к какому-либо просканированному файлу в директории, позволяя приложению немедленно использовать файл, к которому осуществляется доступ.
На фиг. 7 изображена альтернативная схема, иллюстрирующая пакетное или параллельное сканирование по доступу на наличие вредоносного программного обеспечения в соответствии с одним из вариантов осуществления настоящего изобретения. Шаги способа В1-В12, выполняемые антивирусным программным обеспечением, аналогичны представленным на фиг. 6, за исключением шагов В10 и В11 (шаг В11 удален). Шаг В10 описан следующим образом.
В10. Проверить, имеются ли в директории другие группы файлов. Файлы можно выбирать из загруженного списка. Если имеются другие группы файлов, способ переходит к нормальному сканированию на наличие вредоносного программного обеспечения до тех пор, пока приложение не осуществит доступ к другому файлу, требующему сканирования, при этом выполнение способа снова начинается на шаге В1.
Причина исключения перехода к дальнейшему выполнению параллельного сканирования других групп файлов заключается в том, что приложению требуется доступ лишь к ограниченному количеству файлов в директории, поэтому данный процесс препятствует выполнению антивирусным программным обеспечением фонового пакетного или параллельного сканирования всех файлов, включенных в Список расширений, к которым происходил доступ, до тех пор, пока в нем не возникнет абсолютная необходимость, когда какое-либо приложение осуществит доступ к другому файлу. Это также минимизирует количество прерываний сканирования на наличие вредоносного программного обеспечения при выполнении приложения.
Следующий пример иллюстрирует работу упомянутого выше способа при копировании множества файлов из общей директории. Приняты следующие допущения:
a) общая директория содержит набор файлов *.ехе и *.dll;
b) таблицу доступа ведет антивирусная программа;
c) в таблице доступа уже имеется запись директории, относящаяся к общей директории;
d) ведутся число срабатываний, представляющее собой количество событий доступа, и список расширений файлов, к которым происходил доступ.
Используется следующая логика выполнения.
1. Несколько первых файлов ехе, к которым был осуществлен доступ, сканируются нормально, пока директория не получит достаточное количество срабатываний, т.е. число срабатываний не достигнет порогового значения.
2. Как только число срабатываний достигает порогового значения, антивирусное программное обеспечение загружает файлы из директории.
3. Каждый следующий запрос на сканирование файла ехе в директории инициирует «захват с собой» сканирования других файлов ехе (группы файлов) из директории.
4. После окончания копирования срок действия записи истекает спустя некоторый период времени.
Более подробно, когда выполняется операция копирования копировать <из общей директории> *.ехе <в другую директорию>, команда копирования (приложение) будет последовательно осуществлять доступ к файлам ехе, чтобы прочитать и скопировать данные в другую директорию. При осуществлении доступа к первому файлу ехе из общей директории будет генерироваться запрос на сканирование для антивирусного программного обеспечения. Если в таблице доступа нет записи директории для данной общей директории, антивирусное программное обеспечение создаст и инициализирует запись директории для общей директории, при этом число срабатываний записи директории, представляющее собой количество событий доступа, инициализируется, и тип файла, в данном случае ехе, добавляется к списку расширений, относящемуся к данной записи директории. В противном случае число срабатываний записи директории увеличивается на единицу, и тип файла ехе добавляется к списку расширений, если он еще не внесен в список расширений.
После этого первый файл ехе, к которому осуществлен доступ, нормально сканируется на наличие вредоносного программного обеспечения и используется командой копирования. Происходит доступ к последующим файлам ехе, формируются запросы на сканирование и антивирусное программное обеспечение выполняет нормальное сканирование этих файлов, при этом число срабатываний для записи общей директории увеличивается на единицу при каждом доступе, пока запись директории, относящаяся к общей директории, не получит достаточное количество срабатываний. Как только число срабатываний достигает порогового значения, антивирусное программное обеспечение начинает загружать или определяет одну или более групп файлов ехе, которые не были просканированы, из общей директории. Каждый следующий запрос на сканирование файлов ехе, которые не были просканированы, инициирует выполнение параллельного сканирования (т.е. по существу одновременного сканирования) антивирусным программным обеспечением файлов ехе, которые не были просканированы, и одной из групп файлов, которые не были просканированы, из общей директории. Сканирование продолжается, пока не будут обработаны соответствующие файлы ехе в общей директории, или не закончится выполнение команды копирования. После окончания выполнения команды копирования действие записи директории в таблице доступа истекает в течение заданного интервала времени, и по его истечении эта запись удаляется из таблицы доступа.
Каждая из компьютерных систем, описанных в настоящем документе, может выполнять пакетное или параллельное сканирование группы файлов, выбранных из множества файлов из общей директории, к которым осуществляется доступ, на наличие вредоносного программного обеспечения. Процессоры таких систем выполнены с возможностью исполнения команд компьютерных программ на основе способов, раскрытых в настоящем описании, причем такие команды содержатся в машиночитаемом носителе информации, таком как память. Команды компьютерных программ могут считываться в память из другого машиночитаемого носителя или другого устройства через интерфейс связи. Содержащиеся в памяти команды обеспечивают выполнение процессором компьютерной системы процедур или способов согласно настоящему описанию. Однако, в качестве альтернативного варианта, аппаратные схемные средства могут использоваться вместо или в сочетании с командами компьютерной программы для реализации процессов, соответствующих настоящему изобретению. Таким образом, настоящее изобретение не ограничивается каким-либо конкретным сочетанием аппаратных схемных средств и/или программного обеспечения.
В частности, компьютерная программа, содержащая средства компьютерного программного кода, пригодные для выполнения шагов обнаружения событий доступа приложения к файлам, содержащимся в общей директории, использования обнаруженных событий доступа для идентификации одной или более групп файлов в указанной общей директории, доступ к которым приложение может захотеть осуществить в дальнейшем, и подачи команды на сканирование указанных одной или более групп файлов на наличие вредоносного программного обеспечения прежде, чем приложение попытается осуществить доступ к файлам группы или групп. Компьютерная программа может также содержать средства компьютерного программного кода, пригодные также для выполнения сканирования указанной одной или более групп файлов. Компьютерная программа может быть сохранена на машиночитаемом носителе информации.
Кроме того, раскрытые выше способы могут использовать мультипроцессорные, многозадачные, многопотоковые и гиперпотоковые возможности современных компьютерных систем (как описано в настоящем документе, а также в техническом руководстве пользователя «Гиперпотоковая технология lntel®», январь 2003 г.) для дальнейшего повышения производительности компьютерной системы при реализации сканирования по доступу файлов, открываемых только для чтения, на наличие вредоносного программного обеспечения, путем предоставления возможности распараллеленного сканирования одной или более групп файлов.
Специалисту в данной области техники понятно, что описанные выше варианты осуществления могут подвергаться различным модификациям без выхода за рамки настоящего изобретения.

Claims (29)

1. Способ сканирования на наличие вредоносного программного обеспечения при выполнении приложения в компьютерной системе, включающий следующие шаги:
ведут таблицу доступа к директории для отслеживания доступа к файлам, содержащимся в общей директории, со стороны приложения, при этом таблица доступа к директории включает путь к директории, содержащий имя или логическое местоположение общей директории, число срабатываний, указывающее количество событий доступа к файлам в общей директории, и состояние записи, указывающее, находится ли общая директория в состоянии до сканирования, состоянии сканирования, либо состоянии выполненного сканирования;
обнаруживают события доступа приложения к файлам, содержащимся в общей директории;
используют обнаруженные события доступа для идентификации одной или более групп файлов, содержащихся в общей директории, доступ к которым приложение может захотеть осуществить в дальнейшем, при выполнении приложения;
сканируют указанную одну или более группу файлов на наличие вредоносного программного обеспечения при выполнении приложения и прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
2. Способ по п. 1, отличающийся тем, что шаг использования обнаруженных событий доступа для идентификации одной или более групп файлов включает шаг выбора группы или групп файлов на основе типов файлов, доступ к которым осуществляется приложением.
3. Способ по п. 2, отличающийся тем, что шаг выбора файлов дополнительно включает сопоставление типов файлов, доступ к которым осуществляется приложением, с типами файлов, содержащихся в общей директории.
4. Способ по п. 1, отличающийся тем, что файлы в группе или группах файлов являются файлами, требующими сканирования.
5. Способ по п. 1, отличающийся тем, что шаг идентификации одной или более групп файлов включает шаг добавления текущего файла, для которого обнаружен доступ к нему приложения, к группе файлов для сканирования, когда текущий файл требует сканирования.
6. Способ по п. 1, отличающийся тем, что шаг использования обнаруженных событий доступа включает шаг определения количества обнаруженных событий доступа в общей директории и использования результатов для инициирования шага сканирования одной или более групп.
7. Способ по п. 6, отличающийся тем, что шаг инициирования шага сканирования происходит, когда количество обнаруженных событий доступа достигает заданного порогового значения.
8. Способ по п. 6 или 7, отличающийся тем, что использование обнаруженных событий доступа для идентификации одной или более групп файлов включает шаг добавления текущего файла, для которого обнаружен доступ к нему приложения, к группе файлов при инициировании шага сканирования.
9. Способ по п. 6, отличающийся тем, что определение количества обнаруженных событий доступа включает шаг сброса количества обнаруженных событий доступа, когда истекает первый период времени, а шаг сканирования не был инициирован.
10. Способ по п. 6, отличающийся тем, что шаг сканирования одной или более групп файлов включает шаг завершения сканирования группы или групп, когда истекает второй период времени после того, как был инициирован шаг сканирования.
11. Способ по п. 1, отличающийся тем, что шаг использования обнаруженных событий доступа для идентификации одной или более групп файлов включает шаг ведения списка типов обнаруженных файлов, к которым осуществляется доступ, при этом шаг идентификации одной или более групп файлов включает шаг выбора файлов на основе списка типов файлов.
12. Способ по п. 11, отличающийся тем, что шаг выбора файлов дополнительно включает сопоставление списка типов файлов, к которым осуществляется доступ приложения, с типами файлов, содержащихся в общей директории.
13. Способ по п. 11 или 12, отличающийся тем, что файлы в группе или группах файлов являются файлами, содержащимися в общей директории и требующими сканирования.
14. Способ по п. 11, отличающийся тем, что шаг идентификации одной или более групп файлов включает шаг добавления текущего файла, для которого обнаружен доступ к нему приложения, к группе файлов для сканирования.
15. Способ по п. 1, отличающийся тем, что шаг обнаружения событий доступа приложения к файлам, содержащимся в общей директории, включает прием запроса на сканирование файла, к которому осуществляется доступ приложения, содержащегося в общей директории.
16. Способ по п. 15, отличающийся тем, что шаг идентификации одной или более групп файлов включает шаг добавления файла, соответствующего запросу на сканирование, к группе файлов для сканирования.
17. Долговременный машиночитаемый носитель информации для сканирования на наличие вредоносного программного обеспечения при выполнении приложения в компьютерной системе, содержащий средства компьютерного программного кода, пригодные для реализации следующих шагов:
ведение таблицы доступа к директории для отслеживания доступа к файлам, содержащимся в общей директории, со стороны приложения, при этом таблица доступа к директории включает путь к директории, содержащий имя или логическое местоположение общей директории, число срабатываний, указывающее количество событий доступа к файлам в общей директории, и состояние записи, указывающее, находится ли общая директория в состоянии до сканирования, состоянии сканирования, либо состоянии выполненного сканирования;
обнаружение события доступа приложения к файлам, содержащимся в общей директории;
использование обнаруженных событий доступа для идентификации одной или более групп файлов в общей директории при выполнении приложения, доступ к которым приложение может захотеть осуществить в дальнейшем;
подача команды на сканирование указанных одной или более групп файлов на наличие вредоносного программного обеспечения при выполнении приложения прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
18. Носитель информации по п. 17, отличающийся тем, что дополнительно содержит средства компьютерного программного кода, пригодные для выполнения сканирования указанной одной или более групп файлов на наличие вредоносного программного обеспечения в ответ на шаг подачи команды.
19. Компьютерная система, выполненная с возможностью сканирования файлов на наличие вредоносного программного обеспечения при выполнении приложения на процессоре и с возможностью ведения таблицы доступа к директории для отслеживания доступа к файлам, содержащимся в общей директории, со стороны приложения, при этом таблица доступа к директории включает путь к директории, содержащий имя или логическое местоположение общей директории, число срабатываний, указывающее количество событий доступа к файлам в общей директории, и состояние записи, указывающее, находится ли общая директория в состоянии до сканирования, состоянии сканирования, либо состоянии выполненного сканирования; содержащая модуль обнаружения, служащий для обнаружения событий доступа приложения к файлам, содержащимся в общей директории, использования обнаруженных событий доступа для идентификации одной или более групп файлов в общей директории при выполнении приложения, доступ к которым приложение может захотеть осуществить в дальнейшем, и подачи модулю сканирования команды сканировать указанные одну или более групп файлов на наличие вредоносного программного обеспечения при выполнении приложения прежде, чем приложение попытается осуществить доступ к файлам группы или групп.
20. Компьютерная система по п. 19, отличающаяся тем, что дополнительно содержит модуль сканирования для сканирования указанных одной или более групп файлов в ответ на подачу команды модулем обнаружения.
21. Долговременный машиночитаемый носитель информации, содержащий командный код, реализующий при его выполнении процессором способ по п. 1.
RU2013154735A 2011-05-16 2012-03-29 Способ упреждающего сканирования на наличие вредоносного программного обеспечения RU2621608C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/068,610 US8726388B2 (en) 2011-05-16 2011-05-16 Look ahead malware scanning
US13/068,610 2011-05-16
PCT/EP2012/055733 WO2012156143A1 (en) 2011-05-16 2012-03-29 Look ahead malware scanning

Publications (2)

Publication Number Publication Date
RU2013154735A RU2013154735A (ru) 2015-06-27
RU2621608C2 true RU2621608C2 (ru) 2017-06-06

Family

ID=45937341

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013154735A RU2621608C2 (ru) 2011-05-16 2012-03-29 Способ упреждающего сканирования на наличие вредоносного программного обеспечения

Country Status (7)

Country Link
US (1) US8726388B2 (ru)
BR (1) BR112013029404A2 (ru)
DE (1) DE112012002106B4 (ru)
ES (1) ES2463265B1 (ru)
RO (1) RO130379B1 (ru)
RU (1) RU2621608C2 (ru)
WO (1) WO2012156143A1 (ru)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9679137B2 (en) * 2006-09-27 2017-06-13 Hewlett-Packard Development Company, L.P. Anti-viral scanning in Network Attached Storage
US8127358B1 (en) * 2007-05-30 2012-02-28 Trend Micro Incorporated Thin client for computer security applications
WO2013141545A1 (ko) * 2012-03-21 2013-09-26 삼성에스디에스 주식회사 안티-멀웨어 시스템 및 상기 시스템에서의 데이터 처리 방법
US9292688B2 (en) * 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US11126720B2 (en) 2012-09-26 2021-09-21 Bluvector, Inc. System and method for automated machine-learning, zero-day malware detection
CN103780589A (zh) * 2012-10-24 2014-05-07 腾讯科技(深圳)有限公司 病毒提示方法、客户端设备和服务器
GB2517483B (en) * 2013-08-22 2015-07-22 F Secure Corp Detecting file encrypting malware
US9323929B2 (en) * 2013-11-26 2016-04-26 Qualcomm Incorporated Pre-identifying probable malicious rootkit behavior using behavioral contracts
CN103810428B (zh) * 2014-02-24 2017-05-24 珠海市君天电子科技有限公司 一种宏病毒检测方法及装置
US9710648B2 (en) * 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
CN104199894A (zh) * 2014-08-25 2014-12-10 百度在线网络技术(北京)有限公司 一种文件扫描方法及装置
JP6916112B2 (ja) 2014-11-21 2021-08-11 ブルヴェクター, インコーポレーテッドBluvector, Inc. ネットワークデータ特性評価のシステムと方法
US11023449B2 (en) * 2014-12-19 2021-06-01 EMC IP Holding Company LLC Method and system to search logs that contain a massive number of entries
US9715589B2 (en) 2015-01-23 2017-07-25 Red Hat, Inc. Operating system consistency and malware protection
US10032023B1 (en) * 2016-03-25 2018-07-24 Symantec Corporation Systems and methods for selectively applying malware signatures
US10200395B1 (en) * 2016-03-30 2019-02-05 Symantec Corporation Systems and methods for automated whitelisting of files
US10248787B1 (en) * 2016-12-20 2019-04-02 Symantec Corporation Systems and methods for determining reputations of files
US10511631B2 (en) 2017-01-25 2019-12-17 Microsoft Technology Licensing, Llc Safe data access through any data channel
EP3376424B1 (en) * 2017-03-14 2021-05-05 VirusTotal SLU Scanning files using antivirus software
CN109361643B (zh) * 2018-06-22 2021-05-25 中国移动通信集团广东有限公司 一种恶意样本的深度溯源方法
RU2726878C1 (ru) * 2019-04-15 2020-07-16 Акционерное общество "Лаборатория Касперского" Способ ускорения полной антивирусной проверки файлов на мобильном устройстве
US11288391B2 (en) 2019-09-13 2022-03-29 EMC IP Holding Company LLC Filename-based malware pre-scanning
US11210395B2 (en) * 2019-09-13 2021-12-28 EMC IP Holding Company LLC Filename-based malware pre-scanning
CN113468119A (zh) * 2021-05-31 2021-10-01 北京明朝万达科技股份有限公司 一种文件扫描方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968461B1 (en) * 2000-10-03 2005-11-22 Networks Associates Technology, Inc. Providing break points in a malware scanning operation
US20060037079A1 (en) * 2004-08-13 2006-02-16 International Business Machines Corporation System, method and program for scanning for viruses
US20060101514A1 (en) * 2004-11-08 2006-05-11 Scott Milener Method and apparatus for look-ahead security scanning
WO2008068240A1 (en) * 2006-12-07 2008-06-12 International Business Machines Corporation On demand virus scan
RU2358313C2 (ru) * 2003-07-16 2009-06-10 Майкрософт Корпорейшн Автоматическое обнаружение уязвимых файлов и установка заплаток на них
WO2010115960A1 (en) * 2009-04-09 2010-10-14 F-Secure Corporation Malware determination

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681237B1 (en) 2004-05-13 2010-03-16 Symantec Corporation Semi-synchronous scanning of modified files in real time
US8254858B2 (en) * 2007-12-21 2012-08-28 Hewlett-Packard Development Company, L.P. Techniques to manage power based on motion detection
US8745743B2 (en) 2009-06-09 2014-06-03 F-Secure Oyj Anti-virus trusted files database
US8468602B2 (en) * 2010-03-08 2013-06-18 Raytheon Company System and method for host-level malware detection

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968461B1 (en) * 2000-10-03 2005-11-22 Networks Associates Technology, Inc. Providing break points in a malware scanning operation
RU2358313C2 (ru) * 2003-07-16 2009-06-10 Майкрософт Корпорейшн Автоматическое обнаружение уязвимых файлов и установка заплаток на них
US20060037079A1 (en) * 2004-08-13 2006-02-16 International Business Machines Corporation System, method and program for scanning for viruses
US20060101514A1 (en) * 2004-11-08 2006-05-11 Scott Milener Method and apparatus for look-ahead security scanning
WO2008068240A1 (en) * 2006-12-07 2008-06-12 International Business Machines Corporation On demand virus scan
WO2010115960A1 (en) * 2009-04-09 2010-10-14 F-Secure Corporation Malware determination

Also Published As

Publication number Publication date
US20120297486A1 (en) 2012-11-22
RO130379A2 (ro) 2015-06-30
RU2013154735A (ru) 2015-06-27
RO130379B1 (ro) 2020-05-29
DE112012002106T5 (de) 2014-02-13
ES2463265R1 (es) 2014-09-04
WO2012156143A1 (en) 2012-11-22
ES2463265A2 (es) 2014-05-27
ES2463265B1 (es) 2015-06-02
DE112012002106B4 (de) 2023-06-15
US8726388B2 (en) 2014-05-13
BR112013029404A2 (pt) 2017-01-31

Similar Documents

Publication Publication Date Title
RU2621608C2 (ru) Способ упреждающего сканирования на наличие вредоносного программного обеспечения
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US8087061B2 (en) Resource-reordered remediation of malware threats
US9237171B2 (en) System and method for indirect interface monitoring and plumb-lining
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
JP5976020B2 (ja) アンチマルウェアメタデータのルックアップを行うためのシステム及び方法
US7571482B2 (en) Automated rootkit detector
US7841006B2 (en) Discovery of kernel rootkits by detecting hidden information
EP2933747B1 (en) System and methods of distributing antivirus checking tasks among virtual machines in a virtual network
US8312268B2 (en) Virtual machine
CN108399332B (zh) 在虚拟机中针对恶意性对文件进行分析的系统和方法
US7640586B1 (en) Reducing HTTP malware scanner latency using HTTP range queries for random access
US7721331B1 (en) Methods and apparatus for performing a pre-processing activity
RU2701842C1 (ru) Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты)
US20120192273A1 (en) Malware detection
EP2663944B1 (en) Malware detection
JP2005327239A (ja) セキュリティ関連プログラミング・インターフェース
US11489844B2 (en) On-the-fly creation of transient least privileged roles for serverless functions
JP2014530401A (ja) マルウェアリスクスキャナー
RU2599945C2 (ru) Система и способ пополнения базы данных при одновременной антивирусной проверке объектов на множестве виртуальных машин
US11210395B2 (en) Filename-based malware pre-scanning
RU2696236C1 (ru) Способ формирования запроса информации о файле при антивирусной проверке с целью исключения ложного срабатывания
EP3588350B1 (en) Method and system for generating a request for information on a file to perform an antivirus scan
Herrero Pérez de Albeniz File integrity monitoring on Linux systems