ZF

                      Куда катятся вири?
                       by Старый Ворчун

                      Хи уважаемые оллы.
      Кому нечё делать могут узреть мое ворчание на тему
                     КУДА КАТЯТСЯ ВИРИ ?


    Многие согласятся  с  мнением,  что сложилось две устойчивые группы
soft`a.  Первая:  проги,  которые распространяются cracker `ами и народ
хочет видеть этот soft у себя pc`юках.  И вторая: проги, которые гуляют
хаотически,  т.е.  распространяются user`ами, но без их на то желания и
участия.  И  первая  и  вторая  группы  возникли из-за фирмы Microsoft.
Мелкомягкий  soft  стандартизировал  не  только  взгляды   user`ов   на
интерфейс,   но   и  распространился  с  этими  взглядами  по  большому
количеству РС вместе со своими дырами.
    Я не  хочу  сейчас спорить о деятельности фирмы Microsoft,но именно
благодаря их "неразменной" монете - MS-DOS, мы получили большой прирост
вирей  и  их  мэйкеров.  Последние  на  мой взгляд делятся на несколько
групп,  перечислять которые здесь не имеет смысла.  Могу лишь заметить,
что  группы эти значительно разнятся по чисто человеческим причинам, то
есть подходу к делу написания soft`a.
    Другое дело,  что,  исключая  ламмерский подход,  вирмэйкеры должны
обладать знаниями системы,  дыры которой будет использовать их  детище.
Поэтому   их  деятельность  была  изначально  более  технологична,  чем
деятельность авторов  антивирусных  средств.  Последние  только  совсем
недавно  стали  выбираться  из  роли  догоняющих  и  создовать вакцины,
которые  садятся  на  входные  для  вируса   дыры   в   операционке   и
взаимодействуют с полифагами,  которые интенсивно насыщаются всяческими
анализаторами,  высказывающие  свое  подозрение   большому   количеству
файлов. Но самое главное, это не вызавает не у кого доверия, потому что
как только машина начинает себя вести не так - ВИРУС!!! Поэтому главным
вирусом   остается   user,   он   же   и  располагает  всеми  способами
распространения и порождения себе подобных.
    Поэтому мне  представляется дальнейшее развитие вирусной технологии
в сторону всяческого взаимодействия  с  user`ом.  Поясню,  что  я  имел
ввиду.
    Как сейчас обстаят дела  с  группами  user`ов.  Любая  необЪяснимая
реакция  РСuser  бежит  к  системщику:"У  меня  не  работает!  Сделайте
быстрее,  а то у  меня  срочная  работа,  которую  нужно  было  сделать
позавчера!". Что-то в этом роде. В зависимости от необразованности user
`ов системщик имеет обратнопропорциональное количество вызовов. Уверен,
что  не  на каждый такой вызов системщик думает:-"Вирус!".  Большинство
начинающих системщиков верят показаниям user`ов,  что не всегда  верно.
Так  как  user  сообщает  только  ту  информацию,  которая  делает  его
безучастным к происшедшему.  User всегда считает себя правым  (еще  бы,
при   таком   внимании  со  стороны  фирм-производителей).  А  так  как
мелкомягкий  софт  плодится  быстрее   всех   и   имеет   соответсвенно
нарастающее количество дыр, начинаяя с доски и заканчивая активнымХ, то
вирусы жили и будут жить.
    Так вот,  по-моему  следует  установить  негласный интерфейс виря с
юзером.  ВирЬ - это софт предназначенный скрыто контролировать работу и
поведение юзера.  ВирЬ - это hidden hostile. Муве-тоном будет заражение
всего подряд на машине (можно и на антивирЬ напоротся),  а то какая  же
это  скрытность.  Плохой  стиль  после посадки на писюк,  тут же что-то
убивать.  Да и вообще,  хороший стиль - это когда действия  виря  можно
интерпретировать,  как непонятное зависание(торможение,сбой) системы на
действие юзера (удар головой об any key,  или сильный  нажим  ногой  на
мышЬ).  Естественно,  что  это  за  глюк  системы,  когда форматируется
нулевая дорожка,  убивается почтовый ящик или директория Мои Документы,
я  не  говорю  уже о постановке пароля на CMOS.  Такими действиями вирЬ
подписывает себе  смертный  приговор,  и  остается  только  в  памятных
распечатках предков или в масках полифагов.
    Можно, конечно,  отложить такое  страшное  действие  на  год  после
заражения.  Но  это  я  называю вирусный джихад или "полная джамахирия,
пока взрослых нет" (М.Жванецкий).  Такой подход был разработан давно на
заре вирусной технологии. И он сомнительно тщеславен - "А вот был такой
вирЬ.  Оооо,  как он прогремел,  а прикинь какой крутой у него автор!".
Да,  многие  авторы  прошлых,  тем  более  современных вирей производят
впечатление монстров не только систем, но и камней.
    А теперь    представьте    себе    вредное   действо.   Запускается
дефрагментатор и на каком-то злосчастном  клайстере  зависает.  Ты  его
метишь,  пущаешь  дефраг,  или  просто перезагружаешься - все работает.
Сыстемщик думает - машина испугалась. А вирЬ просто реагирует через раз
-два.  А  потом  он  опять виснет на другом кластере.  И так в цикле по
всему диску.  А в остальном,  машина не глючит,  а  полифаг  говорит  -
пусто.  Некотрые  просто  придут  к  мнению,  что  лучше  не заниматься
дефрагментацией. Это так, что первое в голову пришло.
    Или вот...  Сложился просто огромный парк гамов и юзеров не щадящих
клаву и мышь.  Поможем им, не реагируя на каку-нибудь капу или не давая
ей нажаться меньше 3х раз. Как думаете, что подумает юзер?
    А вот ещё.  Всем известно, что DOS-кий scandisk виснет, при запуске
после того как OSR упала.  Уронить ее можно просто укоротив msdos.sys <
1024byte или удлинив win.ini или system.ini  >  64К.  Этим  тоже  можно
воспользоваться.  Когда  писюк  "висит"  мы  можем пробежаться по диску
наделать потерянных кластеров (там где лежат полифаги или  система),  и
никто и незаподозрит, что это сделал вирЬ.
    ЧТО КАСАЕТСЯ ПОЛИФАГОВ.  Если так их  не  любишь  -  вешай  их  при
запуске  или выгружайся сам.  Идеальный способ - обнулить или уменьшить
полифагу стек в заголовке.  В  первом  случае  он  просто  вылетит  или
перезагрузит  систему.  Ну  а во-втором напишет,  если успеет,  что его
заразили и сделает,  что и в первом случае - Стека не хватит  для  всех
его оперций.  Ну а там,  если хочешь, перезагружайся с флопа пущай свой
любимый полифаг,  который ничего не увидит.  Но при запуске с винта - в
память всякую "гадость" не пускай!  Это я так, для сторонников джихада.
    ЕСЛИ ХОЧЕШЬ ПОСМЕЯТЬСЯ.  Можно тормозить работу  через  таймер  или
многократное  повторение  последней  дисковой  операции,  в  тот момент
работы писюка,  в который ты хочешь приколоться. Например, работа с DBF
или им подобным. Сейчас, когда fox и claion, где только не используются
- это будет очень  смешно.  Или  можно  тормозиться  при  установленной
телефонной связи - это удар по карману юзера.  Прикол поменьше - давать
постянный легкий шум на звуковую плату.
    ИДЕАЛЬНОЕ ВРЕДНОЕ  ДЕЙСТВО  - можно получить,  усилив уже имеющуюся
ненадежность.  Ну что у нас  есть,  -  дисководы,  сеть  (а  точнее  ее
траффик), модемы (а точнее линии по которым они звонят), CD-ROM... Ну и
хватит.
    Итак, дисководы:  Приходилось ли вам злостно кусать дискету,  когда
оттуда не скопировалась часть многотомного архива. Эту можно проэмулить
или  повредить  заранее.  А  свалят  все  на  магнитные бури.  А теперь
вспомните сколько умников  пишут  под  доской  софта  с  защитой  через
ключевую  дискету.  Теперь  предстваьте - она "погибла".  Такие дискеты
легко обнаружить,  правда трудно записать - на них всегда открыто окно.
Но  можно  проэмулить  для  того софта,  который читает всю эту умность
через 13h. Здесь фантазировать можно сколько хочешь.
    Сеть: Под  доской  можно  творить  с  ней  массу  интересных вещей.
Например,  берем адрес платы и в свободное от работы время бросаем туда
очень кучно всякий мусор.  Ветка Ethernet дохнет сразу, ArcNet - только
"лепесток" звезды. На FDDI не пробовал! А сысопы будут думать что какой
-то извращенец кидает по сети порнуху или пара сотен дебилов мочат друг
друга в "квакой"-нибудь коллективной дуэли.
    Модемы: За   ними   сейчас   сидят  либо  несостоявшееся  рыбаки  с
чудовищным терпением или состоятельные люди,  способные себе купить  не
какой-нибудь занюханый зюхель и платить за любой многосуточный траффик.
Сидишь,  сидишь, не просто сидишь - качаешь и вдруг бац - связь падает.
Кто-нибудь будет думать, что это вирус ?
    CD-ROM: Ну здесь также как с дискетами  только  в  одну  сторону  и
через другое прерывание.
    Вот что я имел ввиду, когда говорил о взаимодействии с юзерами.
    Но это  только мизер в гиганстком теле ВирТеха.  Посмотрим на самую
развивающуюся ее часть - распространение или  как  садится  на  машину!
Здесь  без  взаимодейства  с  юзером  никак.  Изощренность  виря  может
ппривести его к разбуханию.  Надо ли этого боятся? Отнюдь. И решение на
мой  взгляд  предложено  верное  (журнал MooN-BuG,  Issue 3,  Sep 1997,
Полиморфики на ЯВУ by RedArc). Кто не читал скажу, что речь там идет об
использовании архиваторов.
    Приемущества:
    - почти Полный полиморфизм.
    - большой объем виря (делай что хошь - пиши хоть на Clarionе).
    Недостаток назову  один  -  легко лечится.  Пускаешь файл,  он себя
разворачивает  в  каку-нибудь  лабуду  (ь"!;%.~~~).   А   дальше   сами
понимаете.  Но идея красивая и ее можно развить сл.обр.  Думаю автор не
обидится.
    Вирь сидит  на  машине.  При  операции  копирования  куды-нибудь на
сетевой или флоппи диск  производит  заражение.  Выбирает  случайно  из
обнаруженных архиваторов, которые поддерживают SFX для файлов больше 64
К,  и любой для малых файлов.  Также случайно выбирает степень  сжатия.
Еще  более  случайно  выбирает  выбирает  1-но  символьный  пароль и не
запоминает его.  Закрутив жертву,  вирь кладет сверху  смертельный  для
анализаторов, дебугеров и дизассемблеров мусор размером = РАЗМЕР_ЖЕРТВЫ
- ПОЛИМОРФНАЯ_ШАПКА - СЖАТАЯ_ЖЕРТВА_И_ВИРЬ.  Полиморфная шапка - это та
часть  виря,  которая будет заниматься развворачиванием жертвы и виря и
передачи основному коду виря управления.  И в  результате  мы  имеем  -
носитель, обладающий следующими свойствами и функциями:
    - такой же длины что и жертва.
    - мусорный заголовок можно также замаскировать под PKLITE etc.
    - эвристки будут долго анализировать мусор в несколько кил и бросят
его.
    - единицы смогут пробиться за мусор и увидеть что это архив.
    - но  это запароленный архив и шапка перебирает пароль (это конечно
не долго при малой длине пароля).
    Но это только носитель.  И при первом запуске он "лечится"
- вынимая из себя вирь на другое место машины.  Если это доска
- то  лечь  файлом  ega.cpi  или  подобной ерундой,  которая никогда не
используется.  Тоже с  виндой  -  ее  каталог  system  никто  не  знает
наизусть, а файлов там ого-го.
    Вот как  можно   использовать   эту   идею.   Тут   конечно   можно
нафантазировать еще кучу вещей - искать на машине какую-нибудь чуду-юду
(Fox,Clarion etc) с бААльшими оверлеями и садится на них.  Но  это  уже
ваша  фантазия  и  желание,  а  также  материал другой статьи.  Думаю в
следующий раз поворчать о 32разрядных вирях - это очень интересно.

Ворчун 28 Feb 1998 J


(C) NF, 1998-2004