Vercel
Reading time: 13 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Основна інформація
У Vercel Команда - це повне середовище, яке належить клієнту, а проект - це додаток.
Для перевірки безпеки Vercel вам потрібно запитати користувача з дозволом ролі Переглядача або принаймні дозволом перегляду проекту для перевірки (якщо вам потрібно лише перевірити проекти, а не конфігурацію Команди).
Налаштування проекту
Загальні
Мета: Керувати основними налаштуваннями проекту, такими як назва проекту, фреймворк та конфігурації збірки.
Конфігурації безпеки:
- Передача
- Неправильна конфігурація: Дозволяє передавати проект до іншої команди
- Ризик: Зловмисник може вкрасти проект
- Видалити проект
- Неправильна конфігурація: Дозволяє видалити проект
- Ризик: Видалити проект
Домен
Мета: Керувати власними доменами, налаштуваннями DNS та конфігураціями SSL.
Конфігурації безпеки:
- Помилки конфігурації DNS
- Неправильна конфігурація: Неправильні DNS записи (A, CNAME), що вказують на шкідливі сервери.
- Ризик: Захоплення домену, перехоплення трафіку та фішингові атаки.
- Управління сертифікатами SSL/TLS
- Неправильна конфігурація: Використання слабких або прострочених сертифікатів SSL/TLS.
- Ризик: Вразливість до атак "людина посередині" (MITM), що компрометує цілісність та конфіденційність даних.
- Впровадження DNSSEC
- Неправильна конфігурація: Невключення DNSSEC або неправильні налаштування DNSSEC.
- Ризик: Збільшена сприйнятливість до підробки DNS та атак на кеш.
- Середовище, що використовується для кожного домену
- Неправильна конфігурація: Зміна середовища, що використовується доменом у виробництві.
- Ризик: Витік потенційних секретів або функціональностей, які не повинні бути доступні у виробництві.
Середовища
Мета: Визначити різні середовища (Розробка, Попередній перегляд, Виробництво) з конкретними налаштуваннями та змінними.
Конфігурації безпеки:
- Ізоляція середовища
- Неправильна конфігурація: Спільне використання змінних середовища між середовищами.
- Ризик: Витік секретів виробництва в середовища розробки або попереднього перегляду, що збільшує ризик.
- Доступ до чутливих середовищ
- Неправильна конфігурація: Дозволяючи широкий доступ до середовищ виробництва.
- Ризик: Неавторизовані зміни або доступ до живих додатків, що може призвести до потенційних простоїв або витоків даних.
Змінні середовища
Мета: Керувати змінними та секретами, специфічними для середовища, які використовуються додатком.
Конфігурації безпеки:
- Витік чутливих змінних
- Неправильна конфігурація: Префіксування чутливих змінних
NEXT_PUBLIC_
, що робить їх доступними на стороні клієнта. - Ризик: Витік API ключів, облікових даних бази даних або інших чутливих даних для публіки, що призводить до витоків даних.
- Чутливі вимкнені
- Неправильна конфігурація: Якщо вимкнено (за замовчуванням), можливо, прочитати значення згенерованих секретів.
- Ризик: Збільшена ймовірність випадкового витоку або неавторизованого доступу до чутливої інформації.
- Спільні змінні середовища
- Неправильна конфігурація: Це змінні середовища, встановлені на рівні Команди, і можуть також містити чутливу інформацію.
- Ризик: Збільшена ймовірність випадкового витоку або неавторизованого доступу до чутливої інформації.
Git
Мета: Налаштувати інтеграції репозиторіїв Git, захист гілок та тригери розгортання.
Конфігурації безпеки:
- Ігнорований крок збірки (TODO)
- Неправильна конфігурація: Здається, ця опція дозволяє налаштувати bash-скрипт/команди, які будуть виконані, коли новий коміт буде надіслано в Github, що може дозволити RCE.
- Ризик: TBD
Інтеграції
Мета: Підключити сторонні сервіси та інструменти для покращення функціональності проекту.
Конфігурації безпеки:
- Небезпечні сторонні інтеграції
- Неправильна конфігурація: Інтеграція з ненадійними або небезпечними сторонніми сервісами.
- Ризик: Введення вразливостей, витоків даних або бекдорів через скомпрометовані інтеграції.
- Надмірні дозволи інтеграцій
- Неправильна конфігурація: Надання надмірних дозволів інтегрованим сервісам.
- Ризик: Неавторизований доступ до ресурсів проекту, маніпуляція даними або збої в сервісах.
- Відсутність моніторингу інтеграцій
- Неправильна конфігурація: Невключення моніторингу та аудиту сторонніх інтеграцій.
- Ризик: Затримка виявлення скомпрометованих інтеграцій, що збільшує потенційний вплив порушень безпеки.
Захист розгортання
Мета: Забезпечити розгортання через різні механізми захисту, контролюючи, хто може отримати доступ і розгортати у ваших середовищах.
Конфігурації безпеки:
Аутентифікація Vercel
- Неправильна конфігурація: Вимкнення аутентифікації або невиконання перевірок членів команди.
- Ризик: Неавторизовані користувачі можуть отримати доступ до розгортань, що призводить до витоків даних або зловживання додатком.
Обхід захисту для автоматизації
- Неправильна конфігурація: Публічне розкриття секрету обходу або використання слабких секретів.
- Ризик: Зловмисники можуть обійти захист розгортання, отримуючи доступ до захищених розгортань і маніпулюючи ними.
Посилання для спільного використання
- Неправильна конфігурація: Безсистемне розкриття посилань або невиконання відкликання застарілих посилань.
- Ризик: Неавторизований доступ до захищених розгортань, обминаючи аутентифікацію та обмеження IP.
OPTIONS Allowlist
- Неправильна конфігурація: Надмірно широке дозволення шляхів або чутливих кінцевих точок.
- Ризик: Зловмисники можуть використовувати незахищені шляхи для виконання неавторизованих дій або обходу перевірок безпеки.
Захист паролем
- Неправильна конфігурація: Використання слабких паролів або їх ненадійне розкриття.
- Ризик: Неавторизований доступ до розгортань, якщо паролі вгадуються або витікають.
- Примітка: Доступно в плані Pro як частина Розширеного захисту розгортання за додаткові $150/місяць.
Виключення захисту розгортання
- Неправильна конфігурація: Ненавмисне додавання доменів виробництва або чутливих до списку виключень.
- Ризик: Витік критичних розгортань для публіки, що призводить до витоків даних або неавторизованого доступу.
- Примітка: Доступно в плані Pro як частина Розширеного захисту розгортання за додаткові $150/місяць.
Довірені IP-адреси
- Неправильна конфігурація: Неправильне зазначення IP-адрес або діапазонів CIDR.
- Ризик: Легітимні користувачі можуть бути заблоковані або неавторизовані IP можуть отримати доступ.
- Примітка: Доступно в плані Enterprise.
Функції
Мета: Налаштувати безсерверні функції, включаючи налаштування середовища, виділення пам'яті та політики безпеки.
Конфігурації безпеки:
- Нічого
Кеш даних
Мета: Керувати стратегіями кешування та налаштуваннями для оптимізації продуктивності та контролю зберігання даних.
Конфігурації безпеки:
- Очищення кешу
- Неправильна конфігурація: Дозволяє видалити весь кеш.
- Ризик: Неавторизовані користувачі видаляють кеш, що може призвести до потенційного DoS.
Cron Jobs
Мета: Запланувати автоматизовані завдання та скрипти для виконання через певні інтервали.
Конфігурації безпеки:
- Вимкнення Cron Job
- Неправильна конфігурація: Дозволяє вимкнути cron jobs, оголошені в коді
- Ризик: Потенційне переривання служби (залежно від того, для чого призначалися cron jobs)
Log Drains
Мета: Налаштувати зовнішні служби логування для захоплення та зберігання журналів додатків для моніторингу та аудиту.
Конфігурації безпеки:
- Нічого (керується з налаштувань команд)
Безпека
Мета: Центральний хаб для різних налаштувань безпеки, що впливають на доступ до проекту, захист джерела та інше.
Конфігурації безпеки:
Журнали збірки та захист джерела
- Неправильна конфігурація: Вимкнення захисту або публічне розкриття шляхів
/logs
та/src
. - Ризик: Неавторизований доступ до журналів збірки та вихідного коду, що призводить до витоків інформації та потенційної експлуатації вразливостей.
Захист Git Fork
- Неправильна конфігурація: Дозволяючи неавторизовані запити на витяг без належних перевірок.
- Ризик: Зловмисний код може бути об'єднаний у кодову базу, вводячи вразливості або бекдори.
Безпечний доступ до бекенду з OIDC Federation
- Неправильна конфігурація: Неправильне налаштування параметрів OIDC або використання ненадійних URL-адрес видавця.
- Ризик: Неавторизований доступ до бекенд-сервісів через ненадійні потоки аутентифікації.
Політика збереження розгортання
- Неправильна конфігурація: Встановлення занадто коротких (втрата історії розгортання) або занадто довгих (необхідне зберігання даних) періодів збереження.
- Ризик: Нездатність виконати відкат, коли це необхідно, або підвищений ризик витоку даних з старих розгортань.
Нещодавно видалені розгортання
- Неправильна конфігурація: Невиконання моніторингу видалених розгортань або покладання виключно на автоматичні видалення.
- Ризик: Втрата критичної історії розгортання, що ускладнює аудити та відкат.
Розширений
Мета: Доступ до додаткових налаштувань проекту для тонкого налаштування конфігурацій та підвищення безпеки.
Конфігурації безпеки:
Список директорій
- Неправильна конфігурація: Увімкнення списку директорій дозволяє користувачам переглядати вміст директорій без індексного файлу.
- Ризик: Витік чутливих файлів, структури додатка та потенційних точок входу для атак.
Брандмауер проекту
Брандмауер
Конфігурації безпеки:
Увімкнути режим виклику атаки
- Неправильна конфігурація: Увімкнення цього покращує захист веб-додатка від DoS, але за рахунок зручності використання
- Ризик: Потенційні проблеми з досвідом користувача.
Користувацькі правила та блокування IP
- Неправильна конфігурація: Дозволяє розблокувати/блокувати трафік
- Ризик: Потенційний DoS, що дозволяє шкідливий трафік або блокує добрий трафік
Розгортання проекту
Джерело
- Неправильна конфігурація: Дозволяє доступ для читання повного вихідного коду додатка
- Ризик: Потенційний витік чутливої інформації
Захист від спотворення
- Неправильна конфігурація: Цей захист забезпечує, щоб клієнт і серверний додаток завжди використовували одну й ту ж версію, щоб не було десинхронізації, коли клієнт використовує іншу версію, ніж сервер, і тому вони не розуміють один одного.
- Ризик: Вимкнення цього (якщо увімкнено) може викликати проблеми з DoS у нових розгортаннях у майбутньому
Налаштування команди
Загальні
Конфігурації безпеки:
- Передача
- Неправильна конфігурація: Дозволяє передавати всі проекти до іншої команди
- Ризик: Зловмисник може вкрасти проекти
- Видалити проект
- Неправильна конфігурація: Дозволяє видалити команду з усіма проектами
- Ризик: Видалити проекти
Білінг
Конфігурації безпеки:
- Обмеження витрат на Speed Insights
- Неправильна конфігурація: Зловмисник може збільшити це число
- Ризик: Збільшення витрат
Члени
Конфігурації безпеки:
- Додати членів
- Неправильна конфігурація: Зловмисник може підтримувати стійкість, запрошуючи обліковий запис, яким він керує
- Ризик: Стійкість зловмисника
- Ролі
- Неправильна конфігурація: Надання занадто багатьох дозволів людям, яким це не потрібно, збільшує ризик конфігурації Vercel. Перевірте всі можливі ролі на https://vercel.com/docs/accounts/team-members-and-roles/access-roles
- Ризик: Збільшення експозиції команди Vercel
Групи доступу
Група доступу у Vercel - це колекція проектів та членів команди з попередньо визначеними призначеннями ролей, що дозволяє централізоване та спрощене управління доступом до кількох проектів.
Потенційні неправильні конфігурації:
- Надмірні дозволи членів: Призначення ролей з більшою кількістю дозволів, ніж необхідно, що призводить до неавторизованого доступу або дій.
- Неправильні призначення ролей: Неправильне призначення ролей, які не відповідають обов'язкам членів команди, що викликає ескалацію привілеїв.
- Відсутність сегрегації проектів: Невиконання розділення чутливих проектів, що дозволяє більш широкий доступ, ніж передбачалося.
- Недостатнє управління групами: Нерегулярний перегляд або оновлення груп доступу, що призводить до застарілих або невідповідних дозволів доступу.
- Непослідовні визначення ролей: Використання непослідовних або неясних визначень ролей у різних групах доступу, що призводить до плутанини та прогалин у безпеці.
Log Drains
Конфігурації безпеки:
- Log Drains для третіх сторін:
- Неправильна конфігурація: Зловмисник може налаштувати Log Drain для крадіжки журналів
- Ризик: Часткова стійкість
Безпека та конфіденційність
Конфігурації безпеки:
- Домен електронної пошти команди: Коли налаштовано, це налаштування автоматично запрошує особисті облікові записи Vercel з адресами електронної пошти, що закінчуються на вказаному домені (наприклад,
mydomain.com
), приєднатися до вашої команди під час реєстрації та на панелі управління. - Неправильна конфігурація:
- Вказування неправильного домену електронної пошти або помилково написаного домену в налаштуванні домену електронної пошти команди.
- Використання загального домену електронної пошти (наприклад,
gmail.com
,hotmail.com
) замість домену, специфічного для компанії. - Ризики:
- Неавторизований доступ: Користувачі з адресами електронної пошти з ненавмисних доменів можуть отримати запрошення приєднатися до вашої команди.
- Витік даних: Потенційний витік чутливої інформації проекту для неавторизованих осіб.
- Захищені Git-обсяги: Дозволяє вам додати до 5 Git-обсягів до вашої команди, щоб запобігти іншим командам Vercel від розгортання репозиторіїв з захищеного обсягу. Кілька команд можуть вказувати один і той же обсяг, що дозволяє обом командам отримати доступ.
- Неправильна конфігурація: Невключення критичних Git-обсягів до захищеного списку.
- Ризики:
- Неавторизовані розгортання: Інші команди можуть розгортати репозиторії з обсягів Git вашої організації без авторизації.
- Витік інтелектуальної власності: Програмний код може бути розгорнутий і доступний за межами вашої команди.
- Політики змінних середовища: Встановлює політики для створення та редагування змінних середовища команди. Зокрема, ви можете вимагати, щоб усі змінні середовища створювалися як Чутливі змінні середовища, які можуть бути розшифровані лише системою розгортання Vercel.
- Неправильна конфігурація: Залишення вимоги чутливих змінних середовища вимкненою.
- Ризики:
- Витік секретів: Змінні середовища можуть бути переглянуті або відредаговані неавторизованими членами команди.
- Витік даних: Чутлива інформація, така як API ключі та облікові дані, може бути витікана.
- Журнал аудиту: Надає експорт активності команди за останні 90 днів. Журнали аудиту допомагають у моніторингу та відстеженні дій, виконаних членами команди.
- Неправильна конфігурація:
Надання доступу до журналів аудиту неавторизованим членам команди. - Ризики:
- Порушення конфіденційності: Витік чутливих дій та даних користувачів.
- Підробка журналів: Зловмисники можуть змінювати або видаляти журнали, щоб приховати свої сліди.
- SAML Single Sign-On: Дозволяє налаштування аутентифікації SAML та синхронізації каталогів для вашої команди, що дозволяє інтеграцію з постачальником ідентичності (IdP) для централізованої аутентифікації та управління користувачами.
- Неправильна конфігурація: Зловмисник може створити бекдор у налаштуванні команди, налаштовуючи параметри SAML, такі як ID сутності, URL-адреса SSO або відбитки сертифікатів.
- Ризик: Підтримка стійкості
- Видимість IP-адрес: Контролює, чи відображаються IP-адреси, які можуть вважатися особистою інформацією відповідно до певних законів про захист даних, у запитах моніторингу та Log Drains.
- Неправильна конфігурація: Залишення видимості IP-адрес увімкненою без необхідності.
- Ризики:
- Порушення конфіденційності: Невиконання вимог законодавства про захист даних, таких як GDPR.
- Юридичні наслідки: Потенційні штрафи та покарання за неналежне оброблення особистих даних.
- Блокування IP: Дозволяє налаштування IP-адрес та діапазонів CIDR, з яких Vercel має блокувати запити. Заблоковані запити не впливають на ваше білінг.
- Неправильна конфігурація: Може бути зловмисно використана зловмисником для дозволу шкідливого трафіку або блокування легітимного трафіку.
- Ризики:
- Відмова в обслуговуванні легітимним користувачам: Блокування доступу для дійсних користувачів або партнерів.
- Операційні збої: Втрата доступності послуг для певних регіонів або клієнтів.
Secure Compute
Vercel Secure Compute забезпечує безпечні, приватні з'єднання між функціями Vercel та бекенд-середовищами (наприклад, базами даних), створюючи ізольовані мережі з виділеними IP-адресами. Це усуває необхідність публічного розкриття бекенд-сервісів, підвищуючи безпеку, відповідність та конфіденційність.
Потенційні неправильні конфігурації та ризики
- Неправильний вибір регіону AWS
- Неправильна конфігурація: Вибір регіону AWS для мережі Secure Compute, який не відповідає регіону бекенд-сервісів.
- Ризик: Збільшена затримка, потенційні проблеми з відповідністю резидентності даних та зниження продуктивності.
- Перекриваючі CIDR блоки
- Неправильна конфігурація: Вибір CIDR блоків, які перекриваються з існуючими VPC або іншими мережами.
- Ризик: Конфлікти мережі, що призводять до невдалих з'єднань, неавторизованого доступу або витоку даних між мережами.
- Неправильна конфігурація VPC Peering
- Неправильна конфігурація: Неправильне налаштування VPC peering (наприклад, неправильні ID VPC, неповні оновлення таблиць маршрутів).
- Ризик: Неавторизований доступ до інфраструктури бекенду, невдалі безпечні з'єднання та потенційні витоки даних.
- Надмірні призначення проектів
- Неправильна конфігурація: Призначення кількох проектів до однієї мережі Secure Compute без належної ізоляції.
- Ризик: Спільна експозиція IP збільшує поверхню атаки, потенційно дозволяючи скомпрометованим проектам впливати на інші.
- Недостатнє управління IP-адресами
- Неправильна конфігурація: Невиконання управління або ротації виділених IP-адрес належним чином.
- Ризик: Підробка IP, вразливості для відстеження та потенційне занесення до чорного списку, якщо IP пов'язані зі шкідливою діяльністю.
- Неправильне включення контейнерів збірки
- Неправильна конфігурація: Додавання контейнерів збірки до мережі Secure Compute, коли доступ до бекенду не потрібен під час збірок.
- Ризик: Розширена поверхня атаки, збільшені затримки при наданні та неналежне споживання мережевих ресурсів.
- Невиконання безпечного оброблення секретів обходу
- Неправильна конфігурація: Витік або неналежне оброблення секретів, що використовуються для обходу захисту розгортання.
- Ризик: Неавторизований доступ до захищених розгортань, що дозволяє зловмисникам маніпулювати або розгортати шкідливий код.
- Ігнорування налаштувань резервування регіону
- Неправильна конфігурація: Невиконання налаштування пасивних регіонів резервування або неправильне налаштування параметрів резервування.
- Ризик: Перерви в обслуговуванні під час відмови основного регіону, що призводить до зниження доступності та потенційної несумісності даних.
- Перевищення лімітів з'єднань VPC Peering
- Неправильна конфігурація: Спроба встановити більше з'єднань VPC peering, ніж дозволено (наприклад, перевищення 50 з'єднань).
- Ризик: Нездатність безпечно підключити необхідні бекенд-сервіси, що викликає збої в розгортанні та операційні збої.
- Небезпечні налаштування мережі
- Неправильна конфігурація: Слабкі правила брандмауера, відсутність шифрування або неналежна сегментація мережі в межах мережі Secure Compute.
- Ризик: Перехоплення даних, неавторизований доступ до бекенд-сервісів та підвищена вразливість до атак.
Змінні середовища
Мета: Керувати змінними та секретами, специфічними для середовища, які використовуються всіма проектами.
Конфігурації безпеки:
- Витік чутливих змінних
- Неправильна конфігурація: Префіксування чутливих змінних
NEXT_PUBLIC_
, що робить їх доступними на стороні клієнта. - Ризик: Витік API ключів, облікових даних бази даних або інших чутливих даних для публіки, що призводить до витоків даних.
- Чутливі вимкнені
- Неправильна конфігурація: Якщо вимкнено (за замовчуванням), можливо, прочитати значення згенерованих секретів.
- Ризик: Збільшена ймовірність випадкового витоку або неавторизованого доступу до чутливої інформації.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.