Компьютерный вирус

Санкт-Петербургский  Государственный Политехнический  Университет

Факультет экономики и менеджмента

Кафедра «Стратегический менеджмент» 
 
 
 
 
 
 
 
 
 

Курсовая  работа

Дисциплина: Информатика

Тема: «Компьютерный вирус» 
 
 
 
 
 
 
 
 
 
 
 
 
 

                                                                                        Студент:              Москвина Н.Н.

                   гр. 31075/26

                                                                                         Преподаватель:            Петухова Е.О.                                                                                   . 
 
 
 
 
 
 
 
 
 
 
 
 

Санкт-Петербург

2009

 

     СОДЕРЖАНИЕ 

 

      ВВЕДЕНИЕ

     Компьютерный  вирус был назван по аналогии с вирусами биологическими. По всей видимости, впервые слово вирус по отношению к программе было употреблено Грегори Бенфордом (Gregory Benford) в фантастическом рассказе «Человек в шрамах», опубликованном в журнале Venture в мае 1970 года. Термин «компьютерный вирус» впоследствии не раз открывался и переоткрывался — так, переменная в программе PERVADE (1975), от значения которой зависело, будет ли программа ANIMAL распространяться по диску, называлась VIRUS. Также, вирусом назвал свои программы Джо Деллинджер (англ. Joe Dellinger), и, вероятно, — это и был первый вирус, названный собственно «вирусом».

 

  1. ПОНЯТИЕ КОМПЬЮТЕРНОГО  ВИРУСА

     Компьютерный  вирус — разновидность компьютерных программ, отличительной особенностью которой является способность к размножению (саморепликация). В дополнение к этому вирусы могут повредить или полностью уничтожить все файлы и данные, подконтрольные пользователю, от имени которого была запущена заражённая программа, а также повредить или даже уничтожить операционную систему со всеми файлами в целом. [1]

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

     Вирусы  распространяются, внедряя себя в  исполняемый код других программ или же заменяя собой другие программы. Однако позднее злоумышленники добились, что вирусным поведением может обладать не только исполняемый код, содержащий машинный код процессора. Были написаны вирусы на языке пакетных файлов. Потом появились макровирусы, внедряющиеся через макросы в документы таких программ, как Microsoft Word и Excel.

     Некоторое время спустя взломщики создали  вирусы, использующие уязвимости в  популярном программном обеспечении (например, Adobe Photoshop, Internet Explorer, Outlook), в общем случае обрабатывающем обычные данные. Вирусы стали распространяться посредством внедрения в последовательности данных (например, картинки, тексты, и т. д.) специального кода, использующего уязвимости программного обеспечения.

     Компьютерные  вирусы, трояны и черви являются основными типами вредоносных программ. Распространенность разных типов вредоносного программного обеспечения представлена на рис. 1. 

Рисунок 1  Распространенность различных типов вирусов на октябрь 2009

 

  1. "КЛАССИЧЕСКИЕ" ВИРУСЫ

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

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

    1. Размножение вирусов

     Сам процесс размножения может быть условно разделен на несколько стадий: [2]

  1. Проникновение на компьютер.
  2. Активация вируса.
  3. Поиск объектов для заражения.
  4. Подготовка вирусных копий.
  5. Внедрение вирусных копий.

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

    1. Типы  заражаемых объектов

     Для активации вируса необходимо, чтобы  зараженный объект получил управление. На данной стадии деление вирусов  происходит по типам объектов, которые  могут быть заражены: [3]

     1.Загрузочные  вирусы — вирусы, заражающие загрузочные сектора постоянных и сменных носителей.

     2.Файловые  вирусы — вирусы, заражающие файлы.  Эта группа дополнительно делится  на три, в зависимости от  среды в которой выполняется  код: 

  • собственно файловые вирусы — те, которые непосредственно работают с ресурсами операционной системы;
  • макровирусы — вирусы, написанные на языке макрокоманд и исполняемые в среде какого-либо приложения. В подавляющем большинстве случаев речь идет о макросах в документах Microsoft Office;
  • скрипт-вирусы — вирусы, исполняемые в среде определенной командной оболочки: раньше — bat-файлы в командной оболочке DOS, сейчас чаще VBS и JS — скрипты в командной оболочке Windows Scripting Host (WSH).

     В эпоху вирусов для DOS часто встречались  гибридные файлово-загрузочные вирусы. После массового перехода на операционные системы семейства Windows практически исчезли как сами загрузочные вирусы, так и упомянутые гибриды.

     Отдельно  стоит отметить тот факт, что вирусы, рассчитанные для работы в среде  определенной ОС или приложения, оказываются неработоспособными в среде других ОС и приложений. Поэтому как отдельный атрибут вируса выделяется среда, в которой он способен выполняться. Для файловых вирусов это DOS, Windows, Linux, MacOS, OS/2. Для макровирусов — Word, Excel, PowerPoint, Office. Иногда вирусу требуется для корректной работы какая-то определенная версия ОС или приложения, тогда атрибут указывается более узко: Win9x, Excel97.

    1. Способы сокрытия своего присутствия

     При создании копий для маскировки могут  применяться следующие технологии: [4]

  • шифрование — вирус состоит из двух функциональных кусков: собственно вирус и шифратор. Каждая копия вируса состоит из шифратора, случайного ключа и собственно вируса, зашифрованного этим ключом;
  • метаморфизм — создание различных копий вируса путем замены блоков команд на эквивалентные, перестановки местами кусков кода, вставки между значащими кусками кода «мусорных» команд, которые практически ничего не делают.

     Сочетание этих двух технологий приводит к появлению следующих типов вирусов:

  • шифрованный вирус — вирус, использующий простое шифрование со случайным ключом и неизменный шифратор. Такие вирусы легко обнаруживаются по сигнатуре шифратора;
  • метаморфный вирус — вирус, применяющий метаморфизм ко всему своему телу для создания новых копий;
  • полиморфный вирус — вирус, использующий метаморфный шифратор для шифрования основного тела вируса со случайным ключом.
    1. Методы  внедрения

     Внедрение вирусных копий может осуществляться двумя принципиально разными  методами: [5]

  • внедрение вирусного кода непосредственно в заражаемый объект;
  • замена объекта на вирусную копию. Замещаемый объект, как правило, переименовывается.

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

     В качестве варианта второго метода, во времена DOS применялся следующий  прием. При наборе имени исполняемого файла без указания расширения, DOS ищет по порядку сперва BAT, затем COM, и в конце концов EXE-файл. Соответственно, вирусная копия создавалась в одном каталоге с EXE-файлом, дублируя его имя и принимая расширение COM. Таким образом, при попытке запустить данный EXE-файл без явного указания расширения сначала запускался вирус.

     Аналогичный прием может использоваться и в Windows-системах, но поскольку основная масса пользователей Windows редко пользуются запуском файлов из командной строки, эффективность этого метода будет низкой.

      

 

  1. ЧЕРВИ

     Червь (сетевой червь) — тип вредоносных  программ, распространяющихся по сетевым  каналам, способных к автономному  преодолению систем защиты автоматизированных и компьютерных сетей, а также  к созданию и дальнейшему распространению  своих копий, не всегда совпадающих с оригиналом, и осуществлению иного вредоносного воздействия. [1]

    1. Жизненный цикл червя

     Так же как для вирусов, жизненный  цикл червей можно разделить на определенные стадии: [6]

  1. Проникновение в систему.
  2. Активация.
  3. Поиск «жертв».
  4. Подготовка копий.
  5. Распространение копий.

     Стадии 1 и 5, вообще говоря, симметричны и  характеризуются в первую очередь  используемыми протоколами и  приложениями.

     Стадия 4 — Подготовка копий — практически  ничем не отличается от аналогичной  стадии в процессе размножения вирусов. Сказанное о подготовке копий вирусов без изменений применимо и к червям.

    1. Типы  червей

     На  этапе проникновения в систему  черви делятся преимущественно  по типам используемых протоколов: [5,6]

  • сетевые черви — черви, использующие для распространения протоколы Интернет и локальных сетей. Обычно этот тип червей распространяется с использованием неправильной обработки некоторыми приложениями базовых пакетов стека протоколов tcp/ip;
  • почтовые черви — черви, распространяющиеся в формате сообщений электронной почты;
  • IRC-черви — черви, распространяющиеся по каналам IRC (Internet Relay Chat);
  • P2P-черви — черви, распространяющиеся при помощи пиринговых (peer-to-peer) файлообменных сетей;
  • IM-черви — черви, использующие для распространения системы мгновенного обмена сообщениями (IM, Instant Messenger — ICQ, MSN Messenger, AIM и др.).

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

      

 

  1. ТРОЯНЫ

     Троян (троянский конь) — тип вредоносных  программ, основной целью которых  является вредоносное воздействие  по отношению к компьютерной системе. Трояны отличаются отсутствием механизма создания собственных копий. Некоторые трояны способны к автономному преодолению систем защиты КС, с целью проникновения и заражения системы. В общем случае, троян попадает в систему вместе с вирусом либо червем, в результате неосмотрительных действий пользователя или же активных действий злоумышленника. [1,5]

     В силу отсутствия у троянов функций  размножения и распространения, их жизненный цикл крайне короток  — всего три стадии: [3]

  1. Проникновение на компьютер.
  2. Активация.
  3. Выполнение заложенных функций.

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

    1. Проникновение на компьютер

     Задачу  проникновения на компьютер пользователя трояны решают обычно одним из двух следующих методов: [4]

  1. Маскировка — троян выдает себя за полезное приложение, которое пользователь самостоятельно загружает из Интернет и запускает. Иногда пользователь исключается из этого процесса за счет размещения на Web-странице специального скрипта, который используя дыры в браузере автоматически инициирует загрузку и запуск трояна.

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

  1. Кооперация с вирусами и червями — троян путешествует вместе с червями или, реже, с вирусами. В принципе, такие пары червь-троян можно рассматривать целиком как составного червя, но в сложившейся практике принято троянскую составляющую червей, если она реализована отдельным файлом, считать независимым трояном с собственным именем. Кроме того, троянская составляющая может попадать на компьютер позже, чем файл червя.
    1. Типы  троянов

     Наиболее  распространены следующие виды Троянов:

  1. Клавиатурные шпионы — трояны, постоянно находящиеся в памяти и сохраняющие все данные, поступающие от клавиатуры с целью последующей передачи этих данных злоумышленнику. Обычно таким образом злоумышленник пытается узнать пароли или другую конфиденциальную информацию.
  2. Похитители паролей — трояны, также предназначенные для получения паролей, но не использующие слежение за клавиатурой. В таких троянах реализованы способы извлечения паролей из файлов, в которых эти пароли хранятся различными приложениями.
  3. Утилиты удаленного управления — трояны, обеспечивающие полный удаленный контроль над компьютером пользователя. Существуют легальные утилиты такого же свойства, но они отличаются тем, что сообщают о своем назначении при установке или же снабжены документацией, в которой описаны их функции. Троянские утилиты удаленного управления, напротив, никак не выдают своего реального назначения, так что пользователь и не подозревает о том, что его компьютер подконтролен злоумышленнику. Наиболее популярная утилита удаленного управления — Back Orifice.
  4. Люки (backdoor) — трояны предоставляющие злоумышленнику ограниченный контроль над компьютером пользователя. От утилит удаленного управления отличаются более простым устройством и, как следствие, небольшим количеством доступных действий. Тем не менее, обычно одними из действий являются возможность загрузки и запуска любых файлов по команде злоумышленника, что позволяет при необходимости превратить ограниченный контроль в полный.
  5. Анонимные smtp-сервера и прокси — трояны, выполняющие функции почтовых серверов или прокси и использующиеся в первом случае для спам-рассылок, а во втором для заметания следов хакерами.
  6. Утилиты дозвона — сравнительно новый тип троянов, представляющий собой утилиты dial-up доступа в Интернет через дорогие почтовые службы. Такие трояны прописываются в системе как утилиты дозвона по умолчанию и влекут за собой огромные счета за пользование Интернетом.
  7. Модификаторы настроек браузера — трояны, которые меняют стартовую страницу в браузере, страницу поиска или еще какие-либо настройки, открывают дополнительные окна браузера, имитируют нажатия на баннеры и т. п.
  8. Логические бомбы — чаще не столько трояны, сколько троянские составляющие червей и вирусов, суть работы которых состоит в том, чтобы при определенных условиях (дата, время суток, действия пользователя, команда извне) произвести определенное действие: например, уничтожение данных.

      

 

  1. АНТИВИРУСЫ

     Антивирус — программное средство, предназначенное  для борьбы с вирусами. [6]

     Как следует из определения, основными  задачами антивируса является:

  • препятствование проникновению вирусов в компьютерную систему;
  • обнаружение наличия вирусов в компьютерной системе;
  • устранение вирусов из компьютерной системы без нанесения повреждений другим объектам системы;
  • минимизация ущерба от действий вирусов.
    1. Технологии  обнаружения вирусов

     Технологии, применяемые в антивирусах, можно  разбить на две группы: [3,4,5]

  • технологии сигнатурного анализа;
  • технологии вероятностного анализа.

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

     Сигнатурный анализ является наиболее известным  методом обнаружения вирусов  и используется практически во всех современных антивирусах. Для проведения проверки антивирусу необходим набор вирусных сигнатур, который хранится в антивирусной базе.

     Антивирусная  база — база данных, в которой  хранятся сигнатуры вирусов.

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

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

     Грамотная реализация вирусной сигнатуры позволяет  обнаруживать известные вирусы со стопроцентной вероятностью.

     Технологии  вероятностного анализа в свою очередь  подразделяются на три категории: [6]

  1. Эвристический анализ.
  2. Поведенческий анализ.
  3. Анализ контрольных сумм.

     Эвристический анализ — технология, основанная на вероятностных алгоритмах, результатом работы которых является выявление подозрительных объектов

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

     Эвристический анализ применяется для обнаружения неизвестных вирусов, и, как следствие, не предполагает лечения.

     Данная  технология не способна на 100% определить вирус перед ней или нет, и  как любой вероятностный алгоритм грешит ложными срабатываниями.

     Поведенческий анализ — технология, в которой  решение о характере проверяемого объекта принимается на основе анализа выполняемых им операций

     Поведенческий анализ весьма узко применим на практике, так как большинство действий, характерных для вирусов, могут  выполняться и обычными приложениями. Наибольшую известность получили поведенческие анализаторы скриптов и макросов, поскольку соответствующие вирусы практически всегда выполняют ряд однотипных действий. Например, для внедрения в систему, почти каждый макровирус использует один и тот же алгоритм: в какой-нибудь стандартный макрос, автоматически запускаемый средой Microsoft Office при выполнении стандартных команд (например, « Save », « Save As», «Open», и т.д.), записывается код, заражающий основной файл шаблонов normal.dot и каждый вновь открываемый документ.

     Средства  защиты, вшиваемые в BIOS, также можно  отнести к поведенческим анализаторам. При попытке внести изменения  в MBR компьютера, анализатор блокирует  действие и выводит соответствующее  уведомление пользователю.

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

     Анализ  контрольных сумм — это способ отслеживания изменений в объектах компьютерной системы. На основании  анализа характера изменений — одновременность, массовость, идентичные изменения длин файлов — можно делать вывод о заражении системы

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

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

    1. Режимы  работы антивирусов

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

     Таким образом, антивирусы можно разделить  на две большие категории: [1]

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