Выбор ответа Junior Безопасность цепочки поставки обновлено

curl | bash в пайплайне

Вопрос

В пайплайне есть шаг curl -s https://tool.example.com/install.sh | bash. Чем это опасно?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Скрипт не проверяется: подменят на сервере, и он получит секреты. Именно так случился инцидент с Codecov: подменённый загрузчик отправлял переменные окружения CI на сторонний сервер.

Варианты ответа

  1. Скрипт не проверяется: подменят на сервере, и он получит секретыправильный ответ
  2. curl идёт по HTTP даже для https-адреса, если не указать --proto
  3. bash не может читать скрипт из stdin, если он больше 64 КБ
  4. Скрипт выполнится дважды: при скачивании и при запуске bash

Разбор

Именно так случился инцидент с Codecov: подменённый загрузчик отправлял переменные окружения CI на сторонний сервер. Безопаснее фиксировать версию, скачивать и проверять контрольную сумму или подпись, а ещё лучше брать инструмент из своего реестра или образа. curl по https-адресу ходит по HTTPS без лишних флагов, а bash читает из stdin скрипт любого размера.

Ответьте сами, а не прочитайте

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