Вопросы для самоконтроля

1. Назовите профилактические меры борьбы с компьютерными вирусами.

2. Назовите основные типы программ, используемые для борьбы с компьютерными вирусами. Приведите примеры.

3. Какие основные методы поиска используются для обнаружения вирусов?

4. В чем заключается метод поиска вирусов «сканирование»?

5. Для чего используется эвристический анализ при поиске компьютерных вирусов?

 

Лекция 21

Тема: Программные закладки Действие вирусов и программных закладок в сетях ЭВМ

 

Программные закладки

Существует другой, отличный от вирусов, вид деструктивных компьютерных программ, который не обладает способностью к раз­множению, самодублированию. Такие программы, получая несан­кционированный доступ к данным в памяти ЭВМ, перехватывают эти данные. Для перехвата данные несанкционированно копируют­ся и сохраняются в специально созданных разделах памяти или пе­редаются по сети потребителям, не имеющим на то законного пра­ва. Такие программы могут, подобно вирусам, искажать или уни­чтожать данные, но в отличие от вирусов деструктивное действие таких программ селективно направлено на конкретные данные.

Такие программы назвали закладками — по аналогии с тайно помещенными миниатюрными электронными системами перехвата радио-, видео-, и аудиоинформации.

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

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

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

И в том и другом случаях НСД можно представить моделью опо­средованного доступа — когда проникновение в систему осуществ­ляется на основе некоторого воздействия, произведенного предвари­тельно внедренной в систему одной или несколькими программами.

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

Часто используют синонимы термина «закладка»: «логическая бомба», «логический люк», «троянский конь». Обычно в литера­туре понятие закладки в основном связано с разработкой про­граммного обеспечения, а конкретно — с написанием исходных текстов программ, в которых создаются дополнительные функ­ции. Следовательно, ранее закладка понималась как внутренний объект защищенной системы. Однако закладка может быть и вне­шним объектом по отношению к защищенной системе.

Программные закладки можно классифицировать по методу и месту их внедрения и применения:

· закладки, ассоциированные с программно-аппаратной средой (BIOS);

· закладки, ассоциированные с программами первичной загруз­ки (находящиеся в Master Boot Record или BOOT секторах актив­ных разделов);

· закладки, ассоциированные с загрузкой драйверов DOS, ко­мандного интерпретатора, сетевых драйверов, т.е. с загрузкой опе­рационной среды;

· закладки, ассоциированные с прикладным программным обес­печением общего назначения (встроенные в клавиатурные и эк­ранные драйверы, программы тестирования ПЭВМ, утилиты и оболочки типа NORTON);

· исполняемые модули, содержащие только код закладки (как правило, внедряемые в пакетные файлы типа *.bat);

· модули-имитаторы, совпадающие с некоторыми программа­ми, требующими ввода конфиденциальной информации;

· закладки, маскируемые под программные средства оптимиза­ционного назначения (архиваторы, ускорители и т.д.);

· закладки, маскируемые под программные средства игрового и развлекательного назначения (как правило, используются для первичного внедрения закладок).

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

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

Для того чтобы закладка смогла выполнить какие-либо функции по отношении к прикладной программе, она должна принять управление на себя. Иначе говоря, процессор должен начать вы­полнять инструкции (команды), относящиеся к коду закладки:

· закладка должна находиться в ОП до начала работы программы, которая является целью воздействия заклад­ки, следовательно, она должна быть загружена раньше или одно­временно с этой программой;

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

Разумеется, выполнение перечисленных требований достигается путем анализа и обработки закладкой общих относительно закладки и прикладной программы воздействий (как правило, прерываний). Прерывания должны сопровождать работу прикладной программы или работу всей ЭВМ. В качестве таких прерываний закладками ис­пользуются прерывания от таймера ПЭВМ; прерывания от внешних устройств; прерывания от клавиатуры; прерывания при работе с диском; прерывания операционной среды (в том числе прерывания при работе с файлами и запуск исполняемых модулей).

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

Таким образом, можно выделить следующие закладки [29].

• Резидентного типа. Такие закладки находятся в памяти посто­янно с некоторого момента времени до окончания сеанса работы персонального компьютера (выключения питания или перезаг­рузки). Закладка может быть загружена в память при начальной загрузке ПЭВМ, загрузке операционной среды или запуске неко­торой программы (которая по традиции называется вирусоносителем), а также запущена отдельно.

• Нерезидентного типа. Такие закладки начинают работу по ана­логичному событию, но заканчивают ее самостоятельно по исте­чении некоторого промежутка времени или некоторому событию, при этом целиком выгружая себя из памяти.

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

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

· сохранение фрагментов информации, возникающей при рабо­те пользователя, прикладных программ, вводе-выводе данных, во внешней памяти (локальной или удаленной) сети или выде­ленной ЭВМ;

· разрушение функций самоконтроля или изменение алгорит­мов функционирования прикладных программ;

· навязывание некоторого режима работы (например, при уничтожении информации блокирование записи на диск, при этом информация, естественно, не уничтожается) либо замена запи­сываемой информации навязанной закладкой.

Сохранение фрагментов информации програм­мой-закладкой может происходить при выводе информации на экран видеотерминала, выводе информации в файл или иное внешнее устройство, вводе информации с клавиатуры. Програм­ма выделяет себе в оперативной памяти некоторую область, где помещается информация для обработки (как правило, доступ­ная для непосредственного восприятия: область экрана, клави­атурный буфер). Закладка определяет адрес информативной об­ласти программы (иногда этот адрес фиксирован) и анализи­рует события, связанные с работой прикладной программы или операционной среды. При этом интерес представляют лишь со­бытия, результатом которых может стать появление интересую­щей информации в информативной области. Установив факт интересующего события, закладка переносит всю информатив­ную область либо ее часть в свою область сохранения (непос­редственно на диск или в выделенную область оперативной па­мяти).

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

Кроме того, возможно периодическое сохранение области эк­ранного буфера, сопряженное с таймерным прерыванием.

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

Перехват ввода с клавиатуры достаточно опасен, по­скольку клавиатура является основным устройством управления и ввода информации. Через клавиатурный ввод можно получить сведения о вводимых конфиденциальных сообщениях (текстах), паролях и тому подобных важных данных. Перехват может проис­ходить двумя основными способами: встраивание в цепочку пре­рывания INT 9h или анализ содержания клавиатурного порта или буфера по таймерному прерыванию.

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

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

Активизирующим событием в данном случае является, как пра­вило, открытие файла (INT 21h, функция 3Dh) либо его закрытие.

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

Если злоумышленнику известна интересующая его программа с точностью до команд реализации на конкретном процессоре, он может создать модель процесса ее загрузки и выяснить относитель­ные адреса частей программы относительно сегмента оперативной памяти, в который она загружается. Это означает, что возможно произвольное изменение кода программы и, соответственно, от­клонение (возможно негативного характера) в работе прикладной программы. Тогда алгоритм действия закладки может быть таким:

o закладка загружается в память каким-либо способом;

o закладка осуществляет перехват (редактирование цепочки) од­ного или нескольких прерываний (прерывания DOS «запуск про­грамм и загрузка оверлеев», прерывания BIOS «считать сектор», прерывание таймера);

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

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

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

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

Особенности применения программно-аппаратных средств за­щиты состоят в следующем:

Ø собственные программы управления аппаратной частью, как правило, находятся в ПЗУ и, следовательно, не могут быть изме­нены программным путем;

Ø под управление аппаратным комплексом выделяются средства низкого уровня (операции с портами либо выделенные преры­вания);

Ø управление программам аппаратной части передается до заг­рузки операционной среды, и часть операций, в основном свя­занных с инициализацией начальных состояний устройства, так­же происходит до загрузки операционной среды.

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

o Поскольку обращение к аппаратным средствам происходит из прикладных программ и, как правило, через некоторую проме­жуточную программу управления, воздействие на аппаратное сред­ство может быть сведено к воздействию либо на прикладную про­грамму, либо на программу управления аппаратным комплексом, который находится в ОЗУ.