Незахищеність мережі контейнера
Один опублікований порт, а база даних знаходиться в Інтернеті.
Що таке Незахищеність мережі контейнера?
Публікація порту контейнера прив’язує його до кожного інтерфейсу на хості за замовчуванням, тому зіставлення, додане для локальної зручності, може розмістити базу даних у загальнодоступному Інтернеті без будь-яких змін у хмарному брандмауері. Спершу ви станете на бік зловмисника: проскануєте хост, підключіться прямо до бази даних за допомогою старого вкраденого пароля та прочитаєте записи клієнтів без жодної програми на шляху. Потім ви прив’яжете зіставлення до 127.0.0.1, перевірите ззовні та повернете розкриті облікові дані.
Що ви дізнаєтесь у Незахищеність мережі контейнера
- Пам’ятайте, що публікація порту контейнера за допомогою -p прив’язує його до кожного інтерфейсу на хості, включаючи загальнодоступні
- Відстежте відкриту базу даних назад до її відображення порту Compose, прочитавши стовпець PORTS запущеного контейнера
- Поясніть, чому хмарний брандмауер або перевірка групи безпеки ніколи не відображає порт, опублікований середовищем виконання контейнера на хості
- Застосуйте прив’язку 127.0.0.1 до зіставлення портів і переконайтеся, що база даних більше недоступна
- Поверніть будь-які облікові дані, які були доступні, коли порт був відкритий, оскільки його закриття не робить викрадене недійсним
Незахищеність мережі контейнера — Кроки навчання
-
База даних у відкритому інтернеті
Bob не перебуває всередині нічого. Кілька тижнів тому він купив дамп даних, що містив обліковий запис бази даних Halvexis лише для читання, але обліковий запис марний, якщо ви не можете дістатися до бази даних. Тож він сканує хости сховищ даних компанії, щоб перевірити, чи відповідає хоч один із них ззовні.
-
Напряму, без застосунку
Немає сторінки входу, немає API, немає обмеження частоти запитів. Опублікований порт бази даних говорить необробленим протоколом Postgres з будь-ким, хто може до нього дістатися. Bob спрямовує клієнт бази даних прямо на нього й автентифікується обліковими даними, які вже мав.
-
Прочитати таблицю мешканців
Обліковий запис має доступ лише для читання, і це все, що потрібно Bob. Він робить запит до таблиці, яка містить орендарів платформи та їхні дані, прямо з продакшену.
-
Що змінилося
Bob мав саме ці облікові дані місяцями і жодного разу ними не скористався.
-
Моніторинг позначає трафік
Halvexis використовує хмарний моніторинг на своїх продакшн-хостах. Він не знає, для чого призначена база даних; він повідомляє про те, що побачив.
-
Знайти відкритий порт
Якщо групи безпеки не змінювалися, відкритість було створено на самому хості — тим, як контейнер опублікував свій порт. Alice переглядає список контейнера бази даних і читає єдину колонку, яка показує, до яких інтерфейсів прив'язаний порт.
-
Де публікується порт
Мапінг порту походить із файлу 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