Обзор автоматизации средства безопасности SDL

Завершено

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

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

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

Средства безопасности Описание
Статический анализ кода Анализирует исходный код на наличие потенциальных недостатков безопасности, включая наличие учетных данных в коде.
Двоичный анализ Оценивает уязвимости на уровне двоичного кода, чтобы подтвердить готовность кода к выпуску.
Сканирование шифрования Проверяет лучшие методики шифрования в исходном коде и выполнении кода.
Проверка конфигурации Анализирует конфигурацию производственных систем на уровне стандартов безопасности и лучших методик.

Статический анализ кода и двоичный анализ

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

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

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

Сканирование шифрования

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

Проверка конфигурации

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

Подробнее