Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Тема 3.3. Самовоспроизводящийся код






В результате изучения данной темы Вы будете знать

ü где могут появиться компьютерные вирусы,

ü как вирусы распространяются в пределах одного компьютера,

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

 

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

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

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

- аппаратный код микропроцессора в операционных системах, разрешающих запись в исполнимые файлы других программ;

- аппаратный код микропроцессора в операционных системах, разрешающих передачу данных по компьютерной сети;

- макросы языка Visual Basic в среде Microsoft Office;

- скриптовые языки, исполняемые почтовыми программами.

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

В операционной системе MS-DOS исполнимыми файлами, в которых было возможно распространение вирусов, являются COM- и EXE- файлы и загрузочные области носителей информации (гибких и жестких магнитных дисков). В операционной системе Microsoft Windows самовоспроизводящийся код может располагаться в исполнимых файлах EXE (как прикладных, так и системных), а также в динамических DLL-библиотеках.

Внутренний формат EXE-файла практически неотличим от DLL-библиотеки. К отличиям относится то, что EXE-файл не имеет секции экспорта функций, а DLL-библиотека не имеет точки запуска приложения.

Принцип копирования своего собственного кода в другой файл изображен на рис. 3.3.1.

Рис.3.3.1. Распространение вирусов в исполнимых файлах

 

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

- полное сканирование каталогов;

- перехват обращений к файлам и каталогам.

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

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

Аппаратный код в системах, разрешающих передачу данных по сети, стал использоваться в качестве субстрата достаточно недавно с обнаружением многочисленных уязвимостей в сетевых сервисах. Однако, по Интернету уже прошли несколько волн подобных вирусов (CodeRed, Slammer), полностью парализовавших на несколько часов Интернет в достаточно крупных странах.

Вирус Slammer в пике своего распространения (10.02.2003) удваивал количество зараженных им компьютеров каждые 9 секунд. В США были парализованы сети Bank of America и Службы 911. Всего в мире было заражено 700.000 компьютеров.

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

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

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

- в среднем половину времени вирус пытается найти уязвимый компьютер " недалеко" от себя (с точки зрения пространства сетевых адресов);

- оставшуюся половину времени вирус перебирает в случайном порядке " далекие" сетевые адреса.

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

Рис.3.3.2.. Распространение вируса по глобальной компьютерной сети.

 

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

Подведем итоги

· самовоспроизводящийся вредоносный код (вирусы) – это программы, обладающие способностью увеличивать количество своих копий;

· необходимым требованием к размножению вирусов является возможность модифицировать исполнимый код других программ;

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

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

вопросы для самоконтроля

1. Что может послужить причиной проникновения вируса на компьютер?

2. Где в операционной системе Windows могут располагаться вирусы? 3. Как могут размножаться вирусы?

4. Каковы Ваши действия, если программа Microsoft Office выдала предупреждение о наличии макросов в открываемом документе...

a. и при этом Вы знаете, что полезные макросы в нем не использовались?

b. и при этом Вы не знаете, использовались ли в нем полезные макросы?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.