1. Эпоха вирусов и червей: механизмы самораспространяющегося кода от дискет до глобальных сетей
Эпоха вирусов и червей: механизмы самораспространяющегося кода от дискет до глобальных сетей
В 1986 году два брата из Пакистана, Амджад и Базит Фарук Алви, решили наказать тех, кто копировал их медицинское программное обеспечение без лицензии. Они создали Brain — первый вирус для IBM PC, который подменял загрузочный сектор дискеты своим кодом. Братья не планировали уничтожать данные; они даже оставили свои имена и номера телефонов в коде, чтобы «пострадавшие» могли обратиться за лечением. Однако этот эксперимент открыл ящик Пандоры. Оказалось, что программный код может вести себя как биологический организм: проникать в систему, закрепляться в ней и бесконтрольно размножаться, используя ресурсы носителя.
Анатомия первых угроз: от загрузочных секторов к файлам
В досетевую эпоху основным вектором заражения был физический контакт. Компьютеры представляли собой изолированные острова, а «мостиками» между ними служили пятидюймовые дискеты. Чтобы понять, как работали первые вирусы, необходимо вспомнить архитектуру загрузки ПК того времени.
При включении компьютер обращался к первому сектору дискеты — Boot-сектору, где находились инструкции по запуску операционной системы. Вирусы, подобные Brain или более позднему Michelangelo, записывали себя именно туда. Когда пользователь вставлял зараженную дискету и перезагружал компьютер, вирус первым делом попадал в оперативную память, а затем инфицировал любую новую дискету, вставленную в дисковод.
Механизм закрепления и маскировки
Первые вирусы использовали две основные стратегии выживания:
.EXE и .COM. Вирус дописывал свой код в начало или конец файла, изменяя точку входа (Entry Point). При запуске программы сначала отрабатывал вредоносный код, а затем управление передавалось основной программе.> «Вирус — это программа, которая может инфицировать другие программы, модифицируя их так, чтобы они включали в себя её (возможно, эволюционировавшую) копию». > > Фред Коэн, «Компьютерные вирусы — теория и эксперименты», 1984
Одной из самых известных угроз начала 90-х стал вирус Michelangelo. Он был запрограммирован на «логическую бомбу»: 6 марта, в день рождения великого художника, вирус затирал первые сто секторов жесткого диска нулями, превращая данные в цифровой мусор. Это был период «вандального» мошенничества — авторы чаще стремились к деструкции или славе, чем к прямой финансовой выгоде.
Великий переход: сетевые черви и эффект масштаба
Ситуация радикально изменилась с появлением локальных сетей и интернета. Если вирусу требовался носитель (человек, переносящий дискету или файл), то червь (worm) — это автономная сущность. Ему не нужно прикрепляться к существующему файлу; он использует сетевые уязвимости для самостоятельного перемещения с одного узла на другой.
Первым серьезным потрясением стал Червь Морриса (1988). Роберт Моррис, аспирант Корнеллского университета, написал программу, которая должна была «измерить размер интернета». Однако из-за ошибки в коде червь заражал один и тот же компьютер многократно, полностью парализуя его работу избыточными процессами.
Технический инструментарий червей
Для распространения черви использовали (и используют до сих пор) три ключевых метода:
* Переполнение буфера (Buffer Overflow): классическая атака, при которой программе отправляется больше данных, чем она может обработать. Излишек данных «выливается» в соседние области памяти, где может находиться исполняемый код. Червь Морриса использовал уязвимость в сервисе fingerd именно таким образом.
* Слабые пароли и перебор (Brute Force): черви сканировали сеть в поисках компьютеров с открытыми портами (например, Telnet или RSH) и пытались войти, используя список стандартных паролей.
* Использование почтовых клиентов: на рубеже 90-х и 2000-х черви начали эксплуатировать человеческий фактор и особенности ПО (например, макросы в Microsoft Word).
Кейс: Червь Melissa и концепция макровирусов
В 1999 году вирус Melissa продемонстрировал, как можно объединить техническую уязвимость и простейшую социальную инженерию. Это был документ Word, присланный по почте. При открытии документа макрос (встроенный скрипт автоматизации) рассылал копию этого же документа первым 50 адресатам из адресной книги Outlook пользователя.
Скорость распространения была экспоненциальной. Если в сети узлов, и каждый зараженный узел передает код другим, то количество заражений растет как . В случае с Melissa , что привело к остановке почтовых серверов крупнейших корпораций (Microsoft, Intel, Lucent) всего за несколько часов.
Глобальные катастрофы: Code Red и SQL Slammer
К началу 2000-х интернет стал критически важной инфраструктурой, и черви превратились в оружие массового поражения.
В июле 2001 года появился Code Red. Он атаковал веб-серверы Microsoft IIS. Его особенность заключалась в том, что он был «бесфайловым» — существовал только в оперативной памяти. После заражения определенного количества машин червь запускал DDoS-атаку на сайт Белого дома. Это был важный этап эволюции: вредоносное ПО стало использоваться как инструмент политического давления и кибервойны.
Еще более впечатляющим был SQL Slammer (2003). Этот червь имел размер всего 376 байт. Он помещался в один UDP-пакет. Благодаря своей компактности и отсутствию необходимости в подтверждении доставки (особенность протокола UDP), он поразил 75 000 серверов за 10 минут. Скорость была настолько высокой, что глобальный интернет-трафик замедлился, а в некоторых регионах (например, в Южной Корее) доступ в сеть пропал полностью.
Для корпоративного сектора эти инциденты стали сигналом: традиционные антивирусы, работающие по принципу сравнения файлов с базой сигнатур, больше не справляются. Если угроза живет только в памяти или распространяется быстрее, чем антивирусная лаборатория успевает выпустить обновление, нужны иные методы защиты.
Эволюция защиты: от сигнатур к эвристике и сетевой гигиене
В эпоху дискет защита была реактивной. Вы находили вирус, изучали его уникальный код (сигнатуру) и добавляли его в базу «черного списка». Но вирусы начали мутировать.
Полиморфизм и метаморфизм
Чтобы обмануть антивирусы, авторы вредоносного ПО внедрили полиморфизм. Полиморфный вирус состоит из зашифрованного тела и расшифровщика. При каждом новом заражении расшифровщик меняет свой вид (используя разные наборы инструкций, которые делают одно и то же), что делает старую сигнатуру бесполезной.
Математически это можно представить как функцию , где результат работы программы остается неизменным, но сама структура кода меняется при каждой транзакции.
Более сложная форма — метаморфизм, где вирус полностью переписывает свой код, меняя порядок функций, вставляя «мусорные» инструкции (NOP-ы) и переназначая регистры процессора.
Смена парадигмы безопасности в компаниях
Опыт борьбы с червями 90-х и 2000-х сформировал базовые принципы, которые сегодня лежат в основе корпоративной кибербезопасности:
Наследие первой эпохи
Хотя сегодня мы чаще слышим о краже данных и шифровальщиках, механизмы самораспространения, отточенные в 80-90-х годах, никуда не исчезли. Они стали «транспортной системой» для более сложных атак. Современный ботнет — это, по сути, глобальный червь, который не уничтожает компьютер, а тихо включает его в армию зомби-машин для последующих краж или атак.
Понимание того, как код может автономно перемещаться по сети, используя ошибки в архитектуре ПО, — это первый шаг к построению глубокой защиты. В следующей части мы разберем, как мошенники поняли, что гораздо проще взломать не компьютер, а человека, и как зародилась индустрия фишинга.