Рекомендации по поддержанию зависимостей
Обновление зависимостей имеет решающее значение для поддержания безопасной среды программного обеспечения. Вот несколько рекомендаций.
Внедрение средств управления зависимостями, ориентированных на безопасность
- Используйте и настройте средства, которые сканируют зависимости для уязвимостей и автоматически предлагают обновления.
- Убедитесь, что эти средства интегрированы в конвейер CI/CD для непрерывного мониторинга и обновления.
- Настройте процессы для выполнения семантического управления версиями, чтобы избежать критических изменений.
Выполнение регулярных проверок уязвимостей и аудита
- Запланируйте регулярные аудиты зависимостей и проверки зависимостей, чтобы определить устаревшие или уязвимые зависимости.
Автоматизация управления исправлениями безопасности
- Настройте средства управления зависимостями для автоматического применения исправлений безопасности.
- Настройте автоматические запросы на вытягивание критически важных обновлений системы безопасности, чтобы их можно было быстро проверить и объединить.
Принудительное применение политик для использования зависимостей
- Реализуйте политики, которые применяют безопасные версии зависимостей.
- Используйте средства, которые могут блокировать объединение запросов на вытягивание, если они вводят уязвимости или не обновляют уязвимые зависимости.
Интеграция тестирования безопасности в CI/CD
- Включите средства тестирования безопасности в конвейер CI/CD.
- Убедитесь, что обновления зависимостей автоматически проверяются на соответствие требованиям безопасности.
Использование файлов блокировки и закрепления зависимостей
- Используйте файлы блокировки (например,
package-lock.json,yarn.lock),Pipfile.lockчтобы закрепить зависимости в известных безопасных версиях. - Регулярно обновляйте и просматривайте эти файлы блокировки, чтобы гарантировать актуальность зависимостей без непредвиденных проблем безопасности.
Мониторинг рекомендаций по безопасности
- Подпишитесь на рекомендации по безопасности для языков и платформ, которые вы используете.
- Автоматизируйте интеграцию помощников в рабочий процесс разработки, чтобы оставаться в курсе новых уязвимостей.
- Следите за панелями мониторинга, предоставляемыми средствами управления зависимостями.
- Помните о критических обновлениях, особенно исправлениях для системы безопасности и приоритете их.
Управление версиями и управление изменениями
-
Отслеживайте изменения зависимостей в системе управления версиями (например, с помощью автоматических запросов на вытягивание).
-
Проводите регулярные проверки кода, чтобы обновления не вводят новые уязвимости.
Обучение и осведомленность
- Узнайте о важности обеспечения безопасности и актуальности зависимостей в команде разработчиков и операций.
- Предоставление обучения эффективному использованию средств управления зависимостями и безопасности.
План реагирования на уязвимости
- У вас есть четкий план реагирования на инциденты при обнаружении уязвимостей в зависимостях.
- Убедитесь, что команда знает, как быстро устранять и устранять проблемы безопасности.
Следуя этим методикам, вы можете значительно снизить риск, вызванный устаревшими и уязвимыми зависимостями, и поддерживать более безопасную среду.
Как GitHub может помочь
GitHub предоставляет функции безопасности для поддержания зависимостей:
Граф зависимостей: отслеживает зависимости вашего проекта и выявляет уязвимости. См . раздел AUTOTITLE.
Проверка зависимостей: Обнаруживает небезопасные зависимости в pull-запросах до их слияния. Кроме того, Действие проверки зависимостей может не проходить проверки и, если это требуется правилами защиты ветвления, предотвращать слияние пулл-запросов, вносящих уязвимости. См . раздел AUTOTITLE.
Dependabot: Автоматически сканирует уязвимости, создаёт оповещения и открывает pull requests для обновления уязвимых или устаревших зависимостей. Вы можете группировать несколько обновлений в отдельные pull requests, чтобы упростить отзывы. См . раздел AUTOTITLE.
GitHub Advisory Database: предоставляет рекомендации по безопасности, которые обеспечивают обнаружение уязвимостей Dependabot. См. Сведения о базе данных GitHub Advisory.
Частная отчетность о уязвимости: позволяет сопровождающим получать информацию, обсуждать и исправлять отчёты об уязвимостях в приватном режиме до публичного раскрытия. Обзор безопасности: показывает состояние безопасности вашей организации с помощью панелей для репозиториев, находящихся в группе риска, тенденций оповещений и статуса активации функций. См . раздел AUTOTITLE.
Для полного руководства по цепочкам поставок см. Защита сквозной цепочки поставок.