Рекомендации по безопасности для C++
Обновлен: Ноябрь 2007
В этом разделе содержатся сведения о рекомендуемых инструментах и средствах обеспечения безопасности. Использование этих ресурсов и инструментов не дает полную гарантию защиты от хакерских атак, но при этом существенно снижает шансы на успех таких атак.
Средства безопасности в Visual C++
В этом разделе рассматриваются средства обеспечения безопасности приложений, встроенные в компилятор и компоновщик Visual C++.
Параметр /GS (проверка безопасности буфера)
Этот параметр указывает компилятору на необходимость вставки кода, обнаруживающего переполнения, в функции, которыми могут воспользоваться злоумышленники. При обнаружении переполнения выполнение программы прекращается. По умолчанию этот параметр включен.Параметр /SAFESEH (образ содержит обработчики безопасных событий)
Этот параметр указывает компоновщику на необходимость включения в выходной образ таблицы, содержащей адрес каждого обработчика исключений. Во время выполнения операционная система проверяет по этой таблице, действительно ли используются только допустимые обработчики исключений. Это помогает предотвратить запуск обработчиков исключений, внедряемых злоумышленниками во время выполнения. По умолчанию этот параметр отключен.Параметр /analyze (анализ кода Enterprise)
Этот параметр компилятора запускает анализ кода с целью выявления потенциальных проблем безопасности, таких как переполнение буфера, отмена инициализации памяти, разыменование нулевого указателя и утечки памяти. По умолчанию этот параметр отключен. Дополнительные сведения см. в разделе Общие сведения об анализе кода в C/C++.
Среда выполнения повышенной безопасности
Для среды Visual C++ 2005 в библиотеку C Runtime Library (CRT) были включены безопасные версии функций, которые могут создать угрозу безопасности. (Например, непроверяемая функция строкового копирования strcpy.) Устаревшие, небезопасные версии этих функций использовать не рекомендуется, иначе во время компиляции будут выведены предупреждения о риске для безопасности. Программистам настоятельно рекомендуется использовать безопасные версии этих функций CRT, а не подавлять вывод этих предупреждений компилятора. Дополнительные сведения см. в разделе Security Enhancements in the CRT.
Установленные итераторы
При использовании установленных итераторов пользователи классов контейнеров стандартной библиотеки C++ получают уведомление о попытках доступа к элементам вне границ контейнера. Дополнительные сведения см. в разделе Checked Iterators.
Анализ управляемого кода
Инструмент анализа управляемого кода или FxCop выполняет проверку сборок на соответствие рекомендациям, изложенным в Правилах разработки приложений платформы Microsoft .NET Framework FxCop анализирует код и метаданные внутри каждой сборки и выявляет дефекты по следующим направлениям:
Разработка библиотек
Локализация
Соглашения об именах
Производительность
Безопасность
Инструмент анализа управляемого кода включен в состав Visual Studio Team System, а также доступен для загрузки с веб-узла https://www.gotdotnet.com/team/fxcop/.
Средство проверки приложений Windows
Средство проверки приложений Windows (AppVerifier), включенное в состав набора Application Compatibility Toolkit, поможет разработчикам выявлять потенциальные проблемы совместимости, стабильности и безопасности приложений.
Инструмент AppVerifier осуществляет наблюдение за взаимодействием приложения с операционной системой, в том числе с файловой системой, реестром, памятью, API-функциями во время его выполнения. Этот инструмент также выдает рекомендации по устранению обнаруженных неполадок на уровне исходного кода.
Средство проверки позволяет выполнять следующие операции:
Тестировать приложения на наличие возможных проблем совместимости, возникающих в результате типичных ошибок программирования.
Исследовать приложения для определения утечек памяти.
Определять соответствие приложения различным требованиям программ получения логотипов "Designed for Windows XP" или "Certified for Windows Server™ 2003".
Выявлять потенциальные проблемы безопасности в приложениях.
Средство проверки приложений Windows (Windows Application Verifier) доступно для загрузки с веб-узла https://www.microsoft.com/windows/appcompatibility/appverifier.mspx.
.Средства обеспечения безопасности в NET Framework
В этом разделе представлены общие сведения о двух взаимосвязанных средствах обеспечения безопасности в платформе .NET Framework.
Управление доступом для кода
Представлено описание системы обеспечения безопасности платформы .NET Framework и ее взаимодействия с кодом приложения.Настройка политики безопасности
Представлен перечень рекомендаций и описание инструментов настройки политик безопасности для платформы .NET Framework.
Учетные записи пользователей Windows
Для разработчиков и в конечном счете пользователей использование учетных записей Windows, относящихся к группе "Администраторы", создает повышенный риск для безопасности. Дополнительные сведения см. в разделе Запуск от имени участника группы "Пользователи".
Повышение безопасности средствами системы управления учетными записями пользователей в Windows Vista
Функция контроля учетных записей в Windows Vista используется для назначения учетным записям ограниченных привилегий. Дополнительные сведения см. в разделе Влияние контроля учетных записей пользователей на приложение.
См. также
Основные понятия
Влияние контроля учетных записей пользователей на приложение