Стратегия безопасности WPF — проектирование безопасности

Защищенные информационные системы — это инициатива корпорации Майкрософт по созданию безопасного программного кода. Ключевым элементом для создания защищенных информационных систем является Microsoft Security Development Lifecycle (SDL). SDL является технической практикой, которая используется в сочетании со стандартным инженерными процессами для содействия получению безопасного программного кода. SDL состоит из десяти этапов, которые сочетают лучшие рекомендации с формализацией, измерением и дополнительными структурами, включая:

  • Анализ разработки безопасности

  • Проверка качества на базе средств

  • Тестирование проникновения

  • Окончательная проверка безопасности

  • Управление безопасностью после выпуска продукта

Спецификации WPF

Техническая группа WPF применяет и расширяет спецификации SDL, сочетание которых включает следующие ключевые аспекты:

Моделирование угроз

Анализ безопасности и средства редактирования

Технологии тестирования

Управление важным кодом

Моделирование угроз

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

На высоком уровне моделирование угроз состоит из следующих ключевых шагов, в которых используется хранилище в качестве примера.

  1. Идентификация активов. Активы хранилища могут включать сотрудников, сейф, кассовые аппараты и материально-производственные запасы.

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

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

Моделирование угроз применяется ко всем WPF и включает следующее:

  • Как синтаксический анализатор XAML считывает файлы, сопоставляя текст с соответствующими классами объектных моделей, и создает фактический код.

  • Как создается дескриптор окна (HWND), отправляет сообщения и используется для отрисовки содержимого окна.

  • Как привязка данных получает ресурсы и взаимодействует с системой.

Эти модели угроз важны для идентификации требований к разработке безопасности и снижения угроз в процессе разработки.

Анализ источника и средства редактирования

В дополнение к элементам анализа кода безопасности SDL вручную группа WPF использует несколько средств для анализа источника и связанных изменений для уменьшения уязвимых мест в системе безопасности. Используются широкий диапазон средств, включая следующие:

  • FXCop: выполняет поиск общих проблем безопасности в управляемом коде — от правил наследования до использования управления доступом для кода и безопасного взаимодействия с неуправляемым кодом. См. FXCop.

  • Prefix/Prefast: выполняет поиск уязвимости системы безопасности и общих проблем безопасности в неуправляемом коде, таких как переполнение буфера, проблемы строки форматирования и контроль ошибок.

  • Banned APIs: выполняет поиск в исходном коде для идентификации случайного использования функций, которые известны своими проблемами безопасности, таких как strcpy. После идентификации эти функции заменяются альтернативными, которые более безопасность.

Технологии тестирования

WPF использует различные методы тестирование безопасности, включая следующие:

  • Тестирование компьютеров собственного построения: тестеры просматривают исходный код и затем создают тесты программ атак

  • Тестирование "черного ящика": тестеры пытаются найти программные коды, предназначенные для атаки системы безопасности, проверяя API и возможности, а затем пытаются повторить атаку продукта.

  • Проблемы снижения безопасности в результате использования других продуктов: тестирование проблем безопасности, связанных с продуктами, там, где это обосновано. Например, определены и опробованы на их применимость к WPF соответствующие варианты приблизительно шестидесяти проблем безопасности Internet Explorer.

  • Тестирование проникновения на базе средств через нечеткое тестирование файлов: нечеткое тестирование файлов — это использование входного диапазона модуля чтения файлов через разные устройства ввода. Примером WPF, в котором используется этот способ, является проверка неисправности в декодировании кода изображения.

Управление важным кодом

Для XAML browser applications (XBAPs) WPF создает систему безопасности "песочница" с помощью поддержки .NET Framework для метки и отслеживания важного кода безопасности, который повышает привилегии (см. Методология критической безопасности в разделе Стратегия безопасности WPF — безопасность платформы). Учитывая высокие требования к качеству безопасности по защите важного кода, такой код получает дополнительный уровень контроля управления источником и аудита безопасности. Примерно от 5% до 10% WPF состоит из кода критической безопасности, который просматривается выделенный группой рецензирования. Исходный код и процесс возврата управляется отслеживанием критического кода безопасности, и каждая критическая сущность (т. е. метод, содержащий критический код) сопоставляется с отключенным состоянием. Знак отключенного состояния включает имена одного или нескольких рецензентов. Каждое ежедневное построение WPF сравнивает критический код с предыдущими сборками для проверки неутвержденных изменений. Если разработчик из рабочей группы рецензирования изменяет критический код без утверждения, это определяется и немедленно фиксируется. Этот процесс обеспечивает приложению и обслуживанию особенно высокий уровень безопасности через код "песочницы" WPF.

См. также

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

Безопасность (WPF)

Безопасность частичного доверия в WPF

Стратегия безопасности WPF — безопасность платформы

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

Trustworthy Computing

Application Threat Modeling

Security Guidelines: .NET Framework 2.0