Вирусы... Взгляд со стороны.
by ReCoder
Мда... Хреновый из меня гуру...
(Анекдот)
---[0. Введение]-------------------------------------------------------
Почему 'взгляд со стороны'? Потому что я стараюсь смотреть на
вирусы не с позиции пользователя, не с позиции вирус-райтера и не с
позиции антивирусника. А именно со стороны - как зритель большого
спектакля под названием Жизнь. Так что - не стреляйте в ReCoder'a, он
пишет как умеет.
---[1. Общие слова]----------------------------------------------------
Некоторые из описанных здесь идей я пробовал реализовать в порядке
эксперимента и кое-что действительно удавалось. Посему - желаю успехов
вирус-райтерам в реализации этих идей, а антивирусникам желаю быть
готовыми к появлению вирусов нового поколения.
Надеюсь увидеть ответ на эту статью в виде аналогичной статьи про
антивирусы, желательно также 'со стороны', то есть без ссылок на
российский уголовный кодекс.
---[2. Что мы имели в прошлом]-----------------------------------------
За последние лет 15 мы все были свидетелями ужасно интересного
процесса - эволюции саморазмножающихся программных организмов aka
вирусов. От примитивных Vienna и Brain до монстров типа Zhengxi.
Вирусная мысль не на секунду не останавливалась, а антивирусная неплохо
поддерживала темп, задаваемый неугомонными вирусописателями.
Кстати, мне очень интересно, что случилось бы, если бы в начале 80-
х на волю был выпущен типичный для нашего времени монстр, со скажем RDA
или хотя бы SMEG полиморфиком. Жаль, что история не признает условного
наклонения...
---[3. Что мы имеем в настоящем]---------------------------------------
Сейчас мы наблюдаем примерно тот же процесс, что происходил на заре
вирусотроения десять лет назад. С разницей в программно-аппаратной
платформе. Вместо старушки DOS мы имеем Windows95, да и WindowsNT за
компанию достается. История, как ей и положено, повторяется. Только на
этот раз знания, накопленные за последние годы, не пропали даром и путь
от простых direct action нерезидентов до полиморфных стелс резидентов
пройден за каких-то пару лет (если считать от Bizatch до Marburg).
Поэтому примерное развитие событий на ближайшие месяцы можно
предсказать, оглянувшись на последние несколько лет.
Windows, а особенно Windows95, как вирус-платформа, на мой взгляд
весьма и весьма перспективна, потому что там:
1. Практически полностью отсутствует секьюрити, что является
тяжелым наследием DOS'a. Особенно приятна незащищенность файловой
системы, что во-первых, сводит практически на нет средства защиты, а во
-вторых открывает невиданные ранее возможности по изменению любых
компонент системы, включая системные файлы.
2. Наличествует очень разнообразный и удобный API. По-моему,
несколько вирусов уже используют Memory-mapped файлы вместо
традиционного файлового API. В будущем набор используемых функций Win32
API будет постоянно расширяться, впрочем и сам API не стоит на месте.
Почему же все еще не началась лавина Windows-вирусов? По-моему, это
вполне объяснимо. Сдерживающим фактором тут является относительная
сложность создания Windows-вируса. Если примитивный DOS-вирус можно
состряпать на коленке, хоть в Debug'e, хоть в кодах руками набить, то
для создания Windows-вируса надо иметь представления о 32-битности, о
работе с DLL, и не только. Поэтому imho создание Win32-вирусов будет
продолжать оставаться уделом умельцев-одиночек, вроде Jacky Qwerty или
VLADовцев, если не...
Если не появятся удобные и достаточно средства для разработки
Win-вирусов. Что-то типа Virus SDK for Windows (tm). Попробую описать
мое видение этого пакета. Он будет состоять из нескольких компонент:
1. Генератор статически-полиморфного кода. Ядро системы - генератор
кода, выполняющего одни и те же функции, но не совпадающие по двоичному
коду. Назначение - сделать невозможным generic (XXX.based)
детектирование кода, созданного этим пакетом. Он будет использоваться в
других компонентах пакета. Прототипами могут служить DREG (DHA
Randomized Encryption Engine) и HOPE (Huge Overhead Polymorphic Engine)
2. Библиотеки Windows. Аналог библиотек Win SDK. Для каждого вируса
генерируется новая копия библиотеки с помощью генератора (см. п 1)
3. Вирус-специфичные библиотеки. Например, варианты polymorphic
engines. Опять-таки для каждого вируса генерируется своя копия
библиотеки.
4. Опционально - вирус-генератор, использующий статический
кодогенератор. Может применяться как для генерации обычных вирусов, так
и для создания скелетов других, более изощренных вирусов.
Однако тут нужна довольно серьезная и (что более важно)
систематическая работа. Так что вероятность появления именно такого
набора я считаю довольно низкой. Однако если все-таки найдутся такие
герои, то проблем с вирусами у нас определенно прибавится.
Другая, на мой взгляд тупиковая, но весьма и весьма живучая ветвь
вирусного сообщества - это макро-вирусы. Почему она тупиковая? Потому
что появилась она исключительно благодаря тому, что ботаники из
Майкрософта не встроили в MS Office практически никакой защитной
системы. И когда (если) они соберутся и встроят в сам пакет такие
функции, все семейство макрушников автоматом попадет в раздел
ископаемых. Другое дело, что сами мелкомягкие слишком заняты рисованием
'новых' (читай - более других) контролов, кнопочек, фенечек и рюшечек,
чтобы делать еще и что-то необходимое. Так что я не верю ни в то, что
MS сделает это, ни в то, что макро-вирусы способны похоронить
мелкомягкий офис как продукт.
Почему семейство макровирусов так живуче? Причин много.
1. Простота в реализации. Любой, даже самый клинический, двоечник в
состоянии подучить Visual Basic и реализовать свои деструктивные
потребности за пару часов.
2. Распространенность офиса как вирусной платформы.
3. Доступность как высокоуровневых средств VBA, так и
низкоуровневого Windows API, что позволяет конструировать довольно
хитрые вещи.
Однако макро-вирусы опасны также тем, что могут быть использованы
как носители для других потенциально вредных программ. Случаи
использования макро-вирусов как 'дропперов' для обычных DOS-вирусов уже
известны. Более хитрый сценарий мог бы выглядеть так: некий макро-вирус
содержит в себе код, собирающий пароли из Windows (например, dial-up
пароли), и посредством MAPI отправляющий их через Anonymizer в
какую-нибудь Usenet телеконференцию. Результаты должны быть весьма
катастрофичными.
Непонятным (мне по крайней мере) является будущее bs/mbr вирусов.
Дело в том, что они живут несколько в другом измерении и интеграция с
операционкой в них опциональна. Впрочем, операционные системы, не
использующие стандартный дисковый ввод-вывод (BIOS), сильно портят
жизнь таким вирусам вплоть до полного блокирования. А такии операционки
все наступают и наступают...
---[4. Что нас будет иметь в будущем]----------------------------------
Чтобы попытаться предсказать положение с вирусами в будущем, надо
опять взглянуть со стороны и принять во внимание остальные тенденции
компутерного мира. А на мой взгляд это:
1. Дальнейшее вытеснение писюками+windows (Wintel) других платформ
2. Проникновение Internet'a повсеместно
3. Наплевательское отношение Microsoft'a к качеству их софта ;)
Вирусы будут постепенно мигрировать под Win32, адаптируясь к новой
среде. Как я уже упоминал, Win32 предоставляет очень богатый API, как
например: memory-mapped файлы, структурированные исключения, система
хуков, Messaging и Internet API, Security и Network management - и не
надо изобретать велосипеды, достаточно воспользоваться тем, что есть. К
тому же вирусу намного проще затеряться среди многобайтов Win95, чем в
DOS-овских пакетах. Что будет приводить к увеличению среднего размера
вирусов и увеличению их сложности.
Что конкретно я жду от будущего:
a) Безусловно, появления Windows-червей, то есть чисто сетевых
вирусов. Хотя и не рассчитываю на большое их количество. Работа это
кропотливая, а среда не совсем подходящая.
b) Самообновляющихся вирусов. Ничего не мешает вирусу, имеющему
доступ к Internet'у, пойти на авторский сайт и скачать, например, новый
polymorphic engine. Либо даже не брать апдейты, а искать их
самостоятельно посредством, скажем, Alta Vista. Также, новые вирусные
апдейты смогут использовать свеженайденные дырки в защитных механизмах
OS до того, как пользователь найдет время скачать официальный патч.
c) Образования устойчивых 'вирусных сетей'. Несколько - от единиц
до сотен вирусов вполне могут налаживать коммуникации между собой для
координации своих действий. Во-первых, они могут использоваться для
'похищения процессорного времени', то есть организации распределенной
вычислительной работы, например для подборов паролей. Во-вторых,
возможно ожидание внешних команд, для организации распределенных атак.
Причем атака будет осуществляться от имени ни о чем не подозревающих
пользователей.
d) Возможен подмен дисковых драйверов либо перехват обращений к ним
для реализации 'неизлечимости' по типу OneHalf'a. Только в среде Win32
к его услугам будет полный MS CryptoAPI, что при правильной реализации
сильно усложнит лечение и восстаносление.
Тем не менее, я считаю, что такие вирусы будут единичны (что не
исключает возможности глобальных эпидемий) и большинство вирусов будут
детектироваться более-менее общими эвристическими алгоритмами.
В общем, как говаривал Козьма Прутков: 'Бди!'
---[5. Заключение]-----------------------------------------------------
Буквально вчера я зашел на страницу Доктора Соломона и обнаружил
там Virus Alert на GRIC Windows DialUp Networking Password Stealing
Trojan. То есть троянец, ворующий dial-up пароли из Windows95/NT,
оказался реальностью, существующей в дикой природе. Ну что ж,
поживем-посмотрим.
Может быть я и не такой уж хреноый гуру...
=======================================================================
ю 1998 (c) ReCoder * recoder@usa.net * barmaley.da.ru * ICQ# 12273995 ю
-----------------------------------------------------------------------
|