К сетевым червям относятся вредоносные программы

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

Мы займемся тем, что разделим вредоносное ПО как таковое на классы и виды.

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

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

Сетевые черви

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

Лекция 1: Классификация вредоносных программ. Методы защиты

А случаи появления по-настоящему достойных экземпляров червей, которые действительно исправно выполняли бы свои вредоносные функции, сведены к минимуму. Взять хотя бы бюллетень безопасности Лаборатории Касперского за первое полугодие 2006 г. (см. рис. 1). Из диаграммы хорошо видно, какая из групп вредоносного ПО преобладает. Ну да ладно, речь идет о сетевых червях.

Сетевой червь — это вредоносный программный код, распространяющий свои копии по локальным или/и глобальным сетям с целью проникновения на компьютер-жертву, запуска своей копии на этом компьютере и дальнейшего распространения. Для распространения черви используют электронную почту, isq, p2p- и irc-сети, lan, сети обмена данными между мобильными устройствами.

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

Почтовые черви (email-worm). Данный класс сетевых червей использует для распространения электронную почту. При этом червь отправляет жертве письмо с прикрепленным телом кода либо в письме присутствует ссылка на ресурс (естественно, зараженный). Для отправки сообщений червями используются следующие способы: прямое подключение к smtp-серверу, используя встроенную в код червя почтовую библиотеку; использование сервисов ms outlook; использование функций windows mapi.

Как быстро проверить компьютер на вредоносные программы

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

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

Черви в irc-каналах (irc-worm). Черви этого класса используют два вида распространения: посылание пользователю url-ссылки на файл-тело; отсылку пользователю файла (при этом пользователь должен подтвердить прием).

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

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

Прочие сетевые черви (net-worm). Существуют прочие способы заражения удаленных компьютеров — например: копирование червя на сетевые ресурсы; проникновение червя на компьютер через уязвимости в операционных системах и приложениях; проникновение в сетевые ресурсы публичного использования; паразитирование на других вредоносных программах.

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

Классические вирусы

  • внешние носители информации;
  • интернет ресурсы;
  • файлы, распространяющиеся по сети (lan, internet).

Троянские программы

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

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

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

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

Интернет-кликеры (trojan-clicker). Данное семейство троянских программ занимается организацией несанкционированных обращений к интернет- ресурсам путем отправления команд интернет-браузерам или подмены системных адресов ресурсов. Злоумышленники используют данные программы для следующих целей: увеличение посещаемости каких-либо сайтов (с целью увеличения количества показов рекламы); организация атаки на сервис; привлечение потенциальных жертв для заражения вредоносным программным обеспечением.

Читайте также:
Характеристика 7 класса для рабочей программы

Загрузчики (trojan-downloader). Эти трояны занимаются несанкционированной загрузкой программного обеспечения (вредоносного) на компьютер ничего не подозревающего пользователя. После загрузки программа либо инсталлируется, либо записывается трояном в автозагрузку (это в зависимости от возможностей операционной системы).

Установщики (trojan-dropper). Эти устанавливают на компьютер-жертву программы — как правило вредоносные. Анатомия троянцев этого класса следующая: основной код, файлы. Основной код собственно и является троянцем. Файлы — это программа/ы, которая/ые он должен установить. Троянец записывает ее/их в каталог (обычно временных файлов) и устанавливает.

Установка происходит либо незаметно для пользователя, либо с выбросом сообщения об ошибке.

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

Ш пионские программы (trojan-spy). Данные трояны осуществляют шпионаж за пользователем: записывание информации, набранной с клавиатуры, снимки экрана и т.д. В данной категории также присутствуют «многоцелевые» троянские программы — например, те из них, которые одновременно шпионят за пользователем и предоставляют proxy-сервис удаленному злоумышленнику.

Сокрытие присутствия в операционной системе (rootkit). Понятие rootkit пришло к нам из unix. Первоначально это понятие использовалось для обозначения набора инструментов, применяемых для получения прав root.

Так как инструменты типа rootkit на сегодняшний день «прижились» и на других ОС (в том числе на windows), следует признать подобное определение rootkit морально устаревшим и не отвечающим реальному положению дел. Таким образом, rootkit — программный код или техника, направленная на сокрытие присутствия в системе заданных объектов (процессов, файлов, ключей реестра и т.д.). Для поведения rootkit в классификации «Лаборатории Касперского» действуют правила поглощения: rootkit — самое младшее поведение среди вредоносных программ. То есть, если rootkit-программа имеет троянскую составляющую, то она детектируется как trojan.

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

Встречаются три типа подобных «бомб»: некорректный заголовок архива, повторяющиеся данные и одинаковые файлы в архиве. Некорректный заголовок архива или испорченные данные в архиве могут привести к сбою в работе конкретного архиватора или алгоритма разархивирования при разборе содержимого архива. Значительных размеров файл, содержащий повторяющиеся данные, позволяет заархивировать такой файл в архив небольшого размера (например, 5 Гб данных упаковываются в 200 Кб rar- или в 480 Кб zip-архив). Огромное количество одинаковых файлов в архиве также практически не сказывается на размере архива при использовании специальных методов (например, существуют приемы упаковки 10100 одинаковых файлов в 30 Кб rar- или 230 Кб zip-архив).

Оповещение об атаке, увенчавшейся успехом (trojan-notifier). Троянцы данного типа предназначены для сообщения своему «хозяину» о зараженном компьютере. При этом на адрес «хозяина» отправляется информация о компьютере — например, его ip-адрес, номер открытого порта, адрес электронной почты и т.п. Отсылка осуществляется различными способами: электронным письмом, специально оформленным обращением к веб-странице «хозяина», icq-сообщением. Данные троянские программы используются в многокомпонентных троянских наборах для оповещения «хозяина» об успешной инсталляции троянских компонент в атакуемую систему.

Прочие вредоносные программы

К прочим вредоносным относятся разнообразные программы, не представляющие угрозы непосредственно компьютеру, на котором исполняются, а разработанные для создания других вирусов или троянских программ, организации dos-атак на удаленные серверы, взлома других компьютеров и т.п. . Сетевые атаки (dos, ddos). Эти «утилиты» используются нарушителями для организации атак на отказ в обслуживании. При выполнении атаки в адрес жертвы отправляется большое количество пакетов, в результате оборудование не справляется, и наступает так называемый «висюк». Программы данного класса бывают двух видов: первый — атака производится с компьютера злоумышленника по его приказу; второй — осуществляется распределительная атака путем заражения компьютеров (такой компьютер называется компьютером-зомби), пользователь работает в сети и при этом не подозревает, что его компьютер — учасник распределительной атаки, направленной на отказ в обслуживании.

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

«Замусоривание» сети (flood). Забивание интернет-каналов бесполезной информацией.

Конструкторы (constructor). Софт, использующийся, как правило, малограмотными людьми, т.к. позволяют наиболее просто создавать троянские программы и т.д. Люди знающие обычно пишут свои;)).

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

Введение пользователя в заблуждение (bad-joke, hoax). Это, в общем-то, и вредоносной программой назвать нельзя. Это программка, которая заставляет пользователя испытать страх, эквивалентный тому, который он ощущает при виде надписи типа: «warning! system has bin delete», ну, или что-то в этом роде.

Шифровальщики вредоносного ПО (filecryptor, polycryptor). Это хакерские утилиты, которые занимаются тем, что скрывают другое вредоносное ПО от антивирусных программ.

«Полиморфы» (polyengine). Этих вирусами можно назвать тоже с натяжкой, ведь, в принципе, в их коде не заложены действия на размножение, порчу информации и т.д. Но все же.

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

Источник: webanetlabs.net

Классификация вредоносных программ Сетевые черви

Сетевой червь — это вредоносный программный код, распространяющий свои копии по локальным или/и глобальным сетям с целью проникновения на компьютер-жертву, запуска своей копии на этом компьютере и дальнейшего распространения. Для распространения черви используют электронную почту, isq, p2p- и irc-сети, lan, сети обмена данными между мобильными устройствами.

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

Почтовые черви. Данный класс сетевых червей использует для распространения электронную почту. При этом червь отправляет жертве письмо с прикрепленным телом кода либо в письме присутствует ссылка на ресурс. Для отправки сообщений червями используются следующие способы: прямое подключение к smtp-серверу, используя встроенную в код червя почтовую библиотеку; использование сервисов ms outlook; использование функций windows mapi.

Читайте также:
Что такое программа дискриминации

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

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

Черви в irc-каналах. Черви этого класса используют два вида распространения: посылание пользователю url-ссылки на файл-тело; отсылку пользователю файла (при этом пользователь должен подтвердить прием).

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

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

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

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

Источник: studfile.net

Реферат: Сетевые черви

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

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

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

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

Червь состоит из двух основных функциональных компонентов: атакующего блока и блока поиска целей.

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

□ Блок поиска целей (локатор) собирает информацию об узлах сети, а затем на основании этой информации определяет, какие из исследованных узлов обладают теми уязвимостями, для которых хакер имеет средства атаки.

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

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

Рис. 24.5. Экспансия червя в сети

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

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

Локатор идентифицирует цели по адресам электронной почты, IP-адресам, характеристикам установленных на хостах операционных систем, номерам портов, типам и версиям приложений.

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

Помимо почтовых адресов, локатор может найти на узле базирования другие источники информации, такие как таблицы конфигурационных параметров сетевых интерфейсов, ARP-таблицы и таблицы маршрутизации. Зная IP-адреса хоста базирования и шлюзов, локатор достаточно просто может определить IP-адреса других узлов этой сети. Для идентификации узлов локатор может также использовать ICMP-сообщения или запросы ping, указывая в качестве адресов назначения все возможные IP-адреса. Для определения того, какие приложения работают на том или ином хосте, локатор сканирует различные хорошо известные номера TCP- и UDP-портов. Определив тип приложения, локатор пытается получить более детальные характеристики этого приложения.

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

GET / HTTP/1.1rnrn

Узел, на котором установлен сервер Apache, отвечает на такой запрос так, как и рассчитывал разработчик червя, то есть сообщением об ошибке, например, это может быть сообщение такого вида:

Читайте также:
Какие значения примут переменные c и d в результате выполнения программы program vvv1

НТТР/1.1 400 Bad Request

Date: Mon, 23 Feb 2004 23:43:42 GMT

Server: Apache/1.3.19 (UNIX) (Red-Hat/Linux) mod_ssl/2.8.1

0penSSL/0.9.6 DAV/1.0.2 PHP/4.0.4pll mod_perl/1.24_01

Connection: close

Transfer-Encoding: chunked

Content-Type: text/html; charset=iso-8859-1

Из этого ответа локатор узнает о том, что на узле установлен веб-сервер Apache версии 1.3.19. Для червя этой информации может быть достаточно, чтобы внести данный узел в число целей.

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

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

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

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

Рис. 24.6. Схема атаки на уязвимость ошибки переполнения буфера: а — структура адресного пространства программы до поступления злонамеренного запроса; б — после поступления злонамеренного запроса

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

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

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

Помимо локатора и атакующего блока червь может включать некоторые дополнительные функциональные компоненты.

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

□ Блок управления жизненным циклом может ограничивать работу червя определенным периодом времени.

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

Вирусы

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

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

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

Рис. 24.7. Различные варианты расположения кода вируса в зараженных файлах

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

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

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

Источник: ronl.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru