Вирусное оружие

Дата публикации 19 апр 2004

Вирусное оружие — Архив WASM.RU

(часть 1)

"Учиться, учиться и ещё раз учиться"
В.И.Ленин

Исходники к статье

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

ВИРУСНОЕ ОРУЖИЕ - программные средства разработанные специально для вредоносной акции (вирусной атаки).

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

Чаще всего вирусное оружие разрабатывается и применятся как уже было сказано с какой-то конкретной целью.

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

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

Я предлагаю следующую классификацию вирусного оружия:

1) Локальное вирусное оружие

а) Статичное

б) Динамичное

2) Удалённое вирусное оружие

а) Статичное

б) Динамичное

Локальное вирусное оружие - это то оружие которое не распространяется по LAN и через Internet. К статичному вирусному оружию относятся всяческие троянские кони, логические бомбы, клавиатурные шпионы и т.д. т.п. К динамическому вирусному оружию относятся вирусы.

Удалённое вирусное оружие не так сильно распространено, как локальное. К статичному относятся троянские кони работающие через локальные или глобальные вычислительные сети, к динамичному сетевые черви.

По моему мнению вирусное оружие можно разделить ещё по двум категориям:


1) Похищающее информацию
2) Разрушающее информацию

Чтобы показать возможности локального вирусного оружия мной были разработаны две программы:


1) Статическое вирусное оружие, уничтожающее информацию - "LOGICAL BOMB"
2) Динамическое вирусное оружие, уничтожающее информацию - вирус "PIKADOR"

Начнём с "LOGICAL BOMB" и того что в ней было реализовано:


0) Присоединение к любой "PE" программе
1) Полиморфизм с случайным количеством декрипторов
2) Простая EPO техника с антиэвристическим приёмом
3) Антиотладочные и антидизассемблерные трюки
4) Затирание нулями MBR и FAT

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

Вначале идёт тело основной программы, в которой выводятся сообщения по её использованию и инфицируется программа носитель(см. l_bomb.asm).

Далее следует модуль генератора случайных чисел, который использует специфическую инструкцию процессора Pentium - rdtsc(см. r_gen32.asm).

Далее следует модуль, который генерирует исполнимый, трудноотлаживаемый мусор с элементами антиэвристических подпрограмм(см. t_gen32.asm).

Далее следует полиморфный генератор PGS, который генерирует от 1..25 декрипторов с тремя различными алгоритмами криптования и естественно случайным выбором ключа и случайными регистрами(см. pgs32.asm).

И вот мы подошли к одному из важнейших модулей данной программы - модулю деструкции. Данный модуль перезаписывает MBR и FAT винчестера, а так же восстанавливает украденные байты с точки входа. В нём находится множество антиотладочных и антидизассемблерных механизмов. (см. death32.asm)

Какие последствия применения данной логической бомбы вы наверное уже себе можете представить. Данная программа была представлена в этом тексте, в качестве доказательства бессилия антивирусных средств против направленно атаки. Что же нужно сделать чтобы не пострадать от аналогичных продуктов кибер подполья? Самое главное это нужно backup'ить архиважную информацию на CD, дискетах, а так же других носителях информации. Следующий шаг это проверка всех программ, которые будут запускаться на вашем компьютере не только антивирусными программами, но и таким устройством как голова. А для такой проверки необходимо: "учиться, учиться и ещё раз учиться".

(часть 2)

...Так кто ж ты, наконец?
-- Я -- часть той силы,
что вечно хочет
зла и вечно совершает благо.
Гете. "Фауст"

В предидущей части текста было рассказано о том, что есть вирусное оружие и каких типов оно бывает. В качестве примера была приведен генератор логических бомб с сильным деструктивным проявлением - "LOGICAL BOMB". Этот генератор производит вирусное оружие локальное статического действия(не самоходное).

В этой же части текста мы рассмотрим локальное вирусное оружие динамического типа. Мы будем рассматривать полиморфный боевой вирус "PIKADOR". Локальным его можно называть с натяжкой так как в нём присутсвует модуль заражения сетевых дисков(DIM). Какие же возможности у данного вируса и для чего он предназначен? Во-первых одной из основных функций данного вируса является конечно же размножение, и другой не менее важной функцией является вывод из строя операционной системы.

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

Для размножения он инфицирует текущую директорию и все директории, которые находятся выше. Так же он инфицирует директории Windows и System32. Но для того чтобы миссия вируса была выполнена была несколько расширена возможность "резидентности на процесс"(APPR). Так он перехватывает все вызовы функции FindFirstFile и инфицирует все директории которые передавались данной функции в качестве параметров, а так же все директории, что находятся выше.

Для маскировки данный вирус использует оригинальную технику не излечимости(SPOT) и полиморфизм(PGS). Так же для затруднения изучения вируса применяются антиотладочные и антидизассемблерные трюки(ADEM).

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

Далее будут перечислены все файлы необходимые для компиляции "PIKADOR":


(-)pika2.asm
(-)adem32.asm
(-)bios32.asm
(-)dim32.asm
(-)sdm32.asm
(+)pgs32.asm
(+)r_gen32.asm
(+)t_gen32.asm
(+)spot32.asm

Плюсами отмечены те файлы, которые уже есть в первой части текста, а минусами это те файлы которые будут в этой части текста.(cм. pika2.asm)

Вначале самым первым и самым главным файлом идёт основной файл вируса к которму подключаются модули и используются по мере надобности. Следующий модуль отвечает за антиотладочные и антидизассемблерные приёмы. (см. adem32.asm) Далее следует крайне важный модуль, который отвечает за обнаружение адреса kernel32.dll, а так же за использование WIN API фукций.(см. bios32.asm)

Идущий ниже мотор обеспечивает инфицирование всех сетевых дисков, на данном компьютере.(см. dim32.asm) Последний в списке, но не последний по назначению модуль, который отвечает за основную цель программы вывод из строя ОС. Данное действие производится простой и всем известной функции DeleteFileA.(см. sdm32.asm)

Теперь рассмотрим как выглядит файл до инфицирования и после:

1) До инфицирования

Заголовок "PE" файла
Кодовая секция
Различные секции программы
...............
Последняя секция

2) После инфицирования

Заголовок "PE" файла
jmp N1 ->   Кодовая секция
-> jmp Nx ->
 
Различные секции программы
...............
-> Последняя секция с криптованным телом вируса
 

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


1) Навесная защита или упаковщик
2) Вирус или другая вредоносная надстройка

Так что если в конце программы идёт исполнимый код, то эту программу нужно подвергнуть тщательному анализу.

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

На этой оптимистичной ноте данная часть текста может считаться завершённой.

(часть 3)

"Тому, кто первым приходит на поле
сражения и ожидает врага, будет легко ..."
Сунь Цзы

В данной части текста речь пойдёт об удалённом статическом оружии. К данному виду вирусного оружия можно отнести некоторую часть троянских коней и backdoor'ов. Почему некоторую, потому что все программное обеспечение доступное общественности называться вирусным оружием просто не имеет права. Так и после публикации данного текста все программы приведённые в качестве примеров вирусного оружия таковыми быть перестанут.

В чём же цель использования удалённого статического вирусного оружия? Цель заключается в том, чтобы не только выполнить заранее, какие-то запрограммированные действия, но и позволить взломщику манипулировать данными и программами на подчинённом компьютере.

Теперь перейдём к определению того, что вирусное оружие должно уметь:


1) Запускаться вместе с системой
2) Слушать и отвечать на взаимодействие по определённому порт

Первый пункт мы реализуем за счёт копирования в директорию WINDOWS, а так же мы пропишем данную программу в реестре на автозагрузку. Второй пункт будет реализовываться за счёт открытия слушающего сокета на 321 порту.

Мы сделаем нашу программу совместимой со всеми системами Windows, кроме 16 битных версий. Для этого мы не будем редиректить полученные команды через именованные каналы на "cmd.exe". Мы этого делать не будем потому что, у Windows 98/ME, такого командного интерпретатора нет. Мы всё сделаем с нуля при помощи WIN API. (см. t_back.asm)

На момент написания текста данный backdoor антивирусами не обнаруживался, но я бы не рекомендовал его использовать, так сказать "нагишом". Я бы советовал запаковать его Armadillo или Telock. Это бы обезопасило от определения по текстовым строкам. Вот представьте себе ситуацию отправляется данная программа по почте с рассказом, что это супер демо. А получатель берёт и просматривает текстовым редактором этот файл и сразу в уме дизассемблирует, несколько позже начинает опять же таки в уме эмулировать инструкции х86 .... Так, что-то меня не туда понесло, и при помощи текстового редактора он видит: "...Welcome to Backd00r for Win..." и что вы думаете после этого он эту программу когда-то запустит?

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

Это всё конечно хорошо, но как с этим бороться, как от backdoor'ов защититься?

Существует несколько способов:


1) Не запускать программ из непроверенных источников, а из проверенных источников программу лучше трижды перепроверить перед запуском.
2) Правильно настроить firewall, это позволит запретить все входящие соединения и исходящие с ненужных портов, которые могут использоваться backdoor'ами.
3) Самому регулярно проводить инспекцию всех портов и исходящих соединений

Но лучше всего использовать все описанные выше три способа одновременно.

(часть 4)

Так, умение поднять
осенний лист не может
считаться большой силой;
способность видеть луну
и солнце не может считаться
острым зрением;
способность слышать звук
грома не может считаться
тонким слухом.
Сунь Цзы "Искусство войны"

Пришло время нам рассмотреть один из самых сложных видов вирусного оружия. Это динамическое удалённое вирусное оружие. К данному виду вирусного оружия относятся различные сетевые черви. Что же такое Интернет червь? Это программа, которая распространяется при помощи сети Интернет, используя или не используя уязвимости в программном обеспечении. Последним из разновидностей программ данного рода является почтовый червь Sobig.F, который распространяется при помощи электронной почты.

Чтобы понять как работают почтовые черви мы разработаем свой почтовый червь. Существует две самые распространённые методики размножения почтовых червей:


1) Используя программу MS Outlook
2) Используя независимый SMTP движок

При первом методе реализации почтового червя письмо отправляется при помощи IMAPI, т.е. за вас письмо отправляет Outlook. Но если Outlook новой версии, то перед отправкой письма он об этом обязательно сообщит пользователю. Данный акт и выдаст почтовый червь с головой.

Поэтому в последнее время всё чаще используют SMTP движки. В чём же заключается механизм работы SMTP движка? А заключается он в том, что движок вычисляет используемый SMTP сервер, затем присоединяется к нему и отправляет письмо. Для того, чтобы это реализовать необходимо работать с сокетами.

Рассмотрим что делает червь на примере Telnet сесии:

;------------------------------------------------------------------------------;
HELO SMTP.SERVER.COM (+CRLF) [ ждём ответа сервера ]
MAIL FROM: bill_gates@microsoft.com (+CRLF) [ ждём ответа сервера ]
RCPT TO: gertva@mail.com (+CRLF) [ ждём ответа сервера ]
DATA (+CRLF) [ ждём ответа сервера ]
FROM: BILL GATES <bill_gates@microsoft.com>
TO: Gertva <gertva@mail.com>
SUBJECT: New Update
		 
Здесь идёт текст письма с вложением
. (+CRLF)		 
;------------------------------------------------------------------------------;

Так же необходим алгоритм перекодировки файла в кодировку base 64, для создания вложений и как уже было сказано выше навыки работы с сокетами.

После того, как мы подготовились мы уже можем написать простейшего почтового червяка...(см. fraer.asm)

После того, как мы реализовали почтового червя, нам необходимо так же знать, что делать, чтобы избежать инфицирования Интернет червём.

Я рекомендую следующие шаги:


1) Не запускать никакие вложения в письма если не знаком источник письма
2) Все вложения проверять антивирусом (а вдруг поможет?)
3) Самому анализировать письма
4) Ориентироваться по содержанию письма (у всех червей оно по смыслу сходно).
5) Настроить Firewall
6) Постоянно обновлять антивирусные базы
7) Проверять Task Manager на подозрительные процессы
8) Проверять ключи реестра отвечающие за автозагрузку

Но как и в предидущих статьях от вирусного оружия может спасти только одно - голова на плечах, причём соображающая.

© Slon

0 1.282
archive

archive
New Member

Регистрация:
27 фев 2017
Публикаций:
532