Зверьё моё. Всё о компьютерных вирусах

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

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

Немного истории
Прежде чем приступить к рассмотрению различных классификаций вирусов, давайте вспомним их историю.
Впервые самовоспроизводящиеся программы были описаны ещё самим Джоном фон Нейманом в 1951 году. Первую модель такой программы описали супруги Пенроуз в статье для журнал Nature в 1957 году, после чего некий Ф. Ж. Шталь написал на машинном языке ЭВМ IBM 650 биокибернетическую модель, в рамках которой виртуальные существа двигались, «питаясь» символами, вводимыми с клавиатуры. После «поедания» определённого количества символов существо размножалось, причём часть его функций могла «мутировать». Эта программа, однако, не была вирусом как таковым, поскольку не обладала способностью к заражению и не несла никаких деструктивных функций.
Первым «настоящими» вирусами стали программы для компьютеров Apple, появившихся в 1977 году, и умевшим объединяться в сеть. Эти вирусы «размножались» «вручную» — авторы выкладывали их под видом полезных программ на BBS (предшественники современных форумов и чатов) и после запуска уничтожали данные пользователей. Причём некоторые модификации этих прото-вирусов могли проявлять свою истинную сущность через определённое время или при определённых условиях.

Первый вирус, получивший известность среди пользователей, был написан в 1981 году Ричардом Скрентом. Зараза, получившая название ELK CLONER, внедрялась в загрузочную запись диска Apple II и обнаруживала себя выводом сообщения с небольшим стихотворением. В том же году студент Техасского университета A&M Джо Деллинджер создал вирус для операционной системы компьютеров Apple II, который мешал нормальной работе популярной в то время игры CONGO. В течение нескольких недель копии этой игры, имеющиеся на компьютерах университета перестали работать и автор «заразы» решил написать первый «антивирус» — модификацию вируса, которая замещала код своего предшественника.
Собственно термин «компьютерный вирус» был впервые предложен в сентябре 1984 года Ф. Коэном. Его статья, в которой описал результаты своего исследования вредоносных программ, стала вторым академическим исследованием новой проблемы.
Первые серьёзные эпидемии вирусов случились в 1987 год, когда широкое распространение получили дешёвые компьютеры IBM PC. Так, вирус Brain («Пакистанский вирус»), написанный братьями Амджатом и Базитом Алви был обнаружен летом 1987, когда эпидемия поразила 18 тысяч компьютеров в США. Вирус этот, правда, был своего рода «карой» для пользователей, использующих нелицензионные программы тех же разработчиков. Что интересно, этот вирус был первым, использующим маскировку — при попытке чтения заражённого сектора он «отдавал» вопрошающей программе незаражённый оригинал.

Первый вирус, изначально ориентированный на заражение целых сетей, появился в 1988 году. Этот «червяк», впрочем, не нёс никаких деструктивных действий и был создан неким Робертом Моррисом с единственной целью — заразить операционную систему UNIX Berkeley 4.3 на всех компьютерах, подключенных к сети ARPANET, никак себя не обнаружив. Достигнув своей цели, этот вирус начинал размножаться и рассылать свои копии. Всего червь Морриса поразил более 6 тысяч компьютеров, часть из которых (в силу активного размножения вируса) вышла из строя на несколько дней (до обнаружения источника проблем и исправления ошибок в ОС). Двумя годами позже Моррис был признан виновным в причинении материального ущерба (невозможность использования сети в течение нескольких дней) и был приговорён к условному заключению сроком на два года, 400 часам общественных работ и штрафу в 10 тысяч долларов.
На год позже «червя Морриса», в 1989 году, появился первый «троянский конь». Вирус с названием AIDS (ВИЧ) блокировал доступ ко всей информации на жёстком диске, попутно отображая на экране надпись «Пришлите чек на $189 на такой-то адрес». Само собой, по точным координатам автора удалось быстро вычислить и в последствии он был осуждён за вымогательство.
Но переломным моментом в истории развития можно считать 1990 год. Началось всё первого полиморфного вируса Chameleon, который стал образцом для подражания, так как был прятаться от антивирусных программ. Когда же вирусописатели стали объединять в своих творениях различные методы сокрытия, проблема компьютерных вирусов приобрела по-настоящему глобальный масштаб.

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

Классификация по среде обитания. С первой классификацией всё просто. Файловые вирусы внедряют своё тело в исполнимые файлы (читай — программы) с расширениями *.exe, *.dll, *.sys, *.bat и *.com. Такие вирусы, как и их биологические собратья, «присасываются» к носителю, перехватывая базовые управляющие функции. В результате заражённая программа при запуске первым делом выполняет код вируса, а только затем — запускается сама. В редких случаях файловые вирусы полностью заменяют код программы на своё собственное тело, выполняя таким образом деструктивные функции (см. ниже).
Более хитро прячутся загрузочные вирусы — они записывают свой код в загрузочный сектор диска (boot-сектор) или так называемую Master Boot Record (сектор винчестера, содержащий код вызова загрузчика).
Следующий вид вирусов, макро-вирусы, внедряются уже не в программы, а в документы, обрабатываемые программами с поддержкой макросов (алгоритмов автоматизайции рутинных действий пользователя). Чаще других от таких вирусов «страдают» документы Microsoft Word и Excel.
Строго говоря, эта классификация не является всеобъемлющей, поскольку всё чаще встречаются вирусы, способные скрывать своё тело сразу в нескольких средах (например, в исполнимых файлах и в загрузочном секторе).

Классификация по способам проникновения и заражения. По мере усложнения компьютеров и программного обеспечения у вирусов появляется всё больше путей проникновения на компьютеры. Самый простой из них — запуск заражённой программы самими пользователем. Как правило, вирусы, запускающиеся таким методом, приходят в электронных письмах или распространяются под видом различных полезных программ (в том числе — в виде ссылок, присылаемых через ICQ). Причём, всё чаще авторы столь простой в техническом плане заразы используют методы социальной инженерии, правдами и неправдами убеждая пользователя запустить вирус (к примеру, вирус может быть замаскирован под картинку, от которой подвоха не ждут даже опытные пользователи).
Более прогрессивные вирусы используют для запуска самое себя встроенные функции операционных систем. Самая популярная из них — механизм автозапуска программ в Windows. Вставив в USB-порт банальную флешку, можно заполучить заразу, даже не запуская никаких программ с этого носителя — за вас всё сделает файл autorun.inf, который уже активный вирус записал на флешку на другом компьютере.
Ещё одна разновидность вирусов — web-зараза, попадающая на компьютер с заражённых сайтов. Здесь всё просто — браузеры (особенно часто этим грешит Internet Explorer) обрабатывают имеющийся на странице код (чаще всего — JavaScript), который и делает «чёрное дело» — к примеру, скачивает из Сети и запускает «традиционный» программный вирус.
Наконец, самая опасная зараза, способная обойтись без явной или неявной помощи со стороны пользователя, это так называемые «черви» — вирусы, проникающие на компьютер-жертву через так называемые «дыры» (уязвимости) в программах или операционной системе. Чаще всего такие вирусы используют «веерный» метод проникновения — каждый заражённый компьютер становится источником заразы, рассылая новые копии вируса по всем доступным компьютерам.

Что касается способов заражения, то здесь все вирусы можно поделить на две группы: резидентные (такая «зараза» постоянно «висит» в памяти компьютера и может не только совершать деструктивные действия, но активно препятствовать своему уничтожению) и нерезидентные (после выполнения определённого набора действий такие вирусы выгружаются из памяти и не проявляют никакой активности).

Классификация по вредоносным действиям. Как ни странно, но в этой классификации на первом месте стоят вирусы безвредные. Обычно они являются «первыми ласточками», на которых вирусописатели испытывают новые технологии и методы проникновения. На следующей ступеньке стоят вирусы неопасные, чьё воздействие на компьютер ограничивается различными эффектами (вывод сообщений, замена обоев, звуковые эффекты и т. п.). Третью строчку в классификации занимают опасные вирусы, способные привести к сбоям в работе компьютера (например, блокируют некоторые сайты или препятствуют запуску ряда программ). Наконец, существуют и очень опасные вирусы, способные уничтожить данные, повредить файловую систему, полностью блокировать компьютер и т. п.

Классификация по особенностям функционирования. Самая интересная классификация компьютерной заразы описывает вирусы по их свойствам, что делает её в определённом роде похожей на классификации вирусов биологических.
Первая группа вредоносных программ — вирусы-компаньоны (companion), имеющие собственное тело и не нуждающиеся в носителе. Такие вирусы создают исполнимые файлы (*.exe), «сопровождающие» обычные программы, не удаляя их. Также такие вирусы могут «замаскироваться» под папки, скрыв реальные каталоги, что вынуждает невнимательных пользователей запускать тело вируса.
Во многом похожи на «компаньонов» компьютерные «черви» (worm). Они также создают копии своего собственного тела, как правило, достаточно активно размножаясь и заполоняя диск компьютера.
Более других похожи на биологических собратьев вирусы-«паразиты», не существующие вне исполнимых файлов других программ или загрузочных секторов дисков. Эта группа — самая многочисленная (фактически к ней можно отнести все модификации, помимо описанных выше «компаньонов» и «червей»).

Следующая часть «типовой» классификации частично пересекается с изложенным выше, поскольку описанные в ней типы вирусов обязательно относятся к «компаньонам», «червям» или «паразитам».
Одна из самых опасных разновидностей «стелс»-вирусы («невидимки», stealth). Они способны обнаруживать обращения сторонних программ (в том числе — антивирусов) к своему коду, «подставляя» в ответ на такие запросы незараженные фрагменты информации. Также такие вирусы маскируют свои обращения к файлам (например, при заражении или совершении деструктивных действий), обманывая активные антивирусные мониторы.
Ещё одна интересная разновидность — «полиморфы» (polymorphic). Такие вирусы не содержат постоянного кода, постоянно (при создании каждой новой копии) изменяясь. Достигается такой эффект как правило путём шифрования основного тела вируса и использования программы-дешифратора.
«Макро-вирусы» отличаются от прочих только тем, что написаны на макроязыках (таких как VBA), встроенных в различные программы (например, текстовые редакторы, подобные Microsoft Word). В некотором роде такие вирусы можно считать «ущербными», поскольку в отсутствие привычной среды обитания (обработчика макроязыка) они абсолютно безвредны.
Наконец, «сетевые черви» — это разновидность компьютерной заразы, распространяющаяся посредством компьютерных сетей. Как правило, такие вирусы не изменяют файлы, проникая в память непосредственно из сети и начиная активно размножаться. В ряде случаев, впрочем, такие вирусы создают исполнимые файлы на диске с целью продолжить свою «деятельность» и после перезагрузки компьютера.

Лечение
Фактически, обобщив все распространённые классификации вирусов, мы дали ответы на самые распространённые вопросы о вирусах, за исключением главного — как с ними бороться.
Как и в случае с вирусами биологическими, лучшим лечением будет профилактика. Проще говоря — использование активной антивирусной защиты (так называемых «мониторов»). «Мониторы» постоянно находятся в памяти компьютера, контролируя все процессы в оперативной памяти компьютера и все обращения к файлам.
Для разовой проверки компьютера (например, при подозрении на заражение в отсутствие «монитора») можно использовать программы-сканеры, проверяющие операционную систему и пользовательские файлы по запросу.
Оба типа антивирусных программ используют в своей работе несколько алгоритмов, позволяющих обнаруживать «заразу». Самый распространённый из них — «сигнатурный» (сравнительный метод, проверка по базе). Антивирус попросту использует базу, содержащую образцы кода вирусов, сверяя фрагменты проверяемых программ и документов с «эталонами». Базы создаются разработчиками антивирусных программ и постоянно обновляются. При обнаружении совпадений антивирус может удалить инфицированный файл полностью, попытаться «вылечить» файл, удалив тело вируса, заблокировать доступ к инфицированному файлу, или отправить файл в «карантин» (специальную папку, в которой все действия вируса опять-таки блокируются).
При всей своей эффективности сигнатурный метод имеет один существенный недостаток: в случае, если в базе антивируса не нашлась подходящая запись (что не редкость в случае с новыми «полиморфами»), антивирус оказывается бесполезен.
Более эффективный метод — «поведенческий» (проактивная защита, поведенческий блокиратор, Host Intrusion Prevention System, HIPS). Он основан на анализе поведения программ и сравнении полученных данных с известными антивирусу «нормальными» поведенческими алгоритмами. В случае обнаружения «подозрительных» действий антивирус уведомит пользователя.

В современных антивирусах поведенческий метод обычно сочетается с «эвристическим», основанным на алгоритмах «предположений». К примеру, антивирус может предположить, что программа, осуществляющая запись в загрузочную запись диска, но при этом не являющаяся известной антивирусу дисковой утилитой, становится под «подозрение» и может быть удалена. Такой метод, будучи неплохим подспорьем в деле обнаружения новых и неизвестных угроз, не может, однако считаться абсолютно надёжным и использовании высокого уровня эвристики даёт самое большое число ложных срабатываний. К эвристическим методам относят и эмуляцию проверяемой программы в своеобразной «виртуальной» машине, создаваемой антивирусом. К примеру, антивирус может начать исполнение программы, инфицированной полиморфным вирусом, пошагово выполняя программу и контролируя её действия до тех пор, пока не убедится в её безопасности, или же не «вычислит» вирус. Наконец, «эвристика» позволяет проверять исходный код программы (после её дизассемблирования в памяти), анализируя его вероятные действия или сверяя фрагменты кода с базой известных вирусных алгоритмов.
Наконец, самый эффективный (но при этом — самый неудобный с точки зрения пользователя) метод — «Белый список». Суть его — в составлении пользователем списка «доверенных» программы, которые могут запускаться на защищаемом компьютере. Все прочие программы будут полностью блокироваться антивирусом. Такой метод, впрочем, чаще реализуется не в антивирусах, а в брэндмауерах («защитных экранах»), поскольку строго говоря сам по себе он не может гарантировать «чистоту» программ (пользователь сам того не зная может внести в список уже заражённую программу).
Как правило, антивирусные программы используют различные комбинации описанных методов. Главная проблема разработчиков антивирусов в данном случае — добиться оптимального соотношения эффективности обнаружения угроз и производительности программы. Некоторые разработчики возлагают эту заботу на плечи пользователей, предлагая им самостоятельно выбрать необходимые алгоритмы, а также настроить уровень их «подозрительности».

Заключение
Мы рассказали обо всех аспектах «жизни» компьютерных вирусов, которые интересуют рядовых пользователей. В заключение подведём краткие итоги.
Итак, вирус — это программа, выполняющая разрушительные действия и способная к размножению. Вирусы отличаются по способам распространения, проникновения на компьютеры пользователей, алгоритмам работы и типу деструктивных действий.
Вирусы могут жить самостоятельно, имя отдельное «тело»-файл, или же «прикрепляться» к программа и документам пользователя. Большая часть вирусов «живёт» в исполнимых файлах (*.exe, *.dll и других) или документах, которые могут содержать макросы. Однако в теории вирус может быть заключён в любой файл, обрабатываемый уязвимой программой. «Ошибаясь» такая программа запускает на исполнение код из самого безобидного файла (скажем, картинки).
Компьютерные вирусы могут размножаться путём копирования собственного тела, или посредством передачи своего кода через компьютерные сети.
Также стоит помнить, что создание и распространение компьютерных вирусов и вредоносных программ преследуется в России по закону (глава 28, статья 273 Уголовного Кодекса РФ).

9 комментариев

  1. От Михаил

    Ответить

  2. От Nik

    Ответить

  3. От Mr.Dorson

    Ответить

  4. От Nik

    Ответить

  5. От Lady_Pearl

    Ответить

  6. От Nik

    Ответить

  7. От Lady_Pearl

    Ответить

  8. От Mr.Dorson

    Ответить

  9. От Nik

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *