Поделиться через


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

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

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

  • Проверки качества на основе инструментов

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

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

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

Особенности WPF

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

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

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

методы тестирования

управление критически важным кодом

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

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

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

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

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

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

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

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

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

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

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

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

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

Предупреждение

Безопасность доступа к коду (CAS) не поддерживается современной платформой .NET, это концепция только для .NET Framework. Все функциональные возможности, связанные с CAS, обрабатываются при предположении полного доверия. Дополнительные сведения см. в разделе "Различия с WPF .NET — безопасность доступа к коду".

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

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

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

Методы тестирования

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

  • Whitebox Testing: тестировщики просматривают исходный код, а затем создают тесты эксплойтов.

  • Blackbox Testing: тестировщики пытаются найти эксплойты безопасности путем изучения API и функций, а затем пытаются атаковать продукт.

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

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

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

Для XAML-браузерных приложений (XBAP) WPF создает песочницу безопасности, используя возможности .NET Framework для отметки и отслеживания кода, критически важного для безопасности, который повышает привилегии (см. методологию Security-Critical в стратегии безопасности WPF — безопасность платформы). Учитывая требования высокого качества безопасности к критическому коду безопасности, такой код получает дополнительный уровень управления версиями и аудита безопасности. Около 5% до 10% процентов кода WPF является критически важным с точки зрения безопасности и проверяется специальной группой по проверке. Исходный код и процесс регистрации управляется отслеживанием критического кода безопасности и сопоставлением каждой критической сущности (т. е. метода, содержащего критически важный код) с состоянием выхода. Состояние выхода содержит имена одного или нескольких рецензентов. Каждая ежедневная сборка WPF сравнивает критически важный код с кодом в предыдущих сборках, чтобы проверить наличие несанкционированных изменений. Если инженер изменяет критически важный код без утверждения от команды проверки, он определяется и исправляется немедленно. Этот процесс позволяет внедрению и поддержанию особого высокого уровня контроля над кодом песочницы WPF.

Предупреждение

Для работы XBAPs требуются устаревшие браузеры, такие как Internet Explorer и старые версии Firefox. Эти старые браузеры обычно не поддерживаются в Windows 10 и Windows 11. Современные браузеры больше не поддерживают технологию, необходимую для приложений XBAP из-за рисков безопасности. Плагины, позволяющие использовать XBAP, больше не поддерживаются. Дополнительные сведения см. в статье Часто задаваемые вопросы о приложениях, размещенных в браузере WPF (XBAP),.

См. также