Віктор Турський про програмування / навігатор

концепції / least-privilege

Принцип найменших привілеїв

Обмежуйте права доступу рамками конкретної задачі — канал пояснює це через одну незабутню історію з ранніх часів WebbyLab (войс про адмінські ключі). Команді знадобився API-ключ Redmine для скрипта звітності, і виникла дискусія: адмінський ключ чи звичайний? Обрали адмінський — «нічого поганого не станеться». Згодом один із розробників скопіював приклад коду з README GitHub-бібліотеки, який, як на зло, демонстрував API так: видалити користувача №2, перейменувати користувача №5 і так далі. Результат: акаунт співзасновника Антона Морозова було видалено, а українського клієнта на ім’я Олександр перейменовано на «Рауль». Наслідки проявлялися поступово, впродовж днів — зниклі логіни, загадково перейменовані записи клієнтів.

Мораль, яку виводить Віктор: щоб підвищені права нашкодили, зловмисник не потрібен. Навіть чесний, беззлобний, скопійований код небезпечний, коли виконується з більшими правами, ніж потрібно для задачі. Ключ лише для читання зробив би весь цей інцидент неможливим.

Розібрано у відео

Повʼязане

Практики безпеки — найменші привілеї як опора глибокоешелонованого захисту (defense-in-depth). Соціальна інженерія — та сама першопричина (недоречна довіра і зручність), тільки з людиною замість скрипта. Пісочниці та ізоляція — мережевий аналог: дайте VM інтернет, а не всю домашню LAN.