Для связи в whatsapp +905441085890

Реферат на тему: Компьютерные вирусы и антивирусные программы

У вас нет времени на реферат или вам не удаётся написать реферат? Напишите мне в whatsapp — согласуем сроки и я вам помогу!

В статье «Как научиться правильно писать реферат», я написала о правилах и советах написания лучших рефератов, прочитайте пожалуйста.

Собрала для вас похожие темы рефератов, посмотрите, почитайте:

  1. Реферат на тему: Блокада Ленинграда
  2. Реферат на тему: Петр 1 как историческая личность
  3. Реферат на тему: Самбо
  4. Реферат на тему: Театр
Реферат на тему: Компьютерные вирусы и антивирусные программы

Введение

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

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

В конце 1960-х годов была открыта самораспространяющаяся программа APRAnet, которая теперь известна как Viunok и, по-видимому, была написана Бобом Томасом.

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

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

Первым шагом в борьбе против Вионка был «Жнец», который воспроизвел себя как Вионк, но уничтожил все копии последнего, с которым познакомился. Мы не знаем, как эти две программы в итоге поссорились. Так или иначе, от этого оборонительного подхода впоследствии отказались. Однако копии обеих программ долгое время бродили по сети.

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

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

  • способность к саморепликации;
  • высокоскоростного распространения;
  • селективность пораженных систем (каждый вирус атакует только определенные системы или однородные группы систем);
  • способность «заражать» еще не зараженные системы;
  • трудности в борьбе с вирусами и т.д.

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

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

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

Например, 1 декабря каждого года вирус Anti-MIT уничтожает всю информацию на вашем жестком диске, вирус Tea Time не позволяет вводить информацию с клавиатуры с 15:10 до 15:13, а знаменитый One Half невидимо шифрует данные на вашем жестком диске. В 1989 году американскому студенту удалось создать вирус, разрушивший около 6000 компьютеров Министерства обороны США. В 1991 году произошла вспышка знаменитого вируса Дир II. Вирус использовал по-настоящему оригинальную, принципиально новую технологию и изначально был способен широко распространяться из-за недостатков традиционных антивирусных средств.

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

Первые исследования саморазмножающихся искусственных сооружений были проведены в середине прошлого века. Термин «компьютерный вирус» появился позже — его официальный автор — Ф. Коэн из Университета Леха (США), представивший его на 7-й Международной конференции по информатике в 1984 году.

Эксперты полагают, что на сегодняшний день количество существующих вирусов превысило 50 тысяч, при этом ежедневно появляется от 6 до 9 новых вирусов. «Дикий», то есть на самом деле в обращении, сегодня около 260 вирусов.

Классификация вирусов

Один из ведущих «вирусологов» страны Евгений Касперский предлагает условно классифицировать вирусы по следующим характеристикам:

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

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

Вирусные программы могут отличаться:

По среде обитания:

  • Сеть — распределена по сетям (Мелисса).
  • файлы — заражает исполняемые файлы с расширениями. exe…. Ком. В этот класс также входят макро-вирусы, заражающие не исполняемые файлы (например, в MS WORD или MS EXCEL).
  • Загрузка — осуществляется в загрузочном секторе диска (загрузочный сектор) или в секторе, содержащем программу Master Boot Record (MBR) для загрузки системного диска. Некоторые вирусы записывают свое тело в свободные сектора на жестком диске и помечают их как «плохие» в FAT.
  • Загрузка файлов — может заразить загрузочные сектора и файлы.

То, как он заражен:

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

С точки зрения опасности:

  • Не опасно — например, на экране появляется сообщение «I want to junk». Если ввести на клавиатуре слово «чучха», то вирус временно «успокаивается».
  • Опасный — уничтожает некоторые файлы на жестком диске.
  • Очень опасно — они сами форматируют жесткий диск. (CIH — активируется 26 числа каждого месяца и способен уничтожить данные на жестком диске и в BIOS).

По особенностям алгоритма:

  • Companion Viruses — создание новых спутниковых файлов с одноименным названием, но с расширением com. Вирус записывается в com-файл и ни в коем случае не изменяет одноименный файл ehé. При запуске такого файла операционная система сначала обнаружит и выполнит com-файл, т.е. вирус, который затем запустит эхо-файл.
  • Паразитный — изменение содержимого секторов или файлов диска.
  • Репликаторы (черви) — распределены по сети. Они вторгаются в память компьютера из сети, вычисляют сетевые адреса других компьютеров и посылают копии по этим адресам. Черви уменьшают пропускную способность сети и замедляют работу серверов. Они могут воспроизводиться, не внедряясь в другие программы, и имеют «наполнение» компьютерных вирусов. («Червь Моррис отключил несколько широкополосных сетей в конце 1980-х годов в США).
  • Невидимые (Стелс) — маскируют свое присутствие в компьютере, их трудно обнаружить. Они перехватывают вызовы ОС к затронутым файлам или секторам диска и «заменяют» незараженные участки файлов.
  • Мутанты (призраки, полиморфные вирусы, полиморфы) — их сложно обнаружить, так как их копии практически не содержат полностью совпадающих сегментов кода. Это достигается путем вставки в вирусные программы пустых команд (мусора), которые не изменяют алгоритм работы вируса, но затрудняют его обнаружение. (Половина — местные «эпидемии» происходят регулярно). защита от вирусов компьютерная классификация
  • Макро-вирусы — использование возможностей макроязыков, встроенных в системы обработки данных (Word, Excel).
  • «Троянские кони» — маскируется под полезную или интересную программу, которая выполняет разрушительную работу во время своей работы (например, удаляет FAT) или собирает на компьютере информацию, которая не может быть раскрыта. Они не обладают собственностью на самовоспроизводство.

Через целостность:

  • Монолитная — вирусная программа — один блок, который может быть обнаружен после заражения.
  • Распределенная — программа разделена на части. Эти части содержат инструкции, которые говорят компьютеру, как собрать их вместе, чтобы воссоздать вирус.
  • В настоящее время разрабатываются антивирусные программы для борьбы с вирусами. С медицинской точки зрения эти программы могут выявлять (ставить диагноз), лечить (ликвидировать) и вакцинировать «здоровые» программы.

По выполняемым действиям:

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

Методом заражения:

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

Своего рода превентивный метод — когда исходное начало файла вообще не сохраняется. Такие программы «убиты до смерти» и не могут быть восстановлены какой-либо антивирусной программой.

Другие методы. Сохранение перемещенного фрагмента программы в файле «Хвост кластера» и т.д.

Основные виды компьютерных вирусов

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

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

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

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

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

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

Все представленные типы компьютерных вирусов могут в определенной степени повредить вашему компьютеру.

Структура программ СОМ и РЭ

COM-программа — это фрагмент кода и данных, который начинается с выполняемой команды и занимает не более 64 Кбайт. Например, командный процессор COMMAND.COM операционной системы MSDOS, версии до 6.22 включительно, имеет такую структуру.

Программа RE имеет гораздо более сложную структуру. В начале файла программы EXE находится заголовок длиной.

Заголовок имеет длину 28 байт и содержит следующие данные:

  • MZsh — это символ для EXE-файла;
  • PartPag — Длина файла в модуле 512;
  • PageCnt — Длина файла в 512 байтных страниц;
  • ReloCnt — это размер таблицы настроек;
  • Заголовок HdrSize-Size;
  • МинМем — это минимально необходимый объем памяти;
  • MaxMem — это максимальный объем требуемой памяти;
  • Relo-SS является относительным сегментом стека;
  • ExeSP — Смещение указателя стека;
  • ChkSum — Контрольная сумма файла;
  • ExelP — Смещение точки входа;
  • ReloCS — относительный сегмент точки входа;
  • Таблица регулировки смещения TablOff;
  • Накладка — это номер сегмента наложения.

Поля ReloCS и ExelP определяют положение точки входа в программу, поля ExeSP и ReloSS — положение стека, поля PartPag и PageCnt — размер корневого сегмента программы.

Размер программы, вычисленный PartPag и PageCnt, может не совпадать с реальным размером файла.

Такие программы называются «сегментированными» или «с внутренними накладками». Образованные авторы вирусов избегают заражения таких программ.

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

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

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

Как работает вирус

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

Эта программа тестирует аппаратное обеспечение и пытается найти диск в диске A, если тесты прошли успешно:

Все диски помечены на секторах и дорожках, секторы сгруппированы.

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

В загрузочном секторе хранится информация о диске — количество поверхностей, количество дорожек, количество секторов и т.д. Но не эта информация интересна, а небольшая загрузочная программа (BSP), которая должна загрузить саму операционную систему и дать ей управление. Итак, обычная схема бутстрапа выглядит следующим образом: EOR (ROM) — ПЗУ (диск) — СИСТЕМА.

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

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

Заразив дискету, вирус выполняет следующие действия:

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

Рассматривалась схема простого загрузочного вируса, который живет в загрузочных секторах дискет. Обычно вирусы способны заразить не только загрузочные сектора дискет, но и загрузочные сектора жестких дисков — жестких дисков. В отличие от дискет, на жестком диске есть два типа загрузочных секторов, содержащих программы загрузки, которые берут на себя управление. При загрузке компьютера с жесткого диска первый принимает управление загрузочной программой в MBR (Master Boot Record). Если жесткий диск разделен на несколько разделов, только один из них помечается как загрузочный (bootable). Программа MBR bootstrap находит загрузочный раздел на жестком диске и передает управление программе MBR bootstrap для этого раздела. Код последней аналогичен коду программы начальной загрузки, которая содержится на обычных дискетах, а соответствующие загрузочные сектора отличаются только таблицами параметров.

Поэтому существует два объекта для атаки загрузочного вируса на жесткий диск — загрузочный пусковой механизм MBR и программа загрузки загрузочного сектора.

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

Подпрограмма, называемая find file, указывает на каталог с исполняемыми файлами или программами на жестком диске, берет любое имя файла и присваивает этому файлу имя. В следующей строке программы используется псевдо-команда DOS LOAD, которая помещает файл в оперативную память компьютера.

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

Вставить подпрограмму заменяет выбранный оператор на другой (например, вызов подпрограммы). Замененный оператор передает управление в командный блок, который является основным телом подпрограммного вируса и добавляется в конце программы.

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

Признаки проявления вируса

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

Они могут включать в себя следующее:

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

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

Возможности защиты от компьютерных вирусов

Одним из важнейших методов борьбы с вирусами является своевременная профилактика.

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

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

Вы можете использовать его для защиты от вирусов:

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

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

Выделяются следующие типы антивирусных программ:

  • Программные детекторы;
  • докторские программы или полифаги;
  • аудиторы программы;
  • Фильтрующие программы;
  • программы вакцинации или средства иммунизации.

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

Докторские или страничные программы и викторины не только находят зараженные вирусами файлы, но и «лечат» их, т.е. удаляют тело вирусной программы из файла, тем самым возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в памяти, уничтожают их и только потом «исцеляют» файлы. К болезням относятся полифаги, т.е. медицинские программы, предназначенные для поиска и уничтожения большого количества вирусов. Самые известные из них: Тест на СПИД, сканирование, Нортонский антивирус, «Доктор Веб».

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

Антивирусный полифаги

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

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

В большинстве случаев подпись — это непосредственно кусок вирусного кода или его контрольная сумма (дайджест).

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

Вирусные программы сегодня намного сложнее. Например, появились так называемые «вирусы-невидимки». Они основаны на том, что операционная система использует механизм прерывания доступа к периферийным устройствам (включая жесткие диски). Здесь нам нужно сделать небольшое отступление от темы «Как работают прерывания». При возникновении прерывания управление передается специальной программе — «обработчику прерывания». Эта программа отвечает за ввод и вывод информации в/из периферийного устройства.

Кроме того, прерывания делятся на уровни взаимодействия с периферийными устройствами (в нашем случае — с жесткими и гибкими дисками). Есть уровень операционной системы (в среде MS-DOS — прерывание 25h), есть базовый уровень системы ввода/вывода (уровень BIOS — прерывание 13h). Опытные системные программисты также могут работать напрямую, получив доступ к портам ввода/вывода устройств. Но это довольно серьезная и трудная задача. Основной целью такой многоуровневой системы является поддержание переносимости приложений. Например, именно благодаря такой системе приложения DOS могут быть запущены в многозадачных средах, таких как MS Windows или IBM OS/2.

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

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

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

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

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

Обычно такие вариации создаются непрофессиональными программистами, которые почему-то решили написать вирус. Для борьбы с такими «копиями» были изобретены эвристические анализаторы. С их помощью антивирус может найти похожие аналоги известных вирусов и сообщить пользователю, что это вирус. Конечно, надежность эвристического анализатора не на 100%, но все же его КПД составляет более 50%. Вирусы, которые не обнаруживаются антивирусными детекторами, могут быть написаны только самыми опытными и квалифицированными программистами.

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

Конечно, вероятность как прыжков, так и ложных срабатываний очень высока. Но если эвристический механизм применен правильно, пользователь может самостоятельно сделать правильные выводы. Например, если антивирус генерирует подозрительное вирусное сообщение для одного файла, вероятность ложного срабатывания очень высока. Если это повторяется для многих файлов (и до того, как антивирус не нашел ничего подозрительного в этих файлах), то существует почти 100%-ная вероятность того, что система заражена вирусом. Самым мощным эвристическим анализатором на сегодняшний день является антивирус Dr.Web.

Использование эвристического анализатора позволяет, помимо всего вышеперечисленного, бороться с вирусными генераторами и полиморфными вирусами.

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

В простейшем случае — при случайном рассеянии неисполнимых, пустых операторов (таких как «mov ax», «ax» или «pore») в организм вируса, тело кода вируса претерпит значительные изменения, а алгоритм останется прежним. В этом случае пригодится и эвристический анализатор.

Аудиторская программа

Программы аудита являются одним из самых надежных средств защиты от вирусов.

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

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

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

Управление ОЗУ . Эта фаза проверки включает в себя процедуры по обнаружению следов активных загрузочных и скрытых вирусов в памяти компьютера. При обнаружении таких алгоритмов выдается соответствующее предупреждение. Обычно программа сначала сканирует на наличие известных вирусов. Затем программа проверяет, не изменился ли обработчик Intl3h. Если он изменился, то с вероятностью 90% можно сказать, что компьютер заражен загрузочным вирусом (загрузочные вирусы должны перехватить это прерывание, чтобы после активации передать управление «нормальному» загрузочному сектору и система загрузилась без сбоев). Инспектор выдает предупреждение об этом и сообщает адрес в памяти, где находится новый обработчик Intl3h. В принципе, информация о местонахождении обработчика необходима программистам и системным администраторам, а обычный пользователь должен прислушаться к предупреждению.

Даже если инспектор установлен на компьютер, уже зараженный вирусом, и реальный адрес обработчика Intl3h замаскирован вирусом, в 85% случаев инспектор может найти реальный адрес обработчика Intl3h в BIOS и работать с ним. Если по какой-то причине инспектор не смог узнать реальный адрес обработчика, то выдается предупреждение. Истинный адрес обработчика прерывания получается при пошаговом просмотре тела вируса (загрузочный вирус по своему алгоритму вынужден отказаться от управления исходным обработчиком).

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

Размер свободной оперативной памяти также является важным параметром. Обычно Инспектор запускается первым до загрузки каких-либо программ. Однако, если объем оперативной памяти уменьшается, то это является несомненным признаком наличия в оперативной памяти другой программы. Скорее всего, эта программа — вирус.

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

Для жесткого диска сначала загружается главная загрузочная запись (главная загрузочная запись или MBR).

Для обнаружения загрузочных вирусов необходимы некоторые разъяснения. Если система поражена загрузочным вирусом, этот вирус получает контроль, когда пытается загрузиться с пораженного диска. В этом и заключается риск возникновения вируса — если диск поражен, то контроль над вирусом передается каждый раз при включении компьютера. Загрузочные вирусы в чистом виде передаются только через дискеты, а заражение происходит при попытке загрузки с пораженного диска. Со временем использование дискет вообще и загрузочных дискет в частности было сведено к минимуму. Однако, метод контроля захвата оказался настолько практичным, что вирусы стали очень распространенными, способными заражать как файлы, так и загрузочные секторы. Попав на «чистый» компьютер, такие вирусы сначала попадают в основную загрузочную запись. Тем не менее, методы обнаружения загрузочных вирусов сегодня чрезвычайно эффективны и почти на 100% надежны.

Чтобы понять, как вирус обнаруживается, мы смотрим на ручное обнаружение такого вируса. Загрузимся с чистой дискеты (13-часовое прерывание гарантированно не будет перехвачено загрузочным вирусом) и посмотрим на сектор 0/0/1 жесткого диска (это физический адрес сектора основной загрузочной записи). Если жесткий диск (с fdisk) разделить на логические диски, то код занимает около половины сектора и начинается с байтов FAh33hCOh (вместо 33h иногда может быть 2Bh).

Код должен заканчиваться текстовыми строками типа «Пропущенная операционная система». Внешне рассеянные байты таблицы разделов размещаются в конце сектора. Активный раздел следует позаботиться о том, чтобы поместить его в таблицу разделов. Если операционная система находится на диске C, а раздел 2, 3 или 4 активен, вирус может изменить начальную точку, поместив себя в начало другого логического диска (туда же следует посмотреть). Это также может указывать на наличие на компьютере нескольких операционных систем и менеджера загрузки, позволяющего выборочную загрузку. Мы проверяем весь нулевой трек. Если он чистый, т.е. сектора содержат только байтовое заполнение, то все в порядке. Наличие мусора, копий сектора 0/0/1 и других может указывать на наличие загрузочного вируса. Однако при работе с загрузочными вирусами антивирусы «обезглавливают» только врага (восстанавливают исходное значение сектора 0/0/1). Проверяем загрузочный сектор MS-DOS, он обычно находится в секторе 0/1/1, а его внешний вид для сравнения можно найти на любой «чистой» машине. Программы мониторинга работают примерно так же.

Их особенность в том, что они не могут судить об исходной «чистой» оперативной памяти, поэтому Master Boot Record читается тремя разными способами:

  • (bios) — прямой доступ в BIOS;
  • (il3h) — чтение через BIOS прерывание Intl3h;
  • (i25h) — Считывание операционной системы (прерывание Int25h).

Если прочитанная информация не совпадает, алгоритм «стелс» принимает меры.

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

Аналогичным образом проверяется простой (не главный) загрузочный сектор.

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

Управление немодифицируемыми файлами . Завершающим этапом проверки, предназначенным для обнаружения активности файловых вирусов, является проверка изменений в файлах. Таблицы управления создаются для всех активно используемых файлов и не должны изменяться одновременно (обычно это программы типа win.com и т.д.). Они содержат значения контрольных сумм и размеров файлов. Для дальнейшего использования информация с дисков сравнивается со ссылкой, сохраненной в таблицах. Если информация не совпадает, то, скорее всего, в системе присутствует файловый вирус. Наиболее очевидным признаком является изменение размера или содержимого файла без изменения даты создания файла.

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

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

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

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

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

Это могут быть такие действия:

  • пытается исправить файлы с расширениями COM, EXE;
  • изменить атрибуты файла;
  • Прямая запись диска по абсолютному адресу;
  • в загрузочные секторы диска;
  • резидентская программа.

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

Чтобы уничтожить вирусы, вы должны использовать другие программы, такие как фаги. Среди недостатков защитных программ — их «раздражение» (например, они постоянно дают предупреждение о любой попытке копирования исполняемого файла) и возможные конфликты с другим программным обеспечением. Примером программы-фильтра является Vsafe, входящая в состав пакета утилит MS-DOS.

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

Существует целый ряд антивирусных программ.

Современные антивирусные программы состоят из модулей:

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

Антивирусное программное обеспечение

Антивирус Касперского. Антивирус Касперского 7.0 — это классическая защита компьютера от вирусов, троянов, шпионских и любых других вредоносных программ.

Программа состоит из следующих компонентов.

Файловый Антивирус — это компонент, который управляет файловой системой на вашем компьютере. Он проверяет все файлы, которые открыты, запущены и сохранены на вашем компьютере.

Компонент защиты от почтовых вирусов — сканирует все входящие и исходящие сообщения электронной почты с компьютера.

Веб-антивирус — это компонент, который перехватывает и блокирует выполнение скрипта, находящегося на сайте, если он представляет угрозу.

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

Три уровня защиты от известных и новых интернет-угроз: 1) проверка базы данных сигнатур, 2) эвристический анализатор, 3) блокиратор поведения.

Защита от вирусов, троянов и червей.

Защита от шпионских и рекламных программ.

Проверяйте файлы, почту и интернет-трафик в режиме реального времени.

Защита от вирусов при работе с ICQ и другими IM-клиентами.

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

Обнаружение всех типов руткитов.

Автоматическое базовое обновление.

АВАСТ! Антивирус avast! v. home edition 4.7 (бесплатная версия) русифицирован и имеет дружественный интерфейс, включает в себя резидентный монитор, сканер, средства для автоматического обновления базы данных и т.д.

Avast защита основана на использовании резидентных провайдеров, которые являются специальными модулями для защиты таких подсистем, как файловая система, электронная почта и т.д. Аваст! Резиденты-провайдеры: Перспектива/обмен, веб-экран, обмен мгновенными сообщениями, стандартный экран, P2P-экран, электронная почта.

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

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

Автоматическая автоматическая защита:

  • Обнаруживает и защищает ПК от всех типов вирусов, включая макро-вирусы, вирусы загрузочного сектора, вирусы-резиденты памяти и трояны, черви и другие вредоносные вирусы.
  • Защищает компьютер от вирусов, которые передаются через Интернет, сканируя все файлы, загруженные из Интернета.

СПИД-тест . Aidstest — это полифаговая программа предыдущего поколения. Первая версия, которая смогла обнаружить один вирус, была выпущена в 1988 году. Вскоре программа стала признанным лидером российского антивирусного рынка. Последняя версия Aidstest была выпущена осенью 1997 года и больше не поддерживается. Все вирусы, которые были частью вирусной базы данных AIDStest, теперь включены в сканер нового поколения компании «Доктор Веб».

Antivirus Toolkit Pro 3.0 . Одна из самых популярных программ в России. Эта антивирусная программа обновляется еженедельно, в ее базе данных более 30000 записей.

Данный программный продукт опубликован российской вирусной лабораторией Касперского. Его можно обновлять по сети. AVP является одним из ведущих провайдеров антивирусных программ на российском рынке, относится к классу детекторов-врачей, имеет «эвристический анализ». AVP уже получил более 10 международных наград. Ассортимент продукции:

ADinf Disk Antivirus Inspector для Windows . Одним из самых популярных инспекторов непрерывности для MS-DOS/Windows сред в нашей стране является Adinf, разработанный Дмитрием Мостовым. Среди преимуществ контроллера Adinf (Advanced Diskinfoscope) можно осуществлять контроль целостности не только программ, но и информационных файлов и работать с диском непосредственно по секторам путем прямого обращения к функциям BIOS без использования функций DOS. Этот метод проверки полностью исключает маскировку вирусов-невидимок и обеспечивает очень высокую скорость проверки.

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

При установке Adinf Inspector в файл AUTOEXEC.BAT добавляется строка его вызова, и при первом запуске инспектора генерируются следующие справочные характеристики компьютерной системы:

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

При следующем запуске Adinf выполнит проверку бенчмарка в следующем порядке:

  • проверяется размер занимаемой оперативной памяти и адрес обработчика прерываний;
  • Анализируются загрузочные записи основного и вторичного жесткого диска;
  • проверяет загрузочные сектора логических дисков на каждом жестком диске;
  • анализируется количество и адреса неисправных логических кластеров дисков.
  • проверяются деревья каталогов указанных логических дисков;
  • Проверяются характеристики и контрольные суммы файлов. Обнаруженные изменения анализируются, и если они безвредны, например, изменения даты и времени создания, Adinf помещает изменения в список, который можно просмотреть и принять. При возникновении подозрительных изменений аудитор предупреждает пользователя.

Среди подозрительных изменений можно назвать следующие:

  • изменить объем доступной оперативной памяти или адрес обработчика прерываний
  • Изменения в области систем жестких дисков;
  • появление новых кластеров возмущений;
  • изменить контрольные суммы указанных файлов;
  • изменить длину файла без изменения даты и времени изменения
  • изменение файлов со странными датой и временем модификации (например, 35 марта).

Новые вышедшие из строя кластеры могут появиться на диске после использования утилит проверки и восстановления дискового пространства, таких как NDD, ScanDisk, Calibrat и других, которые могут пометить даже нестабильные или вышедшие из строя кластеры как вышедшие из строя.

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

При обнаружении этих или других изменений необходимо определить их причину.

Если системная информация не была своевременно обновлена, ее необходимо обновить.

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

Оказалось, что стартовый адрес формируется до инициализации TLS/Dllmain и не возникает после инициализации ссылки на исходную точку входа, записанной в заголовке PE — система использует адрес, хранящийся в стеке, и этот адрес действительно может быть изменен. Антивирусы (не говоря уже об отладчиках), безусловно, не готовы к этому действию, и они просто теряют контроль над исполняемым файлом!

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

В ноябре 2008 года из всех существующих антивирусов только NOD32, F-Secure, Symantec, KAV, Dr.Web смогли обнаружить вирусы нового поколения, и это только после того, как был усовершенствован эмулятор среды Windows. Остальное никак не реагирует.

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

В конце февраля 2009 года Endeavor Security, Inc. работает над защитой AMP (Active Malware Protection — активная защита от вредоносного ПО) путем добавления перекрывающегося x86emu вместе с эмулятором для сред Windows, который «знает» о недокументированных возможностях системного загрузчика PE. Поэтому у AMP есть все шансы стать первым коммерческим продуктом, способным обнаружить новое поколение вирусов и не только обнаружить, но и заблокировать их.

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

Спецификация файла PE от Microsoft описывает специальное поле в заголовке PE, где хранится относительный виртуальный адрес (RVA) точки входа в файл, таким образом, как бы начинается выполнение файла. «Так сказать», потому что точка входа (она же «Точка входа») не первая, а последняя. Перед передачей управления в точку входа система загружает все статически связанные динамические библиотеки и вызывает функции Dllmain, которые выполняются в контексте загружающего их процесса и могут оказывать на него любое влияние. Обратный вызов TLS также получает контроль перед выполнением точки входа, которая может даже не существовать. Неужели! Если обратный вызов dllmain или TLS не возвращает контроль, то никому не нужно вызывать точку входа, и поэтому она может указывать на любой код.

Отладчики, антивирусы и другие программы, которые работают с анализом исполняемых файлов, останавливают точку входа в надежде, что она будет работать. Но это не сработает, если изменить адрес точки входа. Когда отладчик запускает процесс отладки и начинает его выполнять, первое, что запускается — это дартс, который система помещает в функцию NTDLL! В частности, прочитайте заголовок заземления и установите точку останова на точку останова. Дело в том, что операционная система никак не информирует отладчика о передаче управления на вход, и отладчик должен контролировать этот процесс самостоятельно.

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

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

Вирусы нового поколения добавляют значение ячейке памяти в области стека и возвращают управление системе. Человек с отладчиком теоретически может проверить тысячи машинных инструкций, которые отвечают за инициализацию файла и ожидание передачи управления в точку входа или, по крайней мере, в область памяти, которая не является частью системы, но находится в границах PE-файла или одной из его динамических библиотек. Тогда вы можете обнаружить, что каким-то волшебным образом точка входа не получает контроля! У антивирусов есть проблемы и похуже. Они не могут отследить код, запущенный на живой операционной системе.

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

  • проецирует PE-файл в память;
  • считывает заголовок PE, извлекает значение точки останова, которая является относительным виртуальным адресом (RVA), и преобразует его в линейный адрес (VA), добавляя базовый адрес, также сохраненный в заголовке PE;
  • В качестве одного из аргументов в функцию CreateRemoteThread() передается VA-адрес точки входа, так как 32-битные версии Windows используют соглашение stdcall для всех без исключения функций API (64-битные версии Windows используют соглашение быстрого вызова, где аргументы передаются через регистры, а стартовый адрес потока не попадает на стек);
  • начальный адрес базового потока (указывающий на точку входа) заталкивается в стек после прохождения всех тестов, и система больше не обращается к заголовку PE (очень важная точка!);
  • CreateRemoteThread() выполняет инициализацию потока, во время которой выполняются dllmain-функции статически связанных DLL и существующие обратные вызовы TLS (если таковые имеются);
  • В завершающей фазе инициализации PE-файла CreateRemoteThread() вызывает недокументированную, неэкспортированную, строго внутреннюю функцию BaseProcess() и передает ей в качестве аргумента стартовый адрес потока, отрисованного от стека;
  • BaseProcess() передает управление по указанному адресу.

Точкой входа является аргумент API функции CreateRemoteThread(), имеющей документированный прототип. Кроме того, этот аргумент падает на стек перед разработкой обратного вызова Dllmain/TLS и извлекается из стека после того, как они вернут контроль. Также не проверяется стартовый адрес потока, что означает, что Dllmain/TLS-callback может изменить стартовый адрес потока по своему усмотрению.

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

Заключение

IDS и IPS. Новое время требует новых решений. Для борьбы с червями лучше всего подходят системы обнаружения злоумышленников, системы обнаружения нарушителей или, в сокращенном виде, СОНП. В отличие от антивирусов и проактивных механизмов, работающих с файлами и худшими операционными системами, он постоянно засоряет систему. IDS работает с аппаратным обеспечением, обходит весь входящий и исходящий сетевой трафик и, используя специальную базу данных «правил» (фактически одни и те же сигнатуры), перехватывает подозрительные пакеты или обнаруживает определенную сетевую активность.

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

Список литературы

  1. Безруков Н.Н. «Классификация компьютерных вирусов MS-DOS и методы защиты от них», Москва, СП «МКО», 1990.
  2. Безруков Н.Н. «Компьютерные вирусы», Москва, Наука, 1994.
  3. Денисов Т.В. «Противовирусная защита» // Мой компьютер — №4-1995г.
  4. Мостовой, Д.Ю. «Современные технологии антивируса» // Мир ПК. — – №8. — – 1995.
  5. Ф. Бои, П. Джонстон, М. Кратц «Компьютерный вирус: проблемы и прогноз», Москва, «Мир», 1993.
  6. Компьютерная наука. Базовый курс / под ред. С.В. Симоновича. — Санкт-Петербург, 2000.
  7. Микляев А.П., Настольная книга пользователя ПК IBM 3-е издание М.: «Солон-Р», 2004, 720 с.
  8. Симонович С.В., Евсеев Г.А., Мураховский В.И. Купили компьютер: Полное руководство для начинающих в вопросах и ответах. — М.: АСТ-Пресс Бук; Информ-Пресс, 2005. — 544 с.: Шлик. (1000 советов).
  9. Ковтанюк США, Соловьян С.В. Учебник на персональном компьютере. — К.: Младший, 2006. — 560-е.