Отраслевая программа «ИТ-компания» · курс «Безопасная разработка» · модуль 3 из 3

Сторонние библиотеки и управление зависимостями

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

Цель модуля

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

Чужой код в вашей поставке

За уязвимость в сторонней библиотеке перед заказчиком отвечает не её автор, а компания, поставившая продукт. Уязвимость, опубликованная в популярной библиотеке, немедленно становится известна всем, кто собирает продукт на её основе, — включая тех, кто ищет способ навредить.

Поэтому каждая зависимость — это принятое на себя обязательство следить за её состоянием.

Правила выбора библиотеки

Отслеживание уязвимостей

  1. Включите автоматическую проверку состава зависимостей в сборочный конвейер.
  2. Настройте уведомления об обнаруженных уязвимостях в подключённых библиотеках.
  3. Разбирайте каждый случай: подтвердите, затрагивает ли уязвимость ваш способ использования библиотеки.
  4. Планируйте обновление в ближайший выпуск, а при критической уязвимости — внеочередным исправлением.
  5. Ведите перечень принятых зависимостей с версиями: без него невозможно оценить масштаб при следующем сообщении.

Типовые ошибки

Состав поставки

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

Проверочный список перед выходом на работу

Вопросы для самопроверки

  1. Кто отвечает за уязвимость в сторонней библиотеке перед заказчиком? Компания, поставившая продукт: чужая библиотека входит в вашу поставку, поэтому её состояние — ваша ответственность.
  2. Почему автообновление зависимостей без проверки опасно? Новая версия библиотеки может изменить поведение или привнести новую уязвимость; обновление проходит проверки и выпускается по установленному порядку.
  3. Зачем нужен перечень зависимостей с версиями? Чтобы быстро определить, затронуты ли вы новой уязвимостью, и оценить объём обновления.

Основание и что делать при сомнении

Модуль опирается на: ГОСТ Р 56939-2016 «Защита информации. Разработка безопасного программного обеспечения», приказ ФСТЭК России от 11.02.2013 № 17.

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