Конспект

Конспект

Уязвимость форматирующей строки

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

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

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

Пример уязвимой программы

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

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

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

Тестирование программ способом случайной форматирующей строки

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

· Спецификации формата %s, %x, %p могут указывать на уязвимости форматирующей строки, если в отформатированной строке они замещаются данными из памяти. Использование этих спецификаций формата не всегда свидетельствует о наличии в программе уязвимости форматирующей строки, так же как и не все уязвимости проявляются при выводе отформатированной строки.

· Аварийное завершение процесса из-за спецификаций преобразования %п или %5, которым соответствуют входные данные программы, свидетельствует об уязвимости форматирующей строки.

Программа атаки с использованием форматирующей строки

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

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

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

· На платформах, где не разрешается записывать данные в память по невыровненным адресам памяти, как, например, на платформе RISC, спецификация преобразования %hn может быть использована для записи коротких целых величин в адреса памяти, выровненные по двухбайтовым границам.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Конспект

Из книги автора

Конспект Обзор законов безопасности· Рассмотрены законы.· Законы нужно знать для того, чтобы сделать систему более безопасной.· Помните, что законы изменяются.Закон 1. Невозможно обеспечить безопасность клиентской части· Безопасность клиентской части целиком


Конспект

Из книги автора

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


Конспект

Из книги автора

Конспект Суть методологии исследования уязвимости· Анализ и экспертиза исходного текста программы – идеальная методология поиска ее уязвимостей.· Исследование исходного текста программ предполагает поиск подверженных ошибкам директив, построчную экспертизу


Конспект

Из книги автора

Конспект Суть поиска различий· Поиск различий – процесс сравнения исследуемых объектов до и после свершения событий.· Поиск различий может использоваться для обнаружения изменения файла программным путем или выяснения сути исправления уязвимости.· Команда diff может


Конспект

Из книги автора

Конспект Концепции криптографии· Незашифрованные данные называются открытым (незашифрованным) текстом ( plaintext), а зашифрованные – зашифрованным текстом (ciphertext). · Криптографические системы могут быть симметричными и асимметричными. В симметричных криптосистемах


Конспект

Из книги автора

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


Конспект

Из книги автора

Конспект Стек· Область стека предназначена для хранения локальных переменных функции. Обычно она настраивается для работы в прологе функции – части программного кода, расположенного в начале функции, и очищается в эпилоге – части программного кода, расположенного в ее


Конспект

Из книги автора

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


Конспект

Из книги автора

Конспект Что такое прослушивание сетевого трафика?· Sniffing – прослушивание сетевого трафика (пассивное).· В классических операциях анализатор сетевого трафика присоединяется на стороне сетевой шины.· В новых операциях анализаторы устанавливаются на машине или шлюзе для


Конспект

Из книги автора

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


Конспект

Из книги автора

Конспект Определение спуфинга· Мерике Кеао (Merike Keao) утверждает, что атаки спуфинга «обеспечивают ложную информацию об идентификационных данных для получения неавторизованного доступа к системе».· Атаки спуфинга – это нападения, которые фальсифицируют


Конспект

Из книги автора

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


Конспект

Из книги автора

Конспект Основные сведения о хакинге аппаратных средств· Как правило, хакинг аппаратных средств преследует цель извлечь выгоду из получения доступа к секретным данным или заставить устройство выполнить нечто, для чего первоначально оно не предназначалось.· Атаки на


Конспект

Из книги автора

Конспект Различия между вирусами, Троянскими программами и червями· Вирусы остаются на локальном компьютере, черви могут распространяться через Интернет, а Троянские программы обычно вообще не распространяются.· Макровирусы используют для активизации язык,


Конспект

Из книги автора

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


Конспект

Из книги автора

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