Незахищеність реєстру контейнерів

Незахищеність реєстру контейнерів

Анонімне вилучення призводить до витоку вашого коду. Анонімний push замінює його.

Що таке Незахищеність реєстру контейнерів?

Реєстр, який дозволяє анонімно передавати ваше джерело, вашу конфігурацію та ваш розгорнутий артефакт кожному, хто вгадає назву сховища. Анонімний push дозволяє зловмиснику перезаписати тег, який ви збираєтеся надіслати, і конвеєр нічого не помітить. Ви отримаєте робочий образ, перебудуєте його за допомогою імплантації, повернете його назад під тим самим тегом випуску та задасте імплантацію всередину запущеної служби. Тоді вам знадобиться автентифікація, надсилання обсягу, позначення тегів випуску як незмінні та перевірка розгорнутого образу за допомогою дайджесту, а не тегу.

Що ви дізнаєтесь у Незахищеність реєстру контейнерів

Незахищеність реєстру контейнерів — Кроки навчання

  1. Скануйте на предмет публічного репозиторію

    Боб не націлюється на Quenmoor за назвою. Він сканує самостійно розгорнуті реєстри в пошуках тих, що відповідають без входу в систему, а потім перебирає їхні репозиторії, щоб знайти той, що лишився доступним для читання. Реєстр Quenmoor відповідає, і один репозиторій виділяється.

  2. Приватний репозиторій, що лишився відкритим

    Боб сканує самостійно розгорнуті реєстри в пошуках репозиторіїв, до яких у нього не мало б бути доступу. Реєстр Quenmoor відповів йому, не запитавши, хто він, і один репозиторій виділяється: внутрішній сервіс диспетчеризації.

  3. Публічний і доступний для запису

    Це внутрішній сервіс, але його політика доступу повністю відкрита. Боб переглядає два налаштування, що мають для нього значення.

  4. Завантажте його анонімно

    Жодних облікових даних, жодного членства, жодного запиту на доступ. Боб спрямовує Docker на реєстр і завантажує продакшн-образ напряму.

  5. Прочитайте їхню продакшн-конфігурацію

    Образ — це не лише код. Він містить конфігурацію, з якою працює, запечену в один із шарів. Боб запускає з нього контейнер і напряму зчитує цей файл.

  6. Перезберіть його з бекдором

    Читання образу було крадіжкою; перезапис — це контроль. Оскільки він завантажив їхній справжній продакшн-образ, Боб перезбирає його напряму й додає один шар. Ось Dockerfile.

  7. Шар, який він додав

    Усе інше — це їхній незмінений образ. Один RUN перетворює його на плацдарм, що постачається з кожним розгортанням.

  8. Позначте його їхнім релізом

    Боб збирає отруєний образ і позначає його точно тією назвою, з якої Quenmoor розгортає продакшн, тож реєстр сприйматиме його як продакшн-реліз.

  9. Вивантажте отруєний тег

    Читання образу — це крадіжка. Перезапис — це контроль. Боб перезбирає образ із бекдором у точці входу (entrypoint) і вивантажує його назад у той самий тег, з якого Quenmoor розгортає продакшн. Реєстр приймає це, не питаючи, хто він такий.

  10. Що дало йому це вивантаження

    Наступне розгортання викотило тег Боба в продакшн, і доданий ним шар зв'язався з ним зсередини працюючого сервісу. Йому більше не потрібно діставатися Quenmoor ззовні: його код і є сервісом.

Охоплення стандартів безпеки

CWE

  • CWE-306 Missing Authentication for Critical Function
  • CWE-732 Incorrect Permission Assignment for Critical Resource

MITRE ATT&CK

  • T1525 Implant Internal Image

CIS Controls

  • CIS 6 Access Control Management
  • CIS 2 Inventory and Control of Software Assets

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
  • PR.AA Identity Management, Authentication, and Access Control
  • ID.AM Asset Management