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

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

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

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

Файлы: 1 файл

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

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

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

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

Но существуют и более основательные решения, обладающие серьезным аналитическим компонентом, который уже сам может принимать часть решений без вмешательства пользователя. Возьму на себя смелость отнести часть функций файрволла к проативной защите(а в большинстве случаев они в полной мере обладают таковой). Как вы могли догадаться, это доступ интернет-приложений — даже если антивирус не смог обнаружить трояна, данная возможность просто-напросто заблокирует его работу с сетью, поэтому вся украденная информация не будет передана. В технологию создания проактивной защиты углубляться не буду — скажу лишь ключевую фразу, которую стоит ввести в поисковик, и он вам выдаст целую кучу статей по этому поводу. Перехват API-функций — на этот запрос вы получите нужные результаты. А теперь, как всегда, небольшая ложка дегтя в бочке меда. Т.к. технология относительно молода, в ее реализации очень часто допускаются грубые ошибки, что приводит к зависанию системы, или появлению BSOD (Blue Screen Of Dead), или даже порой встраиваются механизмы, способные отключить данный вид защиты. Как уже было сказано, подобную технику принято еще называть словом HIPS. Также существует некоторое ответвление этой технологии — Sandbox (от англ. «песочница») — хотя это является скорее логическим продолжением эмулятора, но полноценную реализацию подобной «песочницы» я встречал всего в одном антивирусе. Его разработчики пошли намного дальше остальных. Можно сказать, что они смогли сэмулировать работу операционной системы в защищенной среде, помещая в нее вирус и анализируя его поведение (копирование в системные папки, запись в реестр, попытка доступа к сети, активная запись в файлы и многое другое). Это способно не только пометить его как потенциальный вирус (не только трояны, но и все остальные классификации), но и даже определить его тип. 

Для людей, не знакомых с данным термином, попытаюсь доходчиво объяснить, что же из собой представляют руткиты. Как таковым вирусом их называть нельзя, т.к. они не обладают никакими деструктивными действиями, не размножаются, не крадут конфиденциальную информацию. Это лишь техника, применяемая для скрытого присутствия в системе. Как ни странно, но все HIPS'ы основаны именно на той технологии, которая изначально была заложена в руткиты. Так что же они делают? В первую очередь они способны скрывать файлы на жестком диске, ключи реестра, загруженные драйверы, процессы, сетевые подключения, входящий/исходящий трафик. Уже, наверно, стало очевидно, чем это грозит. Без специальных программ невозможно определить присутствие вирусов, использующих данный метод сокрытия, в системе (Rku, AVZ, GMER).

Каждый уважающий себя антивирус просто обязан иметь способы противодействия руткитам. Еще одним важным моментом является то, что обычно руткит-компонент находится в драйвере (об использовании драйверов я упоминал ранее), что позволяет ему работать в Ring0 (нулевое кольцо) - в этом режиме ему дозволено все... Конечно, антивирусы тоже прибегают к выходу в этот режим для противодействия руткитам, но, т.к. в этом режиме нет ограничений, то охота на руткит напоминает игру «кошки-мышки» - вирусописатели прибегают к недокументированным возможностям ОС, что прибавляет головной боли разработчикам антивирусов. Сами методы поиска никто не раскрывает, но, если хорошо поискать в интернете, можно обнаружить парочку способов. Обсуждать их все — тема отдельной статьи. Могу лишь сказать, что антивирусы с уверенностью справляются только с теми руткитами, которые используют стандартные технологии (на текущий момент существует очень много способов реализации этой техники), а ведь попадаются очень сложные случаи, которые гуляли в интернете очень долгое время, и при этом никем не были обнаружены (пример: семейство руткитов Rustok)6.

В последнее время вся индустрия создания вирусов перешла на коммерческую основу. Если раньше вирусы разрабатывались только за счет чистого энтузиазма, то теперь ситуация изменилась в корни. Файловые вирусы стали совсем невостребованными, т.к., кроме эстетического удовольствия и деструкции, ничего не несут. Поэтому возможность подхватить подобную разновидность вируса очень мала. Большую же популярность получили трояны. Их основная функция — кража каких-либо данных — например, паролей. На особом положении находятся DdoS- и Spam-боты. Это тоже целая индустрия, приносящая огромные доходы владельцам ботнет-сетей. В настоящее время обязанности в этой сфере строго распределены — те люди, которые создают троянов\ботов, сами ими не пользуются, а продают их. И цена зависит от полезной нагрузки. Также встречаются случаи разработки на заказ. А сейчас перейду к главному.

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

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

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

5.Классификация  антивирусных программ

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

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

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

  1. Стабильность и надежность работы.
  2. Размеры вирусной базы программы (количество вирусов, которые правильно определяются программой): с учетом постоянного появления новых вирусов база данных должна регулярно обновляться.
  3. Возможность программы определять разнообразные типы вирусов, и умение работать с файлами различных типов (архивы, документы).
  4. Наличие резидентного монитора, осуществляющего проверку всех новых файлов «на лету» (то есть автоматически, по мере их записи на диск).
  5. Скорость работы программы, наличие дополнительных возможностей типа алгоритмов определения даже неизвестных программе вирусов (эвристическое сканирование).
  6. Возможность восстанавливать зараженные файлы, не стирая их с жесткого диска, а только удалив из них вирусы.
  7. Процент ложных срабатываний программы (ошибочное определение вируса в «чистом» файле).
  8. Кроссплатформенность (наличие версий программы под различные операционные системы).

Классификация антивирусных программ:

  1. Программы-детекторы обеспечивают поиск и обнаружение вирусов в оперативной памяти и на внешних носителях, и при обнаружении выдают соответствующее сообщение. Различают детекторы:
  • универсальные - используют в своей работе проверку неизменности файлов путем подсчета и сравнения с эталоном контрольной суммы;
  • специализированные -  выполняют поиск известных вирусов по их сигнатуре (повторяющемуся участку кода).
  1. Программы-доктора (фаги) не только находят зараженные вирусами файлы, но и «лечат» их, т.е. удаляют из файла тело программы вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к «лечению» файлов. Среди фагов выделяют полифаги, т.е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов.
  1. Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора.
  2. Программы-фильтры (сторожа) представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться:
  • попытки коррекции файлов с расширениями СОМ и ЕХЕ;
  • изменение атрибутов файлов;
  • прямая запись на диск по абсолютному адресу;
  • запись в загрузочные сектора диска;
  • загрузка резидентной программы.

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

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

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