Файловая система
В конечном итоге, за редкими исключениями, чтобы запуститься, вирусу необходимо сохранить свой код на диске компьютера-жертвы в виде файла — зараженного файла, в случае чистого вируса, либо полностью вредоносной программы, в случаях червей и большинства троянов. Таковы особенности архитектуры ОС Microsoft Windows - поместить вирусный код непосредственно в память компьютера, не затрагивая файловую систему, можно только используя уязвимости в сетевых службах и программах, установленных на компьютере.
Соответственно, основные средства из состава антивирусного комплекса для рабочих станций Windows направлены на предотвращение записи вредоносного кода на диски компьютера, на предотвращение запуска вредоносных программ, а также на проверку хранящихся на дисках (постоянных, сменных, сетевых) файлов - нет ли в них вредоносного кода. Последняя функция нужна для того, чтобы при запуске (или сразу после установки) антивируса удостовериться в отсутствии вирусов на компьютере - функции предотвращения в последствии позволяют сохранить этот status quo.
Как уже отмечалось в классификации антивирусов, средства проверки файловой системы бывают двух видов:
- Сканеры по требованию — запускаются по инициативе пользователя или по расписанию для проверки четко очерченного круга объектов файловой системы
- Сканеры при доступе — проверяют все объекты файловой системы, к которым производится доступ, на чтение/запуск или на создание/запись
Реализация подобных средств может быть различной. Это могут быть независимые модули, либо различные функции одного и того же модуля. Модуль проверки при доступе, который по понятным причинам должен постоянно находиться в памяти компьютера в зависимости от применяемых технологий может быть выполнен в виде приложения, службы или драйвера файловой системы. Эффективность при этом растет в порядке перечисления.
Пример. В текущей версии Антивируса Касперского перехват файловых операций осуществляет драйвер файловой системы, что позволяет обеспечить максимальную надежность и производительность.
Проверка же выполняется антивирусной службой, причем как объектов, перехваченных драйвером, так и объектов указанных пользователем для проверки по требованию/расписанию. Это позволяет минимизировать используемые ресурсы памяти, поскольку все проверки выполняются одним процессом, в памяти хранится только одна копия антивирусной базы.
Кроме того, что на момент установки или запуска антивируса вредоносные программы могут находиться на дисках, они могут находиться также и в памяти компьютера. Соответственно, имеется необходимость в проверке памяти. Особенности архитектуры операционной системы Windows таковы, что отслеживать изменения в памяти на лету попросту невозможно. В связи с этим функции проверки памяти выполняются сканером по требованию.
С точки зрения применяемых технологий обнаружения вирусов, основной упор при проверке объектов памяти и файловой системы делается на сигнатурные методы и эвристический анализ. Это и понятно, ведь таким образом обеспечивается максимальная защита от уже известных вирусов, а также защита от новых, еще не известных. Метод поведенческого анализа и блокирования подозрительных действий применялся в прошлом, но показал себя неэффективным из-за большого числа ложных срабатываний: в большинстве случаев вредоносные программы не выполняют никаких особых команд или действий, не свойственных обычным утилитам или службам. Более того, одна и та же программа в зависимости от условий применения может расцениваться как вредоносная или вполне легальная.
Пример. Входящая в состав Windows XP утилита shutdown.exe может с пользой применяться для выключения компьютера по расписанию. Эта же утилита может использоваться в составе вредоносной программы для принудительной перезагрузки без уведомления пользователя. Например, помещение этой утилиты в автозапуск может надолго воспрепятствовать нормальной работе неискушенного пользователя.
Тем не менее, в некоторых специфических случаях применение поведенческого анализа не только оправдано, но и является более эффективным методом предотвращения запуска новых вирусов, чем эвристический анализ.
Пример. До сих пор во многих версиях BIOS можно встретить опцию защиты от вирусов, которая препятствует записи в критические области дисков - в загрузочные сектора и в сам BIOS. В данном случае ключевым является тот факт, что после непродолжительного периода настройки, необходимости в изменении структуры дисков и перепрошивке BIOS уже нет. В любом случае эти действия являются достаточно редкими и выполнение их без ведома пользователя должно по меньшей мере вызывать подозрения.
Стоит сказать, что современные вирусы крайне редко пытаются записать данные в загрузочные сектора или в BIOS. Эпоха загрузочных вирусов давно прошла. Вследствие этого, антивирусные функции также постепенно исчезают из BIOS.
Если в случае исполняемых файлов, подозрительные операции выделить достаточно сложно в силу очень большого разнообразия этих файлов и решаемых ими задач, то сфера применения макросов в документах Microsoft Office и других офисных пакетов, достаточно ограничена - чаще всего они используются для сокращения времени на выполнение рутинных операций или же для придания дополнительной функциональности документам. В большинстве случаев действие макроса распространяется только на документ, в состав которого он входит, а взаимодействие с другими документами чаще всего ограничивается операциями чтения. Следовательно, активные действия связанные с файловыми операциями или с записью в другие документы, могут вызывать обоснованные подозрения.
Пример. В Антивирусе Касперского для Windows Workstations имеется специальный модуль для защиты от макровирусов, который работает по принципу поведенческого блокиратора. Идея та же, что и в случае с функцией поведенческого анализа в BIOS: макровирусу для успешного размножения или выполнения серьезных деструктивных функций приходится использовать функции работы с внешними файлами, функции работы с макросами и другие функции, нечасто (если не сказать крайне редко) встречающиеся в обычных макросах, применяемых для автоматизации регулярно выполняемых действий.
Соответственно, при обнаружении подозрительных макрокоманд Антивирус Касперского имеет возможность заблокировать их выполнение либо полностью прекратить работу макроса.
Нерассмотренным остался метод анализа изменений (контрольных сумм). Здесь необходимо отметить, что для обнаружения вирусов этот метод в современных условиях уже не годится. Даже в системном каталоге Windows количество файлов может достигать нескольких тысяч. При этом обновления ОС и ряда приложений регулярно приводят к изменениям в составе и версиях хранящихся там файлов. Анализ изменений на дисках в целом - задача еще более трудоемкая и плохо автоматизируемая.
Конечно, опытный специалист на основании данных об изменениях в файловой системе мог бы с большой вероятностью определить признаки заражения неизвестным вирусом. Но количество времени, необходимое на такой анализ, делают его с одной стороны невозможным в сколько-нибудь больших сетях, а с другой стороны нерентабельным в сетях небольшого размера или в единичных случаях - из-за стоимости услуг по привлечению высококвалифицированного специалиста.
Пример. В эпоху классических вирусов под Windows и еще раньше в эпоху вирусов под DOS были широко распространены так называемые программы-ревизоры, которые как раз и выполняли расчет и сравнение контрольных сумм файлов на дисках, а также выполняли простейший анализ зафиксированных изменений. Среди продуктов Лаборатории Касперского такой программой был Kaspersky Inspector. Несколько большей известностью пользовался AdInf производства компании "ДиалогНаука". В настоящее время подобные программы исчезли из линеек продуктов всех ведущих производителей.
Тем не менее, даже если анализ контрольных сумм не позволяет определить факт наличия вируса в системе, он позволяет определить факт отсутствия вирусов в файлах, контрольная сумма которых осталась неизменной. Об использовании метода сравнения контрольных сумм в таком качестве будет рассказано при рассмотрении эксплуатационных характеристик антивирусных продуктов.