Истории о вирусах

         

Борьба с антивирусными мониторами


Современные антивирусные мониторы умеют отслеживать факт прямо-

го обращения программ к DOS.

Защиту 21-го прерывания можно организовать более эффективно, ис-

пользуя метод встраивания в ядро операционной системы. Общеприня-

тая схема такова: в точку входа прерывания INT 21h записывается инст-

рукция JMP FAR на обработчик, который проверяет номер функции на

безопасность. Он восстанавливает оригинальные инструкции в точке вхо-

да прерывания и вызывает обработчик INT 21h. После возврата управле-

ния из прерывания, в точку входа снова записывается инструкция JMP

FAR, и управление передается программе, вызвавшей INT 21h.

Здесь описан обычный "сплайсинг" (встраивание), который широко

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

обязательно использовать инструкцию JMP FAR (она занимает 5 байт

в памяти и не везде может быть размещена). Вместо нее можно приме-

нить INT 3, затратив всего 1 байт. В то же время необходимо обеспе-



чить обработку вызовов с кодами OOh, 4Ch, 31h (они не возвращают уп-

равление в исходную точку), а также самовызовов (при завершении

процессов посредством INT 27h и INT 20h).

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

ного монитора встраивается в ядро DOS, а второй - просто перехватыва-

ет цепочку 21-го прерывания. Когда программа выполняет инструкцию

INT 21h, управление передается второму компоненту. У антивирусных

мониторов существует список функций, которые воспринимаются ими

как опасные. Они могут сделать проверку на наличие заданной функ-

ции в этом списке, затем выставить флаг "проход цепочки" и передать

управление дальше. Когда первый компонент получает управление, он

проверяет флаг "прохода цепочки". Если он выставлен, то была инст-

рукция INT 21h, поэтому необходимо сбросить флаг "проход цепочки"

и передать управление в DOS. Если флаг сброшен, это значит, что был

5 - 1436

выполнен прямой вызов. В этом случае требуется принимать соответ-

ствующие меры против возможных действий вируса.

Эта идея исключительно проста и эффективна. В том или ином виде ее

применяют почти все современные антивирусные мониторы. Вот один

из таких вариантов.

После трассировки прерывания выполняется обращение к DOS по

оригинальному адресу. Программа AVPTSR перехватывает обращение.

Точнее, AVPTSR перехватывает INT 2Ah, причем этот вызов произве-

ден из INT 21h, вблизи начала фрагмента. Обработчик INT 08h,

то есть таймера, периодически восстанавливает вектор 2Ah, если он

был отключен.

Подразумевается, что флаг прохода цепочки 21-го прерывания проверя-

ется в обработчике INT 2Ah.



Содержание раздела







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