Путь 05Тема 3 / 8

Продолжайте находить и устранять уязвимости

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

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

Издатель Как мы пишем

Проверьте пониманиеПриложение не менялось три месяца. Последнее сканирование зависимостей при релизе прошло успешно. Какое утверждение обоснованно?Выполните упражнение
Приложение не менялось три месяца. Последнее сканирование зависимостей при релизе прошло успешно. Какое утверждение обоснованно?

Чему вы научитесь

  • Объяснить, почему неизменное ПО требует постоянной проверки безопасности.
  • Соотносить разные виды сканирования с их охватом и ограничениями.
  • Проследить обнаруженную проблему через определение приоритета, исправление, deployment и проверку.

Работающий прототип может стать сервисом без поддержки

Vibe coding позволяет быстро создать полезный прототип. Риск в production растёт, если люди продолжают его использовать без постоянного обслуживания безопасности. Это серьёзный пробел: ПО остаётся подверженным угрозам, а его создатель считает работу законченной.

Проблема не только техническая, но и организационная. Сканер может существовать без ответственного. У обнаруженной проблемы может быть ответственный, но не быть пути к релизу. Даже после merge исправления в production может продолжать работать старый артефакт.

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

Запускайте сканирование, когда доказательства могут измениться

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

Явно определите охват. Укажите репозитории, ветки, lockfiles, образы, digest развёрнутых артефактов, среды выполнения и окружения. Включите приложения, для которых больше не разрабатывают функции, но которыми всё ещё пользуются.

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

Используйте разные проверки для разных вопросов

ПроверкаПолезный охватВажное ограничение
Software composition analysis, или SCAИзвестные уязвимости зависимостей, включая выявленные транзитивные пакетыНе подтверждает правильность авторизации приложения
Static application security testing, или SASTНебезопасные шаблоны кода, которые инструмент умеет обнаруживатьМожет пропустить поведение во время выполнения и выдать результаты, требующие разбора
Поиск секретовРаспознаваемые шаблоны учётных данных в проверяемом содержимомПосле удаления строки действующие учётные данные могут остаться в другом месте
Проверки инфраструктуры и конфигурацииНарушения заданных политик в проверяемых ресурсах или конфигурацииКонфигурация в репозитории может отличаться от работающей среды
Разрешённое динамическое тестированиеПоведение работающего приложения в области проверкиТребует разрешения, подходящих данных и осторожности с побочными эффектами

Сочетайте эти проверки с review и соответствующими тестами безопасности. Не утверждайте, что какое-либо сканирование доказывает отсутствие уязвимостей.

Проследите вымышленную проблему до production

ВремяСобытиеФактическое состояние
Понедельник, 09:00Новое сообщение об уязвимости указывает на затронутую PDF-зависимостьСуществующие релизы требуют оценки
Понедельник, 09:15Плановое сканирование выявляет затронутую версию в productionПроблема обнаружена, но не исправлена
Понедельник, 10:00Ответственный подтверждает подверженность риску и выбирает поддерживаемый патчУстранение запланировано
Понедельник, 13:00Тесты проходят, PR с патчем проходит mergeРепозиторий исправлен; в production ещё нужен deployment
Понедельник, 14:00Pipeline развёртывает исправленный образНовый артефакт работает; проверка ещё впереди
Понедельник, 14:20Сканирование артефакта и проверки регрессий экспорта проходят успешноИсправление подтверждено в проверенной области

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

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

Устраните пробел в обслуживании

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

Taiga Maintaining сканирует связанные репозитории после изменений и периодически. Он записывает обнаруженные проблемы и связывает устранение с инициативами и прошедшими review изменениями. Проверяйте состояние сканирования и текущее документированное поведение. Maintaining.

Вашему pipeline по-прежнему нужны подходящие условия допуска релиза. Ответственный за сервис по-прежнему должен подтвердить deployment и правильную работу. Эта непрерывная последовательность входит в эксплуатацию фабрики ПО с ИИ, в том числе для продуктов, первая версия которых была прототипом.

Выполните упражнение

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

Скачать рабочий лист (Markdown)
Проверьте понимание ↑

Продолжить обучение

Источники и дополнительные материалы

Связанные материалы Taiga

← Предыдущая тема: Обслуживайте ПО на протяжении всего срока использования