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


Жизненный цикл разработки защищенных приложений (Майкрософт) (SDL)

Безопасность и конфиденциальность никогда не должны быть забвение при разработке безопасного программного обеспечения. Должен быть формальный процесс, обеспечивающий, чтобы команда разработчиков учитывает безопасность и конфиденциальность на всех этапах жизненного цикла продукта. Жизненный цикл разработки безопасности (SDL) корпорации Майкрософт внедряет в разработку и эксплуатацию всех программных продуктов комплексные требования к безопасности, специальные средства и обязательные процессы. Все команды разработчиков корпорации Майкрософт должны соблюдать процессы и требования SDL. Это приводит к более безопасному программному обеспечению с меньшим количеством и менее серьезными уязвимостями при снижении затрат на разработку.

Процесс жизненного цикла разработки безопасности.

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

Обучение

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

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

Требования

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

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

Проектирование

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

Схема моделирования угроз.

Процесс моделирования угроз начинается с определения различных компонентов продукта и того, как они взаимодействуют друг с другом в ключевых функциональных сценариях, таких как проверка подлинности. Создание Поток данных диаграмм (DFD) для визуального представления ключевых взаимодействий потока данных, типов данных, портов и протоколов. Используйте DFD для выявления и определения приоритетов угроз для устранения рисков, которые добавляются в требования к безопасности продукта.

Команды служб используют Threat Modeling Tool Майкрософт для создания моделей угроз, которые позволяют команде:

  • Информирование о проектировании системы безопасности своих систем
  • Анализ проектов безопасности на предмет потенциальных проблем с безопасностью с помощью проверенной методологии
  • Рекомендации по устранению проблем безопасности и управление ими

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

Реализация

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

Проверка

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

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

  • Статический анализ кода. Анализирует исходный код на наличие потенциальных ошибок безопасности, включая наличие учетных данных в коде.
  • Двоичный анализ. Оценивает уязвимости на уровне двоичного кода, чтобы убедиться, что код готов к работе.
  • Проверка учетных данных и секретов. Определяет возможные экземпляры раскрытия учетных данных и секретов в исходном коде и файлах конфигурации.
  • Сканирование шифрования. Проверяет рекомендации по шифрованию в исходном коде и выполнении кода.
  • Нечеткое тестирование. Использует неправильные и непредвиденные данные для реализации API и средств синтаксического анализа для проверка уязвимостей и проверки обработки ошибок.
  • Проверка конфигурации. Анализирует конфигурацию рабочих систем в соответствии со стандартами безопасности и рекомендациями.
  • Управление компонентами (CG): обнаружение программного обеспечения с открытым кодом и проверка версии, уязвимостей и юридических обязательств.

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

Кроме того, как внутренние, так и внешние поставщики регулярно проводят тесты на проникновение в microsoft веб-службы. Тесты на проникновение предоставляют еще одно средство обнаружения недостатков безопасности, которые не обнаруживаются другими методами. Дополнительные сведения о тестировании на проникновение в Корпорации Майкрософт см . в статье Моделирование атак в Microsoft 365.

Выпуск

После прохождения всех необходимых тестов безопасности и проверок сборки не сразу выпускаются для всех клиентов. Процесс выпуска систематически и постепенно выпускает сборки для больших и больших групп, называемых кольцами, в так называемом безопасном процессе развертывания (SDP). Как правило, круги SDP можно определить следующим образом:

  • Круг 0: группа разработчиков, ответственная за службу или функцию.
  • Круг 1. Все сотрудники Майкрософт
  • Круг 2. Пользователи за пределами Корпорации Майкрософт, настроившие свою организацию или определенных пользователей на целевой канал выпуска
  • Круг 3. Выпуск стандарта по всему миру в подфазе

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

Отклик

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