Перейти к содержанию
Иван

Эволюция технологий самозащиты вредоносных программ

Recommended Posts

Иван

Алиса Шевченко из Касперского написала статью

Эволюция технологий самозащиты вредоносных программ

Мы попробуем проследить пути зарождения «инстинкта самосохранения» вредоносных программ, его эволюцию под давлением все более жестких для вируcов условий и оценить, каково нынешнее положение дел.

Но прежде необходимо определить, что именно мы будем понимать под словосочетанием «самозащита вредоносных программ». Оно не столь однозначно, как кажется на первый взгляд. Нападение на антивирус — это, очевидно, вид самозащиты. Сокрытие следов функционирования — тоже в каком-то смысле самозащита, хотя уже не столь явная. И уже совсем не очевидно, что самозащитой является и сам факт эволюции вредоносных программ. Однако это так. Ведь одной из мотиваций вирусописателя к поиску новых платформ для заражения, новых лазеек в системе является в том числе и желание выпустить свое детище в свободную среду — в такую область, куда еще не смотрит ни одна пара глаз, потому что там никогда ничего не находили.

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

http://www.viruslist.ru/analysis?pubid=204007553

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vaber

Интересная статья, достаточно обширная.

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

Основной уклон делается в сторону поведенческого анализа, с чем лично я, собственно, согласен.

Была затронута тема бестелесых вирусов - в частности который хранит свой бинарник в параметре реестре. Вероятно имелся ввиду 0x48k Registry Backdoor от Cr4sh (hellknights.void.ru/releases.php).

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EP_X0FF

Интересная статья, ничего нового в ней нет. Это скорее констатация собственной беспомощности.

Вопрос к автору, когда это Gromozon стал использовать DKOM, для чего отрастил драйвер и загрузился в ядро?

По поводу "Заключения".

Посмеялся от души минуты две.

"Фи какие вы противные, безответственные и ам0ральные".

А кого, извините, е*?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Иван

жестокий циничный вы человек :D

надо верить в светлое и прекраное, атор обращается к этим чувствам читателя :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
A.

Вадим Богданов, Алексей Де-Мондерик, Евгений Касперский

Сентябрь 1992

Несколько советов авторам вирусов

Успокойтесь! Не надо готовить ругательства или, наоборот, потирать руки. Мы не хотим делиться своими идеями с авторами компьютерных вирусов. Все значительно проще - через наши руки прошло несколько сотен образцов компьютерных животных, и слишком часто в них встречались одни и те же ошибки. С одной стороны, это хорошо - такие вирусы часто оказываются "маложивущими", но с другой стороны, малозаметная ошибка может привести к несовместимости вируса и используемого на компьютере программного обеспечения. В результате вирус "вешает" систему, компьютер отдыхает, а пользователи мечутся в панике с криками: "Пусть хоть 100 вирусов, лишь бы компьютер работал!!!" (завтра сдавать заказ, не запускается самая любимая игрушка, компилятор виснет при выходе в DOS и т.п.). И все это происходит при заражении довольно безобидным вирусом.

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

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

(Ст.98 УК РСФСР)

Правило 0. Не надо писать вирусы - на свете так много интересного! Если нечего делать, то перепишите что-нибудь с DOS на Windows, если хочется прославиться - сделайте то же самое, но потом раздайте свою программу всем желающим и нежелающим.

Правило 1. При запуске вирус должен сохранять все регистры, которые передает DOS загружаемой программе (то есть не только AX, DS и ES, но и остальные), а при переходе на программу восстанавливать их (за исключением корректировки SS:SP, если это нужно). Почему? Объясняем.

Существуют (и обязательно появятся еще) программы, которые используют для своих нужд значения регистров, передаваемых из DOS'а при загрузке. Например, довольно популярный архиватор COM- и EXE-файлов DIET (версия 1.10а) при распаковке запускаемых COM-файлов предполагает, что значение регистра ВХ обязательно должно быть равно 0000h. Если подобная программа будет заражена вирусом, который не восстанавливает регистры при передаче управления на тело программы, то она скорее всего "умрет" при загрузке.

При загрузке регистры принимают значения (верно для MS-DOS 3.30 - 5.0): AX = BX - корректность имени диска в командной строке (0 или 00FF); CX, BP - не определены; DX=DS; SI=IP; DI=SP.

Правило 2. Если вы используете или корректируете системные области DOS (буферы, стек, фрагменты обработки прерываний), вы обязательно должны проверять, в какой системе находитесь. Почему? Объясняем.

Как правило, каждая следующая версия DOS своей внутренней организацией не похожа на предыдущую. Это касается и буферов, и стека, и многого другого. Поэтому, если вы полностью дизассемблировали и разобрали по косточкам версию MS-DOS 3.30, это вовсе не значит, что вы постигли все тайны фирмы Microsoft и вам можно ставить памятник. Нет! Вам следует перекурить и приниматься за версию 4.0х, потом 5.00 а в минуты отдыха и по ночам потрошить DR-DOS.

Правило 3. При заражении программ сначала записывайте вирус, а затем модифицируйте начало файла (в случае, если вирус пишется в начало или середину файла - сначала сохраните стираемую часть, а затем записывайте вирус). Почему? Объясняем.

При записи в файл может произойти ошибка (кстати, не забывайте проверять флаг CF при операциях с дисками), и если ваш вирус модифицировал начало файла, а сам не записался, то файл безнадежно испортится и при загрузке скорее всего зависнет.

Правило 4. Если вы заражаете COM- и ЕХЕ- файлы, сохраняйте первые два байта заражаемой программы и проверки "COM или ЕХЕ" проводите только по ним (напомню - в начале ЕХЕ-файлов должна быть сигнатура - 4D5Ah или 5A4Dh). Говорим об этом только потому, что участились случаи появления вирусов, которые проверяют "COM или ЕХЕ" по способу: равен регистр CS регистру DS (ES) или нет (некоторые даже умудряются проверять по регистру IР, - равен он 100h или нет). Это в корне неверно, так как при запуске ЕХЕ-файла регистр CS может быть равен регистру DS (если в ЕХЕ-заголовке по смещению 16h стоит слово FFF0h), а регистр IР- 100h (слово по смещению 14h - 100h). Мы, например, при работе с вирусами иногда используем именно такие файлы.

Кстати, до сих пор попадаются вирусы, которые определяют формат файла по расширению его имени (.COM или .EXE). О том, что это является грубой ошибкой, знают даже в детских садах!

Правило 5. При заражении ЕХЕ-файлов обязательно сравнивайте длину файла с длиной загружаемого модуля. Если они не совпадают, то такой файл лучше не трогать, так как вы либо уничтожите оверлей, либо программа перестанет загружаться в память. Для ЕХЕ-файлов также следует проверять значения стековых регистров, иначе в некоторых случаях вирус будет уничтожен стеком. Так же проверяйте длину СОМ-файлов: не следует их делать больше, чем 64 Кбайта.

Правило 6. Учтите, чем дальше, тем больше вашим вирусам придется сталкиваться с защищенным режимом процессоров 80х86, в котором, как известно, перехват прерывания 21h является довольно тонким вопросом. Если вы перехватываете int 21h "по-старинке", то многие новые продукты (например, Borland С++ 3.0) будут зависать, а Windows при нескольких DOS-задачах в фоновом режиме может выдать "unrecoverable application error".

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

* непосредственно перед вызовом OLD 21 нужно запретить аппаратные прерывания (cli);

* для всех функций, которые не обрабатывает ваш резидент, OLD 21 нужно выполнять через JMP, а не через CALL.

Правило 7. Теперь насчет порчи программ и дисков. Сравните вирусы зарубежного и отечественного производства. Вам сразу бросится в глаза, что почти каждый советский вирус, в отличие от зарубежных (не считая тайваньских: "Восток - дело тонкое"), что-нибудь, да испортит. Даже большая группа болгарских вирусов не идет ни в какое сравнение с нашими вирусами по части пакостей. Что это - особенности русской (точнее - советской) души или наследие сталинизма?

Короче, если вы пишете вирус, старайтесь воздерживаться от вставки пакостей - это может вам же выйти боком. Несмотря на отсутствие в нашем уголовном законодательстве статьи о написании вирусов, там есть другая статья - "причинение материального ущерба". Вот по этой статье вас и посадят, тем более, что такой случай уже был (по сообщению Н. Н. Безрукова). Ну, а если и не посадят, то пострадавшие могут найти и, извините, морду набить. И такие случаи тоже бывали.

Ну а уж если вы все-таки вставили какую-то гнусность, то запускайте свой вирус на своем компьютере и - наслаждайтесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Михаил Кондрашин

A.

Как все было славно в начале славных дел...

Что можно было бы написать авторам современных угроз? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сергей Ильин

Я бы назвал этот документ "Памяткой вирусописателя" :-)

A., спасибо! Я думаю многим было очень интересно с ним ознакомиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • Ego Dekker
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • ArktiTig
      Арктика - северная полярная область Земли, включающая окраины материков Евразии и Северной Америки, почти весь Северный Ледовитый океан с островами и прилегающие к нему части Атлантического и Тихого океанов. Название её происходит от греческого слова arctos (медведь) и связано со звёздами: Полярная звезда, находящаяся почти точно в зените над Северным полюсом, принадлежит к созвездию Малая Медведица.
    • PR55.RP55
      .xml  файлы taskschd.msc Могут быть подписаны  цифровой подписью. Думаю будет нелишним, если uVS будет это фиксировать. т.е. проверять не только подпись целевого файла, но и подпись самого файла\задачи. и писать в ИНфО .  
    • demkd
      ---------------------------------------------------------
       4.15.2
      ---------------------------------------------------------
       o Исправлена ошибка при работе с образом автозапуска.
         Для некоторых процессов команда unload не добавлялась в скрипт при нажатии кнопки "принять изменения".  o Добавлена плашка окна на таскбаре для окна удаленного рабочего стола.
         (при работе с удаленной системой) -----------------------------------------------------------
      Есть проблема с локализацией глюка в редких случаях приводящему к аварийному завершению uVS при активном флаге "Проверять весь HKCR".
      На основе дампов его найти не получается, нужна копия реестра системы с такой проблемой, если кому-то попадется такая проблема, то присылайте архив с копией реестра системы мне на почту.  
×