Опишите общее описание вирусов историю возникновения

Обновлено: 24.04.2024



Теория самовоспроизводящихся автоматов

Программа Creeper

Вирус Rabbit

Первый троянец

Согласно сайту Fourmilab, первый троянец по названием ANIMAL (хотя есть споры относительно того, были ли это действительно троянец или просто вирус) был разработан компьютерным программистом Джоном Уолкером в 1975 г. В то время были очень популярны компьютерные игры, в которых пользователь загадывал какое-нибудь животное, а программа должна была его угадать за 20 вопросов. Уолкер написал одну из таких игр, и она стала популярной. Чтобы поделиться ее со своими друзьями, Уолкер записывал и передавал ее на магнитной ленте. Чтобы упростить эту процедуру, Уолкер создал программу PERVADE, которая устанавливалась на компьютер вместе с игрой ANIMAL. Пока пользователь играл в игру, PREVADE проверял все доступные пользователю директории на компьютере, а затем копировал ANIMAL во все директории, где этой программы не было. Вредоносной цели здесь не было, но ANIMAL и PREVADE подпадают под определение троянца: по сути, внутри программы ANIMAL была запрятана другая программа, которая выполняла действия без согласия пользователя.

Вирус загрузочного сектора Brain

Вирус ILoveYou

Червь Code

Червь Code Red был так называемым бестелесным червем – он существовал только в памяти и не предпринимал попыток заразить файлы в системе. Используя брешь в системе безопасности Microsoft Internet Information Server, червь всего за несколько часов распространился по всему миру и вызвал хаос, внедряясь в протоколы обмена информацией между компьютерами.

Как пишет сайт Scientific American, зараженные компьютеры в итоге были использованы для проведения DDoS-атаки на веб-сайт Белого дома – Whitehouse.gov.

Heartbleed

Будущее компьютерных вирусов

На протяжении уже более 60 лет компьютерные вирусы находятся в сфере коллективного человеческого сознания. То, что однажды было лишь кибер-вандализмом, быстро превратилось в киберпреступление. Быстро развиваются черви, троянцы и вирусы. Хакеры мотивированы и умны, они всегда стремятся тестировать на прочность системы и код, расширять границы доступных им методов и изобретать новые способы заражения. В будущем киберпреступники, вероятно, будут чаще взламывать PoS-терминалы – в качестве хорошего примера можно привести недавний троянец удаленного доступа Moker. Этот новый троянец сложно обнаружить, тяжело удалить – он обходит все известные механизмы защиты. Ничего не известно наверняка; постоянные перемены – в самой природе постоянной борьбы между киберпреступниками и системами защиты.


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

Краткий обзор


1. Вирусы

2. Черви

3. Рекламное ПО

4. Шпионское ПО

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

5. Программы-вымогатели

Программы-вымогатели заражают ваш компьютер, затем шифруют конфиденциальные данные, например, личные документы или фотографии, и требуют выкуп за их расшифровку. Если вы отказываетесь платить, данные удаляются. Некоторые типы программ-вымогателей могут полностью заблокировать доступ к вашему компьютеру. Они могут выдавать свои действия за работу правоохранительных органов и обвинить вас в каких-либо противоправных поступках. В июне 2015 года в Центр приёма жалоб на мошенничество в Интернете при ФБР обратились пользователи, сообщившие о финансовых потерях на общую сумму 18 000 000 долларов в результате деятельности вируса-вымогателя CryptoWall.

6. Боты

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

7. Руткиты

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

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

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

9. Баги

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

Мифы и факты

Существует ряд распространенных мифов, связанных с компьютерными вирусами:

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

Tweet: Как правило, вредоносное ПО не оставляет следов, и ваша система не будет показывать каких-либо признаков заражения. Твитни это!

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

Стандартные методы заражения

Признаки заражения

Хотя большинство вредоносных программ не оставляет никаких явных следов, и ваш компьютер работает нормально, иногда все же можно заметить признаки возможного заражения. Самый первый из них - снижение производительности, т.е. процессы происходят медленные, загрузка окон занимает больше времени, в фоновом режиме работают какие-то случайные программы. Еще одним настораживающим признаком может считаться измененных домашних интернет-страниц в вашем браузере или более частое, чем обычно, появление всплывающих объявлений. В некоторых случаях вредоносное ПО даже может влиять на базовые функции компьютера: не открывается Windows, нет подключения к Интернету или доступа к более высокоуровневым функциям управления системой более высокого уровня. Если вы подозреваете, что ваш компьютер может быть заражен, немедленно произведите проверку системы. Если заражение не обнаружено, но вы все еще сомневаетесь, получите второе мнение - запустите альтернативный антивирусный сканер.

Компьютерные вирусы и вредоносное ПО: факты и часто задаваемые вопросы

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


Какими бывают вирусы?

Worms или черви

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

Trojans или троянцы

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

Rootkits или маскировщики

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

Zombies или зомби

Spyware или шпионы

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


Adware или рекламные вирусы

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

Winlocks или блокировщики

Один из самых неприятных типов вирусов, парализующий работу ПК появлением окна, которое невозможно закрыть без перезагрузки. Блокировщики выводят на экран информацию, что необходимо сделать пользователю, чтобы создатель вируса разблокировал его компьютер. В 100% случаев это платёжные данные злоумышленника, но не торопитесь отправлять деньги — блокировку вам никто не снимет.

Bootkits или загрузочные вирусы

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

Последние угрозы

Современные вирусы пишутся уже не только для ПК, но и для устройств под управлением Android, iOS и других мобильных ОС. Однако принцип их действия всё тот же, и в целом они укладываются в приведённую выше классификацию.

Кибепреступники по-прежнему используют любую возможность причинить вред другим в корыстных целях. Вот и недавно объявленная пандемия COVID-19 стала почвой для злоумышленников, стремящихся завладеть пользовательскими ценными данными. Так, в марте было запущено новое приложение, ворующее данные пользователей под видом приложения от ВОЗ по короновирусу. Запуская его, активируется троянец, который начинает собирать и пересылать своему создателю информацию об аккаунтах пользователей.

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

Из других интересных новостей отметим 26 марта 2020 похищение одним из хакеров исходных кодов новых графических процессоров AMD. В сети появилось объявление от хакера о том, что он выложит эту информацию в открытый доступ, если не найдёт покупателя. Кроме этого, была обнаружена группа злоумышленников, разработавшая буткит Milum, который предоставляет своим владельцам полный доступ к заражённым хостам сайтов.

Легенды со знаком минус

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

Одним из самых долгоиграющих вирусов, который распространяется до сих пор, является буткит Backdoor.Win32.Sinowal. Этот загрузочный вирус прописывается в систему и берёт управление ей на себя, причём на уровне секторов диска. Этот вирус похищает даже ключи шифрования и отправляет разработчику личные данные, а также данные от аккаунтов пользователей. Подсчитать точный ущерб от него пока не представляется возможным, однако учитывая, что несколько лет антивирусные программы были не в состоянии даже обнаружить этого вредителя (Backdoor.Win32.Sinowal был разработан в 2009 году), то потери пользователей могут исчисляться многими миллионами и даже миллиардами долларов.

Король электронного спама Festi, запущенный в 2009 году, ежедневно рассылал около 2,5 миллиардов имейлов с 250 тысяч айпи, то есть генерировал 25% всего мирового спама. Чтобы затруднить распознавание, разработчики снабдили свою вредоносную программку шифрованием, так что сигнатурный поиск антивирусными программами становится бесполезным и выручить может только глубокое сканирование. Распространяется этот вирус через установку платного кода (PPI), когда вебмастер получает деньги за то, что кто-то скачал файл с его сайта.

Настоящим кошмаром для банкиров стал вирус Carbanak, который в 2014 году нанёс ущерб российским, американским, швейцарским, голландским, японским и украинским банкам на общую сумму 1 миллиард долларов. Carbanak действовал медленно, но уверенно, сначала собирая данные рядовых сотрудников банков, к которым попадал через вложения в электронных письмах, а затем внедряясь в верха и выводя крупные суммы. От проникновения в систему банка до успешного вывода могло пройти от 2 до 4 месяцев.

Как не заразить свой компьютер вирусами?

Переходим к рубрике Капитана очевидность :)

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

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

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

Файлы из сторонних источников следует проверять на соответствие расширению — например, двойное расширение почти наверняка говорит о том, что перед нами программа-вирус, поэтому не забудьте включить в Windows отображение расширений. Также заведите привычку обязательно проверять все скачанные файлы антивирусной программой и не открывайть те файлы, в безопасности которых вы не уверены. Сканировать, кстати, нужно и подключаемые накопители USB.


Безвредные вирусы — такое тоже бывает

Были в истории компьютерных вирусов и примеры забавных безвредных программ, которые технически являлись вирусами, но никакого ущерба пользователям при этом не наносили. Так, ещё в 1997 году был разработан вирус HPS, который был ориентирован на временное изменение графические bmp-файлов, которые могли отображаться в перевёрнутом или отражённом виде, что, правда, могло доставлять неудобства пользователям старых версий Windows, ведь они были построены с использованием как раз bmp-графики. Впрочем, никакого реального ущерба HPS не наносил, поэтому его с полным основанием можно назвать безвредным шуточным вирусом.

Червяк Welchia претендует на звание самого полезного в истории: эта появившаяся в 2003 году программка после автоматической загрузки через сеть проверяла наличие заражения ПК опасным сетевым червём (программа была написана для устранения червя Blaster w32.blaster.worm, другое название — LoveSan), удаляла его и также в авторежиме пыталась установить обновления для Windows, закрывающие сетевые уязвимости. После успешного выполнения всех этих действий Welchia… самоудалялся. Правда, с Welchia тоже не всё было гладко — дело в том, что после установки обновлений Windows червь отдавал команду на принудительную перезагрузку ПК. А если в это время пользователь работал над важным проектом и не успел сохранить файл? Кроме того, устраняя одни уязвимости, Welchia добавлял другие — например, оставлял открытыми некоторые порты, которые вполне могли использоваться затем для сетевых атак.


Поговорим о компьютерных вирусах? Нет, не о том, что вчера поймал ваш антивирус. Не о том, что вы скачали под видом инсталлятора очередного Photoshop. Не о rootkit-e, который стоит на вашем сервере, маскируясь под системный процесс. Не о поисковых барах, downloader-ах и другой малвари. Не о коде, который делает плохие вещи от вашего имени и хочет ваши деньги. Нет, всё это коммерция, никакой романтики…

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

Мы будем говорить о вирусах, живущих в исполняемых файлах форматов PE и ELF, то есть о вирусах, тело которых представляет собой исполняемый код для платформы x86. Кроме того, пусть наш вирус не будет уничтожать исходный файл, полностью сохраняя его работоспособность и корректно инфицируя любой подходящий исполняемый файл. Да, ломать гораздо проще, но мы же договорились говорить о правильных вирусах, да? Чтобы материал был актуальным, я не буду тратить время на рассмотрение инфекторов старого формата COM, хотя именно на нем были обкатаны первые продвинутые техники работы с исполняемым кодом.

Начнём со свойств кода вируса. Чтобы код удобней было внедрять, разделять код и данные не хочется, поэтому обычно используется интеграция данных прямо в исполняемый код. Ну, например, так:


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

  • Куда положить вирус? Необходимо найти достаточно места, чтобы вирус туда поместился, записать его туда, по возможности не разломав файл и так, чтобы в области, в которой вирус окажется, было разрешено исполнение кода.
  • Как передать управление на вирус? Просто положить вирус в файл недостаточно, надо еще совершить переход на его тело, а после завершения его работы вернуть управление программе-жертве. Или в другом порядке, но, в любом случае, мы же договорились не ломать ничего, да?

Исполняемый файл (PE или ELF) состоит из заголовка и набора секций. Секции – это выровненные (см. ниже) буферы с кодом или данными. При запуске файла секции копируются в память и под них выделяется память, причем совсем необязательно того объёма, который они занимали на диске. Заголовок содержит разметку секций, и сообщает загрузчику, как расположены секции в файле, когда он лежит на диске, и каким образом необходимо расположить их в памяти перед тем, как передать управление коду внутри файла. Для нас интересны три ключевых параметра для каждой секции, это psize, vsize, и flags. Psize (physical size) представляет собой размер секции на диске. Vsize (virtual size) – размер секции в памяти после загрузки файла. Flags – атрибуты секции (rwx). Psize и Vsize могут существенно различаться, например, если программист объявил в программе массив в миллион элементов, но собирается заполнять его в процессе исполнения, компилятор не увеличит psize (на диске содержимое массива хранить до запуска не нужно), а вот vsize увеличит на миллион чего-то там (в runtime для массива должно быть выделено достаточно памяти).

Флаги (атрибуты доступа) будут присвоены страницам памяти, в которые секция будет отображена. Например, секция с исполняемым кодом будет иметь атрибуты r_x (read, execute), а секция данных атрибуты rw_ (read,write). Процессор, попытавшись исполнить код на странице без флага исполнения, сгенерирует исключение, то же касается попытки записи на страницу без атрибута w, поэтому, размещая код вируса, вирмейкер должен учитывать атрибуты страниц памяти, в которых будет располагаться код вируса. Стандартные секции неинициализированных данных (например, область стека программы) до недавнего времени имели атрибуты rwx (read, write, execute), что позволяло копировать код прямо в стек и исполнять его там. Сейчас это считается немодным и небезопасным, и в последних операционных системах область стека предназначена только для данных. Разумеется, программа может и сама изменить атрибуты страницы памяти в runtime, но это усложняет реализацию.

Также, в заголовке лежит Entry Point — адрес первой инструкции, с которой начинается исполнение файла.

Необходимо упомянуть и о таком важном для вирмейкеров свойстве исполняемых файлов, как выравнивание. Для того чтобы файл оптимально читался с диска и отображался в память, секции в исполняемых файлах выровнены по границам, кратным степеням двойки, а свободное место, оставшееся от выравнивания (padding) заполнено чем-нибудь на усмотрение компилятора. Например, логично выравнивать секции по размеру страницы памяти – тогда ее удобно целиком копировать в память и назначать атрибуты. Даже вспоминать не буду про все эти выравнивания, везде, где лежит мало-мальски стандартный кусок данных или кода, его выравнивают (любой программист знает, что в километре ровно 1024 метра). Ну а описание стандартов Portable Executable (PE) и Executable Linux Format (ELF) для работающего с методами защиты исполняемого кода – это настольные книжки.

  • поставить указатель точно на начало какой-нибудь инструкции (просто так взять рандомное место в исполняемой секции и начать дизассемблирование с него нельзя, один и тот же байт может быть и опкодом инструкции, и данными)
  • определить длину инструкции (для архитектуры x86 инструкции имеют разные длины)
  • переместить указатель вперед на эту длину. Мы окажемся на начале следующей инструкции.
  • повторять, пока не решим остановиться
  1. Выбираем вкусный исполняемый файл (достаточно толстый, чтобы в него поместилось тело вируса, с нужным распределением секций и т.п.).
  2. Читаем свой код (код тела вируса).
  3. Берем несколько первых инструкций из файла-жертвы.
  4. Дописываем их к коду вируса (сохраняем информацию, необходимую для восстановления работоспособности).
  5. Дописываем к коду вируса переход на инструкцию, продолжающую исполнение кода-жертвы. Таким образом, после исполнения собственного кода вирус корректно исполнит пролог кода-жертвы.
  6. Создаем новую секцию, записываем туда код вируса и правим заголовок.
  7. На место этих первых инструкций кладем переход на код вируса.

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

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

  • сокрытие кода самого вируса;
  • сокрытие его точки входа.

Сокрытие точки входа (Entry Point Obscuring) в результате послужило толчком для появления в вирусных движках автоматических дизассемблеров для определения, как минимум, инструкций перехода. Вирус старается скрыть место, с которого происходит переход на его код, используя из файла то, что в итоге приводит к переходу: JMP, CALL, RET всякие, таблицы адресов и т.п. Таким образом, вирус затрудняет указание смещения сигнатуры.

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

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

image

Сейчас существуют миллионы вирусов, распространяющихся через интернет всякими путями – файловые раздачи, e-mail, сайты. Когда всё связано со всем, вирусы распространяются быстро. Защита от вирусов – прибыльный бизнес.

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

Первый вирус для Mac был написан в качестве подростковой шутки. Первый вирус для PC был сделан для борьбы с пиратством.

Elk Cloner

image

В 1981 году Ричард Скрента был в 9 классе. Он был очень умным хулиганом, вооружённым компьютером Apple II. Больше всего он любил издеваться над сверстниками по поводу их пиратских компьютерных игр. В 2000 году в интервью он сказал:

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

В итоге друзья перестали подпускать Скренту к своим дискетам. Ему перестали одалживать игры, все перестали играть в его игрушки, и т.п. Но он не угомонился. Он начал штудировать инструкции и описания, пытаясь отыскать дыру в безопасности Apple II. И он придумал способ выполнять код, не притрагиваясь к дискетам.

Вирус немного мешал работе компьютера, а на 50-й запуск вместо запуска программы выводил целую поэму на экран:

Elk Cloner: программа, обладающая личностью

Пролезет на ваши диски
Проникнет на ваши чипы
Да, это Клонер!
Прилипнет, словно клей
Оперативку вашу подправит
Пришлите Клонера скорей.

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

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

Brain

image

Первым распространившимся вирусом для IBM PC стал вирус Brain. Он тоже селился в загрузочном секторе. Он был написан братьями Базитом и Амжадом Фарук Альви из Пакистана в 1986 году. Им было 17 и 24 года.

В заголовке были указаны реальные контакты. Когда кто-либо звонил им за помощью, они могли идентифицировать пиратскую копию. Также вирус подсчитывал количество сделанных копий.
Они обнаружили, что пиратство было широко распространено, и копии их программ распространялись очень далеко. Амжад говорит, что первый их звонок поступил из США, Майами.

image


Братья Альви в 2011 году

Это был первый из множества звонков из США. Проблема оказалась в том, что Brain распространялся и по другим дискетам, а не только по копиям их программы. В Университете Делавера даже случилась эпидемия этого вируса в 1986 году, а затем он появлялся и во многих других местах. Исков подано не было, но в газетах про это писали много. Создателей даже упоминали в журнале Time Magazine в 1988.

New York Times писала в мае 1988: «Дерзкая компьютерная программа, которая в этом месяце появилась на компьютерах Бюллетеня Провиденса, уничтожила файлы одного корреспондента и распространилась через дискеты по всей сети газеты. Компьютерщики считают, что это первый случай заражения компьютерной ситемы американской газеты такой дерзкой программой, которую называют компьютерным „вирусом“.

Братьям Альви пришлось сменить телефоны и убрать контакты из поздних версий вируса. Продажи программы они прекратили в 1987 году. Их компания выросла в телекоммуникационного провайдера и сейчас это – крупнейший провайдер в Пакистане. Расположена она всё по тому же адресу.

А теперь – Chaos

image


Скрента в 2012 году

Скрента работал в области информационной безопасности, а сейчас он CEO компании Blekko, которая занимается поисковыми технологиями.

Хотя дискет уже давно нет, вирусы в загрузочных секторах существуют. Теперь они работают с USB-флешками. Поскольку физические носители всё меньше используются для переноса данных, специалисты уверены, что дни загрузочных вирусов сочтены.

Война с вирусами переместилась в онлайн. Скрента сказал в интервью The Register: „Грустно, что существует такая большая индустрия антивирусов. Надо делать более защищённые системы, а не организовывать многомиллионную индустрию, чтобы подчищать существующие“.

Скрента и братья Альви не чувствуют вины за то, что начали адское шествие вредоносных программ по миру. „Джин в любом случае выбрался бы из бутылки, — написал Скрента в блоге,– мне было интересно быть первым, кто его выпустил“.

Читайте также: