next up previous
Next: Размещение контроля доступа нас Up: Методы Интегрированного Обнаружения и Previous: Реализация Сканера Злонамеренного Кода

Трудности с выполняемым кодом на программном уровне

Принимая во внимание то, что предыдущий способ предупреждения вирусов хорош для кода, выполняемого непосредственно в операционной системе, программный код тоже не подходит под эту модель. В то-же время использование определенных правил on-access-сканера в рамках GFAC, выполненного в операционной системе, защищает против программных вирусов, но это неэффективно. Сканирование из сокетов необработанных данных имеет недостаток, являющийся более трудной проблемой для сканера, которая проявляется при парсинге целого файла скорее, чем при сканировании строк байтов. Проблема обоих методов в том, что сканер не находит вирусы, если проверяемый код зашифрован.



Вот вам пример. Microsoft Word для документов Windows, версии 7 и старше, использует разновидность BASIC, называемую Visual Basic for Applications (VBA). Все объекты, хранимые в этом типе файлов, имеют каталогоподобную структуру, включая текст и выполняемый код (см. рисунок 2). В нашем примере непосредственно сам текст сохранен в объекте с именем "WordDocument", а вирус содержится в "каталоге" \Macros\VBA\, в объекте "groove". Остальные объекты содержат данные, необходимые для использования в служебных целях в Windows и Word.

Если пользователь пишет часть текста в файле, то он пишет только в объекте WordDocument и в этом случае нет смысла проверять файл при открытии в следующий раз, так как код, содержащийся в каталоге \Macros\VBA\, не претерпевает изменений. Однако, если файл управляется системой GFAC, обрабатывающей файлы при контроле как единые объекты, то любой доступ для записи текста в файл приведет к ненужной перепроверке при его открытии в следующий раз.

Если мы попытаемся проверить этот файл на уровне сокетов, то у нес не будет возможности проверить файл в его отдельных объектах. Опыты с IBM AntiVirus показали, что менее надёжно сканирование файла как потока байт, чем парсинг файла и проверка только уместных объектов в каталоге \Macros\VBA.

Аналогичная проблема с шифрованием. Если, например, объект "groovie" зашифрован, то сканер не сможет его проверить. Однако программа в состоянии его дешифровать, тем самым решив эту и другие проблемы защиты, существующие на программном уровне.


next up previous
Next: Размещение контроля доступа нас Up: Методы Интегрированного Обнаружения и Previous: Реализация Сканера Злонамеренного Кода