1 ОСНОВНЫЕ ОПРЕДЕЛЕНИЯ
1.1 Вирусы
Компьютерные вирусы — это небольшие исполняемые или интерпре- тируемые программы, которые имеют свойства распространяться и само- воспроизводиться в компьютерной системе. Основной задачей вирусов яв- ляется изменение или уничтожение ПО или данных, хранящихся на ком- пьютере. Компьютерные вирусы могут модифицироваться или видоизме- няться [1].
Вредоносное программное обеспечение и, в частности, вирусы пред- ставляют достаточно серьезную угрозу при хранении на ЭВМ конфиден- циальной информации. Недооценка данной угрозы может иметь серьезные последствия для информации. Знание и понимание механизмов действия вирусов, методов и средств борьбы с ними позволяет эффективно проти- водействовать вирусным программам, минимизировать вероятность зара- жения и потерь от их воздействия.
Так как большая часть современного вредоносного ПО обладает спо- собностью к саморазмножению, то их чаще всего относят к компьютер- ным вирусам. Все компьютерные вирусы классифицируются по следую- щим признакам:
по среде обитания;
по способу заражения;
по деструктивным возможностям;
по особенностям алгоритма [1, 2].
Компьютерные вирусы также классифицируются по среде обитания:
файловые вирусы;
макровирусы;
загрузочные вирусы;
скриптовые вирусы;
сетевые вирусы.
Файловые вирусы различными методами внедряются в исполняемые файлы, создают файлы-двойники, свои копии в разных каталогах и ис- пользуют особенности организации файловой системы.
Макровирусы разрабатываются на макроязыках и заражают файлы программ, разработанных на этих же языках.
Загрузочные вирусы записываются на boot-сектор (разгрузочный сек- тор диска) или изменяют ссылку на boot-сектор или в сектор, который содержит системный загрузчик винчестера.
Скриптовые вирусы разрабатываются на скриптовых языках и зара- жают программы, написанные на этих же языках.
Сетевые вирусы распространяются благодаря командам и протоко- лам электронных почт и компьютерных сетей. Данный тип вирусов подраз- деляется на два вида, каждый из которых можно разделить на множество классов:
1. Троянские программы — программы, осуществляющие различные дей- ствия несанкционированные пользователем: сбор информации и ее пе- редачу злоумышленнику, ее разрушение или злонамеренную модифи- кацию, нарушение работоспособности компьютера, использование ре- сурсов компьютера.
2. Сетевые черви — программы, распространяющие свои копии по ло- кальным или глобальным сетям с целью проникновения на удаленные компьютеры, запуска своей копии на удаленном компьютере, дальней- шего распространения на другие компьютеры в сети [3].
Алгоритм работы вирусных программ представлен на рисунке 1.
Рисунок 1 — Алгоритм работы компьютерных вирусов
1.2 Антивирусные программы
Для обнаружения и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаружи- вать и уничтожать компьютерные вирусы. Такие программы называются антивирусными. Практически все антивирусные программы обеспечивают автоматическое восстановление зараженных программ и загрузочных сек- торов [4].
Антивирусные программы разных производителей включают разное количество компонентов, и даже больше: одна и та же компания может выпускать несколько версий антивируса, которые содержат определенный набор модулей и ориентированы на разные сегменты рынка. Например, некоторые антивирусные программы имеют компонент «Родительский кон- троль», который позволяет ограничить доступ несовершеннолетних поль- зователей компьютера к веб-сайтам определенных категорий или настро- ить время их работы в системе, а другие этого не делают. Как правило, современные антивирусные программы имеют следующий набор функци- ональных модулей.
Антивирусный сканер — утилита, выполняющая поиск вредоносных программ в памяти устройства или на диска по расписанию или пользова- тельскому запросу.
Резидентный монитор — компонент, который находится в оператив- ной памяти компьютера. Он выполняет функцию отслеживания в режиме реального времени состояния системы и блокировки каких либо попыток загрузки или запуска вирусных программ на защищаемом компьютере.
Брандмауэр — компонент, выполняющий мониторинг текущего со- единения, включая анализ входящего и исходящего трафика, а также про- веряющий исходный адрес и адрес назначения в каждом передаваемом с компьютера и поступающем на компьютер пакете информации — данные, поступающие из внешней среды на защищенный брандмауэром компьютер без предварительного запроса, отслеживаются и фильтруются. С функци- ональной точки зрения брандмауэр выступает в роли своеобразного филь- тра, который контролирует поток информации, передаваемой между ло- кальным компьютером и Интернетом, защитного барьера между компью- тером и всем остальным информационным пространством.
Веб-антивирус — компонент, предотвращающий доступ пользовате- ля к опасным ресурсам, распространяющим вредоносное ПО, фишинговым и мошенническим сайтам с использованием специальной базы данных ад- ресов или системы рейтингов.
Почтовый антивирус — приложение, выполняющее проверку на без- опасность вложений в сообщения электронной почты и пересылаемых по электронной почте ссылок.
Анти-руткит — модуль, предназначенный для борьбы с руткитами (вредоносными программами, обладающими способностью скрывать свое присутствие в инфицированной системе).
Модуль превентивной защиты — компонент, обеспечивающий це- лостность важных для работоспособности системы данных и предотвра- щающий вредоносные действия программ.
Модуль обновления — компонент, обеспечивающий своевременное об- новление других модулей антивируса и вирусных баз.
Карантин — централизованное защищенное хранилище, в которое помещаются подозрительные (в некоторых случаях — определенно инфи- цированные) файлы и приложения до момента вынесения в их отношении окончательного вердикта.
В зависимости от версий антивирусного ПО и его предназначений, оно может иметь другой функционал [6].
Антивирусные программы также классифицируются на:
сканеры;
программы-детекторы;
программы-доктора;
программы-ревизоры;
программы-сторожа(фильтры);
иммунизаторы(вакцины).
Принцип работы антивирусного сканера состоит в том, что он прове- ряет файлы, оперативную память и загрузочные секторы дисков на нали- чие масок вирусов — выделяющихся частей программного кода вредонос- ной программы. Маски(сигнатуры) изученных вирусов хранятся в анти- вирусной базе данных сканера, и в случае, если встречается программный
код, который совпадает с одной из этих сигнатур, то антивирусный сканер выдаст сообщение об обнаружении соответствующего вируса.
Программы-детекторы обеспечивают поиск и обнаружение вирусов в оперативной памяти, на внешних носителях, и при обнаружении выдают соответствующее сообщение. Различают два вида детекторов:
1. Универсальные детекторы для обнаружения вирусной программы ис- пользуют проверку неизменности файлов с помощью подсчета и срав- нения с эталоном контрольной суммы. Недостатком этого типа детек- торов является невозможность определить причину изменения файла.
2. Специализированные детекторы выполняют поиск известных вирусов по их сигнатуре. Недостаток таких детекторов состоит в том, что они неспособны обнаруживать все известные вирусы.
Программы-доктора не только находят зараженные вирусами фай- лы, но и «лечат» их, т. е. вирусная программа удаляется из файла и файл возвращается в исходное состояние. В начале своей работы фаги ищут ви- русы в оперативной памяти, уничтожая их, и только затем переходят к
«лечению» файлов.
Программы-доктора, как и программы-детекторы имеют свойство быстро устаревать, из-за постоянного появления новых вирусов, поэтому они требуют регулярных обновлений версий.
Программы-ревизоры запоминают исходное состояние программ, ка- талогов и системных областей диска в тот момент, когда компьютер еще не заражен вирусом, после чего периодически или по запросу пользователя сопоставляют текущее и исходное состояния.
Программы-фильтры — это небольшие резидентные программы(т. е. программы которые находятся в оперативной памяти компьютера), пред- назначением который является обнаружение различных подозрительных действий, характерных для вирусов, при работе компьютера.
Вакцины — это резидентные программы, предотвращающие зараже- ние файлов. Вакцины применяют, если отсутствуют программы-доктора,
«лечащие» этот вирус. Вакцинация возможна только от уже известных ви- русных программ. Вакцина модифицирует программу или диск таким об- разом, чтобы это не отражалось на их работе, а самим вирусом данная про- грамма или диск будут восприниматься как зараженные и поэтому попыт-
ки внедрения не будут предприниматься. В настоящее время программы- вакцины имеют ограниченное применение [2].
2 ПРИНЦИПЫ РАБОТЫ АНТИВИРУСНЫХ ПРОГРАММ
2.1 Методы обнаружения вирусных программ
В антивирусных программах выделяют два основных метода обнару- жения вредоносного ПО: сигнатурный и эвристический. Кроме этих дан- ных способов обнаружения вирусов можно выделить поведенческий анализ [3].
Сигнатурный метод анализа. Суть данного метода заключается в обнаружении некоторых характерных черт(сигнатур) каждой вредоносной программы и поиска вредоносных программ с помощью сравнения исход- ного кода файлов с выявленными сигнатурами.
Вирусной сигнатурой считается совокупность черт, это позволяют од- нозначно идентифицировать наличие вредоносной программы в файле или случаи, когда сам файл целиком является вирусом. Совокупность всех из- вестных сигнатур вредоносных программ составляет антивирусную базу.
Вирусные сигнатуры должны соответствовать следующим требова- ниям:
1. Сигнатуру нельзя извлечь из области данных, поскольку содержимое области данных легко изменить. Как только вирус изменит версию и содержимое данных будет изменено, сигнатура станет недействитель- ной.
2. Исходя из предпосылки сохранения уникальности кода объекта, код объекта должен быть как можно короче, чтобы уменьшить временные и пространственные сложности в процессе анализа и повысить эффек- тивность обнаружения.
3. Сигнатура, полученная после детального анализа вирусного кода, долж- на быть достаточно информативной для того, чтобы отличить вирус от других вирусов или обычных программ.
4. Сигнатура вирусной программы не должен совпадать с обычной про- граммой. Например, если выбран двоичный код точки проникновения вируса, неизбежно возникнут ложные срабатывания.