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

В этом разделе:

Общие сведения.

Определение областей файловой системы, подлежащих наблюдению.

Режим усиленного мониторинга файлов.

Общие сведения

Монитор файловой системы 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. При работе через системный механизм fanotify монитор может блокировать доступ к файлам (всех типов или только к исполняемым файлам — PE, ELF, скриптам с преамбулой #!), которые еще не проверены, до момента окончания их проверки (см. ниже).

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

Определение областей файловой системы, подлежащих наблюдению

Для оптимизации проверки файловой системы, монитор файловой системы SpIDer Guard контролирует обращение только к тем файлам, которые находятся в областях файловой системы, указанных в конфигурации. Каждая такая область определяется как путь к некоторому каталогу дерева файловой системы и называется защищаемым пространством (protected space). Совокупность всех защищаемых пространств образует в файловой системе единую область наблюдения, контролируемую монитором. Помимо области наблюдения, в настройках компонента можно задать также совокупность каталогов файловой системы, которые требуется исключить из мониторинга (область исключения). Если в настройках компонента не указано ни одного защищаемого пространства, область наблюдения охватывает собой все дерево каталогов файловой системы. Таким образом, наблюдению подвергаются только те файлы, пути к которым принадлежат области наблюдения, но не принадлежат области исключения.

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

Защищаемые пространства, как части области наблюдения с указанными для них параметрами проверки, задаются в настройках компонента как именованные секции, содержащие в своем имени произвольный уникальный идентификатор, присвоенный защищаемому пространству. Каждая секция, описывающая пространство, содержит параметр Path, определяющий путь в файловой системе, хранящий каталоги этого защищаемого пространства (т. е. фрагмент дерева файловой системы, находящийся под наблюдением в рамках данного пространства), а также параметр ExcludedPath, определяющий локальную (т. е. относительно Path) область исключения внутри защищаемого пространства. Обратите внимание, что параметр ExcludedPath может содержать в себе стандартные файловые маски (т. е. содержать символы '*' и '?'). Кроме локальных областей исключения, в настройках может быть задана и глобальная область исключения, при помощи параметра ExcludedPath, указанного вне секций, описывающих защищаемые пространства. Все каталоги, попавшие в эту область, в том числе и каталоги защищаемых пространств, будут исключены из проверки. К каждому защищаемому пространству применяется только глобальная и собственная области исключения: если одно пространство вложено в другое, то к вложенному пространству не применяются настройки исключения, указанные для включающего его защищаемого пространства. Кроме того, в настройках каждого защищаемого пространства имеется логический параметр Enable, определяющий, включено или нет наблюдение за файлами, находящимися в области наблюдения данного пространства. Если этот параметр установлен в значение No, то содержимое данного пространства не контролируется монитором. Кроме того, защищаемое пространство не контролируется монитором, если параметр Path имеет пустое значение.

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

Рассмотрим пример настроек областей наблюдения и исключения. Пусть в настройках компонента заданы следующие параметры:

[LinuxSpider]
ExcludedPath = /directory1/tmp
...
 
[LinuxSpider.Space.space1]
Path = /directory1
ExcludedPath = "*.tmp"
...
 
[LinuxSpider.Space.space2]
Path = /directory1/directory2
...
 
[LinuxSpider.Space.space3]
Path = /directory3
Enable=No
...

Это означает, что под наблюдением находятся файлы, расположенные в каталоге /directory1, и его подкаталогах, за исключением каталога /directory1/tmp. Кроме того, исключаются из наблюдения файлы, чье полное имя соответствует маске /directory1/*.tmp (это не касается вложенной области /directory1/directory2, на которую данная маска не распространяется, не смотря на то, что эта область вложена в защищаемое простраство space1). Файлы, находящиеся в каталоге /directory3, не контролируются.

Режим усиленного мониторинга файлов

SpIDer Guard может использовать три режима мониторинга:

Обычный (установлен по умолчанию) — отслеживаются операции по доступу к файлам (создание, открытие, закрытие и запуск файла). Запрашивается проверка файла, доступ к которому был осуществлен, по результатам проверки к файлу могут быть применены действия по нейтрализации угрозы, если она в нем обнаружена. До окончания проверки доступ к файлу со стороны приложений, запросивших доступ, не ограничивается.

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

Исполняемыми файлами считаются двоичные файлы форматов PE и ELF, а также текстовые файлы скриптов, содержащие преамбулу «#!».

«Параноидальный» режим — при попытке доступа к любому файлу SpIDer Guard блокирует запрошенную операцию доступа до тех пор, пока не станут известны результаты проверки этого файла на наличие угроз.

Dr.Web File Checker в течение определенного времени сохраняет результаты проверки файлов в специальном кэше, поэтому при повторном доступе к тому же файлу, при наличии информации в кэше, повторное сканирование файла не производится, в качестве результата проверки этого файла используется результат, извлеченный из кэша. Несмотря на это, использование «параноидального» режима мониторинга приводит к существенному замедлению работы при доступе к файлам.

Для настройки режима мониторинга измените значение параметра BlockBeforeScan в настройках компонента.

Подробнее о настройке SpIDer Guard и режимах мониторинга файлов см. в разделе Настройка мониторинга файловой системы.