От Brain до Stuxnet: избранная история вредоносного ПО
В этом разделе мы сосредоточимся на истории и развитии вредоносного ПО и хакинга в целом. Мы приведем отдельные исторические примеры и прокомментируем закономерности и тенденции.
Примеры вредоносного ПО
Вредоносное ПО появилось раньше коммерческого и широко распространенного интернета. Brain, первый вирус для ПК, где операционной системой была MS-DOS, был написан в январе 1986 года. Вирус заражал загрузочный сектор дискет. Если дискета находилась в ПК во время загрузки, компьютер того времени сначала пытался загрузиться с дискеты, а уже затем переходил к жесткому диску, если он был установлен. Загрузка с дискеты позволяла вирусу попасть в память и воспроизвести себя, если в компьютер вставляли новую дискету. Исходная версия вируса не наносила намеренного ущерба, хотя код содержал ошибки, и часть пользовательской информации могла быть уничтожена, если дискета была слишком заполнена. Более того, создатели вируса включили в код свои имена и номера телефонов. По оценкам, Brain и его варианты заразили более 300 000 дискет.
Другим заметным ранним вирусом для ПК был Jerusalem, обнаруженный в 1987
году. Вместо заражения загрузочного сектора программа заражала каждый
исполняемый файл, за исключением command.com, оболочки MS-DOS, который
пользователь запускал, пока Jerusalem находился в памяти. Заражение работало
за счет изменения кода программы: когда пользователь запускал программу, вирус
сначала загружал себя в основную память и подключался к низкоуровневым
командам, а затем позволял исходной программе выполниться. Благодаря
подключению к низкоуровневым командам код вируса вызывался, например, каждый
раз, когда пользователь открывал новый исполняемый файл. Jerusalem был
логической бомбой: он срабатывал при выполнении определенных условий. Если
дата была пятницей 13-го, вирус удалял любой исполняемый файл, запущенный в
этот день.
Одним из первых червей и первым червем, вышедшим за пределы "контейнирования", был червь Morris worm (1988), названный по имени своего создателя. Разница между червем и компьютерным вирусом несколько размыта, поскольку существует много вредоносного ПО, сочетающего оба аспекта. Обычно вирусу требуется программа-хост, к которой он прикрепляется, а червь является независимой скрытой программой. Кроме того, вирусу часто требуется действие пользователя, например открытие исполняемого файла, тогда как червь в основном опирается на ошибки и уязвимости в ПО.
Червь обычно распространяется через компьютерную сеть, заражая хост и сканируя новые цели. Morris worm распространялся, используя известные уязвимости нескольких программ UNIX, а также слабые пароли пользователей. По словам Морриса, червь не должен был причинять вред. Однако недостаток проектирования приводил к тому, что одна и та же машина заражалась несколько раз и становилась неработоспособной до удаления червя. Червь заразил значительную часть подключенных UNIX-машин, из-за чего интернет оказался разделен на несколько дней.
В 1989 году был обнаружен троян под названием AIDS. Трояны, в отличие от вирусов и червей, не воспроизводят себя. Вместо этого они скрывают свое истинное назначение внутри программы, которую пользователи добровольно запускают. AIDS — первая известная программа-вымогатель: после истечения определенного времени она шифровала жесткий диск и требовала платеж в размере $189 на почтовый ящик в Панаме. Троян содержал ошибку проектирования, поэтому файлы можно было восстановить без выплаты выкупа. Современные программы-вымогатели обычно требуют оплату в трудно отслеживаемой цифровой валюте, например в биткоинах.
Ранние вирусы для ПК основывались на выполнении кода, то есть прикреплялись к исполняемому файлу или загрузочному сектору. Первый макровирус Concept был обнаружен в 1995 году и заражал документы Microsoft Word. Концепция макровируса стала возможной благодаря значительным возможностям сценариев в программах Microsoft Office. Это привело к существенному росту числа макровирусов, поскольку теперь вирусы могли распространяться через документы, особенно как вложения электронной почты.
Первый почтовый вирус/червь/троян Happy99 появился в январе 1999 года. Вирус состоял из троянского исполняемого файла, который при запуске показывал анимацию фейерверка и прикреплялся к существующей библиотеке Windows. При определенных условиях он затем рассылал себя дальше по электронной почте на новую машину. В мае 2000 года интернет-червь ILOVEYOU заразил более 10 миллионов пользователей Windows. Червь представлял собой письмо с просьбой открыть вложение "LOVE-LETTER-FOR-YOU.txt.vbs". В то время расширения файлов, такие как "vbs", были скрыты от пользователя, поэтому казалось, что вложенный файл является текстовым. Открытие файла запускало сценарий Visual Basic, перезаписывавший случайные файлы и отправлявший копию самого себя всем из адресной книги.
Ранние вирусы уделяли мало внимания сокрытию от антивирусного ПО, но современны е вирусы часто используют сложные техники скрытности. Например, вирус может быть полиморфным, то есть менять свой бинарный код без изменения поведения. Первым полиморфным вирусом был 1260, созданный как демонстрация технологии. Известным примером неакадемического ПО был Mutation Engine (MtE), написанный Dark Avenger. Само по себе это ПО не является вирусом, но может использоваться как модуль-дополнение, шифрующий полезную нагрузку, то есть фактический код вируса, так, чтобы она выглядела как случайный байт-код. Это сильно затрудняет обнаружение традиционным антивирусным ПО на основе сигнатур.
Вирусы и черви также могут наблюдать за компьютером и предпринимать действия, когда обнаруживают, что их сканируют. Например, Fizzer завершал известные антивирусные процессы. Интересным случаем была программа-вымогатель WannaCry, которая шифровала данные жертвы и требовала оплату в биткоинах. Исходный вариант вируса содержал механизм аварийно го отключения: он проверял, существует ли определенный домен. Только если домен не существовал, червь продолжал распространяться. Исследователи антивирусов смогли замедлить распространение вируса, просто купив доменное имя. Хотя неизвестно, зачем создатели включили этот механизм, одна правдоподобная теория состоит в том, что это было сделано для замедления анализа экспертами по безопасности. При исследовании вирусы запускают в среде-"песочнице", чтобы вирус не мог нанести внешний ущерб. В такой среде интернет имитируется, и в результате каждое доменное имя считается действительным. Предполагаемая логика механизма такова: если конкретный домен, которого не должно существовать, существует, то мы, вероятно, находимся в среде-"песочнице", поэтому должны оставаться неактивными.
Хакинг
Полезно различать целевую атаку безопасности против одного субъекта и кампанию вредоносного ПО. У них есть общие технические компоненты, поскольку они используют одни и те же уязвимости для достижения своей цели. Кроме того, вредоносное ПО использовалось для целевых атак. Однако цель целевой атаки состоит в том, чтобы проникнуть в одну систему, тогда как кампания вредоносного ПО обычно стремится распространиться как можно шире. Целевая атака интерактивна: хакер исследует систему в реальном времени, ища слабое место. Типичной целью хакера является компания, учреждение или публичная фигура, например знаменитость, политик или журналист. Однако целевые атаки на компании влияют и на обычных людей, если в процессе крадутся персональные данные, например пароли, электронные письма, фотографии или номера кредитных карт.
Ранним заметным примером хакинга было манипулирование телефонными сигналами, известное как phone phreaking. Телефонная система в 1950-1970-х годах использовала одни и те же линии как для разговора, так и для управляющих сигналов. Хакеры выяснили, как манипулировать этими управляющими сигналами, что, среди прочего, позволяло бесплатно совершать междугородние звонки. Один из ранних phone phreak, Джо Энгрессия, обнаружил, что свист тоном 2600 Hz влияет на телефонные коммутаторы. Джон Дрейпер использовал игрушечный свисток из упаковки сухого завтрака для генерации 2600 Hz и манипулирования телефонными коммутаторами. Были построены более сложные генераторы тонов, известные как blue boxes. Среди энтузиастов blue boxes были Стив Возняк и Стив Джобс, которые позже основали Apple.
Основная причина, по которой phone phreaking был возможен, состоит в том, что управляющие сигналы и пользовательские данные, то есть разговор, использовали один и тот же канал связи. Отсутствие очистки пользовательских данных позволяло хакерам манипулировать программой, которая обрабатывала данные, в данном случае телефонными коммутаторами. Похожие упущения отвечают за значительную часть исторических и современных уязвимостей в компьютерных системах. Самые известные примеры: SQL-инъекция и переполнение буфера.
Хакеры использовали и продолжают использовать уязвимости ПО для проникновения в различные системы. Однако роль социальной инженерии в хакинге трудно переоценить: человеческий фактор большую часть времени является самым слабым звеном, например из-за слабого пароля или из-за обмана, заставляющего передать конфиденциальную информацию злоумышленнику. В качестве примера посмотрите выступление Кевина Митника. Целевые атаки часто включают сочетание социальной инженерии и эксплуатации слабых мест. Некоторые атаки социальной инженерии могут быть чрезвычайно сложными, из-за чего их трудно распознать, что демонстрирует Кевин Митник в том же выступлении.
Продвинутые устойчивые угрозы
Если ранние хакеры обычно были молодыми людьми, которые занимались хакингом "как хобби", то сегодня существует несколько хакерских групп, обладающих значительными ресурсами, навыками компьютерного взлома и временем. Таких субъектов часто называют продвинутыми устойчивыми угрозами (advanced persistent threats, APT), и часто утверждается, что они финансируются государствами. Нужно подчеркнуть, что государства никогда не подтверждают свою связь с APT-группой. Любую такую связь заявляют либо другие государства, либо эксперты по кибербезопасности. Мы рассматриваем эти предполагаемые связи как таковые, без дальнейших спекуляций.
Заметные примеры действий APT включают:
- APT1, китайская группа кибершпионажа
- Guccifer 2.0, хакерская группа, ответственная за кибератаку на Democratic National Committee в США; утверждается, что она поддерживалась российским правительством.
- Lazarus Group, хакерская группа, ответственная за взлом Sony Pictures в ответ на фильм "The Interview", с возможными связями с Северной Кореей.
- Stuxnet — значимый и чрезвычайно сложный компьютерный червь, разработанный для атаки на иранский объект по обогащению ядерного топлива; широко считается, что он был создан США и Израилем.
Тенденции и закономерности
Можно наблюдать несколько тенденций и закономерностей в том, как кибербезопасность развивалась с годами.
Внедрение новой технологии обычно создавало новые возможности для атак: двухтональная сигнализация в телекоммуникационных системах привела к phone phreaking, макроязыки в документах привели к макровирусам, а разрешение хранить и изменять пользовательский контент через веб-серверы значительно увеличило поверхность атаки. Смартфоны и интернет вещей не являются исключением.
Раннее вредоносное ПО было примитивным из-за характера его создателей, а также из-за других технических ограничений. Современное вредоносное ПО может быть сложным программным обеспечением, содержащим механизмы противодействия обнаружению. Кроме того, инструменты для создания вредоносного ПО с годами улучшились.
Поверхность атаки постоянно меняется. Обнаруживаются новые уязвимости, а старые уязвимости исправляются. Также с годами изменились мотивы создания вредоносного ПО. Например, несколько лет назад компьютеры захватывали для майнинга биткоинов, но это в значительной степени прекратилось, поскольку использование обычных компьютеров для майнинга биткоинов больше невыгодно.
Современная защита кибербезопасности сосредоточена не только на обнаружении вредоносного ПО, но и на ограничении человеческого фактора. Это включает распознавание фишинговых писе м и вредоносных сайтов, требования к паролям, двухфакторную аутентификацию и запрет пользователям иметь права администратора на рабочих компьютерах. Историческим изменением, которое сегодня воспринимают как само собой разумеющееся, стало внедрение удобного для пользователя способа установки исправлений ПО: раньше пользователь должен был вручную искать, скачивать и устанавливать исправление, что приводило к большому числу необновленных компьютеров.
Если ранние создатели вредоносного ПО и хакеры занимались этим как хобби, то сегодня киберпреступность стала более организованной, с ресурсами и целью заработать деньги.
Не забудьте проверить свои бал лы в индикаторе в правом нижнем углу материала!