Лекция: Основы функционирования программных закладок

 

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

В настоящее время выделяют следующие способы встраивания программных закладок[2]:

1)маскировка закладки под «безобидное» программное обеспечение.Данный способ заключается в том, что программная закладка внедряется в систему под видом новой программы, на первый взгляд абсолютно безобидной. Программная закладка может представлять собой простой текстовый или графический редактор, системную утилиту, компьютерную игру, хранитель экрана (screen saver) и т. д. После внедрения закладки ее присутствие в системе не нужно маскировать – даже если администратор заметит факт появления в системе новой программы, он не придаст этому значения, поскольку эта программа внешне совершенно безобидна.

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

2)маскировка закладки под «безобидный» модуль расширения программной среды. Многие программные среды допускают свое расширение дополнительными программными модулями. Например, для операционных систем семейства Microsoft Windows модулями расширения могут выступать динамически подгружаемые библиотеки (DLL), драйверы устройств. В качестве одного или нескольких модулей расширения может быть внедрена в систему программная закладка.

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

При внедрении программной закладки в многопользовательскую программную среду, поддерживающую разграничение доступа к объектам, данный метод более эффективен, чем предыдущий. Это объясняется тем, что модули расширения среды могут быть загружены не только пользователем, но и системными процессами программной среды. В этом случае модуль расширения получает сущест-венно большие полномочия. Например, драйверы устройств операционной системы Microsoft Windows NT выполняются в привилегированном режиме, что позволяет им игнорировать разграничение доступа к объектам. В результате драйвер любого устройства Windows NT может обратиться к любому объекту операционной системы по любому методу доступа, в частности прочитать, изменить или удалить любой файл.

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

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

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

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

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

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

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

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

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

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

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

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

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

 

еще рефераты
Еще работы по информатике