ТЕХНІЧНИЙ ОПИС

Зловмисники можуть маніпулювати процесами безперервної інтеграції / безперервного розгортання (CI/CD), впорсуючи шкідливий код у процес збирання. Існує кілька механізмів «отруєння» конвеєрів:

  • Пряме виконання конвеєра (Direct Pipeline Execution): Суб’єкт загрози безпосередньо модифікує конфігураційний файл CI (наприклад, gitlab-ci.yml у GitLab). Він може додати команду для ексфільтрації облікових даних, що використовуються в процесі збирання, на віддалений сервер або експортувати їх як артефакт робочого процесу.
  • Опосередковане виконання конвеєра (Indirect Pipeline Execution): Зловмисник впорсує шкідливий код у файли, на які посилається конфігураційний файл CI. Це можуть бути make-файли, скрипти, модульні тести (unit tests) або лінтери.
  • Публічне виконання конвеєра (Public Pipeline Execution): Зловмисник не має прямого доступу до репозиторію, натомість створює шкідливий Pull Request із форку, який запускає частину конвеєра CI/CD. Наприклад, у GitHub Actions тригер pull_request_target дозволяє робочим процесам, що запускаються з форкнутих репозиторіїв, отримувати доступ до секретів (secrets). Якщо цей тригер поєднується з явним перевірочним кодом (checkout) Pull Request та місцем, куди зловмисник може вставити код (наприклад, команду npm build), він може викрасти облікові дані конвеєра.

Аналогічно, зловмисники можуть створювати Pull Requests із шкідливими вхідними даними (наприклад, назвами гілок), якщо конвеєр збирання сприймає ці дані як довірені. Нарешті, якщо конвеєр використовує власний хост-раннер (self-hosted runner), зловмисник може отримати можливість виконувати довільний код на хості всередині мережі організації.

Шляхом отруєння CI/CD конвеєрів суб’єкти загроз можуть отримати доступ до облікових даних, здійснювати горизонтальне переміщення (Lateral Movement) на додаткові хости або впроваджувати шкідливі компоненти, які будуть передані далі по конвеєру (тобто Supply Chain Compromise).

Чому це важливо для DevSecOps?

  • Довіра до автоматизації: Ми часто вважаємо процеси збирання “чистими”, але вони виконують код із зовнішніх джерел.
  • Доступ до секретів: CI/CD системи — це “ключі від королівства”, оскільки вони мають доступ до хмарних інфраструктур, баз даних та сертифікатів підпису коду.
  • Ефект масштабу: Одна вдала атака на конвеєр популярної бібліотеки може заразити тисячі залежних проєктів.