Материал из РУВИКИ — свободной энциклопедии

Сетевой червь

Hexdump Blaster-червя с посланием программиста к директору Microsoft Биллу Гейтсу.

Сетевой червь (нем. Computerwurm; в компьютерном контексте часто просто червь) — это разновидность вредоносных программ (программ или скриптов), обладающих способностью к самовоспроизведению после однократного запуска[1]. В отличие от компьютерных вирусов, черви распространяются самостоятельно, не заражая сторонние файлы или загрузочные секторы кодом программы[2].

Черви часто распространяются массовой рассылкой по электронной почте, через сети[3] или с помощью съёмных носителей[4], таких как USB-накопители. Обычно (но не всегда[5]) для распространения им требуется вспомогательная программа — сетевой сервис или прикладное программное обеспечение, выступающие интерфейсом к сети. Для съёмных носителей часто необходим сервис автоматического запуска Autorun, а иногда — использование активного рабочего стола Windows[6].

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

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

Отличие от вирусов и троянов

[править | править код]

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

Червь же распространяется иным способом, не заражая файлы или загрузочные области[3]. Обычно он использует существующую инфраструктуру для автоматизированного копирования себя на другие системы. Например, червь может отправлять себя ко всем адресатам в базе почтовой программы[8]. Иногда для запуска также требуется действие пользователя (например, открытие вложения), после чего цикл повторяется.

Троянская программа (или просто троян) — это программа или скрипт, маскирующийся под полезное ПО, но скрытно выполняющий вредоносные действия без ведома пользователя[9]. Пример — вредоносный файл с именем lustiger_Bildschirmschoner.exe, на деле стирающий данные. Ни один троян не способен к самостоятельному распространению.

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

Распространение

[править | править код]

Черви распространяются через компьютерные сети[3] и съёмные носители[4] (например, USB-накопители).

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

Автоматический запуск[править | править код]

Флоппи с исходным кодом Morris-червя в Музее истории компьютеров.

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

Morris-червь также показал возможность эксплуатации ошибок в ПО, чтобы создать не предусмотренное автоматизированное выполнение кода (например, эксплойт с переполнением буфера в файловом демоне finger)[11]. Пример — червь Blaster, использующий уязвимость в интерфейсе RPC/DCOM ОС Windows 2000/Windows XP для проникновения через сеть к уязвимым компьютерам.

Некоторые черви эксплуатируют уязвимости в приложениях, когда для повышения удобства из дизайна исключаются типовые ограничения безопасности — например, запуск вредоносного объекта, внедрённого в веб-страницу или письмо в HTML, без необходимости открывать вложение. Использование ActiveX, JScript или VBScript повышает удобство, но увеличивает риски. Новые версии ПО зачастую вновь блокируют эти функции, отдавая управление настройками пользователю; иногда источники разрешаются через цифровые сертификаты, однако ошибки в реализации могут позволить обойти защиту.

Ряд червей использует ошибки обработки вложений в старых версиях Microsoft Outlook Express: HTML-письма могут содержать вредоносные объекты, которые запускаются автоматически при чтении письма из-за уязвимости в парсере mshtml.dll. Подобные случаи были и с почтовым клиентом «Eudora».

Почтовые черви[править | править код]

Многие черви используют электронную почту — отправляя исполняемый файл либо ссылку на него. Рассылка может идти через управляющие уже установленные программы (Microsoft Outlook) или встроенный SMTP-модуль. Адреса получателей ищутся в адресных книгах или в различных файлах пользователя, а также — на специальных веб-сайтах. К известным примерам относятся Loveletter (май 2000), Netsky.

Черви мгновенных сообщений[править | править код]

Мессенджеры (WhatsApp, ICQ, MSN Messenger, Skype) уязвимы для вредоносных ссылок. Пострадавшему присылается ссылка на сайт, распространяющий червя; при переходе вредоносная программа загружается и используется для рассылки ссылок всем контактам пользователя.

IRC-черви[править | править код]

IRC-клиенты используют скрипты, выполняемые при запуске (например, для авторизации на сервере, отправки сообщений, передачи файлов). Червь находит скрипты, модифицирует их и распространяется среди участников чат-канала автоматически при запуске клиента. Известно не менее пяти поддерживаемых IRC-клиентов (mIRC, pIRCh, vIRC, dIRC, Xircon), для которых созданы такие черви.

P2P-черви[править | править код]

P2P-сети соединяют компьютеры напрямую без централизованных серверов (например, Kazaa, Morpheus, BitTorrent). P2P-черви:

  • Самостоятельно копируются в расшаренные папки, пользуясь притягательно правдоподобным названием;
  • Подсовывают заражённый файл в результаты поиска в P2P-сети;
  • Эксплуатируют уязвимости других клиентов сети для автоматизированного заражения.

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

Черви съёмных носителей[править | править код]

Съёмные носители (USB-накопители и пр.) заражаются червём без участия пользователя[4]. Отличие от предыдущих категорий — отсутствие необходимости использовать сеть. Распространение возможно через автозапуск[12] либо передачу файлов вручную[5] (раньше — через дискеты, сейчас такие черви малораспространены).

Черви USB-устройств[править | править код]

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

Черви для мобильных устройств[править | править код]

Первые черви для мобильных телефонов появились в июне 2004 года. Ведущим каналом заражения стал Bluetooth, поражающий в первую очередь смартфоны под Symbian OS. С 2005 года возможна передача вредоносного кода и через MMS. Антивирусные компании советуют отключать Bluetooth по умолчанию.

Существуют черви для GPRS/UMTS и Wi-Fi (например, Ikee и iPhone/Privacy.A для iOS с jailbreak, распространявшиеся в Австралии).

Пример: Почтовый червь и запуск пользователем

[править | править код]

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

Маскировка[править | править код]

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

  1. Вызвать интерес к вложению;
  2. Скрыть его опасность/истинное назначение.

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

Вторая — техника трояна: вложение выдаётся за безобидный файл.

Маскировка по тексту письма[править | править код]

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

Маскировка по типу вложения[править | править код]

Двойное расширение: многие почтовые клиенты для Windows скрывают расширения известных исполняемых файлов. Файл Musik.mp3.exe может отображаться как Musik.mp3, что затрудняет распознавание угрозы.

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

Возможна маскировка под неисполняемый тип с нехарактерным для него содержимым (например, вредоносный макрос в документе, сохранённом с расширением .rtf, распознаётся пакетом Office как документ Word и запускает макрос).

Компрессия (например, ZIP-архивы) и шифрование вложений затрудняют автоматическую проверку на вредоносное содержимое.

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

Использование редких исполняемых форматов (.com, .bat, .vbs, .scr, .lnk и др.) и намеренное смешение расширений, напоминающих веб-адреса.

Эксплойты и неисполняемые типы[править | править код]

Вредоносный код может быть внедрён в любой тип файла, если есть уязвимость (эксплойт) в программе-открыватели. Пример — возможность внедрения в изображение[13].

Исследование компании Sophos (2005): шанс заражения ПК c Windows XP без обновлений вредоносной программой при подключении к интернету — 50 % в течение 12 минут[14]. Наиболее опасны новые уязвимости, для которых нет обновлений.

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

Экономический ущерб[править | править код]

Финансовый ущерб от червей выше, чем от вирусов: массовая рассылка перегружает сеть и может вызвать отказ сервисов компаний. Известны случаи, когда цифровые табло аэропорта Вена-Швехат были выведены из строя червём Sasser[15], а SQL Slammer временно парализовал работу интернета в ряде регионов[16].

Вред могут причинять и мобильные черви, массово рассылающие дорогостоящие MMS, а также DDoS-атаки, как это было с червём Blaster против SCO и Microsoft[17].

Вознаграждение за поимку авторов[править | править код]

В 2003 году Microsoft учредила «Anti-Virus Reward Program» с фондом 5 миллионов долларов для содействия в поимке распространителей вирусов и червей. Совместно с Интерпол, FBI, Secret Service и др. на «лист разыскиваемых» попали создатели Blaster, Sasser, Netsky, Sobig.F. В 2004-м впервые автор был арестован благодаря этому вознаграждению[18].

Защита от сетевых червей

[править | править код]

Противодействие социальной инженерии[править | править код]

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

Антивирус[править | править код]

Антивирус может обнаруживать и блокировать известные вирусы, черви и трояны.

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

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

Антивирус через поиск по сигнатурам распознаёт только известное ПО, поэтому всегда возможна гонка между авторами малвари и производителями антивирусов. Некоторые вредоносные ПО умеют отключать антивирус или маскироваться (руткиты), поэтому идеальная проверка возможна только с загрузкой с независимого Live-CD.

Антивирус не гарантирует полное и безопасное удаление уже активного вредоноса (часто остаются следы или неизвестные доустанавливаемые модули). Более надёжный способ — восстановление системы из «чистого» образа.

Некоторые пользователи могут переоценить защиту, что приведёт к неосторожности[19].

Недостатки[править | править код]

Сложность антивируса сама по себе может привести к ошибкам[20], снижая производительность[21] и безопасность[22] системы.

Альтернативные методы удаления[править | править код]

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

Персональный брандмауэр[править | править код]

Персональный брандмауэр (desktop firewall) — программа для фильтрации и контроля доступов к сетевым сервисам локального ПК.

Входит в стандартную поставку многих ОС (в современных Windows — стандартно включается). Может препятствовать проникновению червей, если сетевой сервис доступен только в ограниченных пределах (например, внутри локальной сети).

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

Недостатки: возможны сбои в работе, уязвимости самой программы, замедление работы[24].

Альтернативы[править | править код]

Оптимально — отключение ненужных сетевых сервисов[25] и использование аппаратных роутеров в качестве барьера между ПК и сетью.

Ограничение прав и sandbox[править | править код]

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

Однако не всегда пользователь может полностью ограничить риски (например, отправка писем из-под учётки пользователя доступна и вредоносам).

Защита системного раздела от записи[править | править код]

Загрузка с защищённого от записи носителя предотвращает постоянное заражение системы червями (но не всегда защищает пользовательские данные).

В современных ОС возможны решения на основе виртуализации, наподобие Live-CD, либо использования сторонних фильтров (например, EWF для Windows XP).

Нематоиды[править | править код]

В 2005 г. исследователи Сьюзан Янг и Дэйв Айтел разработали концепцию «нематоидов» — программ, которые, используя те же уязвимости, что и черви, проникают в заражённые системы и уничтожают вредоносное ПО[26]. Подход не нов: в ARPANET для удаления червя Creeper применялся червь Reaper. Однако внедрение нематоидов в чужие системы сегодня является нарушением закона большинства стран.

В 2016-м нематоид предлагался для борьбы с ботнетом Mirai, вызвавшим крупнейшие массовые сбои в инфраструктуре[27].[28]

Уязвимости в приложениях[править | править код]

Сложные программы практически неизбежно содержат баги[20], которыми могут воспользоваться вредоносные файлы любого типа. Многие черви используют дыры в устаревших версиях программ; поэтому систему и ПО требуется регулярно обновлять и отключать нерелевантные сетевые сервисы.

Проверка исходного кода[править | править код]

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

Начало[править | править код]

  • 1971: Первый экспериментальный сетевой червь Creeper выходит из-под контроля в ARPANET — считается первым известным «боевым» червём и первой «дикой» малварью.
  • 1972: Reaper, второй червь, удаляет Creeper из заражённых машин, а затем удаляет себя — первый в мире пример антивирусной программы.
  • 1975: Понятие сетевого червя описано в романе Джона Браннера «Шоковый всадник», закрепив термин «червь» для саморазмножающихся программ.
  • 1987: XMAS EXEC временно парализует VNET корпорации IBM.
  • 1988: Роберт Моррис создаёт и запускает первый интернет-червь (Morris-червь) — поражено около 6000 систем (до 10 % тогдашнего Интернета).

До середины 1990-х распространение вирусов оставалось быстрее, чем червей, из-за недостаточного охвата интернета.

1990–2000 гг.[править | править код]

  • 1997: Первый почтовый червь ShareFun (WordBasic); первый IRC-червь (скрипт mIRC); первый FTP-червь Homer.
  • 1999: Всемирно распространённый макровирус Melissa (часто ошибочно принимаемый за почтового червя); появляются гибридные черви, способные к автозагрузке и самоуправляемому обновлению.
  • 2000: Вспыхивает эпидемия «Loveletter» — первый массовый почтовый червь, вызвавший бурный отклик прессы.

C 2001 года[править | править код]

  • 2001: Почтовые черви обзаводятся собственными SMTP-модулями, становятся независимы от клиента Outlook. Появляются черви для ICQ, P2P и IRC; массовый ущерб от Code Red (уязвимость в IIS). Появляются безфайловые черви (жизнь в ОЗУ). Появляются черви и для Linux (например, Ramen).
  • 2002: Linux-червь Slapper становится крупнейшим вредоносным для этой системы.
  • 2003: SQL Slammer стремительно поражает SQL-серверы. Развиваются черви с социальной инженерией и атакой массового сегмента (W32.Blaster для Windows).
  • 2004: Sasser атакует Windows, Mydoom замедляет доступ к сетевым ресурсам. Caribe впервые заражает смартфоны (Symbian OS, Bluetooth).
  • 2005: Commwarrior — первый червь, распространяющийся через MMS.
  • 2006: Первый известный червь для macOS (OSX/Leap-A, также известен как OSX/Oomp-A); червь для RFID-меток (создан группой профессора Эндрю Таненбаума).
  • 2008: Армия США запрещает USB-носители из-за распространения червя Agent.btz[30].
  • 2010: Stuxnet (эксплуатирует четыре нулевых уязвимости Windows, атакует SCADA системы Siemens, используется в кибердиверсии против ядерных объектов Ирана)[31].[32]

В популярной культуре

[править | править код]

Понятие сетевых червей популяризировано в романе Джона Браннера «Шоковый всадник» (1975).

Примечания

[править | править код]
  1. Определение: Сетевой червь (нем.). computerlexikon.com. Дата обращения: 25 июня 2024. Архивировано 25 февраля 2021 года.
  2. What is a worm? (англ.). symantec.com. Дата обращения: 25 июня 2024. Архивировано 24 ноября 2010 года.
  3. 1 2 3 Определение: Сетевой червь (нем.). wissen.de IT-Лексикон. Дата обращения: 25 июня 2024. Архивировано 14 апреля 2020 года.
  4. 1 2 3 Sophos предупреждает о новой семье червей, нацеленных на портативные устройства (нем.). info-point-security.com (3 марта 2012). Дата обращения: 25 июня 2024. Архивировано 3 марта 2012 года.; Downadup is a USB worm (англ.). f-secure.com (27 января 2009). Дата обращения: 25 июня 2024.; W32.USBWorm (англ.). spywareguide.com (май 2007). Дата обращения: 25 июня 2024.
  5. 1 2 W32/Trab.worm (англ.). McAfee (28 марта 2003). Дата обращения: 25 июня 2024.; W32/Winfig.worm (англ.). McAfee (4 октября 2001). Дата обращения: 25 июня 2024.
  6. Worm Propagation Via Floppies, Revisited (англ.). McAfee Labs Blog (12 декабря 2007). Дата обращения: 25 июня 2024.
  7. Computerviren (нем.). tu-muenchen.de (13 ноября 2002). Дата обращения: 25 июня 2024. Архивировано 7 декабря 2011 года.
  8. Описание работы почтового сетевого червя (нем.). viruslist.com. Дата обращения: 25 июня 2024. Архивировано 19 июня 2010 года.
  9. Трояны — как распознать замаскированное вредоносное ПО? (нем.). bsi.bund.de. Дата обращения: 25 июня 2024.
  10. Определение: Сетевой червь (нем.). masterscripts.de. Дата обращения: 25 июня 2024. Архивировано 7 декабря 2011 года.
  11. Из лекции «Angewandte IT-Sicherheit» (нем.). Университет Мангейма (2006). Дата обращения: 25 июня 2024. Архивировано 19 декабря 2006 года.
  12. When is AUTORUN.INF really an AUTORUN.INF? f-secure.com. Дата обращения: 25 июня 2024.
  13. Первый эксплойт для ошибки в опубликованном Windows-исходнике (нем.). zdnet.de (17 февраля 2004). Дата обращения: 25 июня 2024.
  14. Топ-10 вирусов первого полугодия 2005 (нем.). sophos.de (1 июля 2005). Дата обращения: 25 июня 2024.
  15. Sasser-червь: маленькая причина — большие последствия (нем.). wcm.at (4 мая 2004). Дата обращения: 25 июня 2024.
  16. Microsoft soll für Internet-Angriff zahlen (нем.), netzeitung.de (4 February 2003). Архивировано 11 марта 2012 года. Дата обращения: 25 июня 2024.
  17. Microsoft отразила атаку Lovsan/W32.Blaster (нем.). heise.de (16 августа 2003). Дата обращения: 25 июня 2024.
  18. Stern: Sasser — Wurm von der Wümme (нем.). stern.de. Дата обращения: 25 июня 2024.
  19. Scheinsicherheit von Virenscannern (нем.). scheinsicherheit.de. Дата обращения: 25 июня 2024. Архивировано 25 марта 2010 года.
  20. 1 2 Ошибки в сложном ПО и их последствия (нем.) (PDF). Wired (14 января 2007). Дата обращения: 25 июня 2024. Архивировано 23 марта 2019 года.
  21. Антивирус McAfee приводит к сбоям (нем.), Handelsblatt (23 April 2010). Дата обращения: 25 июня 2024.
  22. Уязвимость антивируса ClamAV (нем.). buerger-cert.de (26 апреля 2007). Дата обращения: 25 июня 2024. Архивировано 4 мая 2007 года.
  23. Personal Firewalls, Teil2 (нем.). copton.net. Дата обращения: 25 июня 2024. Архивировано 12 февраля 2010 года.
  24. Wurm Witty проникает через уязвимость в ISS (нем.). heise.de (22 марта 2004). Дата обращения: 25 июня 2024.
  25. win32sec (нем.). dingens.org. Дата обращения: 25 июня 2024. Архивировано 7 августа 2011 года.
  26. Susan Young, Dave Aitel. The Hacker's Handbook: The Strategy behind Breaking into and Defending Networks. — Auerbach Publications, 2005. — ISBN 0-8493-0888-7.
  27. DDoS-ботнет Mirai можно остановить, но это незаконно (нем.). heise.de (2 ноября 2016). Дата обращения: 25 июня 2024.
  28. DDoS-атака парализовала Twitter, Netflix, PayPal и другие (нем.). heise.de (21 октября 2016). Дата обращения: 25 июня 2024.
  29. Open-source IRC-сервер UnrealIRCd с бэкдором (нем.). heise.de (12 июня 2010). Дата обращения: 25 июня 2024.
  30. US-армия: запрет USB после атаки червя (нем.). gulli.com (21 ноября 2008). Дата обращения: 25 июня 2024.
  31. Windows-LNK-уязвимость обостряет положение (нем.). heise.de (20 июля 2010). Дата обращения: 25 июня 2024.
  32. Троянец Stuxnet: совершен первый цифровой киберудар (нем.), Frankfurter Allgemeine Zeitung (22 September 2010). Дата обращения: 25 июня 2024.

Литература

[править | править код]
  • Джон Биггс. Black Hat – Misfits, Criminals, and Scammers in the Internet Age. Apress, Беркли, 2004. ISBN 1-59059-379-0 (на англ.)
  • Ральф Бургер. Das große Computer-Viren-Buch. Data Becker, Дюссельдорф, 1989. ISBN 3-89011-200-5.
  • Петер Сзор. The Art Of Computer Virus Research And Defense. Addison-Wesley, 2005. ISBN 0-321-30454-3 (на англ.)