Вредоносные программы: понятие, признаки, классиикация

Автор работы: Пользователь скрыл имя, 23 Ноября 2014 в 15:43, курсовая работа

Описание работы

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

Файлы: 1 файл

вредоносные программы.docx

— 98.22 Кб (Скачать файл)

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

Корпоративные системы электронной почты доставляют много хлопот системным администраторам. Приведу следующий пример. Не так давно появился один из самых известных «мнимых» вирусов — вирус Good Times. Предполагалось, что он распространяется с помощью сообщений электронной почты. Вирусу приписывались самые невероятные способности. В частности, указывалось, что он «…разрушает центральный процессор с помощью использования бесконечного цикла n-ой степени сложности». Так как многие пользователи не понимают, как распространяются вирусы, то вирус Good Times довольно скоро стал известен во всем мире. На самом деле обычные текстовые сообщения электронной почты не могут содержать никаких вирусов. Дело в том, что текстовые сообщения относятся к файлам данных, которые не являются программами и не могут выполняться на машине. Как мы помним, вирусы могут заражать только исполняемые программы (не считая макровирусов). То же самое можно сказать практически обо всех сообщениях электронной почты. Однако у вас, наверное, уже случались такие ситуации, когда файл с данными на самом деле оказывался исполняемым файлом. Некоторые Web-броузеры и диалоговые служебные программы (вроде America Online) выполняют программы сразу после их загрузки.

Гораздо чаще пользователям приходится иметь дело с пересылкой файлов данных текстовых процессоров (например, документы Microsoft Word). Однако благодаря недавним разработкам в области текстовых процессоров эти файлы перестали быть просто файлами данных. В большинстве случаев такие файлы содержат внедренные макрокоманды, с помощью которых можно существенно ускорить работу. На самом деле макрокоманда является некоторой разновидностью программ. Благодаря этому стало возможным создание макровирусов. Макровирус -это макрокоманда, которая воспроизводит себя в каждом новом документе. Большинство современных макровирусов не представляют собой большой опасности. Однако потенциально они обладают огромными возможностями. Дело в том, что макрокоманды обладают доступом к набору операций, с помощью которых можно производить различные (в том числе и разрушительные) действия в системе. Например, с помощью макрокоманды можно удалить с жесткого диска системные файлы.

Примерная схема заражения пользователей сайта:

Вирус - эксплойт внедряется в браузер пользователя(находит уязвимость).

На компьютер «жертвы» (компьютер пользователя на который происходит атака) устанавливается троянская программа-загрузчик.

Троянская программа-загрузчик подгружает основное вредоносное ПО (может состоять из нескольких троянских программ разных классов).

При заражении сайта, вирус наносит серьёзнейший ущерб репутации сайта и его владельцам.

Как избежать заражения сайта:

  • Существенно снизить риск заражения вирусами можно, соблюдая простые правила безопасности;
  • Не передавайте пароли посторонним лицам;
  • Если Вы по необходимости передали пароль постороннему лицу (например, разработчику сайта), немедленно после окончания работ измените пароль;
  • Меняйте пароли на ftp и к панели управления, даже если не было признаков компрометации пароля и каждый раз в случае компрометации пароля (то есть в ситуации, когда пароль стал известен или мог стать, известен посторонним лицам, в том числе - при увольнении работника);
  • Никогда не вводите пароль с чужих компьютеров, особенно - с компьютеров в Интернет-кафе и в других публичных местах доступа;
  • Установите на своих компьютерах антивирусное программное обеспечение  (Антивирус), регулярно обновляйте его, ограничьте число компьютеров, с которых осуществляется работа с сайтом;
  • Ограничьте права доступа к файлам Вашего сайта: нормальный режим доступа к файлам -  в обозначениях unix, то есть полный доступ только для владельца, всем остальным - только чтение;
  • Установка таких прав снизит опасность заражения через уязвимости.
  1. Схема заражения пользователей сайта

4

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

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

Далее приводятся действия вируса, проникшего в ЕХЕ-файл:

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

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

3. Вирус копирует свое  тело в файл. Размер вируса  и внесенных им изменений в  заголовок файла составляют сигнатуру  вируса.

4. Вирус снова записывает  информацию заголовка в программу. Теперь заголовок содержит информацию  о месте, занимаемом вирусом.

5. Вирус сохраняет измененную  программу на диске,

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

4.Методы борьбы  с вредоносными программами

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

А теперь, собственно, попытаюсь изложить суть этого старого, но достаточно действенного метода обнаружения вирусов. Представьте, что вы являетесь следователем, прибывшим на место преступления. С чего начинается каждое расследование? Правильно, с поиска отпечатков пальцев! Думаю, для вас не является секретом, что отпечатки пальцев каждого человека уникальны, и шансы встретить подобные отпечатки пальцев у других людей стремятся к нулю. Зная, кому принадлежат эти отпечатки, мы с легкостью можем вычислить преступника. На схожем принципе и основан так называемый «сигнатурный» поиск вирусов.

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

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

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

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

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

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

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

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

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

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

Информация о работе Вредоносные программы: понятие, признаки, классиикация