Безопасный жизненный цикл разработки - схемы

Узнайте больше о Well-Architected T Trust → Жизненный цикл безопасной разработки

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

Шаблоны

Где искатьКак хорошо выглядит
Разработка | Инструменты✅ Сканирование безопасности IDE, интегрированное в бизнес-процесс разработчика
Разработка | Дизайн✅ Моделирование угроз завершено на этапе проектирования с использованием методологии STRIDE
Разработка | Требования✅ Требования безопасности, включенные в истории пользователей и критерии принятия
Разработка | Исходный контроль✅ Хуки перед обязательствами внедряют политики безопасности (тайное сканирование, анализ кода)
Разработка | Обучение✅ Обучение безопасности разработчика регулярно обновляется с учетом меняющихся угроз
Разработка | CI/CD✅ Автоматическое тестирование безопасности в ожидаемых продажах CI/CD не выполняется на основе важных выводов
Разработка | Проверка кода✅ Требуются коллегиальные проверки безопасности для проверки подлинности, авторизации и кода доступа к данным
Разработка | Анализ кода✅ Стандарты безопасного кодирования внедряются посредством строк и статического анализа
Разработка | Зависимости✅ Сканирование уязвимости зависимостей выполняется при каждом обязательстве
Разработка | Тестирование✅ Область тестирования проникновения содержит новые функции до выпуска ГА

Антишаблоны

Где искатьКак плохо выглядит
Разработка | Тестирование⚠️ Тестирование безопасности отложено до проверки вручную перед выпуском
Разработка | Обучение⚠️ Обучение безопасности, проводимое один раз только во время адаптации
Разработка | Проверка кода⚠️ Группа безопасности проверяет код после объединения
Разработка | Дизайн⚠️ Модели угроз не обновляются при изменении архитектуры
Разработка | Исходный контроль⚠️ Секретное сканирование отключено для уменьшения ложных положительных результатов
Разработка | CI/CD⚠️ Выводы безопасности игнорируются при приближении сроков выпуска

Шаблоны

Где искатьКак хорошо выглядит
Впрыск✅ Запросы SOQL используют переменные связывания для предотвращения инъекции
Впрыск✅ Вводные данные пользователя проверены и обработаны перед использованием в SOQL, SOSL или динамических запросах
Впрыск✅ Динамический SOQL ограничен только надежными вводными данными
Контроль доступа✅ Полномочия CRUD и FLS применяются посредством Security.stripInaccessible()
XSS✅ Компоненты Lightning избегают пользовательского содержимого в рендеринге пользовательского интерфейса
Впрыск✅ Внешние интеграции API проверяют и очищают все вводные данные
Контроль доступа✅ Доступ пользователей-гостей минимизирован и строго ограничен
Проверка подлинности✅ Именованные регистрационные данные, используемые для внешней проверки подлинности (не жестко запрограммированные регистрационные данные)
Проверка подлинности✅ Потоки OAuth 2.0, реализованные корректно посредством PKCE
Управление сеансами✅ Политики безопасности сеанса внедряют ограничения по времени ожидания и IP-адресам
Конфигурация✅ Ежеквартальная проверка состояния безопасности и исправление выводов, связанных с высоким риском
Контроль доступа✅ Настраиваемые метаданные и полномочия, проверенные во избежание избыточных полномочий

Антишаблоны

Где искатьКак плохо выглядит
Впрыск⚠️ Запросы SOQL, созданные посредством конкатенации строк с вводом пользователя
Контроль доступа⚠️ Профили пользователей-гостей, которым предоставлены полномочия «Создание», «Обновление» или «Удаление»
XSS⚠️ Компоненты Lightning используют в шаблонах выражения nescape
Проверка подлинности⚠️ Внешние интеграции используют жестко запрограммированные регистрационные данные в коде
Регистрация⚠️ Журналы отладки содержат конфиденциальные данные, например, пароли или персональные данные
Контроль доступа⚠️ Проверки FLS и CRUD пропущены, поскольку «мы контролируем всех пользователей»
Конфигурация⚠️ Результаты проверки состояния безопасности пропущены или отложены на неопределенный срок

Шаблоны

Где искатьКак хорошо выглядит
Конвейеры | Управление источниками✅ Правила защиты филиала внедряют обязательные проверки и проверки статуса
Конвейеры | Управление доступом✅ Конвейеры развертывания используют сервисные организации с минимальными обязательными полномочиями
Конвейеры | Секреты✅ Секреты, хранящиеся в надежных хранилищах (никогда в контрольном источнике или переменных среды)
Ожидаемые продажи | Развертывание✅ Производственные развертывания требуют ручного утверждения от авторизованного персонала
Ожидаемые продажи | Аудит✅ Журналы развертывания собирают, кто и когда что развертывал, с помощью журналов утверждений
Конвейеры | Проверка✅ Проверка перед развертыванием включает сканирование безопасности и проверку соответствия
Конвейеры | Управление доступом✅ Многофакторная проверка подлинности, необходимая для административного доступа к ожидаемым продажам
Конвейеры | Мониторинг✅ Изменения конфигурации ожидаемых продаж инициируют уведомления группы безопасности
Конвейеры | Проверка✅ Автоматическая проверка после развертывания подтверждает активные ожидаемые средства контроля безопасности
Конвейеры | Зависимости✅ Обновления зависимостей, оцениваемые на наличие последствий для безопасности перед развертыванием

Антишаблоны

Где искатьКак плохо выглядит
Конвейеры | Секреты⚠️ Секреты, связанные с управлением версиями (даже при последующем удалении)
Конвейеры | Управление источниками⚠️ Любой может объединиться с основным/производственным филиалом без проверки
Конвейеры | Управление доступом⚠️ Конвейеры развертывания выполняются с полномочиями на уровне администратора
Ожидаемые продажи | Развертывание⚠️ Полностью автоматизированные развертывания производства без ворот утверждения
Ожидаемые продажи | Аудит⚠️ Журналы развертывания не записывают, кто инициировал или утверждал изменения
Конвейеры | Проверка⚠️ Неудачные проверки безопасности игнорируются или обходятся для соблюдения сроков
Конвейеры | Мониторинг⚠️ Изменения конфигурации ожидаемых продаж не отслеживаются и не проверяются
Конвейеры | Проверка⚠️ Проверка после развертывания проверяет только функциональную корректность

Шаблоны

Где искатьКак хорошо выглядит
Тестирование | Статический анализ✅ Анализатор кода Salesforce запускается в IDE разработчика для немедленной обратной связи и в ожидаемых продажах CI/CD в качестве автоматических ворот
Тестирование | Тестирование проникновения✅ Тестирование на проникновение проведено для настраиваемых приложений, открытых для ненадежных пользователей, особенно сайтов Experience Cloud и общедоступных API
Тестирование | Единичные тесты✅ Единичные тесты Apex, ориентированные на безопасность, выполняются от имени пользователей с разными профилями полномочий
Тестирование | Зависимости✅ Сканирование зависимостей отслеживает пакеты AgentExchange и библиотеки JavaScript на наличие известных уязвимостей
Тестирование | Проверка безопасности✅ Отчет о статическом анализе, подготовленный для каждой отправки AppExchange или AgentExchange Security Review
Тестирование | Проверка безопасности✅ Отчет о динамическом сканировании (тестировании на проникновение), подготовленный, когда решение интегрирует стороннее веб-приложение или службу
Тестирование | Зависимости✅ Советы по безопасности для установленных пакетов, на которые подписаны и которые отслеживаются

Антишаблоны

Где искатьКак плохо выглядит
Тестирование | Покрытие⚠️ Тестирование безопасности зависит только от одного метода, например, статического анализа
Тестирование | Единичные тесты⚠️ Тесты Apex проверяют функциональное поведение, но никогда не выполняются в качестве пользователей с более низкими полномочиями
Тестирование | Проверка безопасности⚠️ Отправка AppExchange или AgentExchange подготовлена без обязательного статического анализа или динамических отчетов по сканированию
Тестирование | Тестирование проникновения⚠️ Тестирование проникновения пропущено для общедоступных сайтов Experience Cloud и API

См. также: