Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Безопасность и конфиденциальность никогда не должны быть забвение при разработке безопасного программного обеспечения. Должен быть формальный процесс, обеспечивающий, чтобы команда разработчиков учитывает безопасность и конфиденциальность на всех этапах жизненного цикла продукта. Жизненный цикл разработки безопасности (SDL) корпорации Майкрософт внедряет в разработку и эксплуатацию всех программных продуктов комплексные требования к безопасности, специальные средства и обязательные процессы. Все команды разработчиков корпорации Майкрософт должны соблюдать процессы и требования SDL. Это приводит к более безопасному программному обеспечению с меньшим количеством и менее серьезными уязвимостями при снижении затрат на разработку.
Microsoft SDL состоит из семи компонентов, включая пять основных этапов и два вспомогательных действия по обеспечению безопасности. Пять основных этапов — требования, проектирование, реализация, проверка и выпуск. Каждый из этих этапов содержит обязательные проверки и утверждения, чтобы обеспечить надлежащее соблюдение всех требований безопасности и конфиденциальности, а также рекомендаций. Два вспомогательных действия по обеспечению безопасности, обучение и реагирование, выполняются до и после основных этапов соответственно, чтобы обеспечить их правильную реализацию, а программное обеспечение остается безопасным после развертывания.
Обучение
Все сотрудники Корпорации Майкрософт должны пройти обучение по вопросам общей безопасности и конфиденциальности, а также провести специальное обучение, связанное с их ролью. Новые сотрудники получают начальное обучение по найму, и ежегодное обучение по обновлению требуется на протяжении всего периода их работы в Корпорации Майкрософт.
Разработчики и инженеры также должны участвовать в обучении для конкретных ролей, чтобы информировать их об основах безопасности и последних тенденциях в безопасной разработке. Всем сотрудникам с полной занятостью, стажеру, штатным сотрудникам, субподрядчикам и третьим лицам также рекомендуется и предоставляется возможность получить расширенную подготовку по вопросам безопасности и конфиденциальности.
Требования
Каждый продукт, услуга и функции, разрабатываемые корпорацией Майкрософт, начинаются с четко определенных требований к безопасности и конфиденциальности. Эти требования формируют основу безопасных приложений и формируют их структуру. Группы разработчиков определяют эти требования на основе таких факторов, как тип данных, обрабатываемых продуктом, известные угрозы, рекомендации, правила и отраслевые требования, а также уроки, извлеченные из предыдущих инцидентов. После определения команда разработчиков четко документирует и отслеживает требования.
Разработка программного обеспечения — это непрерывный процесс, что означает, что связанные требования к безопасности и конфиденциальности изменяются на протяжении жизненного цикла продукта в соответствии с изменениями в функциональных возможностях и ландшафте угроз.
Проектирование
Определив требования к безопасности, конфиденциальности и функциональности, вы можете приступить к разработке программного обеспечения. В рамках процесса проектирования создайте модели угроз, помогающие выявлять, классифицировать и оценивать потенциальные угрозы в соответствии с рисками. Обслуживание и обновление моделей угроз на протяжении всего жизненного цикла каждого продукта при внесении изменений в программное обеспечение.
Процесс моделирования угроз начинается с определения различных компонентов продукта и того, как они взаимодействуют друг с другом в ключевых функциональных сценариях, таких как проверка подлинности. Создание Поток данных диаграмм (DFD) для визуального представления ключевых взаимодействий потока данных, типов данных, портов и протоколов. Используйте DFD для выявления и определения приоритетов угроз для устранения рисков, которые добавляются в требования к безопасности продукта.
Команды служб используют Threat Modeling Tool Майкрософт для создания моделей угроз, которые позволяют команде:
- Информирование о проектировании системы безопасности своих систем
- Анализ проектов безопасности на предмет потенциальных проблем с безопасностью с помощью проверенной методологии
- Рекомендации по устранению проблем безопасности и управление ими
Перед выпуском любого продукта просмотрите все модели угроз на точность и полноту, включая устранение неприемлемых рисков.
Реализация
Реализация начинается с того, что разработчики пишут код в соответствии с планом, созданным на предыдущих двух этапах. Корпорация Майкрософт предоставляет разработчикам набор безопасных средств разработки для эффективной реализации всех требований к безопасности, конфиденциальности и функциям разрабатываемого ими программного обеспечения. К этим средствам относятся компиляторы, безопасные среды разработки и встроенные проверки безопасности.
Проверка
Перед выпуском написанного кода необходимо выполнить несколько проверок и утверждений, чтобы убедиться, что код соответствует SDL, соответствует требованиям к проектированию и не содержит ошибок программирования. Проверка вручную выполняется рецензентом, который не является инженером, разработавшим код. Разделение обязанностей является важным элементом управления на этом шаге, чтобы свести к минимуму риск написания и выпуска кода, что приведет к случайному или злонамеренному вреду.
Также необходимо выполнить различные автоматические проверки, встроенные в конвейер, для анализа кода во время проверка и при компиляции сборок. Проверки безопасности, используемые в корпорации Майкрософт, делятся на следующие категории:
- Статический анализ кода. Анализирует исходный код на наличие потенциальных ошибок безопасности, включая наличие учетных данных в коде.
- Двоичный анализ. Оценивает уязвимости на уровне двоичного кода, чтобы убедиться, что код готов к работе.
- Проверка учетных данных и секретов. Определяет возможные экземпляры раскрытия учетных данных и секретов в исходном коде и файлах конфигурации.
- Сканирование шифрования. Проверяет рекомендации по шифрованию в исходном коде и выполнении кода.
- Нечеткое тестирование. Использует неправильные и непредвиденные данные для реализации API и средств синтаксического анализа для проверка уязвимостей и проверки обработки ошибок.
- Проверка конфигурации. Анализирует конфигурацию рабочих систем в соответствии со стандартами безопасности и рекомендациями.
- Управление компонентами (CG): обнаружение программного обеспечения с открытым кодом и проверка версии, уязвимостей и юридических обязательств.
Если рецензент вручную или автоматизированные средства обнаруживают какие-либо проблемы с кодом, они уведомляют отправителя. Отправитель должен внести необходимые изменения перед отправкой кода для повторной проверки.
Кроме того, как внутренние, так и внешние поставщики регулярно проводят тесты на проникновение в microsoft веб-службы. Тесты на проникновение предоставляют еще одно средство обнаружения недостатков безопасности, которые не обнаруживаются другими методами. Дополнительные сведения о тестировании на проникновение в Корпорации Майкрософт см . в статье Моделирование атак в Microsoft 365.
Выпуск
После прохождения всех необходимых тестов безопасности и проверок сборки не сразу выпускаются для всех клиентов. Процесс выпуска систематически и постепенно выпускает сборки для больших и больших групп, называемых кольцами, в так называемом безопасном процессе развертывания (SDP). Как правило, круги SDP можно определить следующим образом:
- Круг 0: группа разработчиков, ответственная за службу или функцию.
- Круг 1. Все сотрудники Майкрософт
- Круг 2. Пользователи за пределами Корпорации Майкрософт, настроившие свою организацию или определенных пользователей на целевой канал выпуска
- Круг 3. Выпуск стандарта по всему миру в подфазе
Сборки остаются в каждом из этих кругов в течение соответствующего количества дней с большим периодом нагрузки, за исключением круга 3, так как сборка надлежащим образом проверяется на стабильность в предыдущих кругах.
Отклик
После выпуска все службы Майкрософт тщательно регистрируются и отслеживаются. Централизованная собственная система мониторинга почти в реальном времени определяет потенциальные инциденты безопасности. Дополнительные сведения о мониторинге безопасности и управлении инцидентами безопасности в Корпорации Майкрософт см. в разделах Обзор мониторинга безопасности и Управление инцидентами безопасности Майкрософт.