А кофе на клавиатуру тоже вирус пролил?!
автор (мне) неизвестен

Слово "антивирусный" иногда заменяется в тексте на "AV".

  1. Определение вируса
  2. Типы вирусов
  3. Принципы действия антивирусных программ:
    • AV сканеры по запросу (on-demand scanners)
    • AV мониторы (resident scanners)
    • AV дисковые ревизоры (data comparative tools)
    • Дополнительные AV программы (additional AV tools)
  4. Необходимость создания антивирусной защиты

Что такое компьютерный вирус?

Немного странно, но дать точного определения вирусу невозможно в принципе. Во-первых, благодаря их разнообразию, во-вторых - зачастую они отличаются от нормальных программ только тем, что "результаты их работы" обычно, мягко говоря, нежелательны для пользователя, чей компьютер они поразили.

Сами вирусописатели говорят о своих детищах так: "Вирус - независящая от пользователя программа, основной целью которой является самораспространение". Кратко и достаточно точно.

Со своей стороны я попытаюсь сформулировать определение так, чтобы неточностей и допущений было как можно меньше. Вот та формулировка, которой пользуется наш антивирусный отдел «Ангстрем»: Информационный вирус - это способный к саморазмножению программный код, выполнение которого обычно нежелательно для пользователя, на чьём компьютере (или ином устройстве) он выполняется.

Заметьте, я уже не говорю о "компьютерном вирусе", но использую термин "информационный вирус", т.к. в конце XX века вирусы перестали поражать только компьютеры. К числу их потенциальных и даже реальных жертв прибавились сотовые телефоны, коммуникаторы, а также холодильники, микроволновые печи и прочая бытовая техника, подключаемая к Интернет. В теории можно заразить вирусом любое устройство, выполняющее какие-либо инструкции и обменивающееся данными с другими, не обязательно себе подобными. Тем не менее, поскольку свойства компьютерных и других представителей информационных вирусов одинаковы, а также потому, что в другой литературе вы будете встречаться с термином «компьютерный вирус», давайте уровняем эти понятия. Точнее, будем считать компьютерный вирус основным подвидом информационных.

Наличие деструктивных действий вовсе не является обязательным критерием для классификации программного кода как вирусного, а вот саморазмножение - да! Следует также отметить, что одним только процессом саморазмножения вирус способен причинить колоссальный ущерб. Так было, например, с Worm.SQL.Helkern. Как и любая программа, вирус может содержать ошибки, по причине которых (в частности) иногда теряется способность к размножению. Это с трудом тянет на исключение, поэтому не будем заострять внимание на подобных деталях. Ещё один важный момент: копии вируса не всегда точно совпадают друг с другом.

Типы вирусов

Традиционно вирусы классифицируют по среде обитания, тропности к определённым операционным системам, объектам инфицирования. В тоже время, иногда в основу классификации ложится их структура или свойства алгоритма. Принято выделять:

1. Файловые
2. Загрузочные
3. Файлово-загрузочные
4. Макро
5. Скрипт
6. Полиморфные
7. Стелс
8. Самошифрующиеся
9. Резидентные вирусы
10. Черви различных типов
11. Сваленные в одну кучу

1) Файловые (File) вирусы инфицируют выполняемые (aka исполняемые) файлы. В интерпретируемом файле (например, *.JPG) тело вируса также может быть записано, но оно не будет запущено на выполнение и не причинит вреда. Однако нет препятствий для создания модульных вирусных гибридов: когда части вируса хранятся в файлах различных типов, а потом "собираются" непосредственно на ПК жертвы после запуска выполняемого модуля. Последний может не содержать вирус-специфических команд и не обнаруживаться методами эвристики.

2) Загрузочные (Boot) вирусы инфицируют главную загрузочную запись (MBR) и/или загрузочный сектор (BS) носителя информации.

3) Файлово-загрузочные вирусы способны инфицировать как исполняемые файлы, так и MBR/BS.

4) Макро (Macro) вирусы являются по своей природе макросами - программными сценариями, используемыми, например, в офисных приложениях пакета MS Office (MS Word и MS Excel). В случае последних макро-вирусы написаны на языке Visual Basic for Applications (VBA). Они инфицируют шаблоны документов этих программ и все документы, создаваемые с использованием инфицированных шаблонов. Следует отметить, что макро-вирусы могут распространять свои действия за пределы среды приложений, из которых были запущены. Таким образом, возможности макро-вирусов вовсе не исчерпываются порчей документов и порой бывают ничуть не менее разрушительными, чем у файловых.

5) Скрипт (Script) вирусы написаны на каком-либо скрипт-языке программирования. Чаще всего используются Visual Basic Script (VBS) и Java-script, которые широко применяются для создания web-страниц. Примером VBS-вируса может служить Интернет-червь "Peach", использующий для своего распространения файлы формата PDF (Adobe Acrobat). Скрипт не выполняется сам по себе, он передаётся для выполнения системному обработчику. В случае ОС Windows это Windows Scripting Host. Если расположить между скриптом и его обработчиком модуль AV-проверки, то он с высокой вероятностью предотвратит запуск скрипт-вируса (подробнее см. в разделе "Дополнительные типы антивирусных программ"

6) Полиморфные (Polymorphic) вирусы отличаются тем, что до какого-то предела копии одного вируса различаются между собой, и все они не имеют постоянных участков кода. Это усложняет поиск полиморфных вирусов AV-программами, т.к. создание сигнатур (и добавление их в AV-базы) для таких вирусов становится практически невозможным.

7) Стелс (Stealth) вирусы предпринимают ряд действий, позволяющих скрыть своё присутствие в системе (в том числе и во время осуществление антивирусной проверки). Естественно, речь идёт о случаях, когда вирус активируется до запуска AV-программы и перехватывает управление. При загрузке компьютера с заведомо чистого носителя и запуска с него антивирусного сканера, процедура обнаружения стелс-вирусов ничем не отличается от таковой для не-стелс представителей.

8) Самошифрующиеся (Self-encrypted) вирусы осуществляют динамическое шифрование/расшифрование своего тела, что также затрудняет их определение AV-программами.

9) Резидентные (Resident) вирусы находятся в оперативной памяти ПК (полностью, или только оставляя в ней свою часть) до перезагрузки компьютера (в многозадачных ОС - иногда до завершения родительского процесса). Они перехватывают обращения ОС к тем объектам (файлам, секторам) которые могут заразить и внедряют в них свои копии. Макро-вирусы условно можно считать резидентыми.

10) Черви. Этот тип вирусов во многом уникален и, в свою очередь, состоит из нескольких подтипов. В последнее время с ростом сферы коммуникаций, черви стали наиболее актуальной проблемой и давно возглавляют TOP-10 самых вредоносных вирусов. Под словом «вредоносный» здесь понимаются экономические убытки, а не деструктивные свойства, которые порой отсутствуют вовсе.

Первым червём принято считать творение Роберта Таппана Морриса, который инфицировал ещё юную сеть Интернет 2 ноября 1988 года.

За прошедшие годы последователи Роберта породили целых 6 классов (выделяемых по способу распространения), которые в порядке уменьшения частоты встречаемости располагаются следующим образом:

10.1 Почтовые черви. Изначально для рассылки своих копий они использовали установленную на инфицированном компьютере почтовую программу по умолчанию и адресную книгу. Например, MS Outlook + её адресная книга. Для запуска присланной копии требовались действия пользователя: запуск аттачмента на выполнение, либо клик на ссылку в теле письма (ведущую на веб-страницу, HTML код которой был составлен с использованием ошибок в системе безопасности браузера, позволяющих скрыто осуществить передачу/запуск червя). Однако в последнее время производители ПО стали активно сопротивляться этому безобразию, интегрируя в почтовые программы антивирусы и вводя ограничения, делающие несанкционированную отправку писем затруднительной. Ответом вирусописателей стало внедрение в тела червей отдельных модулей, выполняющих прямое соединение с SMTP-сервером, независимо от почтовых программ. Также черви научились использовать уязвимости непосредственно в популярных почтовых программах, или их общих с браузером компонентах (не будем тыкать пальцем в MS Outlook). Черви такого типа запускаются автоматически, как только пользователь откроет HTML письмо. Подкласс почтовых червей самый многочисленный. На его долю по данным «Лаборатории Касперского» приходится более 95%.

10.2 LAN-черви. Распространяются через общие ресурсы локальных сетей. Примером может служить Worm.Win32.Datom (по классификации Е. Касперского). Он является многокомпонентным. Кроме того, он ищет и пытается закрыть запущенные копии брандмауэра ZoneAlarm, что иллюстрирует наличие у некоторых червей функции противодействия защитному ПО.

10.3 P2P-черви. Используют для своего распространения так называемые Peer-to-Peer (P2P) сети. Последние также называют файлообменными. Ярким представителем когорты P2P червей является Worm.P2P.Relmony. Распространяется через общедоступные каталоги пользователей этих сетей, создавая файлы с "привлекательными" (порнографическими) названиями.

10.4 IRC-черви пока обладают наименьшей численностью, однако существующие экземпляры лишний раз доказывают возможность подцепить заразу где угодно. Сервис IRC (Internet Relay Chat - передача текстовых сообщений в реальном времени по сети Интернет) был придуман Джарко Ойкариненом (Jarkko Oikarinen) в год буйства червя Морриса – 1988 и, по идее, должен был стать одной из наиболее защищённых от вирусных угроз технологий коммуникации. Однако система команд IRC-клиентов позволяет на основе их скриптов создавать червей. Представителем для DOS платформы является семикилобайтный малютка IRC-Worm.Kazimas. Из Windows-ориентированных наибольший интерес представляет IRC-Worm.Adrenaline.

10.5 Черви со смешанным механизмом проникновения. За примером далеко ходить не надо – тот же червь Морриса, а из современных – Fizzer, распространяющийся через электронную почту и сеть файлообменную сеть KaZaA.

10.6 Exploit-черви. Есть тип сетевых червей, которые вирусологи выделяют в отдельный класс, но при этом до сих пор не дали ему чёткого названия. Предлагаю исправить ситуацию, приняв термин «Exploit-червь». В этот класс следует отнести тех представителей, которые используют для проникновения на инфицируемый хост исключительно эксплоиты общего характера, непосредственно не связанные с сервисами e-mail, P2P, IRC и т.п. К ним относятся такие черви как IIS-Worm.CodeRed, Worm.SQL.Helkern и Worm.Win32.Lovesan.

Залогом успеха сетевых червей является скорость распространения (подробнее см. статью "Классификация гадов"). Она максимальна у Exploit-червей в силу абсолютной независимости от действий пользователей. Nicholas C. Weaver в статье «Warhol Worms: The Potential for Very Fast Internet Plagues» утверждает, что при использовании специальных методик оптимизации для инфицирования 1 млн. уязвимых хостов понадобиться всего около 8 минут (sic!). Соответственно, в среднем в секунду можно инфицировать более двух тысяч хостов.

11. Существуют программные закладки, позволяющие, к примеру, научить безобидный медиаплеер воровать пароли доступа и передавать их автору. Подобные скрытые функции, которые выполняются втайне от пользователя, стали называть "троянскими конями". Зачастую (но не всегда) основная программа оказывается неработоспособной, если из неё удалить код трояна. Такие объекты не подлежат «лечению», т.к. полезные функции программы служат лишь прикрытием для действий программной закладки. «Троянских коней» традиционно причисляют к вирусам, хотя терминологически это неверно. Большинство из них не способно к саморазмножению и относится к самостоятельному классу вредоносных программ. Однако, большинство антивирусов их находит и предлагает удалить. Такое положение вещей связано с тем, что антивирусные программы со временем стали приспосабливать для поиска не только вирусов, но и другого программного кода, присутствие которого на проверяемом компьютере по разным причинам нежелательно. Под раздачу попали:

11.1 эксплоиты – программы, эксплуатирующие бреши в системе безопасности или иные уязвимости;

11.2 бэкдоры – самостоятельный класс программ, представителей которых называют «задней дверью», поскольку они способны обеспечить скрытое подключение к компьютеру, на котором находятся, и передать управление в руки своего хозяина;

11.3 крэки – программы, позволяющие тем или иным способом обеспечить «альтернативную регистрацию» платного ПО, не покупая серийный номер у автора полюбившейся программы;

11.4 клавиатурные шпионы (aka "keylogers"), ведущие лог нажатий клавиш и способные таким образом следить за действиями пользователя, перехватывать вводимую информацию.

11.5 шуточные программы, которые используются для розыгрышей и не представляют реальной опасности.

11.6 генераторы вирусов (вирусные конструкторы), позволяющие создавать вирусы определённых типов по заданным шаблонам в (полу)автоматическом режиме и не владея навыками программирования.

11.7 другие программы, которые я забыл здесь упомянуть. :-)

Все эти программы не являются вирусами, но при их обнаружении порой срабатывают антивирусные программы, что сбивает с толку непросвещённых пользователей.

Обращаю ваше внимание, что приведённая классификация является смешанной. Один вирус может одновременно принадлежать к разным типам. Например, Anarchy.6093 является резидентным полиморфным cтелc-вируcом.

Принципы действия антивирусных программ

Существует несколько основных типов антивирусных программ.
Здесь дана лишь их краткая характеристика.

Антивирусные on-demand сканеры

Это программы, выполняющие проверку носителей информации (RAM, HDD, сменных носителей на дисках, кассетах, картах и т.д.) на наличие вирусного кода. Осуществляется проверка только по запросу (on demand) пользователя. Из антивирусных баз данной программы загружаются описания (вирусные сигнатуры) известных ей вирусов, и программа сравнивает их с записанной на проверяемый носитель информацией. В случае совпадения выдаётся сообщение типа: "Объект такой-то инфицирован таким-то вирусом".

Многие антивирусные программы, кроме того, умеют сигнализировать о присутствии вируса, ещё не занесённого в антивирусные базы данной программы. Делается это методами эвристики (анализа кода на предмет наличия вирус-специфических инструкций). Следует понимать, что в этом случае антивирус не сможет "вылечить" инфицированные объекты. Максимум - подскажет к какому типу относится найденный вирус и предложит удалить его вместе с инфицированным объектом (файлом). Естественно, это крайняя мера, да и случаи ложноотрицательных срабатываний (когда неизвестный вирус присутствует на носителе, но никак не детектируется антивирусом) всё же имеют место быть. Эвристический анализатор можно "обмануть" или вызывать его зависание, внедрив в тело вируса соответствующие фрагменты кода. Поэтому необходимо как можно чаще обновлять антивирусные базы.

Обратная ситуация, носящая название ложноположительных срабатываний (когда вируса нет, а "под подозрение" анализатора кода попадают обычные программы) тоже не редкость. Это является особенностью кодового анализатора (aka "эвристического эмулятора") данного антивируса. Кроме того, считают, что уменьшая число ложноположительных срабатываний, разработчик невольно увеличивает количество ложноотрицательных, и наоборот. Некоторые антивирусные программы позволяют изменять чувствительность кодового анализатора. Хотя, трудно бывает определить, какими настройками стоит пользоваться в каждом конкретном случае.

Антивирусные мониторы

Это сходные по принципу действия с AV-сканерами программы. Отличаются они по следующему ряду особенностей:
а) главное их назначение - осуществление проверки "на лету" выбранных типов объектов (к примеру: "программные файлы, почтовые форматы и boot-секторы"). Такая проверка требует лишь однократно задать необходимый шаблон действий. В дальнейшем антивирусный монитор будет постоянно находится в RAM (если пользователь разрешит его автозапуск) и осуществлять резидентный контроль по заданному шаблону.
б) как и AV-сканеры, антивирусные мониторы в большинстве случаев не могут противодействовать резидентным вирусам, загруженным в RAM до них. Стелс-вирусы тоже вызывают затруднения.
в) их эффективность, как правило ниже, чем у сканеров. Это объясняется тем, что проверка "на лету" достаточно ресурсоёмкий процесс и если проверять всё подряд, да к тому же построчно - компьютер будет сильно тормозить. Кроме того, пункт "б" накладывает соответствующие ограничения.
Тем не менее, такие программы сильно облегчают жизнь, когда надо срочно поработать с непроверенным носителем, а на его полноценную проверку нет времени. Они прекрасно подходят для защиты серверов и рабочих станций ЛВС. Их также стоит активировать, когда вы подключаетесь к сети Интернет. Наличие постоянно включённой программы антивирусного мониторинга для изолированных компьютеров неоправданно. Ей стоит пользоваться только в оговоренных случаях.

Ревизоры дисков

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

Обычно программа ревизор может взаимодействовать с антивирусным сканером той же фирмы. Такое сочетание при грамотной конфигурации и умелом использоании способно создать мощную антивирусную защиту. Ей будет по силам справится с любыми типами вирусов. В т.ч. со "стелс" технологией и теми, описания которых ещё нет в базах.

Конечно, такая 2-х уровневая система далеко не верх совершенства. К ней можно добавить вышеупомянутый AV-монитор, антивирусные программы иных типов (о которых написано ниже) и предпринять ряд мер неспецифического характера. Например, запретить перезапись Flash BIOS; активизировать мониторинг изменений MBR и BS в установках BIOS (в BIOS от Award/Phoenix такая опция называется "Trend Chip Away Virus"); проверять загружаемые компоненты до запуска ОС (если такая процедура возможна в вашем случае). Это поможет вам осуществить раннее обнаружение вирусов, проникших через другие уровни вашей защиты.

Также рекомендую регулярно делать резервные копии как личных документов, так и всего системного раздела (используйте для этой цели Norton Ghost или подобные утилиты) с предварительной AV-проверкой архивируемых файлов. Резервные копии (backups - бэкапы) единственное средство, которое гарантированно спасёт ваши данные от любой порчи (в том числе и вызванной вирусной атакой). В случае их повреждения вы просто восстановите системный раздел из файла-образа и/или перезапишите инфицированные документы их "чистыми" копиями.

Дополнительные типы антивирусных программ

Помимо трёх основных типов антивирусов, описанных выше, есть ещё несколько интересных и эффективных решений AV-защиты.

  1. Программы проверки скриптов (Script-checkers) позволят вам создать дополнительный барьер на пути скрипт-вирусов. ЗАО "Лаборатория Касперского" выпустила в своё время такой продукт под названием "AVP Script Checker", подобные разработки есть и у других AV-компаний. Они могут распространяться отдельно от основного антивирусного пакета, а могут быть его составной частью.
  2. Многие антивирусы имеют плагин для проверки макросов, который автоматически загружается при запуске программ из пакета MS Office и проверяет открываемые документы на предмет наличия макро-вирусов.
  3. Также существуют плагины для интеграции AV-защиты в почтовые программы. Они позволяют осуществлять проверку писем и обнаруживать среди них инфицированные. Следует помнить, что часть плагинов работает по принципу "on-demand" и не станет проверять почту без явной команды пользователя сделать это.
  4. Порой появляются вирусы повышенной активности, приченяющие гораздо большие ущерб, чем их "собратья". Сейчас ими являются сетевые черви. Для избавления от некоторых из них AV-компании выпускают бесплатные утилиты. Так, ЗАО "Л.К." предоставляет возможность всем желающим бесплатно скачать программу "Clrav" и пользоваться ей. Документация к этой AV-программе доступна здесь.
  5. Ещё одна интересная разработка - "TrojanFindInfo". Программа предоставляет исчерпывающую информацию о запущенных в данный момент в оперативной памяти процессах и показывает список открытых портов, что позволяет довольно легко обнаружить активность троянских программ опытному пользователю.

Необходимость создания антивирусной защиты

Борьбой с информационными вирусами профессионально занимаются многие специалисты разных компаний. Среди них есть и русские имена: Евгений Касперский, Дмитрий Лозинский, Игорь Данилов, Всеволод Лутовинов, Дмитрий Белоусов, Андрей Башаримов, Андрей Каримов, Сергей Попов, Виталий Ладыгин, Денис Зуев, Дмитрий Мостовой... Надеюсь, когда-нибудь в этот список я смогу по-праву дописать и себя. Не все из этих людей непосредственно занимаются разработкой антивирусных программ. Проблема обеспечения AV-защиты многогранна. Кто-то делает одну часть работы, кто-то другую.

Информационные вирусы являются сейчас второй по значимости бедой в области информационных технологий, а первой - низкий уровень подготовки пользователей. Почему-то, для того, чтобы ездить на машине по дорогам, нужно сначала сдать экзамен и получить водительские права. В тоже время, для того, чтобы блуждать по сети Интернет, не обязательно даже знать определение компьютерного вируса и отличать *.jpg от *.jpg.exe. Вот и превращаются тысячи компьютеров неосведомлённых по основам ИБ пользователей в постоянно пополняющийся рассадник заразы. Вирусы могут препятствовать нормальной работе как отдельных лиц, так и целых организаций. По их вине возможны (и уже неоднократно зафиксированы) сбои в системе банкоматов. В случае, если окажутся инфицированы компьютеры диспетчерских навигационных систем, вирусы могут привести к гибели людей (пока такой сценарий можно наблюдать лишь в фильмах, но кто знает, что случится завтра?).

Вы скажете: "Ладно, но МНЕ-ТО КАКОЕ ДЕЛО ДО ВСЕГО ЭТОГО?!". Попробую убедить вас в том, что антивирусная защита вам нужна, как и любому здравомыслящему пользователю. Я уже говорил о том, что в компьютерных сетях не существует иммунитета. Иными словами, достаточно одной копии вируса, чтобы вызвать эпидемию и даже пандемию компьютерной заразы. Теперь представьте лицо человека, к которому вы пришли со своим носителем (к примеру, CD-R), когда он узнает о том, что ваш диск инфицирован, скажем W32.CIH. Наличие антивирусной системы прежде всего характеризует вас как порядочного, ответственного человека, который дорожит своей репутацией и временем других людей.

Существует довольно распространенное мнение, что антивирусные компании сами создают вирусы для продвижения своей продукции. Может так и было когда-то давно, но сейчас, поверьте на слово, ежедневно появляются десятки новых вирусов и создавать их "самим себе" просто нет необходимости. Антивирусные компании и так работают в поте лица. Но несмотря на всех их усилия, убытки, приносимые компьютерными вирусами, не падают и достигают астрономических величин в сотни миллионов долларов ежегодно. Вирус "I Love You" нанес ущерб больший, чем все ураганы и торнадо в США за 10 лет. В огромных убытках виноваты зачастую не злобные вирусописатели, а халатное отношение пользователей и слабое осведомление в вопросах безопасности. Возвращаясь к предыдущему примеру: пользователям было достаточно не запускать аттач с VBS, это бы обрубило эпидемию I-Love-You на корню! Речь даже не идёт о применении каких-либо антивирусов.

Следует понимать, что вы никогда не получите полной, 100% гарантии невозможности заражения. Но её можно свести к минимуму. Все убеждения о полной неуязвимости - лишь рекламный трюк недобросовестных антивирусных разработчиков. Следует понимать, что AV-системы были разработаны в ответ на появление вирусов и совершенствовались в результате появления новых представителей последних. Таким образом, вирусописатели всгда были на шаг впереди, а все усилия разработчиков антивирусного ПО - не более чем ответные меры и попытки упреждающих действий.

Hosted by uCoz