Надмірні привілеї безсерверних функцій
Функція — це ідентичність, а її облікові дані доступні автоматично.
Що таке Надмірні привілеї безсерверних функцій?
Функція — це ідентичність. Облікові дані її ролі виконання доступні автоматично, тож будь-хто, хто може змусити функцію виконатися, отримує її роль, нічого не викравши. Це нормально, доки функція зміни розміру зображень не отримає права на весь обліковий запис, не почне тримати секрети у змінних середовища й приймати запити без автентифікації. Ви помітите URL-адресу функції на вкладці Network у браузері, спровокуєте залишений прапорець налагодження, що виводить середовище, і прочитаєте секрет у продакшні від імені функції. Потім ви звузите роль, вимагатимете автентифікацію IAM і замінете секрети посиланням на менеджер секретів.
Що ви дізнаєтесь у Надмірні привілеї безсерверних функцій
- Усвідомлюйте, що функція — це ідентичність, а її облікові дані доступні автоматично, тож виконання коду у функції одразу дає доступ до її ролі.
- Пам'ятайте, що секрети у змінних середовища відкриті кожному, хто може прочитати конфігурацію функції, і вони з'являються в діагностиці.
- Розумійте, що URL-адреса функції без автентифікації робить внутрішню помилку конфігурації доступною з інтернету.
- Віддавайте пріоритет звуженню ролі, бо воно найважливіше: воно обмежує шкоду, коли два інші засоби захисту не спрацьовують.
Надмірні привілеї безсерверних функцій — Кроки навчання
-
Почніть там, де може дивитися кожен
Боб не всередині Vaelrick. Він на їхньому публічному сайті з оголошеннями про нерухомість, на тій самій сторінці, яку бачить будь-який покупець. Тут немає нічого привілейованого, і саме тому він починає звідси.
-
Простежте, що запитує сторінка
Боб відкриває вкладку Network у браузері й перезавантажує сторінку, щоб побачити запити, які галерея робить ще до появи будь-якого зображення.
-
Функція відповідає будь-кому
Боб звертається до ендпоінта напряму зі свого комп'ютера, зовсім без облікових даних.
-
Прапорець налагодження видає ідентичність функції
Боб додає параметр налагодження, про який йому повідомив сайт. Функція виводить усе своє середовище.
-
Приміряйте ідентичність функції
Три значення AWS_ із дампа середовища — це повний робочий набір тимчасових облікових даних. Боб завантажує їх в іменований профіль на своєму комп'ютері, і з цієї миті його CLI може діяти від імені функції.
-
Станьте функцією
Профіль завантажено. Боб ставить AWS перше запитання, з якого починає будь-який зловмисник зі свіжим набором облікових даних: хто я тепер?
-
Як далеко сягає генератор мініатюр?
Функція, що записує мініатюри, має бачити один бакет. Боб просить показати всі.
-
Заберіть найцінніше
Боб використовує роль, щоб прочитати секрет, який не має жодного стосунку до зміни розміру зображень.
-
Яка вада завдала шкоди?
-
Хтось користується нашим ключем Stripe
Платіжний сервіс компанії Vaelrick позначив виклики API, підписані їхнім робочим ключем, з незнайомої адреси. Цей ключ лежить у сервісі Secrets Manager, який і мав бути безпечним місцем для нього.
Охоплення стандартів безпеки
CWE
- CWE-250 Execution with Unnecessary Privileges
- CWE-522 Insufficiently Protected Credentials
MITRE ATT&CK
- T1552 Unsecured Credentials
- T1078.004 Valid Accounts: Cloud Accounts
CIS Controls
- CIS 6 Access Control 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.AA Identity Management, Authentication, and Access Control