концепції / least-privilege
Принцип найменших привілеїв
Обмежуйте права доступу рамками конкретної задачі — канал пояснює це через одну незабутню історію з ранніх часів WebbyLab (войс про адмінські ключі). Команді знадобився API-ключ Redmine для скрипта звітності, і виникла дискусія: адмінський ключ чи звичайний? Обрали адмінський — «нічого поганого не станеться». Згодом один із розробників скопіював приклад коду з README GitHub-бібліотеки, який, як на зло, демонстрував API так: видалити користувача №2, перейменувати користувача №5 і так далі. Результат: акаунт співзасновника Антона Морозова було видалено, а українського клієнта на ім’я Олександр перейменовано на «Рауль». Наслідки проявлялися поступово, впродовж днів — зниклі логіни, загадково перейменовані записи клієнтів.
Мораль, яку виводить Віктор: щоб підвищені права нашкодили, зловмисник не потрібен. Навіть чесний, беззлобний, скопійований код небезпечний, коли виконується з більшими правами, ніж потрібно для задачі. Ключ лише для читання зробив би весь цей інцидент неможливим.
Розібрано у відео
- Голосове №1 — чому не можна давати розробникам адмінські ключі
головний урок і повна історія про «Рауля»: адмінський ключ Redmine + скопійований приклад коду = видалений співзасновник і перейменований клієнт
Повʼязане
Практики безпеки — найменші привілеї як опора глибокоешелонованого захисту (defense-in-depth). Соціальна інженерія — та сама першопричина (недоречна довіра і зручність), тільки з людиною замість скрипта. Пісочниці та ізоляція — мережевий аналог: дайте VM інтернет, а не всю домашню LAN.