Вредоносное ПО характеризуется чрезвычайным разнообразием, представляя собой и простейшие исполняемые объекты - вирусы, и целые программные комплексы - мобильные эмулирующие ОС, такие, как руткиты. В зависимости от этих форм, его действия существенно различаются.
Ныне существует немало разновидностей вирусов, различающихся по основному способу распространения и функциональности. Если изначально вирусы распространялись на дискетах и других носителях, то сейчас доминируют вирусы, распространяющиеся через Интернет. Растёт и функциональность вирусов, которую они перенимают от других видов программ.
В настоящее время не существует единой системы классификации и именования вирусов (хотя попытка создать стандарт была предпринята на встрече CARO в 1991 году). Принято разделять вирусы:
Даже если автор вируса не программировал вредоносных эффектов, вирус может приводить к сбоям компьютера из-за ошибок, неучтённых тонкостей взаимодействия с операционной системой и другими программами. Кроме того, вирусы обычно занимают некоторое место на накопителях информации и отбирают некоторые другие ресурсы системы. Поэтому вирусы относят к вредоносным программам.
Часто ошибочно относят к компьютерным вирусам и другие виды вредоносных программ — программы-шпионы и прочее. Известны десятки тысяч компьютерных вирусов, которые распространяются через Интернет по всему миру.
В зависимости от метода получения доступа к уязвимому программному обеспечению, эксплоиты подразделяются на удалённые (remote) и локальные (local):
Атака эксплоита может быть нацелена на различные компоненты вычислительной системы — серверные приложения, клиентские приложения или модули операционной системы. Для использования серверной уязвимости эксплоиту достаточно сформировать и послать серверу запрос, содержащий вредоносный код. Использовать уязвимость клиента немного сложнее — требуется убедить пользователя в необходимости подключения к поддельному серверу (перехода по ссылке в случае если уязвимый клиент является браузером).
Эксплоиты фактически предназначены для выполнения сторонних действий на уязвимой системе и могут быть разделены между собой следующим образом:
Эксплоит может распространяться в виде исходных текстов, исполняемых модулей, или словесного описания использования уязвимости. Он может быть написан на любом компилируемом или интерпретируемом языке программирования (наиболее частые: C/C++, Perl, PHP, HTML+JavaScript, XML).
Эксплоиты могут быть классифицированы также по типу используемой ими уязвимости, такой как: переполнение буфера, внедрение SQL-кода, межсайтовый скриптинг, подделка межсайтовых запросов и т. д.
Термин Rootkit исторически пришёл из мира UNIX, и под этим термином понимается набор утилит или специальный модуль ядра, которые злоумышленник устанавливает на взломанной им компьютерной системе сразу после получения прав суперпользователя. Этот набор, как правило, включает в себя разнообразные утилиты для «заметания следов» вторжения в систему, делает незаметными снифферы, сканеры, кейлоггеры, троянские программы, замещающие основные утилиты UNIX (в случае неядерного руткита). Rootkit позволяет взломщику закрепиться во взломанной системе и скрыть следы своей деятельности путём сокрытия файлов, процессов, а также самого присутствия руткита в системе.
В систему руткит может быть установлен различными способами: загрузка посредством эксплоита, червя, бутового вируса, после получения шелл-доступа (в таком случае, может использоваться средство типа wget или исходный FTP-клиент для загрузки руткита с удаленного устройства), в исходном коде или ресурсах программного продукта.
Распространяется через взломанные сайты, порноресурсы и сайты, с которых можно загрузить пиратское ПО. При посещении пользователем зараженной страницы, у него на компьютере начинает выполняться специальный скрипт, который на основании текущей даты, установленной на компьютере, генерирует имя сайта, на который необходимо перенаправить пользователя для получения «персонального» эксплойта.
При запуске инсталлятор записывает зашифрованное тело буткита в последние сектора жесткого диска, находящиеся за пределами используемого операционной системой дискового пространства. Для обеспечения автозагрузки буткит заражает MBR компьютера, записывая в него свой начальный загрузчик, который до старта операционной системы считывает с диска и разворачивает в памяти основное тело руткита, после чего отдает управление ОС и контролирует процесс ее загрузки. Буткит можно рассматривать как гибрид между вирусом и типом загрузочного сектора.
Семейство данных вредоносных программ ведет себя достаточно скрытно, на зараженной системе его нельзя обнаружить штатными средствами, так как при обращении к зараженным объектам он «подставляет» оригинальные копии. Кроме того, основное тело вредоносной программы (драйвер уровня ядра) не присутствует на файловой системе, а расположено в неиспользованной части диска за границей последнего раздела. Вредоносная программа загружает драйвер самостоятельно, без помощи операционной системы. Сама же операционная система не подозревает о наличии драйвера. Обнаружение и лечение данного буткита является наиболее сложной задачей из всех, с которыми приходилось сталкиваться специалистам антивирусной индустрии на протяжении нескольких лет. Способом борьбы с буткитами является загрузка системы с любого съемного неинфицированного носителя, чтобы избежать основной загрузки вируса после включения компьютера.
Исторически методики рассылки спама пережили три базовых этапа:
Во-первых, для построения сети троянских прокси или ботов необходимо каким-либо образом заразить множество компьютеров этим самым ботом. Достигнуть этого можно при помощи эксплойтов, Trojan-Downloader, почтовых или сетевых червей. Наиболее простая схема – это Trojan-Downloader, который после запуска доверчивым пользователем затаскивает на пораженный компьютер все остальные компоненты.
Далее, после установки и запуска, спам-бот связывается с сервером владельцев. Несложно догадаться, что для работы ему необходим список email-адресов, по которым следует рассылать спам, параметры рассылки и шаблоны самих писем. Чаще всего получение этой информации ведется по многоступенчатой схеме – на первом этапе спам-бот посылает своим хозяевам информацию о том, что он запущен (с указанием IP-адреса пораженной машины, ее характеристиками и неким уникальным идентификатором – шаг 1 на схеме), в ответ получает конфигурацию (шаг 2), содержащую, в частности, URL серверов, с которых ему следует загружать списки адресов и шаблоны спама. Далее спам-бот загружает базу адресов (шаг 3) и шаблоны (шаг
4), после чего приступает к рассылке. Важной особенностью является то, что спам-бот вместо тупой рассылки заданной текстовки по списку адресов может модифицировать текст, дополнять его картинками или представлять в виде графики в соответствии с заданным алгоритмом и шаблоном. После завершения рассылки порции писем многие спам-боты посылают отчет о проделанной работе (шаг 5). Отчет может содержать статистические данные (количество успешных рассылок и ошибок) и список адресов, по которым не удалось разослать спам.
Для пользователя появление на компьютере спам-бота является крайне неприятным событием. Во-первых, он накрутит ему десятки мегабайт трафика. А во-вторых, IP пораженной машины с высокой степенью вероятности попадет в черные списки, и в дальнейшем возникнут проблемы с отправкой нормальной почты. Это особенно важно для фирм, имеющих свой почтовый сервер и статический IP-адрес – всего один юзер со спам-ботом может причинить массу головной боли админам.
Построение сетей из спам-ботов является прибыльным бизнесом – объектом торгов может быть сам спам-бот, готовая сеть из таких ботов или платная рассылка спама, осуществляемая ботами. Бороться с рассылаемым при помощи ботов спамом намного сложнее – фильтрация по IP не эффективна, а модификация писем затрудняет отсев по контексту при помощи байесовских фильтров или сигнатурных анализаторов.
Помимо спам-ботов существует еще одна методика рассылки спама, основанная на применении так называемых троянских прокси (Trojan-Proxy), которые позволяют злоумышленнику работать в сети от имени пораженной машины. Типовой алгоритм работы троянского прокси состоит в открытии на прослушивание некоторого TCP-порта (иногда номер порта статический, но чаще произвольный – для затруднения обнаружения путем сканированием портов), после чего он связывается с владельцами и передает им IP и порт. Далее он работает как обычный прокси-сервер. Многие троянские прокси умеют размножаться по принципу сетевых червей или при помощи уязвимостей.
Важно отметить, что существует множество гибридов – например, спам-бот может обладать функцией Trojan-Downloader для загрузки своих обновлений или установки дополнительных компонентов.
Ботнеты обычно получают управление в результате установки на компьютер невидимого необнаруживаемого пользователем в ежедневной работе программного обеспечения без ведома пользователя. Происходит обычно через:
Механизм защиты бота от удаления аналогичен большинству вирусов и руткитов, в частности:
Управления ботнетом в ранних версиях производилось или «слушанием» определённой команды по определённому порту, или присутствием в IRC-чате. До момента использования программа «спит» — (возможно) размножается и ждёт команды. Получив команды от «владельца» ботнета, начинает их исполнять (один из видов деятельности). В ряде случаев по команде загружается исполняемый код (таким образом, имеется возможность «обновлять» программу и загружать модули с произвольной функциональностью). Возможно управление ботом помещением определенной команды по заранее заготовленому URL.
В настоящее время получили распространение ботнеты, управляемые через веб-сайт или по принципу p2p-сетей.
Ботнеты являются объектом нелегальной торговли, при продаже передаётся пароль к IRC каналу (пароля доступа к интерфейсу программы на компьютере).
По оценке создателя протокола TCP/IP Винта Серфа, около четверти всех компьютеров, подключённых к Интернету, могут находиться в ботнетах. Специалисты SecureWorks, изучив внутренние статистические сведения ботнета, основанного на трояне SpamThru, обнаружили, что большая часть заражённых компьютеров работают под управлением операционной системы Windows. По данным анализа статистики заражения, проводимых специталистами по безопасности, только в США в составе ботнетов более половины всех компьютеров.
Наиболее заметной из всех видов деятельности ботнета является DDoS атака. Среди успешных (и почти успешных) атак:
Создание и распространение вредоносных программ (в том числе вирусов) преследуется согласно уголовным кодексам многих стран, в том числе Казахстана и России (глава 28, статья 273 УК РФ). Согласно доктринам информационной безопасности Казахстана и России в школах и вузах при обучении информатике и компьютерной грамотности должен проводиться правовой ликбез по вопросам защиты информации в ЭВМ, борьбы с компьютерными вирусами и обеспечению информационной безопасности в сетях ЭВМ.
Первыми известными вирусами являются Virus 1,2,3 и Elk Cloner для ПК Apple II, появившиеся в 1981 году. Зимой 1984 года появились первые антивирусные утилиты — CHK4BOMB и BOMBSQAD авторства Анди Хопкинса (англ. Andy Hopkins). В начале 1985 года Ги Вонг (англ. Gee Wong) написал программу DPROTECT — первый резидентный антивирус.
Первые вирусные эпидемии относятся к 1987—1989 годам: Brain (более 18 тысяч зараженных компьютеров, по данным McAfee), Jerusalem (проявился в пятницу 13 мая 1988 года, уничтожая программы при их запуске), червь Морриса (свыше 6200 компьютеров, большинство сетей вышло из строя на срок до пяти суток), DATACRIME (около 100 тысяч зараженных ПЭВМ только в Нидерландах).
Тогда же оформились основные классы двоичных вирусов: сетевые черви (червь Морриса, 1987), “троянские кони” (AIDS, 1989[5]), полиморфные вирусы (Chameleon, 1990), стелс-вирусы (Frodo, Whale, 2-я половина 1990).
Параллельно оформляются организованные движения как про-, так и антивирусной направленности: в 1990 году появляются специализированная BBS Virus Exchange, “Маленькая чёрная книжка о компьютерных вирусах” Марка Людвига, первый коммерческий антивирус Symantec Norton AntiVirus.
В 1992 году появились первый конструктор вирусов для PC — VCL (для Amiga конструкторы существовали и ранее), а также готовые полиморфные модули (MtE, DAME и TPE) и модули шифрования для встраивания в новые вирусы.
В несколько последующих лет были окончательно отточены стелс- и полиморфные технологии (SMEG.Pathogen, SMEG.Queeg, OneHalf, 1994; NightFall, Nostradamus, Nutcracker, 1995), а также испробованы самые необычные способы проникновения в систему и заражения файлов (Dir II — 1991, PMBS, Shadowgard, Cruncher — 1993). Кроме того, появились вирусы, заражающие объектные файлы (Shifter, 1994) и исходные тексты программ (SrcVir, 1994). С распространением пакета Microsoft Office получили распространение макровирусы (Concept, 1995).
В 1996 году появился первый вирус для Windows 95 — Win95.Boza, а в декабре того же года — первый резидентный вирус для неё — Win95.Punch.
С распространением сетей и Интернета файловые вирусы всё больше ориентируются на них как на основной канал работы (ShareFun, 1997 — макровирус MS Word, использующий MS-Mail для распространения; Win32.HLLP.DeTroie, 1998 — семейство вирусов-шпионов; Melissa, 1999 — макровирус и сетевой червь, побивший все рекорды по скорости распространения). Эру расцвета “троянских коней” открывает утилита скрытого удаленного администрирования BackOrifice (1998) и последовавшие за ней аналоги (NetBus, Phase).
Вирус Win95.CIH достиг апогея в применении необычных методов, перезаписывая FlashBIOS зараженных машин (эпидемия в июне 1998 считается самой разрушительной за предшествующие годы).
В конце 1990-x — начале 2000-x годов с усложнением ПО и системного окружения, массовым переходом на сравнительно защищенные Windows семейства NT, закреплением сетей как основного канала обмена данными, а также успехами антивирусных технологий в обнаружении вирусов, построенных по сложным алгоритмам, последние стали всё больше заменять внедрение в файлы на внедрение в операционную систему (необычный автозапуск, руткиты) и подменять полиморфизм огромным количеством видов (число известных вирусов растет экспоненциально).
Вместе с тем, обнаружение в Windows и другом распространенном ПО многочисленных уязвимостей открыло дорогу червям-эксплоитам. В 2004 году беспрецедентные по масштабам эпидемии вызывают MsBlast (по данным Microsoft — более 16 млн систем), Sasser и Mydoom (оценочные ущербы 500 млн и 4 млрд долл. соответственно).
Кроме того, монолитные вирусы в значительной мере уступают место комплексам вредоносного ПО с разделением ролей и вспомогательными средствами (троянские программы, загрузчики / дропперы, фишинговые сайты, спам-боты и пауки). Также расцветают социальные технологии — спам и фишинг — как средство заражения в обход механизмов защиты ПО.
Вначале на основе троянских программ, а с развитием технологий p2p-сетей — и самостоятельно — набирает обороты самый современный вид вирусов — черви-ботнеты (Rustock, 2006, ок. 150 тыс. ботов; Conficker, 2008—2009, более 7 млн ботов; Kraken, 2009, ок. 500 тыс. ботов). Вирусы в числе прочего вредоносного ПО окончательно оформляются как средство киберпреступности.
Компьютерный вирус был назван по аналогии с биологическими вирусами за сходный механизм распространения. По-видимому, впервые слово “вирус” по отношению к программе было употреблено Грегори Бенфордом (Gregory Benford) в фантастическом рассказе “Человек в шрамах”, опубликованном в журнале Venture в мае 1970 года.
Термин “компьютерный вирус” впоследствии не раз “открывался” и переоткрывался. Так, переменная в подпрограмме PERVADE (1975), от значения которой зависело, будет ли программа ANIMAL распространяться по диску, называлась VIRUS. Также, вирусом назвал свои программы Джо Деллинджер и, вероятно, это и было то, что впервые было правильно обозначено как вирус.
Существует ряд признаков, которые могут сопутствовать заражению вирусом: появление на экране непредусмотренных сообщений и запросов, изображений и звуковых сигналов; самопроизвольный запуск программ без участия пользователя; попытки неизвестных программ подключиться к Интернету без ведома пользователя и т. п. О поражении вирусом через почту может свидетельствовать то, что друзья и знакомые пользователя говорят о сообщениях от него, которые он не отправлял; наличие в почтовом ящике большого количества сообщений без обратного адреса и заголовков. Однако эти признаки не всегда являются следствием присутствия вирусов. Например, в случае с почтой заражённые сообщения могут рассылаться с обратным адресом пользователя с других компьютеров.
Среди косвенных признаков можно назвать частые зависания и сбои в работе компьютера, замедленная (по сравнению с изначальным поведением) работа компьютера при запуске программ, невозможность загрузки операционной системы, исчезновение файлов и каталогов или искажение их содержимого, частое обращение к жёсткому диску (часто мигает лампочка на системном блоке), браузер Internet Explorer “зависает” или ведёт себя неожиданным образом (например, окно программы невозможно закрыть). Но основной причиной для подобных симптомов являются всё же не вирусы, а сбои в аппаратном обеспечении, конфликты между программами и баги (“жучки”, дефекты) в них.
Вирусы распространяются, копируя свое тело и обеспечивая его последующее исполнение: внедряя себя в исполняемый код других программ, заменяя собой другие программы, прописываясь в автозапуск и другое. Вирусом или его носителем могут быть не только программы, содержащие машинный код, но и любая информация, содержащая автоматически исполняемые команды — например, пакетные файлы и документы Microsoft Word и Excel, содержащие макросы. Кроме того, для проникновения на компьютер вирус может использовать уязвимости в популярном программном обеспечении (например, Adobe Flash, Internet Explorer, Outlook), для чего распространители внедряют его в обычные данные (картинки, тексты и т. д.) вместе с эксплоитом, использующим уязвимость.
Дискеты. Самый распространённый канал заражения в 1980—1990-е годы. Сейчас практически отсутствует из-за появления более распространённых и эффективных каналов и отсутствия флоппи-дисководов на многих современных компьютерах.
Флэш-накопители (флэшки). В настоящее время USB-флэшки заменяют дискеты и повторяют их судьбу — большое количество вирусов распространяется через съёмные накопители, включая цифровые фотоаппараты, цифровые видеокамеры, портативные цифровые плееры, а с 2000-х годов всё большую роль играют мобильные телефоны, особенно смартфоны (появились мобильные вирусы). Использование этого канала ранее было преимущественно обусловлено возможностью создания на накопителе специального файла autorun.inf, в котором можно указать программу, запускаемую Проводником Windows при открытии такого накопителя. В Windows 7 возможность автозапуска файлов с переносных носителей была отключена.
Электронная почта. Обычно вирусы в письмах электронной почты маскируются под безобидные вложения: картинки, документы, музыку, ссылки на сайты. В некоторых письмах могут содержаться действительно только ссылки, то есть в самих письмах может и не быть вредоносного кода, но если открыть такую ссылку, то можно попасть на специально созданный веб-сайт, содержащий вирусный код. Многие почтовые вирусы, попав на компьютер пользователя, затем используют адресную книгу из установленных почтовых клиентов типа Outlook для рассылки самого себя дальше.
Системы обмена мгновенными сообщениями. Здесь также распространена рассылка ссылок на якобы фото, музыку либо программы, в действительности являющиеся вирусами, по ICQ и через другие программы мгновенного обмена сообщениями.
Веб-страницы. Возможно также заражение через страницы Интернета ввиду наличия на страницах всемирной паутины различного “активного” содержимого: скриптов, ActiveX-компонент. В этом случае используются уязвимости программного обеспечения, установленного на компьютере пользователя, либо уязвимости в ПО владельца сайта (что опаснее, так как заражению подвергаются добропорядочные сайты с большим потоком посетителей), а ничего не подозревающие пользователи, зайдя на такой сайт, рискуют заразить свой компьютер.
Интернет и локальные сети. В сетях распространяются так называемые черви — вид вирусов, которые проникают на компьютер-жертву без участия пользователя. Черви используют так называемые “дыры” (уязвимости) в программном обеспечении операционных систем, чтобы проникнуть на компьютер.
Часто через заражение компьютера злоумышленниками устанавливаются специальные микро-прокси-серверы, которые превращают компьютер в промежуточный узел (сервер) для рассылки вредоносной информации: рассылки спама, DDoS-атак, осуществления иных нападений через этот компьютер, таким образом скрывая свой сетевой адрес.
Во времена MS-DOS были распространены стелс-вирусы, перехватывающие прерывания для обращения к операционной системе. Вирус таким образом мог скрывать свои файлы из дерева каталогов или подставлять вместо зараженного файла исходную копию.
С широким распространением антивирусных сканеров, проверяющих перед запуском любой код на наличие сигнатур или выполнение подозрительных действий, этой технологии стало недостаточно. Сокрытие вируса из списка процессов или дерева каталогов для того, чтобы не привлекать лишнее внимание пользователя, является базовым приемом, однако для борьбы с антивирусами требуются более изощренные методы. Для противодействия сканированию на наличие сигнатур применяется шифрование кода и полиморфизм. Эти техники часто применяются вместе, поскольку для расшифрования зашифрованной части вируса необходимо оставлять расшифровщик незашифрованным, что позволяет обнаруживать его по сигнатуре. Поэтому для изменения расшифровщика применяют полиморфизм — модификацию последовательности команд, не изменяющую выполняемых действий. Это возможно благодаря весьма разнообразной и гибкой системе команд процессоров Intel, в которой одно и то же элементарное действие, например сложение двух чисел, может быть выполнено несколькими последовательностями команд.
Также применяется перемешивание кода, когда отдельные команды случайным образом разупорядочиваются и соединяются безусловными переходами. Передовым фронтом вирусных технологий считается метаморфизм, который часто путают с полиморфизмом. Расшифровщик полиморфного вируса относительно прост, его функция — расшифровать основное тело вируса после внедрения, то есть после того как его код будет проверен антивирусом и запущен. Он не содержит самого полиморфного движка, который находится в зашифрованной части вируса и генерирует расшифровщик. В отличие от этого, метаморфный вирус может вообще не применять шифрование, поскольку сам при каждой репликации переписывает весь свой код.
В настоящий момент существует множество антивирусных программ, используемые для предотвращения попадания вирусов в ПК. Однако нет гарантии, что они смогут справиться с новейшими разработками. Поэтому следует придерживаться некоторых мер предосторожности, в частности:
Инженерия вирусов и другого вредоносного ПО не является, как это хотят представить нечестные СМИ, творчеством подростков-хулиганов. Для программирования вредоносного ПО необходим высокий уровень профессионализма в области разработки программ специального назначения, часто на языках низкого уровня. Уже давно создание вирусов превратилось в серьёзный бизнес, имеющий тесные связи с бизнесом спама и другими видами криминальной деятельности, имеющей иерархическую структуру. На верхнем уровне этой пирамиды находятся разработчики из спецслужб и военных ведомств, разрабатывающих вредоносное ПО как средство кибервойны. На следующем уровне - крупные корпорации и узкоспециализированные организации, занимающиеся промышленным шпионажем и диверсиями против конкурентов. Только третьем сверху уровне - анонимные сообщества и группы хакеров - професиональных программистов, преследующих свои частные цели: финансовые, общественные, амбициозные. На самом нижнем уровне - хулиганствующие индивидуалы.
В настоящее время суммы ущерба от действий вирусов и червей, вернее, от их производителей и распространителей, исчисляются многими миллиардами долларов. Львиная доля этого ущерба наносится не хулиганскими, а профессиональными средствами, разрабатываемыми различными спецслужбами, и используемыми в политической, идеологической, экономической и промышленной войне.
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.