Рекомендации по безопасности для C++

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

Средства безопасности в Visual C++

Эти функции безопасности, встроенные в компилятора C и компоновщик Visual C-++:

  • Параметр /GS (проверка безопасности буфера)
    Заставляет компилятор вставляет код обнаружения переполнения в функции, риску, эксплуатированным.При обнаружении переполнения выполнение программы прекращается.По умолчанию этот параметр включен.

  • Параметр /SAFESEH (образ содержит обработчики безопасных событий)
    Указывает компоновщик для включения в выходной образ таблицы, содержащей адрес каждого обработчика исключений.Во время выполнения, операционная система использует эту таблицу, чтобы убедиться, что только законные обработчики исключений выполняются.Это помогает предотвратить запуск обработчиков исключений, представленные злостой атакой во время выполнения.По умолчанию этот параметр.

  • /NXCOMPAT, /NXCOMPAT (совместимо с предотвращением исполнения данных (DEP))
    Этот компилятора и компоновщика реализуют совместимость (DEP) предотвращения выполнения данных.Предотвращение выполнения данных предотвращает ЦП для выполнения страниц не кода.

  • /analyze (анализ кода)
    Этот параметр компилятора запускает анализ кода с целью выявления потенциальных проблем безопасности, таких как переполнение буфера, отмена инициализации памяти, разыменование нулевого указателя и утечки памяти.По умолчанию этот параметр.Для получения дополнительной информации см. Общие сведения об анализе кода в C/C++.

  • /DYNAMICBASE (использование технологии Address Space Layout Randomization (ASRL))
    Этот параметр компоновщика включает построение образа), который можно загрузить в других расположениях в памяти в начале выполнения.Этот параметр также делает расположение стека в памяти значительно менее прогнозируемым.

Среда выполнения повышенной безопасности

Библиотека времени выполнения C (CRT) была усовершенствована для включения безопасные версии функций, представляющих безопасность риск- для примера, непроверенной функции копирования строки strcpy.Поскольку стали сопоставления старых, незащищенному версии этих функций, они могут времени компиляции предупреждения.Рекомендуется ободряем можно использовать безопасные версии этих функций CRT, а не подавление предупреждений компилятора.Для получения дополнительной информации см. Средства безопасности в CRT.

Библиотека SafeInt

Библиотека SafeInt помогает предотвратить переполнение целые числа и другие годные для использования ошибок, которые могут возникнуть при запуске приложения математические операции.Библиотека SafeInt включает Класс SafeInt, Класс SafeIntException и несколько функций Функции SafeInt.

Класс SafeInt защищает от ошибок переполнения емкости целочисленных переменных и деления на нуль, которые могут использоваться в злонамеренных целях.Его можно использовать для обработки сравнения значений различных типов.I предоставляет 2 политики обработки ошибок.Политика по умолчанию класса SafeInt заключается в выдаче исключения класса SafeIntException, сообщающего о причинах невозможности выполнения математической операции.Вторая политика заключается в том, что класс SafeInt останавливает выполнение программы.Также можно определить пользовательскую политику.

Каждая функция класса SafeInt защищает от злонамеренного использования ошибок одной из математических операций.Можно использовать два 2 различных параметров без преобразования их в один и тот же тип.Для защиты несколько математические операции используйте класс SafeInt.

Установленные итераторы

Проверяемый итератор принудительное соблюдение контейнера.По умолчанию при превышении ограничений проверяемого итератора создается исключение, и выполнение программы прекращается.Проверяемый итератор имеются и другие уровни ответа, зависят от значений, присвоенные препроцессору определяют, такие как _SECURE_SCL_THROWS и _ITERATOR_DEBUG_LEVEL.Например, в _ITERATOR_DEBUG_LEVEL=2, проверяемый итератор предоставляет полную программа вернет режима отладки, становятся доступными с помощью утверждения.Для получения дополнительной информации см. Проверяемые итераторы.

Анализ управляемого кода

Анализ кода для управляемого кода, также известные как FxCop, проверяет сборки для соответствия рекомендациям по разработке в платформе .NET Framework.FxCop анализирует код и метаданные в каждой сборке для проверки на наличие дефектов в следующих областях:

  • Разработка библиотек

  • Локализация

  • Соглашения об именах

  • Производительность

  • Безопасность

Средство проверки приложений Windows

Средство проверки приложений (средство служб Verifier) может помочь выявить потенциальные совместимость приложений, стабильность и вопросы безопасности.

Средство AppVerifier контролирует использование операционной системы приложением.Она отслеживает файловую систему, реестр, памяти и API во время выполнения приложения, и содержатся исправления источник- кода для проблем, которые она обнаруживаются.

Можно использовать средство служб Verifier:

  • Выполните на предмет потенциальных ошибок совместимости общими программирования приложений, вызванные ошибками.

  • Исследовать приложения для определения утечек памяти.

  • Выявлять потенциальные проблемы безопасности в приложениях.

Средство служб Verifier часть служб Compatibility Toolkit, доступная из веб-сайта на Совместимость приложений TechNet.

Средства обеспечения безопасности в платформе .NET Framework

Configuring Security Policy. описание правила и средства настройки политики безопасности платформы .NET Framework.

Учетные записи пользователей Windows

Для разработчиков и в конечном счете пользователей использование учетных записей Windows, относящихся к группе "Администраторы", создает повышенный риск для безопасности.Дополнительные сведения см. в разделах Запуск от имени участника группы "Пользователи" и Влияние контроля учетных записей пользователей на приложение.

См. также

Ссылки

System.Security

Основные понятия

Влияние контроля учетных записей пользователей на приложение

Другие ресурсы

Безопасность в .NET Framework