Чтение онлайн

на главную

Жанры

Защита от хакеров корпоративных сетей

авторов Коллектив

Шрифт:

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

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

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

· Неправильное использование функции syslog является причиной значительного числа уязвимостей форматирующей

строки, большинство из которых чревато опасными последствиями.

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

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

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

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

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

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

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

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

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

Часто задаваемые вопросы

Наиболее часто авторы книги отвечали на приведенные ниже вопросы. Вопросы интересны тем, что они позволяют читателю лучше усвоить изложенный в главе материал и реализовать его на практике в интересах обеспечения безопасности вычислительных систем. Если у читателя возникли вопросы по главе, то зайдите на сайт www.syngress.com/solutions и щелкните мышкой на кнопке «Ask the Author».

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

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

Вопрос: Специфичны ли уязвимости форматирующей строки в системе UNIX? Ответ: Нет. Благодаря частому использованию функции printf уязвимости форматирующей строки в системе UNIX аналогичны уязвимостям форматирующей строки в других операционных системах. Большой вклад в специфику уязвимостей форматирующей строки системы UNIX вносит неверное использование функции syslog. Возможность использования злоумышленником этих ошибок, включая запись в память, зависит от того, поддерживает ли реализация функции printf спецификацию преобразования %n. Если поддерживает, то теоретически любая программа, в которой есть ошибки форматирующей строки и которая отредактирована с этой библиотекой, может быть использована для выполнения произвольного программного кода.

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

Вопрос: Как избежать или минимизировать риск от неизвестной уязвимости форматирующей строки в своей программе у себя на системе? Ответ: Для начала надо выработать политику безопасности. Положитесь на модель минимальных привилегий (least-privileges model). Гарантируйте, что будут инсталлированы действительно нужные утилиты, которые могут быть запущены членами доверенной группы. Отключите или заблокируйте доступ ко всем сервисам, которые не являются действительно необходимыми.

Вопрос: Что может служить признаками попыток использования уязвимостей форматирующей строки? Ответ: Этот вопрос уместен, потому что много уязвимостей форматирующей строки обязаны своим происхождением неверному использованию функции syslog. Когда злоумышленник использует уязвимость форматирующей строки, возникшую в результате неверного использования функции syslog, отформатированная строка выводится в поток журнала. Администратор, просматривая системный журнал, может выявить попытку воспользоваться уязвимостью форматирующей строки по необычной строке системного журнала. Другими общими признаками использования уязвимости форматирующей строки является пропадание программ демонов или регулярное их аварийное завершение из-за ошибок нарушения доступа.

Поделиться:
Популярные книги

Измена. Я отомщу тебе, предатель

Вин Аманда
1. Измены
Любовные романы:
современные любовные романы
5.75
рейтинг книги
Измена. Я отомщу тебе, предатель

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Мимик нового Мира 6

Северный Лис
5. Мимик!
Фантастика:
юмористическая фантастика
попаданцы
рпг
5.00
рейтинг книги
Мимик нового Мира 6

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Темный Патриарх Светлого Рода 4

Лисицин Евгений
4. Темный Патриарх Светлого Рода
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 4

Стрелок

Астахов Евгений Евгеньевич
5. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Стрелок

На границе империй. Том 6

INDIGO
6. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.31
рейтинг книги
На границе империй. Том 6

Архил…? Книга 3

Кожевников Павел
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
Архил…? Книга 3

Доктора вызывали? или Трудовые будни попаданки

Марей Соня
Фантастика:
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Доктора вызывали? или Трудовые будни попаданки

Лорд Системы 11

Токсик Саша
11. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 11

Черный Маг Императора 5

Герда Александр
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5

Последний попаданец 2

Зубов Константин
2. Последний попаданец
Фантастика:
юмористическая фантастика
попаданцы
рпг
7.50
рейтинг книги
Последний попаданец 2