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

Основна інформація

У 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-адресами. Це усуває необхідність публічного розкриття бекенд-сервісів, підвищуючи безпеку, відповідність та конфіденційність.

Потенційні неправильні конфігурації та ризики

  1. Неправильний вибір регіону AWS
  • Неправильна конфігурація: Вибір регіону AWS для мережі Secure Compute, який не відповідає регіону бекенд-сервісів.
  • Ризик: Збільшена затримка, потенційні проблеми з відповідністю резидентності даних та зниження продуктивності.
  1. Перекриваючі CIDR блоки
  • Неправильна конфігурація: Вибір CIDR блоків, які перекриваються з існуючими VPC або іншими мережами.
  • Ризик: Конфлікти мережі, що призводять до невдалих з'єднань, неавторизованого доступу або витоку даних між мережами.
  1. Неправильна конфігурація VPC Peering
  • Неправильна конфігурація: Неправильне налаштування VPC peering (наприклад, неправильні ID VPC, неповні оновлення таблиць маршрутів).
  • Ризик: Неавторизований доступ до інфраструктури бекенду, невдалі безпечні з'єднання та потенційні витоки даних.
  1. Надмірні призначення проектів
  • Неправильна конфігурація: Призначення кількох проектів до однієї мережі Secure Compute без належної ізоляції.
  • Ризик: Спільна експозиція IP збільшує поверхню атаки, потенційно дозволяючи скомпрометованим проектам впливати на інші.
  1. Недостатнє управління IP-адресами
  • Неправильна конфігурація: Невиконання управління або ротації виділених IP-адрес належним чином.
  • Ризик: Підробка IP, вразливості для відстеження та потенційне занесення до чорного списку, якщо IP пов'язані зі шкідливою діяльністю.
  1. Неправильне включення контейнерів збірки
  • Неправильна конфігурація: Додавання контейнерів збірки до мережі Secure Compute, коли доступ до бекенду не потрібен під час збірок.
  • Ризик: Розширена поверхня атаки, збільшені затримки при наданні та неналежне споживання мережевих ресурсів.
  1. Невиконання безпечного оброблення секретів обходу
  • Неправильна конфігурація: Витік або неналежне оброблення секретів, що використовуються для обходу захисту розгортання.
  • Ризик: Неавторизований доступ до захищених розгортань, що дозволяє зловмисникам маніпулювати або розгортати шкідливий код.
  1. Ігнорування налаштувань резервування регіону
  • Неправильна конфігурація: Невиконання налаштування пасивних регіонів резервування або неправильне налаштування параметрів резервування.
  • Ризик: Перерви в обслуговуванні під час відмови основного регіону, що призводить до зниження доступності та потенційної несумісності даних.
  1. Перевищення лімітів з'єднань VPC Peering
  • Неправильна конфігурація: Спроба встановити більше з'єднань VPC peering, ніж дозволено (наприклад, перевищення 50 з'єднань).
  • Ризик: Нездатність безпечно підключити необхідні бекенд-сервіси, що викликає збої в розгортанні та операційні збої.
  1. Небезпечні налаштування мережі
  • Неправильна конфігурація: Слабкі правила брандмауера, відсутність шифрування або неналежна сегментація мережі в межах мережі 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