RU2610228C1 - Система и способ выполнения запросов процессов операционной системы к файловой системе - Google Patents

Система и способ выполнения запросов процессов операционной системы к файловой системе Download PDF

Info

Publication number
RU2610228C1
RU2610228C1 RU2015154380A RU2015154380A RU2610228C1 RU 2610228 C1 RU2610228 C1 RU 2610228C1 RU 2015154380 A RU2015154380 A RU 2015154380A RU 2015154380 A RU2015154380 A RU 2015154380A RU 2610228 C1 RU2610228 C1 RU 2610228C1
Authority
RU
Russia
Prior art keywords
query
request
priority
database
execution
Prior art date
Application number
RU2015154380A
Other languages
English (en)
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 Акционерное общество "Лаборатория Касперского"
Priority to RU2015154380A priority Critical patent/RU2610228C1/ru
Priority to US15/040,055 priority patent/US10372900B2/en
Application granted granted Critical
Publication of RU2610228C1 publication Critical patent/RU2610228C1/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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/561Virus type analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

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

Abstract

Изобретение предназначено для выполнения запросов процессов к файловой системе. Технический результат – оптимизация работы файловой системы с запросами процессов. Система выполнения запросов процессов операционной системы к файловой системе, где запросы представляют собой вызовы API-функции, при этом система выполнения запросов содержит средство перехвата запросов, средство кэширования, базу данных запросов, средство управления доступом. 2 н. и 4 з.п. ф-лы, 3 ил.

Description

Область техники
Изобретение относится к решениям в области оптимизации работы файловой системы, а более конкретно к системам и способам выполнения запросов процессов операционной системы к файловой системе при проверке файловой системы антивирусным приложением.
Уровень техники
Бурное развитие компьютерных и информационных технологий в последнее десятилетие привело к их массовому использованию как на пользовательском, так и на корпоративном рынке. Стало обычным явлением повсеместное внедрение электронного документооборота, электронной коммерции, облачных хранилищ и т.д.
В настоящее время огромное число людей хранит свою личную и конфиденциальную информацию на компьютерах, а подавляющее большинство предприятий ведет свою финансовую и коммерческую деятельность с использованием электронных устройств и сервисов.
Массовое использование информационных технологий стало причиной роста мошенничества с использованием данных технологий - появилось огромное количество вредоносных программ, значительно возросло количество кибернетических атак на компьютерные системы.
Для защиты компьютерных систем от вредоносного программного обеспечения (далее ПО) в настоящий момент используется много разнообразных средств - это антивирусные продукты, сетевые экраны и т.д., позволяющие как обнаруживать известные и неизвестные вредоносные программы, так и устранять их.
Постоянный рост количества вредоносных программ и усложнение их структуры и поведения требует постоянного совершенствования средств борьбы с ними. Увеличение объемов антивирусных баз, усложнение эвристических и проактивных алгоритмов обнаружения вредоносных программ - все это негативно сказывается на производительности антивирусных решений. Для улучшения производительности антивирусных приложений применяются разнообразные алгоритмы оптимизации проверки компьютерных систем, устранения последствий заражений и т.д.
Например, в публикации US 8161557 B2 описана технология проверки файловой системы с целью поиска вредоносных файлов. Используя метаданные файлов, такие как тип файла, имя файла, размер и т.д., организуется система кэширования файлов, что позволяет более оптимально расходовать системные ресурсы на их проверку. Описанный подход позволяет решать задачи проверки большого объема файлов при небольших ресурсных затратах за счет использования оптимальных методов выбора того, какие файлы и в каком порядке необходимо проверять. Тем не менее, он не решает проблему многократной проверки одних и тех же файлов, а также "лишних" проверок - ситуации, когда проверка должна быть прервана, поскольку результаты проверки никогда не будут использоваться антивирусным приложением или пользователем (например, проверяемый файл удаляется и т.д.).
Хотя описанный выше способ работы хорошо справляются с задачами кэширования проверяемых файлов и оптимальной настройки проверки файлов, они зачастую не помогают при "лишних проверках" и рассинхронизации данных, проверяемых с одной стороны антивирусным приложением, и модифицируемых с другой стороны другими приложениями.
Настоящее изобретение позволяет решать задачу выполнения запросов процессов операционной системы к файловой системе при проверке файловой системы антивирусным приложением.
Раскрытие изобретения
Изобретение предназначено для выполнения запросов процессов к файловой системе.
Технический результат настоящего изобретения заключается в оптимизации работы файловой системы с запросами процессов, заключающейся в упорядочивании выполнения файловой системой запросов процессов. Настоящий результат достигается с помощью системы выполнения запросов процессов операционной системы (далее - запросы) к файловой системе, где запросы представляют собой вызовы API-функции.
Данный результат достигается с помощью использования системы выполнения запросов процессов операционной системы (далее - запросы) к файловой системе, где запросы представляют собой вызовы API-функции, при этом система выполнения запросов которая содержит средство перехвата запросов, предназначенное для перехвата по меньшей мере двух запросов к файловой системе на выполнение по меньшей мере одного действия с по меньшей мере одним файлом, и передачи перехваченных запросов средству кэширования; упомянутое средство кэширования, предназначенное для выделения по меньшей мере одного параметра запроса для каждого полученного запроса, при этом параметр запроса представляет собой по меньшей мере один параметр по меньшей мере одной API-функции, составляющей запрос, определения приоритета выполнения каждого полученного запроса, где приоритет выполнения запроса равен приоритету выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов, и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного средством кэширования запроса, меньше приоритета выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов, и у которого ни один параметр запроса не равен ни одному выделенному параметру полученного средством кэширования запроса, при этом приоритет выполнения запроса характеризует вероятность передачи указанного запроса средством управления доступом файловой системе на выполнение, и добавления в базу данных запросов для каждого полученного запроса непосредственно самого запроса, по меньшей мере одного выделенного параметра запроса, определенного приоритета выполнения запроса; базу данных запросов, предназначенную для хранения по меньшей мере одного запроса, по меньшей мере одного параметра запроса, приоритета выполнения запроса файловой системой; упомянутое средство управления доступом, предназначенное для выборки из базы данных запросов по меньшей мере одного запроса, имеющего приоритет выполнения запроса выше критерия выбора запроса, вычисляемого на основании по меньшей мере одного параметра запроса и приоритета выполнения запроса по меньшей мере одного запроса, выбранного из базы данных запросов ранее и переданного файловой системе для выполнения и передачи выбранного запроса файловой системе для выполнения выбранного запроса.
В другом частном случае реализации системы критерий выбора запроса равен приоритету выполнения запроса, переданного ранее средством управления доступом на выполнение; приоритету выполнения запроса, который соответствует также по меньшей мере еще одному запросу из базы данных запросов, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее средством управления доступом на выполнение.
Еще в одном частном случае реализации системы средство управления доступом после выборки запроса из базы данных запросов удаляет выбранный запрос из базы данных запросов.
В другом частном случае реализации системы средство управления доступом передает запрос, выбранный из базы данных запросов, средству кэширования для повторного выделения по меньшей мере одного параметра запроса и определения приоритета выполнения запроса на основании данных из базы данных запросов и последующего добавления непосредственно самого запроса, по меньшей мере одного выделенного параметра запроса и определенного приоритета выполнения запроса в базу данных запросов.
Данный результат достигается с помощью использования способа выполнения запросов процессов операционной системы (далее - запросы) к файловой системе, который содержит этапы, которые реализуются с помощью средств из системы выполнения запросов процессов операционной системы и на которых: перехватывают по меньшей мере два запроса к файловой системе на выполнение по меньшей мере одного действия с по меньшей мере одним файлом; выделяют по меньшей мере один параметр запроса для каждого перехваченного запроса, при этом параметр запроса представляет собой по меньшей мере один параметр по меньшей мере одной API-функции, составляющей запрос; определяют приоритет выполнения каждого перехваченного запроса, где приоритет выполнения запроса: равен приоритету выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного средством кэширования запроса; меньше приоритета выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов и у которого ни один параметр запроса не равен ни одному выделенному параметру полученного средством кэширования запроса; при этом приоритет выполнения запроса характеризует вероятность передачи указанного запроса средством управления доступом файловой системе на выполнение; добавляют в базу данных запросов для каждого перехваченного запроса непосредственно сам запрос, по меньшей мере один выделенный на предыдущем этапе параметр запроса, определенный на предыдущем этапе приоритет выполнения запроса; выбирают из базы данных запросов по меньшей мере один запрос, имеющий приоритет выполнения запроса выше критерия выбора запроса, вычисляемого на основании по меньшей мере одного параметра запроса и приоритета выполнения запроса по меньшей мере одного запроса, выбранного из базы данных запросов ранее и переданного файловой системе для выполнения; выполняют выбранный на предыдущем этапе запрос.
В другом частном случае реализации способа критерий выбора запроса равен: приоритету выполнения запроса, переданного ранее средством управления доступом на выполнение; приоритету выполнения запроса, который соответствует также по меньшей мере еще одному запросу из базы данных запросов, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее средством управления доступом на выполнение.
Еще в одном частном случае реализации способа после выборки запроса из базы данных запросов удаляют выбранный запрос из базы данных запросов.
В другом частном случае реализации способа передают запрос, выбранный из базы данных запросов, средству кэширования для повторного выделения по меньшей мере одного параметра запроса и определения приоритета выполнения запроса на основании данных из базы данных запросов и последующего добавления непосредственно самого запроса, по меньшей мере одного выделенного параметра запроса и определенного приоритета выполнения запроса в базу данных запросов.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы выполнения запросов процессов операционной системы к файловой системе.
Фиг. 2 представляет структурную схему способа выполнения запросов процессов операционной системы к файловой системе.
Фиг. 3 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Фиг. 1 представляет структурную схему системы выполнения запросов процессов операционной системы к файловой системе.
Структурная схема системы выполнения запросов процессов операционной системы к файловой системе содержит процесс клиента 110, процесс средства проверки 120, средство перехвата запросов 130, средство кэширования 140, базу данных запросов 150, средство управления доступом 160 и файловую систему 170.
Процесс клиента 110 предназначен для передачи запросов к файловой системе 170 на выполнение действий над файлами (таких как создание и удаление файлов, чтение данных из файлов и записи данных в файл, изменение свойств файлов и т.д.) получения результатов этих действий от файловой системы 170.
В качестве клиента могут выступать:
Figure 00000001
приложения, работающие в операционной системе,
Figure 00000001
модули операционной системы, такие как файловый менеджер, менеджер памяти и т.д.
В качестве запросов к файловой системе 170 могут выступать как вызовы единичных API-функций, так и последовательности вызовов API-функций. Например, в операционной системы семейства Windows для удаления файла "c:\document.txt" будет сформирован вызов
Figure 00000002
а для записи 10КБ данных в файл "c:\windows\infb.log" будет сформирована последовательность вызовов:
Figure 00000003
Процесс средства проверки 120 предназначен для передачи высокоприоритетных запросов к файловой системе 170 на выполнение действий над файлами и получения результатов этих действий от файловой системы 170.
В качестве средства проверки 120 могут выступать:
Figure 00000001
антивирусные приложения,
Figure 00000001
программы для восстановления работоспособности операционной системы после воздействия на работоспособность операционной системы вредоносными программами.
Например, для эффективной работы антивирусного приложения (т.е. для проверки файлов и поиска вредоносных программ) требуется, чтобы запросы от процессов антивирусного приложения к файловой системе по возможности обрабатывались ранее, чем запросы от остальных процессов (среди которых может быть и вредоносный процесс).
Высокоприоритетный запрос, передаваемый процессом средства проверки 120, представляет собой запрос, выполняемый файловой системой 170 ранее всех переданных процессами клиентов 110 запросов.
Средство перехвата запросов 130 предназначено для:
Figure 00000001
перехвата запросов от процесса клиента 110, процесса средства проверки 120 к файловой системе 170 на выполнение действий с файлами;
Figure 00000001
передачи перехваченных запросов средству кэширования 140.
В качестве средства перехвата запросов, передаваемых процессом клиента 110 или процессом средства проверки 120 файловой системе 170, может выступать специально разработанный для этой цели драйвер, работа которого заключается в перенаправлении канала передачи запросов (например, изменения адреса источника, принимающего запросы) с файловой системы 170 на себя. Таким образом, запрос, передаваемый процессом 110 или 120, получается драйвером, а не файловой системой 170.
Средство кэширования 140 предназначено для:
Figure 00000001
выделения параметров запроса для каждого полученного запроса;
Figure 00000001
определения приоритета выполнения каждого полученного запроса на основании определения соответствия с по меньшей мере одним приоритетом выполнения запроса, хранящимся в базе данных запросов, где указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного запроса, при этом приоритет выполнения запроса характеризует вероятность передачи указанного запроса средством управления доступом 160 файловой системе 170 на выполнение, где вероятность передачи запроса представляет собой шанс успешного выполнения запроса, переданного средством управления 160 файловой системе 170, т.е. шанса того, что выполнение переданного запроса не повлияет на выполнение запросов, переданных средством управления 160 файловой системе 170 ранее и все еще выполняемых на момент передачи упомянутого выше запроса (например, запрос на удаление редко используемого файла имеет высокий приоритет выполнения запроса, поскольку шанс того, что удаление упомянутого файла помешает выполнению другого, переданного ранее, запроса является незначительным);
Figure 00000001
добавления в базу данных запросов для каждого полученного запроса:
Figure 00000004
непосредственно самого запроса,
Figure 00000004
выделенных параметров запроса,
Figure 00000004
определенного приоритета выполнения запроса.
При этом параметры запроса представляют собой наборы данных, определяющих функциональность запроса, исполняемого файловой системой 170. Например, запрос на чтение из файла данных, переданный файловой системе 170 процессом приложения «Notepad», представляющий собой последовательный вызов WinAPI-функций:
Figure 00000005
где набор данных, передаваемых в функцию «CreateFile», представляет собой параметр, идентифицирующий файл, с которым будет произведена работа, набор данных, передаваемых в функции «SetFilePointer» и «ReadFile», представляют собой параметр, идентифицирующий тип операции и требуемые данные.
При этом в качестве параметров запроса могут выступать:
Figure 00000001
идентификатор процесса, передающего запрос на выполнение файловой системе 170, например, описатель процесса (англ. process handle) глобальный уникальный идентификатор процесса (GUID),
Figure 00000001
тип запроса, характеризующий какие операции над файлом должны быть выполнены (например, удаление или создание файла, чтение данных из файла или запись данных в файл и т.д.),
Figure 00000001
идентификатор файла (например, полный путь к файлу, глобальный уникальный идентификатор файла (GUID), описатель файла (англ. file handle) и т.д.),
Figure 00000001
атрибуты файла,
Figure 00000001
параметры данных, записываемых в файл или считываемых из файла (такие как указатель на данные в памяти, объем данных и т.д.),
Figure 00000001
политики безопасности работы с файлом.
При этом приоритет выполнения запроса, полученного средством кэширования 140, может быть:
Figure 00000001
равен приоритету выполнения запроса, хранящегося в базе данных запросов 150, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов 150, и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного средством кэширования 140 запроса;
Figure 00000001
равен максимально возможному приоритету выполнения запроса, в случае, когда запрос получен от процесса средства проверки 120;
Figure 00000001
меньше приоритета выполнения запроса, хранящегося в базе данных запросов 150, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов 150, и у которого ни один параметр запроса не равен ни одному выделенному параметру полученного средством кэширования 140 запроса.
Например, средством кэширования 140 от процесса клиента 110, представляющего собой приложение «Windows Ехр1оrer», был получен запрос на удаление файла «c:\document.exe»:
Figure 00000006
Из полученного запроса были выделены параметры запроса:
Figure 00000001
тип операции над файлом: «удаление»,
Figure 00000001
идентификатор файла: «c:\document.txt»,
Из базы данных запросов 150 был выбран запрос, у которого один из параметров запроса - тип операции над файлом, такой же, что и у полученного средством кэширования 140 запроса - «удаление». В результате запросы считаются схожими, поэтому приоритет выполнения запроса, полученного средством кэширования 140, вычисляется как:
Pdst=Psrc-1
где Pdst - приоритет выполнения запроса, полученного средством кэширования 140, Psrc - приоритет выполнения запроса, выбранного из базы данных запросов 150.
В другом случае, когда параметры полученного средством кэширования 140 запроса и выбранного из базы данных запросов 150 идентичны, например, в случае запросов:
Figure 00000007
то приоритет выполнения запроса, полученного средством кэширования 140, равен приоритету выполнения запроса, выбранного из базы данных запросов 150.
База данных запросов 150 предназначена для:
Figure 00000001
хранения:
Figure 00000004
запросов, полученных от средства кэширования 140, о параметров хранящихся запросов,
Figure 00000004
приоритетов выполнения хранящихся запросов файловой системой 170;
Figure 00000001
передачи хранящихся данных по требованию средству управления доступом 160.
В базе данных запросов 150 запросы, параметры запросов и приоритеты выполнения запросов могут быть объединены в блоки данных запросов и храниться в базе данных запросов 150 в виде набора блоков данных запросов, где каждый блок данных запроса включает в себя один запрос, параметры этого запроса и приоритет выполнения этого запроса. Кроме того, блоки данных запросов, включающие в себя одинаковые приоритеты выполнения запроса, также могут быть объединены в наборы блоков данных запросов, включающие в себя приоритет выполнения запросов и блоки данных запросов, в свою очередь включающие в себя запросы и параметры запросов.
Средство управления доступом 160 предназначено для:
Figure 00000001
выборки из базы данных запросов 150 запросов, параметров выбранных запросов на основании сравнения приоритетов, выполнения запросов из базы данных запросов 150 с приоритетом выполнения запроса, переданного ранее средством управления доступом 160 на выполнение файловой системе 170;
Figure 00000001
вынесения решения о выполнении выбранных запросов на основании сравнения параметров выбранных запросов с параметрами запроса, переданного ранее на выполнение файловой системе 170;
Отрицательное решение выносится в случае, когда выполнение запроса повлияет на результаты выполнения запросов, переданных на выполнение файловой системе 170 ранее и выполняемых на момент начала выполнения запроса, по которому выносилось упомянутое решение (например, запись в файл может повлиять на результаты считывания из файла, происходящие одновременно с записью в этот же файл).
Положительное решение выносится в случае, когда выполнение запроса не повлияет на результаты выполнения запросов, переданных на выполнение файловой системе 170 ранее и выполняемых на момент начала выполнения запроса, по которому выносилось упомянутое решение (например, чтение из файла не повлияет на результаты считывания из этого же файла).
Figure 00000001
в зависимости от вынесенного решения передачи выбранных запросов:
Figure 00000004
средству кэширования 140, в случае отрицательного решения,
Figure 00000004
файловой системе 170 для выполнения выбранного запроса, в случае положительного решения.
При этом средство управления доступом 160 выбирает из базы данных запросов 150 запросы и параметры выбранных запросов, которым соответствуют:
Figure 00000001
приоритеты выполнения запросов, меньшие приоритета выполнения запроса, переданного ранее на выполнение;
Figure 00000001
приоритеты выполнения запросов, которые соответствуют также запросам из базы данных запросов 150, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее на выполнение.
Например, из базы данных запросов 150 может выбираться:
Figure 00000001
запрос с самым высоким приоритетом запроса среди всех запросов, хранящихся в базе данных запросов 150;
Figure 00000001
запросы с одинаковыми приоритетами запроса, при условии, что количество таких запросов выше установленного предела;
Figure 00000001
запрос с установленным приоритетом запроса (например, 0x00000000 или 0xFFFFFFFF).
При этом выбранные данные могут:
Figure 00000001
удаляться из базы данных запросов 150,
Figure 00000001
приоритетам выполнения запросов, выбранных из базы данных запросов 150, выставляться самый низкий из возможных приоритетов (например, 0x00000000).
В одном из вариантов реализации средство управления доступом 160 после выборки запроса из базы данных запросов 150 удаляет выбранный запрос из базы данных запросов.
В одном из вариантов реализации средства управления доступом 160 параметры запроса и приоритет выполнения запроса запоминаются для участия в последующем выборе запросов из базы данных запросов 150.
При этом средство управления доступом 160 выносит:
Figure 00000001
отрицательное решение о выполнении запросов, выбранных из базы данных запросов 150, в случае, когда каждый параметр выбранных запросов равен одному из параметров запроса, переданного ранее файловой системе 170 на выполнение.
Figure 00000001
положительное решение о выполнении запросов, выбранных из базы данных запросов 150, в случае, когда ни один параметр выбранных запросов не равен ни одному параметру запроса, переданного ранее файловой системе 170 на выполнение.
При этом в случае, когда запрос, выбранный из базы данных запросов 150, влияет на работу запроса, переданного ранее на выполнение файловой системе 170, но так, что при этом результат этого запроса не будет в последствии использован, запрос, выбранный из базы данных запросов, может быть выполнен. Например, в случае, когда во время выполнения запроса на считывания данных из файла антивирусным приложением для проверки файла на вредоносность приходит запрос от приложения (например, «Windows Explorer») на удаление проверяемого файла, такой запрос может быть выполнен, и файл будет удален еще до того, как антивирусное приложение закончит проверку файла на вредоносность, поскольку результат операции чтения из указанного файла уже ни на что не повлияет, поскольку файла в файловой системе 170 уже не будет существовать.
В другом варианте исполнения средство управления доступом 160 выбирает из базы данных запросов 150 запросы по критериям:
Figure 00000001
приоритет выполнения выбираемого запроса выше приоритета выполнения запроса переданного ранее средством управления доступом 160 на выполнение файловой системе 170;
Figure 00000001
количество запросов, хранящихся в базе данных запросов 150 и обладающих приоритетом выполнения запроса равным приоритету выполнения выбираемого запроса, выше количества запросов, хранящихся в базе данных запросов 150 и обладающих приоритетом выполнения запроса равным приоритету выполнения запроса, переданного ранее средством управления доступом 160 на выполнение файловой системе 170.
Рассмотрим работу системы выполнения запросов процессов операционной системы к файловой системе на примере работы файлового архиватора, представляющего собой программу для сжатия данных из файлов, в операционной системе, проверяемой антивирусным приложением.
Пользователь с помощью файлового архиватора собирается создать архив файлов из каталога «c:\documents», а сами файлы после успешной архивации удалить. Одновременно с архивацией происходит запущенная по расписанию проверка указанного каталога антивирусным приложением.
Процесс файлового архиватора, отвечающий за архивацию файла, представляющий собой процесс клиента 110, обращается к файловой системе 170 с запросом на чтение файла «c:\documents\document001.txt»:
Figure 00000008
и с последующим запросом на удаление файла c:\documents\docnment001.txt:
Figure 00000009
Одновременно с этим процесс антивирусного приложения, отвечающего за поиск вредоносных приложений, представляющий собой процесс средства проверки 120, обращается к файловой системе 170 с запросом на чтение данных из файла «c:\documents\document001.txt», для последующей проверки на вредоносность:
Figure 00000010
Средство перехвата запросов 130 перехватывает запрос на чтение данных из файла от процесса средства проверки 120 к файловой системе 170 и передает его средству кэширования 140.
Средство кэширования 140 выделяет параметры запроса из полученного запроса на чтение данных из файла, а именно:
Figure 00000001
тип операции над файлом: «чтение»,
Figure 00000001
идентификатор файла: «c:\documents\document001.txt»,
Figure 00000001
параметры операции:
Figure 00000004
позиция в файле, с которого необходимо считать данные: 0x0000FFFF,
Figure 00000004
объем считываемых данных: 0x00001000.
Так как запрос является высокоприоритетным, поскольку был получен от процесса средства проверки 120, то приоритет выполнения указанного запроса устанавливается максимальным: 0xFFFFFFFF. Кроме того, в базе данных запросов 150 производится поиск запросов с аналогичными параметрами запросов для того, чтобы можно было объединить найденные запросы в единый набор блоков данных запросов, которой будет присвоен максимальный найденный приоритет, т.е. в данном случае 0xFFFFFFFF. Таким образом, если в базе данных запросов 150 существовал еще один запрос с такими же параметрами, как у полученного от процесса средства проверки 120 запроса, но полученного от процесса клиента 110 (например, приложения «Notepad») и обладающего более низким приоритетом выполнения запроса, равного 0x00000010, то приоритет выполнения указанного запроса будет поднят до 0xFFFFFFFF и запрос будет передан на выполнение файловой системе 170 одновременно с запросом, полученным от процесса средства проверки 120. После того как параметры запроса и приоритет выполнения запроса, полученного процесса средства проверки 120, были определены, они вместе с запросом, объединенные в блок данных запроса, заносятся в базу данных запросов 150, хранящую блоки данных запросов, где каждый блок данных запроса содержит сам запрос, его параметры запроса и приоритет выполнения запроса.
Средство перехвата запросов 130 перехватывает запросы на чтение данных из файла и на удаление файла от процесса клиента 110, представляющего собой файловый архиватор, к файловой системе 170 и передает их средству кэширования 140.
Средство кэширования 140 выделяет параметры из полученных запросов чтения данных из файла и удаления файла, а именно:
Figure 00000011
для запроса чтения данных из файла:
Figure 00000001
тип операции над файлом: «чтение»,
Figure 00000001
идентификатор файла: «c:\documents\document001.txt»,
Figure 00000001
параметры операции:
Figure 00000012
позиция в файле, с которого необходимо считать данные: 0x00000000,
Figure 00000012
объем считываемых данных:<размер файла>.
Figure 00000011
для запроса удаления файла:
Figure 00000001
тип операции над файлом: удаление,
Figure 00000001
идентификатор файла: «c:\documents\document001.txt».
После чего средство кэширования 140 производит поиск в базе данных запросов 150 запросов, у которых те же параметры, что и у полученных запросов (тип операции над файлом, идентификатор файла и т.д.). В результате поиска в базе данных запросов 150 был найден запрос от приложения «Notepad» на чтение содержимого файла «c:\documents\document001.txt». После успешного поиска средство кэширования 140 определяет приоритет выполнения запроса чтения из файла «c:\documents\document001.txt». Поскольку в базе данных запросов 150 был найден еще один запрос на чтение, то полученный запрос на чтение получает приоритет выполнения запроса на единицу ниже приоритета выполнения запроса на чтение файла «c:\documents\document001.txt» от «Notepad» (приоритеты выполнения запросов Pread#1=217 и Pread#2=216 соответственно). Аналогичные действия выполняются для запроса на удаление файла «c:\documents\document001.txt»: осуществляется поиск запроса с аналогичными параметрами запроса в базе данных запросов 150. Поскольку в базе данных запросов 150 не было найдено ни одного запроса на удаление файла «c:\documents\document001.txt», то упомянутый запрос получает самый низкий приоритет на выполнения среди всех запросов, хранящихся в базе данных запросов 150 (приоритет выполнения запроса Pdelete#1=7). После того как средством кэширования 140 были получены приоритеты выполнения запроса, полученные запросы и их приоритеты на выполнение заносятся средством кэширования 140 в базу данных запросов 150.
Средство управления доступом 160 осуществляет выборку из базы данных запросов 150 блок данных запроса, содержащей сам запрос, параметры запроса и приоритет выполнения запроса, в которой приоритет выполнения запроса является наивысшим среди всех приоритетов выполнения запросов, хранящихся в базе данных запросов 150. Таким приоритетом выполнения запроса является приоритет выполнения запроса, равный 0xFFFFFFFF, соответствующий запросу, полученному от антивирусного приложения, представляющего собой процесс средства проверки 120. Запрос отправляется на выполнение файловой системе 170, а параметры запроса и приоритет выполнения запроса запоминаются для участия в последующем выборе запросов из базы данных запросов 150.
Затем средство управления доступом 160 осуществляет выборку из базы данных запросов 150 очередного блока данных запроса. С учетом предыдущего запроса, отправленного на выполнение файловой системе 170, ими оказываются два запроса на чтение файла «c:\documents\document001.txt», полученные от процесса антивирусного приложения и процесса приложения «Notepad». Средство управления доступом 160 проверяет, возможно ли выполнить указанные запросы. С этой целью оно проверяет, не выполняется ли в текущий момент файловой системой 170 над файлом «c:\documents\document001.txt» запрос с более высоким приоритетом выполнения. Оказывается, что запрос от антивирусного приложения, представляющего собой процесс средства проверки 120, все еще выполняется файловой системой 170. В связи с этим средство управления доступом 160 проверяет тип операции запроса у запросов, выбранных из базы данных запросов 150 (запрос, полученный от антивирусного приложения, и запрос, полученный от приложения «Notepad»), и у выполняемого в текущий момент высокоприоритетного запроса. Поскольку в обоих случаях это операция чтения из файла, а значит она никак не повлияет на результат выполняемого в текущий момент высокоприоритетного запроса, то выносится положительное решение на выполнение файловой системой 170 запросов, выбранных из базы данных запросов 150, после чего блоки данных запросов, содержащие указанные запросы удаляются из базы данных запросов 150, а сами запросы передаются файловой системе 170 на выполнение.
Следующий блок данных запроса, выбранная из базы данных запросов 150 средством управления доступом 160, содержит запрос от файлового архиватора, представляющий собой процесс клиента 110, на удаление файла «c:\documents\document001.txt». Средство управления доступом 160 проверяет, возможно ли выполнить указанный запрос. С этой целью оно проверяет, не выполняется ли в текущий момент файловой системой 170 над файлом «c:\documents\document001.txt» запрос с более высоким приоритетом выполнения. Поскольку оказывается, что запрос от антивирусного приложения, представляющего собой процесс средства проверки 120, все еще выполняется файловой системой, а значит операция удаления файла «c:\docnments\docnment001.txt» может помешать его выполнению, то выносится отрицательное решение на выполнение файловой системой 170 запроса, полученного от антивирусного приложения 120, после чего сам запрос передается средству кэширования 140 для повторной обработки, т.е. выделения параметров запроса, определения приоритета выполнения запроса и занесения полученных данных в базу данных запросов 150.
Таким образом:
Figure 00000001
процессы клиентов 110, передающие запросы файловой системе 170 никак не влияют на работоспособность запросов, передаваемых процессами средств проверки 120,
Figure 00000001
процессы клиентов 110, передающие запросы файловой системе 170 могут объединяться в наборы блоков данных запросов, в случае одинаковых параметров запросов, и передаваться на выполнение файловой системе 170 одновременно.
Фиг. 2 представляет пример структурной схемы способа выполнения запросов процессов операционной системы к файловой системе.
Структурная схема способа выполнения запросов процессов операционной системы к файловой системе состоит из этапа 201, на котором перехватывают запросы от процесса клиента 110 или процесса средства проверки 120 к файловой системе 170; этапа 202, на котором выделяют из перехваченных запросов параметры запросов; этапа 203, на котором определяют приоритеты выполнения запросов; этапа 204, на котором добавляют данные, включающие в себя сам запрос, параметры запроса и приоритет выполнения запроса, в базу данных запросов 150; этапа 205, на котором выбирают запросы из базы данных запросов 150; этапа 206, на котором выносят решение о выполнении выбранных запросов; этапа 207, на котором передают запросы средству кэширования 140; этапа 208, на котором передают запросы файловой системе 170; этапа 209, на котором выполняют запросы.
На этапе 201 с помощью средства перехвата запросов 130 перехватывают запросы от процесса клиента 110 или процесса средства проверки 120 к файловой системе 170.
В качестве средства перехвата запросов, передаваемых процессом клиента 110 или процессом средства проверки 120 файловой системе 170, может выступать специально разработанный для этой цели драйвер, работа которого заключается в перенаправлении канала передачи запросов (например, изменения адреса источника, принимающего запросы) с файловой системы 170 на себя. Таким образом, запрос, передаваемый процессом 110 или 120, получается драйвером, а не файловой системой 170.
На этапе 202 с помощью средства кэширования 140 выделяют из перехваченных запросов параметры запросов.
При этом параметры запроса представляют собой наборы данных, определяющих функциональность запроса, исполняемого файловой системой 170.
При этом в качестве параметров запроса могут выступать:
Figure 00000001
идентификатор процесса, передающего запрос на выполнение файловой системе 170, например, описатель процесса (англ. process handle) глобальный уникальный идентификатор процесса (GUID),
Figure 00000001
тип запроса, характеризующий какие операции над файлом должны быть выполнены (например, удаление или создание файла, чтение данных из файла или запись данных в файл и т.д.),
Figure 00000001
идентификатор файла (например, полный путь к файлу, глобальный уникальный идентификатор файла (GUID), описатель файла (англ. file handle) и т.д.),
Figure 00000001
атрибуты файла,
Figure 00000001
параметры данных, записываемых в файл или считываемых из файла (такие как указатель на данные в памяти, объем данных и т.д.),
Figure 00000001
политики безопасности работы с файлом.
Например, из запроса на создание файла, переданного файловой системе 170 процессом приложения «MicrosoA Word», представляющего собой вызов WinAPI-функций
Figure 00000013
будут выделены следующие параметры запроса:
Figure 00000001
идентификатор процесса: Microsoft Word (PID=0x00006020),
Figure 00000001
идентификатор файла: «c:\text.docx»,
Figure 00000001
тип операции: «создание файла»,
Figure 00000001
атрибуты файла: FILE_ATTPJBUTE_NORMAL,
Figure 00000001
политики безопасности:
Figure 00000014
разрешена только операция записи для процесса Microsoft Word (PID=0x00006020),
Figure 00000014
для всех остальных процессов операционной системы запрещены любые операции с указанным файлом.
На этапе 203 определяют приоритеты выполнения запросов. При этом приоритет выполнения запроса может быть:
Figure 00000001
равен приоритету выполнения запроса, хранящегося в базе данных запросов 150, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов 150 и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному на этапе 202 параметру;
Figure 00000001
равен максимально возможному приоритету выполнения запроса, в случае, когда запрос, перехваченный на этапе 201, был перехвачен от процесса средства проверки 120;
Figure 00000001
меньше приоритета выполнения запроса, хранящегося в базе данных запросов 150, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов 150 и у которого ни один параметр запроса не равен ни одному выделенному на этапе 202 параметру.
На этапе 204 с помощью средства кэширования 140 добавляют данные, включающие в себя сам запрос, параметры запроса и приоритет выполнения запроса, в базу данных запросов 150.
Перед добавлением в базу данных запросов 150 запросы, перехваченные на этапе 201, параметры запросов, выделенные на этапе 202, и приоритеты выполнения запросов, вычисленные на этапе 203, могут быть объединены в блоки данных запросов, которые и будут храниться в базе данных запросов 150 в виде набора блоков данных запросов, где каждый блок данных запроса включает в себя один запрос, параметры этого запроса и приоритет выполнения этого запроса. Кроме того, блоки данных запросов, включающие в себя одинаковые приоритеты выполнения запроса, также могут быть объединены в наборы блоков данных запросов, включающие в себя приоритет выполнения запросов и блоки данных запросов, в свою очередь включающие в себя запросы и параметры запросов.
На этапе 205 с помощью средства управления доступом 160 выбирают запросы из базы данных запросов 150.
При этом выбирают из базы данных запросов 150 запросы и параметры выбранных запросов, которым соответствуют:
Figure 00000001
приоритеты выполнения запросов, меньшие приоритета выполнения запроса, переданного ранее на выполнение;
Figure 00000001
приоритеты выполнения запросов, которые соответствуют также запросам из базы данных запросов 150, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее на выполнение.
Например, из базы данных запросов 150 может выбираться:
Figure 00000001
запрос с самым высоким приоритетом запроса среди всех запросов, хранящихся в базе данных запросов 150;
Figure 00000001
запросы с одинаковыми приоритетами запроса, при условии, что количество таких запросов выше установленного предела;
Figure 00000001
запрос с установленным приоритетом запроса (например, 0x00000000 или 0xFFFFFFFF).
При этом выбранные данные могут:
Figure 00000001
удаляться из базы данных запросов 150,
Figure 00000001
приоритетам выполнения запросов, выбранных из базы данных запросов 150, выставляться самый низкий из возможных приоритетов (например, 0x00000000).
В другом варианте исполнения этапа 205 средство управления доступом 160 выбирает из базы данных запросов 150 запросы по критериям:
Figure 00000001
приоритет выполнения выбираемого запроса выше приоритета выполнения запроса переданного ранее средством управления доступом 160 на выполнение файловой системе 170;
Figure 00000001
количество запросов, хранящихся в базе данных запросов 150 и обладающих приоритетом выполнения запроса равным приоритету выполнения выбираемого запроса, выше количества запросов, хранящихся в базе данных запросов 150 и обладающих приоритетом выполнения запроса равным приоритету выполнения запроса, переданного ранее средством управления доступом 160 на выполнение файловой системе 170.
На этапе 206 с помощью средства управления доступом 160 выносят решение о выполнении выбранных запросов.
При этом отрицательное решение выносится в случае, когда выполнение запроса повлияет на результаты выполнения запросов, переданных на выполнение файловой системе 170 ранее и выполняемых на момент начала выполнения запроса, по которому выносилось упомянутое решение (например, запись в файл может повлиять на результаты считывания из файла, происходящие одновременно с записью в этот же файл). Например, отрицательное решение о выполнении запросов, выбранных из базы данных запросов 150, выносят в случае, когда каждый параметр выбранных на этапе 205 запросов равен одному из параметров запроса, переданного ранее.
При этом положительное решение выносится в случае, когда выполнение запроса не повлияет на результаты выполнения запросов, переданных на выполнение файловой системе 170 ранее и выполняемых на момент начала выполнения запроса, по которому выносилось упомянутое решение (например, чтение из файла не повлияет на результаты считывания из этого же файла). Например, положительное решение о выполнении запросов, выбранных из базы данных запросов 150, выносят в случае, когда ни один параметр выбранных на этапе 205 запросов не равен ни одному параметру запроса, переданного ранее.
На этапе 207 с помощью средства управления доступом 160 в случае вынесения отрицательного решения о выполнении запросов на этапе 206 передают запросы средству кэширования 140.
На этапе 208 с помощью средства управления доступом 160 в случае вынесения положительного решения о выполнении запросов на этапе 206 передают запросы файловой системе 170.
На этапе 209 с помощью файловой системы 170 выполняют запросы.
Фиг. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.

Claims (44)

1. Система выполнения запросов процессов операционной системы (далее - запросы) к файловой системе, где запросы представляют собой вызовы API-функции, при этом система выполнения запросов содержит:
а) средство перехвата запросов, предназначенное для:
Figure 00000015
перехвата по меньшей мере двух запросов к файловой системе на выполнение по меньшей мере одного действия по меньшей мере с одним файлом;
Figure 00000015
и передачи перехваченных запросов средству кэширования;
б) упомянутое средство кэширования, предназначенное для:
Figure 00000015
выделения по меньшей мере одного параметра запроса для каждого полученного запроса, при этом параметр запроса представляет собой по меньшей мере один параметр по меньшей мере одной API-функции, составляющей запрос;
Figure 00000015
определения приоритета выполнения каждого полученного запроса, где приоритет выполнения запроса:
Figure 00000016
равен приоритету выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов, и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного средством кэширования запроса;
Figure 00000016
меньше приоритета выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов, и у которого ни один параметр запроса не равен ни одному выделенному параметру полученного средством кэширования запроса;
при этом приоритет выполнения запроса характеризует вероятность передачи указанного запроса средством управления доступом файловой системе на выполнение;
Figure 00000015
и добавления в базу данных запросов для каждого полученного запроса:
Figure 00000016
непосредственно самого запроса,
Figure 00000016
по меньшей мере одного выделенного параметра запроса,
Figure 00000016
определенного приоритета выполнения запроса;
в) базу данных запросов, предназначенную для хранения:
Figure 00000015
по меньшей мере одного запроса,
Figure 00000015
по меньшей мере одного параметра запроса,
Figure 00000015
приоритета выполнения запроса файловой системой;
г) упомянутое средство управления доступом, предназначенное для:
Figure 00000015
выборки из базы данных запросов по меньшей мере одного запроса, имеющего приоритет выполнения запроса выше критерия выбора запроса, вычисляемого на основании по меньшей мере одного параметра запроса и приоритета выполнения запроса по меньшей мере одного запроса, выбранного из базы данных запросов ранее и переданного файловой системе для выполнения, и равен по меньшей мере:
Figure 00000016
приоритету выполнения запроса, переданного ранее средством управления доступом на выполнение;
Figure 00000016
приоритету выполнения запроса, который соответствует также по меньшей мере еще одному запросу из базы данных запросов, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее средством управления доступом на выполнение;
Figure 00000015
объединения выбранного запроса по меньшей мере с одним запросом, выбранным ранее и имеющим аналогичные параметры, в единый набор блоков данных запросов, которому будет присвоен максимальный найденный из этих запросов приоритет, для передачи на выполнение файловой системе одновременно с более высоким приоритетным запросом;
Figure 00000015
и передачи объединенного запроса файловой системе для выполнения выбранного запроса.
2. Система по п. 1, в которой средство управления доступом после выборки запроса из базы данных запросов удаляет выбранный запрос из базы данных запросов.
3. Система по п. 1, в которой средство управления доступом передает запрос, выбранный из базы данных запросов, средству кэширования для повторного выделения по меньшей мере одного параметра запроса и определения приоритета выполнения запроса на основании данных из базы данных запросов и последующего добавления непосредственно самого запроса, по меньшей мере одного выделенного параметра запроса и определенного приоритета выполнения запроса в базу данных запросов.
4. Способ выполнения запросов процессов операционной системы (далее - запросы) к файловой системе, который содержит этапы, которые реализуются с помощью средств из системы по п. 1 и на которых:
а) перехватывают по меньшей мере два запроса к файловой системе на выполнение по меньшей мере одного действия по меньшей мере с одним файлом;
б) выделяют по меньшей мере один параметр запроса для каждого перехваченного запроса, при этом параметр запроса представляет собой по меньшей мере один параметр по меньшей мере одной API-функции, составляющей запрос;
в) определяют приоритет выполнения каждого перехваченного запроса, где приоритет выполнения запроса:
Figure 00000015
равен приоритету выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запроса соответствует запросу, который также хранится в базе данных запросов и у которого по меньшей мере один параметр запроса равен по меньшей мере одному выделенному параметру полученного средством кэширования запроса;
Figure 00000015
меньше приоритета выполнения запроса, хранящегося в базе данных запросов, в случае, когда указанный приоритет выполнения запросов соответствует запросу, который также хранится в базе данных запросов и у которого ни один параметр запроса не равен ни одному выделенному параметру полученного средством кэширования запроса;
при этом приоритет выполнения запроса характеризует вероятность передачи указанного запроса средством управления доступом файловой системе на выполнение;
г) добавляют в базу данных запросов для каждого перехваченного запроса:
Figure 00000015
непосредственно сам запрос,
Figure 00000015
по меньшей мере один выделенный на этапе б) параметр запроса,
Figure 00000015
определенный на этапе в) приоритет выполнения запроса;
д) выбирают из базы данных запросов по меньшей мере один запрос, имеющий приоритет выполнения запроса выше критерия выбора запроса, вычисляемого на основании по меньшей мере одного параметра запроса и приоритета выполнения запроса по меньшей мере одного запроса, выбранного из базы данных запросов ранее и переданного файловой системе для выполнения, и равен по меньшей мере:
Figure 00000015
приоритету выполнения запроса, переданного ранее средством управления доступом на выполнение;
Figure 00000015
приоритету выполнения запроса, который соответствует также по меньшей мере еще одному запросу из базы данных запросов, при этом количество таких запросов больше количества запросов, которым соответствует приоритет выполнения запроса, переданного ранее средством управления доступом на выполнение;
е) объединяют выбранный запрос по меньшей мере с одним запросом, выбранным ранее и имеющим аналогичные параметры, в единый набор блоков данных запросов, которому будет присвоен максимальный найденный из этих запросов приоритет, для передачи на выполнение файловой системе одновременно с более высоким приоритетным запросом;
ж) выполняют полученный на этапе е) запрос.
5. Способ по п. 4, в котором после выборки запроса из базы данных запросов удаляют выбранный запрос из базы данных запросов.
6. Способ по п. 4, в котором передают запрос, выбранный из базы данных запросов, средству кэширования для повторного выделения по меньшей мере одного параметра запроса и определения приоритета выполнения запроса на основании данных из базы данных запросов и последующего добавления непосредственно самого запроса, по меньшей мере одного выделенного параметра запроса и определенного приоритета выполнения запроса в базу данных запросов.
RU2015154380A 2015-12-18 2015-12-18 Система и способ выполнения запросов процессов операционной системы к файловой системе RU2610228C1 (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2015154380A RU2610228C1 (ru) 2015-12-18 2015-12-18 Система и способ выполнения запросов процессов операционной системы к файловой системе
US15/040,055 US10372900B2 (en) 2015-12-18 2016-02-10 System and method for executing calls from OS process to file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015154380A RU2610228C1 (ru) 2015-12-18 2015-12-18 Система и способ выполнения запросов процессов операционной системы к файловой системе

Publications (1)

Publication Number Publication Date
RU2610228C1 true RU2610228C1 (ru) 2017-02-08

Family

ID=58457787

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015154380A RU2610228C1 (ru) 2015-12-18 2015-12-18 Система и способ выполнения запросов процессов операционной системы к файловой системе

Country Status (2)

Country Link
US (1) US10372900B2 (ru)
RU (1) RU2610228C1 (ru)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757290B2 (en) * 2006-01-30 2010-07-13 Microsoft Corporation Bypassing software services to detect malware
US7882561B2 (en) * 2005-01-31 2011-02-01 Microsoft Corporation System and method of caching decisions on when to scan for malware
RU2468418C2 (ru) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Агенты защиты и привилегированные режимы
RU2551820C2 (ru) * 2009-07-10 2015-05-27 Ф-Секьюэ Корпорейшен Способ и устройство для проверки файловой системы на наличие вирусов

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7865485B2 (en) * 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
GB0418066D0 (en) * 2004-08-13 2004-09-15 Ibm A prioritization system
US7555621B1 (en) * 2006-08-01 2009-06-30 Kaspersky Lab, Zao Disk access antiblocking system and method
US20160210174A1 (en) * 2015-01-15 2016-07-21 Microsoft Corporation Hybrid Scheduler and Power Manager

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882561B2 (en) * 2005-01-31 2011-02-01 Microsoft Corporation System and method of caching decisions on when to scan for malware
US8161557B2 (en) * 2005-01-31 2012-04-17 Microsoft Corporation System and method of caching decisions on when to scan for malware
US7757290B2 (en) * 2006-01-30 2010-07-13 Microsoft Corporation Bypassing software services to detect malware
RU2468418C2 (ru) * 2007-01-25 2012-11-27 Майкрософт Корпорейшн Агенты защиты и привилегированные режимы
RU2551820C2 (ru) * 2009-07-10 2015-05-27 Ф-Секьюэ Корпорейшен Способ и устройство для проверки файловой системы на наличие вирусов

Also Published As

Publication number Publication date
US10372900B2 (en) 2019-08-06
US20170177859A1 (en) 2017-06-22

Similar Documents

Publication Publication Date Title
US11611586B2 (en) Systems and methods for detecting a suspicious process in an operating system environment using a file honeypots
EP3107024B1 (en) System and method of restoring modified data
CN106557696B (zh) 用于检测恶意数据加密程序的系统和方法
US10509905B2 (en) Ransomware mitigation system
RU2454714C1 (ru) Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов
US7966643B2 (en) Method and system for securing a remote file system
RU2580030C2 (ru) Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
US9418232B1 (en) Providing data loss prevention for copying data to unauthorized media
KR20060051383A (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
US20180234234A1 (en) System for describing and tracking the creation and evolution of digital files
RU2701842C1 (ru) Способ формирования запроса информации о файле для осуществления антивирусной проверки и система для реализации способа (варианты)
RU2606559C1 (ru) Система и способ оптимизации антивирусной проверки файлов
RU2634175C2 (ru) Способ выполнения антивирусных проверок
US11042507B2 (en) System and method of deletion of files and counteracting their restoration
US20180288099A1 (en) Secure software defined storage
WO2020257428A1 (en) Dynamically controlling access to linked content in electronic communications
US20130268552A1 (en) Brokered Exchange of Private Data
CN109948335B (zh) 用于检测计算机系统中的恶意活动的系统和方法
RU2622630C2 (ru) Система и способ восстановления модифицированных данных
RU2587424C1 (ru) Способ контроля приложений
RU2571380C2 (ru) Система и способ для изоляции ресурсов посредством использования ресурсных менеджеров
WO2023124041A1 (zh) 一种勒索病毒检测方法以及相关系统
RU2610228C1 (ru) Система и способ выполнения запросов процессов операционной системы к файловой системе
US11762984B1 (en) Inbound link handling
EP3674876B1 (en) System and method of deletion of files and counteracting their restoration