Сайт відповідає на 443, VPN відповідає на 1194, файрвол пропускає рівно ці два, і перевірка проходить. Ніщо в цій послідовності не спитало, що веб-працівник може читати або які файли може перезаписати. Скомпрометованому працівникові не потрібен відкритий порт, якщо він може дістатися керівного сокета або каталогу конфігурації із правом запису. Межа — це повноваження, а слухачі лише та частина, яку легко побачити.

Окреме ім'я служби — це ярлик; окрема ідентичність — це властивість безпеки.

Рахуйте повноваження працівника, а не порти

Почніть із користувача виконання, його груп, його можливостей і його вигляду файлової системи. Сервісний обліковий запис, що випадково належить до групи VPN, може читати ключовий матеріал без жодного відкритого порту. Точки монтування із правом запису — інша половина: завантаження й кеші мають бути далеко від файлів політики та секретів, а непотрібно спільний каталог із правом запису руйнує охайне найменування. Перевірте процес, який виконував би операцію, бо привілейований батько й непривілейовані працівники не поділяють одних повноважень.

Те, що ключ VPN читається під час запуску демона, не означає, що веб-працівникові він потрібен. Відокремте читання, яке виконує демон, від доступу, який отримує застосунок.

Сокети, що дають більше, ніж здається

Деякі кінцеві точки — це адміністративні API в костюмі потоку метрик. Інтерфейс керування VPN може змінювати сеанси, відключати клієнтів і читати стан. Сокет середовища виконання контейнерів ще ширший: доступ до нього фактично означає контроль над хостом, значно більше, ніж потрібно веб-застосунку. Жоден із них не належить до набору монтувань звичайного застосунку, і жоден не з'являється при підрахунку портів, що слухають.

Прив'язування адміністративного слухача до локальної адреси — це початок, а не повне обмеження, бо кожен шлях входу на цю адресу досі важливий. Дозволяйте лише передбачені джерела та інтерфейси.

Контейнери ділять одне ядро

Контейнери додають межі процесу, файлової системи й мережі та ділять одне ядро з хостом. Це робить вирішальними вибір можливостей, монтування хоста й доступ до демона: монтування секретів хоста або надання привілейованого контролю середовища виконання стирає межу, яку передбачає мітка контейнера. Окремі VM справді дають окремі гостьові ядра, тоді як гіпервізор, адміністративні ідентичності, сховище й резервні копії залишаються спільними. Виберіть межу, конфігурація й оновлення якої мають названого власника.

Складніша схема, яку ніхто не підтримує, гірша за просту, яку справді переглядають.

Спочатку перевірте відмову, потім сервіс

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

Обидві ролі досі ділять CPU, пам'ять, пропускну здатність висхідного каналу й події обслуговування. Ці спільні ресурси належать до плану, навіть коли межа повноважень чиста.

Запишіть, що може робити кожен процес, що відмовляє, якщо він зупиниться, і яка межа залишається спільною. Підрахунок портів — не такий запис.

Схожі статті