На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

А как насчет неисполняемых файлов?

Проблема доверительных отношений, возникающих вследствие конфигурации системы, связана не только с программами с расширением файлов . ехе. Машинный код содержится в файлах различных типов, которые, весьма вероятно, могут испол­няться на удаленной системе. Многие файлы, которые обычно нельзя запустить че­рез командную строку, можно загрузить с помощью атакуемого процесса. В библио­теках DLL, например, содержится исполняемый код и источники данных, подобные обычным исполняемым файлам. Операционная система не загружает библиотеку DLL как независимо работающую программу, но DLL может быть запущена посред­ством существующего исполняемого файла.
Шаблон атаки: использование исполняемого кода в неисполняемых файлах
Хакерам необходимо загрузить или внедрить вредоносный код в атакуемую среду испол­нения, причем в некоторых случаях можно обойтись без добавления этого кода в двоичные файлы. Например, можно внедрить вредоносный код в файл данных, который будет использо­ван атакуемым процессом. В файле данных может содержаться графика или другие данные, и он может вовсе не предназначаться для хранения исполняемого кода. Но если злоумышлен­ник сможет добавить дополнительные блоки кода в этот файл, то процесс, предназначенный для загрузки файлов этого типа, может исполнить этот код.
Исполняемые шрифты
В файле шрифта содержится графическая информация о правилах отображения гарнитуры шрифта. В операционной системе Windows файлы шрифтов являются особой формой библиотек DLL. Таким образом, файл может содержать исполняе­мый код. Для создания файла шрифта программисту необходимо всего лишь добавить данные шрифта к библиотеке DLL. В про­шедшей отладку DLL может содержаться ис­полняемый код. Поскольку файл является файлом ресурса для шрифта, исполняемый код не будет исполняться по умолчанию. Од­нако если целью является внесение исполняе­мого кода в область исполнения атакуемого процесса для проведения последующей атаки, то этот трюк может сработать. Если данные шрифта загружаются с помощью стандартной процедуры загрузки DLL, то программный код будет исполнен.
Файлы шрифтов можно создать, написав библиотеку DLL и добавив к ней ресурс под названием Font в каталоге ресурсов (3). Можно, например, создать программу сборки, которая не содержит исполняемого кода и за­тем добавить данные шрифта. Программный код должен быть обработан ассемблером, по­сле чего к нему будут установлены ссылки.
Использование правил политики
Доверительные отношения, устанавливаемые при настройке программного обес­печения, могут возникать и в результате применения правил политики. Например, в модели Java 2 решения об установке доверительных отношений могут быть опреде­лены в политике и затем реализованы с помощью виртуальной машины. Программ­ному коду Java 2 могут быть предоставлены специальные привилегии, а права дос­тупа будут проверяться согласно правилам политики при запуске этого кода. Поли­тика является краеугольным камнем системы. Правила политики могут задаваться пользователем (неудачное решение) или системным администратором и сохранять­ся в классе java . security. Policy. Это и есть "ахиллесова пята" системы безо­пасности Java 2.
Создание согласованных правил политики на высоком уровне детализации тре­бует немалого опыта и последующей проверки безопасности. Зачастую исполняе­мый код разделяется по категориям, исходя из исходного адреса URL и секретных ключей, использованных для создания подписи этого кода. Правила политики ото­бражают набор правил доступа для программного кода, разделяемого по категориям согласно информации об отправителе (адрес URL) или цифровой подписи конкрет­ного блока кода. Любому специалисту понятно, насколько это сложно. На практике политика Java 2 часто отключается из-за своей чрезмерной сложности. Однако для хакеров файлы политики являются отличными целями для атаки. Ведь для этих файлов очень часто предоставляются слишком большие привилегии.

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика