ZF

                        Вирусы... Взгляд со стороны.
                                   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 ю
-----------------------------------------------------------------------


(C) NF, 1998-2004