Продолжайте находить и устранять уязвимости
ЗавершеноСоздайте непрерывный процесс от обнаружения уязвимости до проверенного устранения в production. Разберитесь, какой пробел в обслуживании может скрывать успешный прототип.
Издатель TaigaКак мы пишем
Проверьте пониманиеПриложение не менялось три месяца. Последнее сканирование зависимостей при релизе прошло успешно. Какое утверждение обоснованно?Выполните упражнение
Чему вы научитесь
- Объяснить, почему неизменное ПО требует постоянной проверки безопасности.
- Соотносить разные виды сканирования с их охватом и ограничениями.
- Проследить обнаруженную проблему через определение приоритета, исправление, 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:00 | Pipeline развёртывает исправленный образ | Новый артефакт работает; проверка ещё впереди |
| Понедельник, 14:20 | Сканирование артефакта и проверки регрессий экспорта проходят успешно | Исправление подтверждено в проверенной области |
Определяйте приоритет по серьёзности, доказательствам эксплуатации, подверженности риску, затронутым данным и доступным мерам снижения риска. Каталог CISA помогает выявлять известную эксплуатацию. Это один источник данных, а не полная оценка риска. Каталог CISA.
Для временного исключения нужны доказательства, ответственный, компенсирующие меры защиты и срок действия или условие пересмотра. Если патча нет, рассмотрите разрешённый обходной способ, ограничение функции или удаление затронутого компонента.
Устраните пробел в обслуживании
Измеряйте время до разбора и проверенного устранения по приоритетам. Отслеживайте просроченные исключения, устаревшие сканирования, затронутые версии в production и повторяющиеся проблемы. Снижение числа находок может означать и сокращение охвата; проверяйте знаменатель.
Taiga Maintaining сканирует связанные репозитории после изменений и периодически. Он записывает обнаруженные проблемы и связывает устранение с инициативами и прошедшими review изменениями. Проверяйте состояние сканирования и текущее документированное поведение. Maintaining.
Вашему pipeline по-прежнему нужны подходящие условия допуска релиза. Ответственный за сервис по-прежнему должен подтвердить deployment и правильную работу. Эта непрерывная последовательность входит в эксплуатацию фабрики ПО с ИИ, в том числе для продуктов, первая версия которых была прототипом.
Выполните упражнение
Используйте вымышленную последовательность событий из урока. Укажите, где команда может ошибочно объявить об успехе. Определите условия запуска сканирования, оповещение о его сбое, ответственного за устранение, проверку релиза и срок действия временного исключения.
Скачать рабочий лист (Markdown)Если снять этот флажок, весь прогресс, сохранённый в этом браузере, будет удалён.
Прогресс остаётся в этом браузере. Без аккаунта и отслеживания.
Источники и дополнительные материалы
- NIST: Secure Software Development Framework ↗
- CISA: Known Exploited Vulnerabilities Catalog ↗
- Taiga docs: Maintaining ↗