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

 

 

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

Файлы данных используются повсеместно. В этих файлах хранится практически все, начиная от документов и заканчивая медиа-данными и критически важными настройками компьютера. Для каждого файла существует внутренний формат, который часто определяет специальную информацию, такую как размер файла, тип медиа-данных, перечень символов, которые должны выделяться жирным шрифтом, — все это закодировано непосредственно в файле данных. Вектор вторжения для атак на подобные файлы выглядит довольно просто: нужно исказить файл данных и подождать, пока его не откроет пользователь.
Файлы некоторых типов очень просты, а для других характерны сложные двоичные структуры и встроенные численные значения. Иногда достаточно открыть сложный файл в редакторе, работающем в шестнадцатеричном формате, и изменить несколько байтов, чтобы вызвать сбой в программе, обрабатывающей этот файл.
Для хакера наибольший интерес представляет такое изменение файла данных, чтобы при его обработке активировался вредоносный код. Прекрасным примером тому является программа Winamp, в которой чересчур длинный тег IDv3 приводит к переполнению буфера. В заголовке файла МРЗ есть область, в которой может записываться обычная текстовая строка. Эта область сохраняется как тег IDv3, и в случае слишком большого тега в программе Winamp происходит переполнение буфера. Это означает, что хакер может создавать вредоносные музыкальные файлы, которые проводят атаку на компьютер, когда их открывают с помощью программы Winamp.
Шаблон атаки: переполнение буфера с помощью изменения файла данных в двоичном формате
Хакер изменяет файл данных, например музыкальный, видеофайл, файл шрифта или файл с графическими данными. Иногда достаточно провести редактирование исходного файла данных в шестнадцатеричном редакторе. Хакер изменяет заголовки и структуру данных, кото­рые указывают на длину строк и т.д.
Переполнение буфера в Netscape Communicator с помощью изменения двоичного файла данных
В версиях Netscape Communicator до 4.7 существует возможность переполнения буфера с помощью файла шрифта для отображения динамических данных, в котором указанная длина шрифта меньше действительного размера шрифта.
Шаблон атаки: переполнение буфера с помощью переменных и тегов
В этом случае атаке подвергается программа, которая выполняет чтение сформатирован-ных конфигурационных данных и вставляет значение переменной или тега в буфер без проверки предельного размера. Хакер создает вредоносную HTML-страницу или конфигурационный файл, в котором содержатся строки, которые способны вызвать переполнение буфера.
Атака на переполнение буфера с помощью переменных и тегов в MidiPlug
В программе Yamaha MidiPlug есть уязвимое место, связанное с возможностью проведения атак на переполнение буфера. Провести эту атаку можно с помощью переменной Text, доступной в теге EMBED.
Атака на переполнение буфера с помощью переменных и тегов в exim
Атака на переполнение буфера в программе exim позволяет локальным пользователям получить привилегии суперпользователя после занесения чересчур длинного значения в параметр :include: в файле.forward.
Шаблон атаки: переполнение буфера с помощью символических ссылок
Пользователь часто получает непосредственный контроль над программой с помощью символических ссылок. Даже при установке всех ограничений доступа символическая ссылка может предоставлять доступ к файлу. Символические ссылки позволяют провести те же атаки, которые возможны благодаря конфигурационным файлам, хотя в атаке появляется дополнительный уровень сложности. Не забывайте, что атакуемое программное обеспечение получит данные, заданные с помощь символической ссылки к файлу, и даже сможет использовать ее для установки значений переменных. Это зачастую предоставляет доступ к буферу, для которого не установлено ограничений.
Переполнение буфера в EFTP-сервере с помощью символических ссылок
В программном коде сервера EFTP есть ошибка на переполнение буфера, которой можно воспользоваться, если хакер загрузит файл с расширением .Ink (ссылочный файл) и размером более 1744 байт. Это классический пример опосредованного переполнения буфера. Сначала хакер загружает ссылочный файл, а затем заставляет клиента воспользоваться вредоносными данными. В этом примере для компрометации серверного программного обеспечения использована команда Is.
Шаблон атаки: преобразование MIME
Набор стандартов MIME позволяет интерпретировать и передавать по электронной почте данные в различных форматах. Возможность проведения атак появляется в момент преобразования данных в М1МВ'СОВместимый формат и наоборот.
Переполнение буфера в программе sendmail
В версиях программы sendmail 8.8.3 и 8.8.4 возможно переполнение буфера при преобразовании данных в формат MIME.
Шаблон атаки: файлы cookie для протокола HTTP
Поскольку протокол HTTP не ориентирован на установление соединения, для него используются файлы cookie (небольшие файлы, хранящиеся в клиентском браузере), в основном для сохранения информации о состоянии соединения. Уязвимая система обработки данных cookie способствует тому, что и клиенты, и HTTP-демоны оказываются уязвимыми для атак на переполнение буфера.
Переполнение буфера в Web-сервере Apache
Web-сервер Apache HTTPD является наиболее популярным Web-сервером в мире. В демон HTTPD встроены механизмы обработки файлов cookie. В версиях до 1.1.1 включительно существует уязвимое место переполнения буфера с помощью файлов cookie.
Все эти примеры следует расценивать лишь как проблемы, лежащие на поверхности. Клиентское программное обеспечение практически никогда не проходит качественного тестирования, не говоря уже о тестировании системы безопасности. Один из особенно интересных аспектов атак на клиентские программы заключается в том, код атаки исполняется с правами пользователя, который работает с программой, т.е. при успешной атаке хакер получает доступ ко всему, к чему имеет доступ пользователь, включая сообщения электронной почты и другую конфиденциальную информацию.

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

 

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