Незахищеність мережі контейнера
Один опублікований порт, а база даних знаходиться в Інтернеті.
Що таке Незахищеність мережі контейнера?
Публікація порту контейнера прив’язує його до кожного інтерфейсу на хості за замовчуванням, тому відображення, додане для локальної зручності, може розмістити базу даних у загальнодоступному Інтернеті, у той час як брандмауер хоста все ще позначає порт як заборонений. Спершу ви станете на бік зловмисника: проскануєте хост, підключіться прямо до бази даних за допомогою старого вкраденого пароля та прочитаєте записи клієнтів без жодної програми на шляху. Потім ви прив’яжете зіставлення до 127.0.0.1, перевірите ззовні та повернете розкриті облікові дані.
Що ви дізнаєтесь у Незахищеність мережі контейнера
- Пам’ятайте, що публікація порту контейнера за допомогою -p прив’язує його до кожного інтерфейсу на хості, включаючи загальнодоступні
- Відстежте відкриту базу даних назад до її відображення порту Compose, прочитавши стовпець PORTS запущеного контейнера
- Поясніть, чому брандмауер хоста, такий як ufw, не блокує порт, опублікований Docker, оскільки спочатку оцінюються власні правила iptables Docker
- Застосуйте прив’язку 127.0.0.1 до зіставлення портів і переконайтеся, що база даних більше недоступна
- Поверніть будь-які облікові дані, які були доступні, коли порт був відкритий, оскільки його закриття не робить викрадене недійсним
Незахищеність мережі контейнера — Кроки навчання
-
База даних у відкритому інтернеті
Боба ні в чому немає. Кілька місяців тому він купив дамп, який містив облікові дані бази даних для Halvexis лише для читання, але облікові дані марні, якщо ви не можете отримати доступ до бази даних. Тож він сканує хости сховища даних компанії, щоб побачити, чи хтось із них відповідає ззовні.
-
Напряму, без застосунку
Немає сторінки входу, немає API, немає обмеження частоти запитів. Опублікований порт бази даних говорить необробленим протоколом Postgres з будь-ким, хто може до нього дістатися. Bob спрямовує клієнт бази даних прямо на нього й автентифікується обліковими даними, які вже мав.
-
Прочитати таблицю мешканців
Обліковий запис має доступ лише для читання, і це все, що потрібно Bob. Він робить запит до таблиці, яка містить орендарів платформи та їхні дані, прямо з продакшену. Bob мав саме ці облікові дані місяцями і жодного разу ними не скористався.
-
Що змінилося
-
Моніторинг позначає трафік
Halvexis використовує хмарний моніторинг на своїх продакшн-хостах. Він не знає, для чого призначена база даних; він повідомляє про те, що побачив.
-
Знайти відкритий порт
Якщо брандмауер все ще відхиляє 5432, щось на хості пропускає трафік навколо нього: спосіб, у який контейнер опублікував свій порт. Аліса перераховує контейнер бази даних і читає один стовпець, у якому зазначено, до яких інтерфейсів прив’язаний порт.
-
Де публікується порт
Мапінг порту походить із файлу Compose, який визначає стек. Alice відкриває його, щоб побачити рядок, який опублікував 5432.
-
Рядок, який це зробив
Один мапінг, написаний так, як його пише розробник на своєму ноутбуці, і виставив базу даних в інтернет, коли цей стек потрапив у продакшн.
-
Прив'язати до localhost
API звертається до бази даних через мережу Compose за назвою сервісу, а не через опублікований порт хоста. Тому мапінг хоста взагалі не має бути публічним. Alice прив'язує його до loopback-інтерфейсу, щоб доступ до нього мав лише сам хост і контейнери в його мережі.
-
Переглянути виправлену прив'язку
Зміна — це один префікс інтерфейсу, але це і є все виправлення. Alice переглядає прив'язаний мапінг перед повторним розгортанням, щоб точно побачити, що тепер доступно і звідки.
Охоплення стандартів безпеки
CWE
- CWE-668 Exposure of Resource to Wrong Sphere
- CWE-306 Missing Authentication for Critical Function
MITRE ATT&CK
- T1046 Network Service Discovery
- T1210 Exploitation of Remote Services
CIS Controls
- CIS 12 Network Infrastructure Management
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.IR Technology Infrastructure Resilience