Принципы работы

На главную  Назад  Вперед

Монитор файловой системы SpIDer Guard работает в пользовательском пространстве (user mode), используя для контроля событий файловой системы либо механизм fanotify, предоставляемый ОС, либо специальный модуль ядра Linux (LKM – Linux kernel module), разработанный компанией «Доктор Веб». В настройках рекомендуется использовать автоматический режим (Auto), который позволит компоненту при старте определить и использовать наилучший режим работы, поскольку не все версии ядра Linux поддерживают механизм fanotify, использующийся монитором. Если компонент не может использовать указанный в настройках режим интеграции, он завершается сразу после старта. Если указан автоматический режим, то компонент сначала попытается использовать fanotify, а затем – модуль ядра LKM. В случае если не получится использовать ни один из этих режимов, компонент завершит работу.

Для ряда ОС модуль ядра поставляется совместно с SpIDer Guard уже в скомпилированном виде. В случае если для ОC, в которой используется SpIDer Guard, модуль ядра не поставляется в скомпилированном виде, используйте исходные коды модуля, предоставляемые компанией «Доктор Веб» для сборки и установки модуля ядра вручную (инструкция по сборке приведена в разделе Сборка модуля ядра для SpIDer Guard).

При обнаружении новых или измененных файлов монитор отправляет задание на их проверку компоненту проверки файлов Dr.Web File Checker, который, в свою очередь, инициирует их проверку сканирующим ядром Dr.Web Scanning Engine. Схема работы монитора показана на рисунке ниже.

Рисунок 12. Схема работы компонента

Для определения областей файловой системы, подлежащих наблюдению, монитор файловой системы SpIDer Guard использует два параметра конфигурации:

IncludedPath – содержит список путей, подлежащих мониторингу (область наблюдения).

ExcludedPath – содержит список путей, которые требуется исключить из мониторинга (область исключения).

Таким образом, наблюдению подвергаются только те файлы, пути к которым принадлежат области наблюдения, определяемой списком IncludedPath, но не принадлежат области исключения, определяемой списком ExcludedPath. При этом, если один и тот же путь указан в обоих списках, то параметр IncludedPath имеет приоритет: объекты, расположенные по данному пути, будут находиться под контролем монитора файловой системы SpIDer Guard (подробнее об алгоритме определения принадлежности объекта области наблюдения или исключения см. ниже).

Пример:

Пусть в списках указаны следующие пути в файловой системе:

IncludedPath = /a, /b/c, /d/file1
ExcludedPath = /b, /d/file1, /b/c/file2

Тогда монитор файловой системы SpIDer Guard будет контролировать доступ:

Ко всем файлам в каталоге /a.

Ко всем файлам в каталоге /b/c, за исключением файла file2.

К файлу /d/file1.

Файловые операции с остальными файлами в файловой системе монитор при данных настройках контролировать не будет.

Обратите внимание, что указание пути /b в списке ExcludedPath синтаксически корректно, но не имеет смысла: файлы по данному пути и так не будут находиться под наблюдением, потому что этот путь не входит в область наблюдения, задаваемую списком IncludedPath.

Использование исключений (включение объектов в список ExcludedPath) бывает необходимо, например, в случае если некоторые файлы часто изменяются, что порождает их постоянную перепроверку и тем самым нагружает систему. Если точно известно, что частое изменение файлов в некотором каталоге не является следствием вредоносной активности, а следствием работы некоторой доверенной программы, то можно добавить путь к этому каталогу, или изменяемым файлам в нем, в список исключений. В этом случае монитор файловой системы SpIDer Guard не будет реагировать на изменения этих файлов, даже если они принадлежат области наблюдения. Кроме того, имеется возможность указать и саму программу, работающую с файлами, в списке доверенных программ (параметр конфигурации ExcludedProc), тогда файловые операции, производимые этой программой, также не будут приводить к проверкам файлов, даже если эти файлы находятся в области наблюдения.

Монитор файловой системы SpIDer Guard автоматически распознает моменты монтирования и отмонтирования новых томов файловой системы (например, на накопителях USB-flash и CD/DVD, массивы RAID и т.п.) и корректирует список наблюдаемых областей по мере необходимости.

Определение принадлежности объекта области наблюдения

Для определения, подлежит некоторый объект файловой системы контролю или нет, монитор файловой системы SpIDer Guard, при обнаружении файловой операции, выполняет следующие действия:

1.Получает информацию о процессе, осуществившем операцию с файлом. Если исполняемый путь этого процесса (имя исполняемого файла с полным путем к нему) присутствует в списке ExcludedProc, то измененный объект не подлежит проверке, конец.

2.Иначе монитор получает полный путь к измененному объекту.

3.Полученный путь проверяется на совпадение с элементами списков IncludedPath и ExcludedPath.

4.Если путь совпадает с одним из элементов списка IncludedPath, то объект подлежит проверке, конец.

5.Если путь совпадает с одним из элементов списка ExcludedPath, то объект не подлежит проверке и операция с ним должна быть проигнорирована, конец.

6.Если путь не был найден ни в одном из списков, то он усекается «от конца к началу», т.е. производится подъем на один уровень выше к корню файловой системы.

7.Если полученный путь пуст, то конец, иначе возврат к пункту 3.

Это продолжается до тех пор, пока путь, полученный на очередной итерации, не совпадет с одним из элементов списков IncludedPath или ExcludedPath, либо пока не будет достигнут корень файловой системы.