Шкідливі базові образи
Базовий образ, що на один символ відрізняється від справжнього, — і ваша збірка випускає бекдор.
Що таке Шкідливі базові образи?
Кожен рядок FROM — це рішення про довіру. Будь-хто може опублікувати образ у публічному реєстрі під назвою, що на один символ відрізняється від вашої, а без перевірки підписів рядок FROM перетворюється на будь-який образ, який віддасть реєстр. Ви запустите схожий образ, побачите, як на старті спрацьовують майнер і зворотна оболонка, а тоді простежите сповіщення про майнінг через історію шарів до рядка FROM, який вказав на цей образ. Ви зафіксуєте базовий образ за дайджестом підписаного офіційного образу, щоб назва не могла вказувати на щось інше.
Що ви дізнаєтесь у Шкідливі базові образи
- Розпізнавайте схожий простір імен у реєстрі, як-от dockr-library, що запозичує назву справжнього проєкту docker-library, але на літеру коротший, і видає себе за офіційні образи library
- Поясніть, чому кожен рядок FROM — це рішення про довіру, яке зіставляє назву з будь-яким образом, який вирішить віддати реєстр
- Простежте сповіщення про майнінг через історію збірки шарів до рядка FROM, що вказав на ворожий базовий образ
- Фіксуйте базовий образ за дайджестом підписаного офіційного образу, щоб назва не могла вказувати на підмінений вміст
- Перевіряйте походження за підписом: він показує, хто опублікував образ, а сканування вразливостей цього не показує
Шкідливі базові образи — Кроки навчання
-
Назва, що відрізняється одним символом
Боб нічого не зламує. Він публікує. У публічному хабі образів будь-хто може опублікувати репозиторій, і Боб опублікував свій під простором імен, який майже не відрізнити на вигляд від простору імен офіційного базового образу Node.js. Потім він чекає, поки якась збірка десь помилково завантажить (pull) цей образ.
-
Замаскований під офіційний
Репозиторій Боба стоїть у результатах пошуку просто під справжнім, з тим самим коротким описом і чималою кількістю завантажень. Єдина відмінність — у тому, повз що поспішний інженер проходить, не придивляючись.
-
Що він насправді випустив
Схожий образ Боба — це не перепакований образ Node з новою позначкою. Він зібрав його на основі справжнього образу й додав один-єдиний рядок. Ось Dockerfile базового образу, який він опублікував.
-
Рядок, який виконує всю роботу
Усе вище цього рядка — звичайний базовий образ Node.js. Одна інструкція RUN, замаскована невинним коментарем, перетворює його на зброю.
-
Спостерігайте, як спрацьовує пейлоад
Базовий образ виглядає й поводиться як звичайний образ Node.js, тому збірка на ньому проходить, а застосунок запускається. Але крок збірки, який додав Боб, завантажив і встановив пейлоад, що стартує разом із кожним контейнером. Боб один раз запускає власний базовий образ, щоб переконатися, що пейлоад і досі спрацьовує.
-
Скористайтеся доступом
Збірка Marlspire вийшла на його базовому образі, і підкинутий імплант подав сигнал Бобу. Тепер Бобу нічого не треба зламувати: у нього вже є оболонка всередині їхнього продакшн-контейнера. Він доручає їй віддати все, до чого вона дотягується.
-
Що зробило це можливим
-
Хост повідомляє про майнер
У компанії Marlspire на контейнерних хостах працює моніторинг кінцевих пристроїв. Йому байдуже, що контейнер має робити, — він повідомляє те, що побачив.
-
Прочитайте шари образу
Образ зберігає запис про те, як його збирали, — по одній команді на шар. Якщо майнер встановлюється сам, якийсь шар мав виконати команду, що його завантажила. Аліса читає історію збірки випущеного образу.
-
Звідки взявся базовий образ
Отрута в базовому образі, тож питання — в якому саме. Аліса шукає в публічному хабі обидва образи-кандидати й порівнює їх.
Охоплення стандартів безпеки
CWE
- CWE-494 Download of Code Without Integrity Check
- CWE-345 Insufficient Verification of Data Authenticity
MITRE ATT&CK
- T1195.002 Supply Chain Compromise: Compromise Software Supply Chain
CIS Controls
- CIS 2 Inventory and Control of Software Assets
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- ID.AM Asset Management
- PR.PS Platform Security