Vercel Security
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
У Vercel Команда - це повне середовище, яке належить клієнту, а проект - це додаток.
Для перевірки безпеки Vercel вам потрібно запитати користувача з дозволом ролі Переглядача або принаймні дозволом перегляду проекту для перевірки (якщо вам потрібно лише перевірити проекти, а не конфігурацію Команди).
Мета: Керувати основними налаштуваннями проекту, такими як назва проекту, фреймворк та конфігурації збірки.
Transfer
Misconfiguration: Дозволяє передати проект до іншої команди
Risk: Зловмисник може вкрасти проект
Delete Project
Misconfiguration: Дозволяє видалити проект
Risk: Видалити проект
Мета: Керувати власними доменами, налаштуваннями DNS та конфігураціями SSL.
DNS Configuration Errors
Misconfiguration: Неправильні DNS записи (A, CNAME), що вказують на шкідливі сервери.
Risk: Захоплення домену, перехоплення трафіку та фішингові атаки.
SSL/TLS Certificate Management
Misconfiguration: Використання слабких або прострочених SSL/TLS сертифікатів.
Risk: Вразливість до атак "людина посередині" (MITM), що компрометує цілісність та конфіденційність даних.
DNSSEC Implementation
Misconfiguration: Невключення DNSSEC або неправильні налаштування DNSSEC.
Risk: Збільшена вразливість до підробки DNS та атак на кеш.
Environment used per domain
Misconfiguration: Зміна середовища, яке використовується доменом у виробництві.
Risk: Витік потенційних секретів або функціональностей, які не повинні бути доступні у виробництві.
Мета: Визначити різні середовища (Розробка, Попередній перегляд, Виробництво) з конкретними налаштуваннями та змінними.
Environment Isolation
Misconfiguration: Спільне використання змінних середовища між середовищами.
Risk: Витік секретів виробництва в середовища розробки або попереднього перегляду, що збільшує ризик.
Access to Sensitive Environments
Misconfiguration: Дозволяє широкий доступ до виробничих середовищ.
Risk: Неавторизовані зміни або доступ до живих додатків, що може призвести до потенційних простоїв або витоків даних.
Мета: Керувати змінними та секретами, специфічними для середовища, які використовуються додатком.
Exposing Sensitive Variables
Misconfiguration: Префіксування чутливих змінних NEXT_PUBLIC_
, що робить їх доступними на стороні клієнта.
Risk: Витік API ключів, облікових даних бази даних або інших чутливих даних для публіки, що призводить до витоків даних.
Sensitive disabled
Misconfiguration: Якщо вимкнено (за замовчуванням), можливо читати значення згенерованих секретів.
Risk: Збільшена ймовірність випадкового витоку або несанкціонованого доступу до чутливої інформації.
Shared Environment Variables
Misconfiguration: Це змінні середовища, встановлені на рівні Команди, і можуть також містити чутливу інформацію.
Risk: Збільшена ймовірність випадкового витоку або несанкціонованого доступу до чутливої інформації.
Мета: Налаштувати інтеграції репозиторіїв Git, захист гілок та тригери розгортання.
Ignored Build Step (TODO)
Misconfiguration: Схоже, що ця опція дозволяє налаштувати bash-скрипт/команди, які будуть виконані, коли новий коміт буде надіслано в Github, що може дозволити RCE.
Risk: TBD
Мета: Підключити сторонні сервіси та інструменти для покращення функціональності проекту.
Insecure Third-Party Integrations
Misconfiguration: Інтеграція з ненадійними або небезпечними сторонніми сервісами.
Risk: Введення вразливостей, витоків даних або бекдорів через скомпрометовані інтеграції.
Over-Permissioned Integrations
Misconfiguration: Надання надмірних дозволів інтегрованим сервісам.
Risk: Неавторизований доступ до ресурсів проекту, маніпуляція даними або збої в сервісах.
Lack of Integration Monitoring
Misconfiguration: Невиконання моніторингу та аудиту сторонніх інтеграцій.
Risk: Затримка виявлення скомпрометованих інтеграцій, що збільшує потенційний вплив порушень безпеки.
Мета: Забезпечити безпеку розгортань через різні механізми захисту, контролюючи, хто може отримати доступ і розгортати у ваших середовищах.
Vercel Authentication
Misconfiguration: Вимкнення аутентифікації або неналежне виконання перевірок членів команди.
Risk: Неавторизовані користувачі можуть отримати доступ до розгортань, що призводить до витоків даних або зловживання додатком.
Protection Bypass for Automation
Misconfiguration: Публічне розкриття секрету обходу або використання слабких секретів.
Risk: Зловмисники можуть обійти захист розгортання, отримуючи доступ і маніпулюючи захищеними розгортаннями.
Shareable Links
Misconfiguration: Безсистемне розкриття посилань або неналежне відкликання застарілих посилань.
Risk: Неавторизований доступ до захищених розгортань, обходячи аутентифікацію та обмеження IP.
OPTIONS Allowlist
Misconfiguration: Дозволення надто широких шляхів або чутливих кінцевих точок.
Risk: Зловмисники можуть використовувати незахищені шляхи для виконання несанкціонованих дій або обходу перевірок безпеки.
Password Protection
Misconfiguration: Використання слабких паролів або неналежне їх розкриття.
Risk: Неавторизований доступ до розгортань, якщо паролі вгадуються або витікають.
Note: Доступно в Pro плані як частина Розширеного захисту розгортання за додаткові $150/місяць.
Deployment Protection Exceptions
Misconfiguration: Ненавмисне додавання виробничих або чутливих доменів до списку винятків.
Risk: Витік критичних розгортань для публіки, що призводить до витоків даних або несанкціонованого доступу.
Note: Доступно в Pro плані як частина Розширеного захисту розгортання за додаткові $150/місяць.
Trusted IPs
Misconfiguration: Неправильне зазначення IP-адрес або діапазонів CIDR.
Risk: Легітимні користувачі можуть бути заблоковані або несанкціоновані IP можуть отримати доступ.
Note: Доступно в Enterprise плані.
Мета: Налаштувати безсерверні функції, включаючи налаштування середовища, виділення пам'яті та політики безпеки.
Nothing
Мета: Керувати стратегіями кешування та налаштуваннями для оптимізації продуктивності та контролю зберігання даних.
Purge Cache
Misconfiguration: Дозволяє видалити весь кеш.
Risk: Неавторизовані користувачі видаляють кеш, що може призвести до потенційного DoS.
Мета: Запланувати автоматизовані завдання та скрипти для виконання через певні інтервали.
Disable Cron Job
Misconfiguration: Дозволяє вимкнути cron jobs, оголошені в коді
Risk: Потенційне переривання служби (залежно від того, для чого призначалися cron jobs)
Мета: Налаштувати зовнішні служби логування для захоплення та зберігання журналів додатків для моніторингу та аудиту.
Нічого (керується з налаштувань команд)
Мета: Центральний хаб для різних налаштувань безпеки, що впливають на доступ до проекту, захист джерела та інше.
Build Logs and Source Protection
Misconfiguration: Вимкнення захисту або публічне розкриття шляхів /logs
та /src
.
Risk: Неавторизований доступ до журналів збірки та вихідного коду, що призводить до витоків інформації та потенційної експлуатації вразливостей.
Git Fork Protection
Misconfiguration: Дозволення несанкціонованих запитів на злиття без належних перевірок.
Risk: Зловмисний код може бути об'єднаний у кодову базу, що вводить вразливості або бекдори.
Secure Backend Access with OIDC Federation
Misconfiguration: Неправильне налаштування параметрів OIDC або використання ненадійних URL-адрес видавця.
Risk: Неавторизований доступ до бекенд-сервісів через ненадійні потоки аутентифікації.
Deployment Retention Policy
Misconfiguration: Встановлення занадто коротких (втрата історії розгортання) або занадто довгих (непотрібне зберігання даних) термінів зберігання.
Risk: Нездатність виконати відкат, коли це необхідно, або підвищений ризик витоку даних з старих розгортань.
Recently Deleted Deployments
Misconfiguration: Невиконання моніторингу видалених розгортань або покладання виключно на автоматичні видалення.
Risk: Втрата критичної історії розгортання, що ускладнює аудити та відкат.
Мета: Доступ до додаткових налаштувань проекту для тонкого налаштування конфігурацій та підвищення безпеки.
Directory Listing
Misconfiguration: Увімкнення списку директорій дозволяє користувачам переглядати вміст директорії без індексного файлу.
Risk: Витік чутливих файлів, структури додатка та потенційні точки входу для атак.
Enable Attack Challenge Mode
Misconfiguration: Увімкнення цього покращує захист веб-додатка від DoS, але за рахунок зручності використання
Risk: Потенційні проблеми з досвідом користувача.
Misconfiguration: Дозволяє розблокувати/блокувати трафік
Risk: Потенційний DoS, що дозволяє шкідливий трафік або блокує добрий трафік
Misconfiguration: Дозволяє доступ для читання повного вихідного коду додатка
Risk: Потенційний витік чутливої інформації
Misconfiguration: Цей захист забезпечує, щоб клієнт і серверний додаток завжди використовували одну й ту ж версію, щоб не було десинхронізації, коли клієнт використовує іншу версію, ніж сервер, і тому вони не розуміють один одного.
Risk: Вимкнення цього (якщо увімкнено) може викликати проблеми з DoS у нових розгортаннях у майбутньому
Transfer
Misconfiguration: Дозволяє передати всі проекти до іншої команди
Risk: Зловмисник може вкрасти проекти
Delete Project
Misconfiguration: Дозволяє видалити команду з усіма проектами
Risk: Видалити проекти
Speed Insights Cost Limit
Misconfiguration: Зловмисник може збільшити це число
Risk: Збільшення витрат
Add members
Misconfiguration: Зловмисник може підтримувати стійкість, запрошуючи обліковий запис, який він контролює
Risk: Стійкість зловмисника
Roles
Misconfiguration: Надання занадто багатьох дозволів людям, яким це не потрібно, збільшує ризик конфігурації vercel. Перевірте всі можливі ролі на https://vercel.com/docs/accounts/team-members-and-roles/access-roles
Risk: Збільшення експозиції команди Vercel
Група доступу у Vercel - це колекція проектів та членів команди з попередньо визначеними призначеннями ролей, що дозволяє централізоване та спрощене управління доступом до кількох проектів.
Потенційні неправильні налаштування:
Надмірні дозволи для членів: Призначення ролей з більшою кількістю дозволів, ніж необхідно, що призводить до несанкціонованого доступу або дій.
Неправильні призначення ролей: Неправильне призначення ролей, які не відповідають обов'язкам членів команди, що викликає ескалацію привілеїв.
Відсутність сегрегації проектів: Невиконання розділення чутливих проектів, що дозволяє більш широкий доступ, ніж передбачалося.
Недостатнє управління групами: Нерегулярний перегляд або оновлення груп доступу, що призводить до застарілих або невідповідних дозволів доступу.
Непослідовні визначення ролей: Використання непослідовних або неясних визначень ролей у різних групах доступу, що призводить до плутанини та прогалин у безпеці.
Log Drains to third parties:
Misconfiguration: Зловмисник може налаштувати Log Drain для крадіжки журналів
Risk: Часткова стійкість
Team Email Domain: Коли налаштовано, це налаштування автоматично запрошує особисті облікові записи Vercel з адресами електронної пошти, що закінчуються на вказаному домені (наприклад, mydomain.com
), приєднатися до вашої команди під час реєстрації та на панелі управління.
Misconfiguration:
Вказування неправильного домену електронної пошти або помилково написаного домену в налаштуванні домену електронної пошти команди.
Використання загального домену електронної пошти (наприклад, gmail.com
, hotmail.com
) замість домену, специфічного для компанії.
Risks:
Unauthorized Access: Користувачі з адресами електронної пошти з ненавмисних доменів можуть отримати запрошення приєднатися до вашої команди.
Data Exposure: Потенційний витік чутливої інформації проекту для несанкціонованих осіб.
Protected Git Scopes: Дозволяє додати до 5 Git-обсягів до вашої команди, щоб запобігти іншим командам Vercel від розгортання репозиторіїв з захищеного обсягу. Кілька команд можуть вказувати один і той же обсяг, що дозволяє обом командам отримати доступ.
Misconfiguration: Невключення критичних Git-обсягів до захищеного списку.
Risks:
Unauthorized Deployments: Інші команди можуть розгортати репозиторії з Git-обсягів вашої організації без авторизації.
Intellectual Property Exposure: Власний код може бути розгорнутий і доступний за межами вашої команди.
Environment Variable Policies: Встановлює політики для створення та редагування змінних середовища команди. Зокрема, ви можете вимагати, щоб усі змінні середовища створювалися як Чутливі змінні середовища, які можуть бути розшифровані лише системою розгортання Vercel.
Misconfiguration: Залишення вимоги чутливих змінних середовища вимкненою.
Risks:
Exposure of Secrets: Змінні середовища можуть бути переглянуті або відредаговані несанкціонованими членами команди.
Data Breach: Чутлива інформація, така як API ключі та облікові дані, може бути витікана.
Audit Log: Надає експорт активності команди за останні 90 днів. Журнали аудиту допомагають у моніторингу та відстеженні дій, виконаних членами команди.
Misconfiguration: Надання доступу до журналів аудиту несанкціонованим членам команди.
Risks:
Privacy Violations: Витік чутливих дій та даних користувачів.
Tampering with Logs: Зловмисники можуть змінювати або видаляти журнали, щоб приховати свої сліди.
SAML Single Sign-On: Дозволяє налаштування SAML-аутентифікації та синхронізації каталогів для вашої команди, що дозволяє інтеграцію з постачальником ідентифікації (IdP) для централізованої аутентифікації та управління користувачами.
Misconfiguration: Зловмисник може створити бекдор у налаштуванні команди, налаштовуючи параметри SAML, такі як ID сутності, URL SSO або відбитки сертифікатів.
Risk: Підтримка стійкості
IP Address Visibility: Контролює, чи IP-адреси, які можуть вважатися особистою інформацією відповідно до певних законів про захист даних, відображаються в запитах моніторингу та Log Drains.
Misconfiguration: Залишення видимості IP-адреси увімкненою без необхідності.
Risks:
Privacy Violations: Невідповідність вимогам законодавства про захист даних, таким як GDPR.
Legal Repercussions: Потенційні штрафи та покарання за неналежне оброблення особистих даних.
IP Blocking: Дозволяє налаштування IP-адрес та діапазонів CIDR, з яких Vercel повинен блокувати запити. Заблоковані запити не впливають на вашу оплату.
Misconfiguration: Може бути зловмисно використано зловмисником для дозволу шкідливого трафіку або блокування легітимного трафіку.
Risks:
Service Denial to Legitimate Users: Блокування доступу для дійсних користувачів або партнерів.
Operational Disruptions: Втрата доступності служби для певних регіонів або клієнтів.
Vercel Secure Compute забезпечує безпечні, приватні з'єднання між функціями Vercel та бекенд-середовищами (наприклад, базами даних), створюючи ізольовані мережі з виділеними IP-адресами. Це усуває необхідність публічного розкриття бекенд-сервісів, підвищуючи безпеку, відповідність та конфіденційність.
Incorrect AWS Region Selection
Misconfiguration: Вибір регіону AWS для мережі Secure Compute, який не відповідає регіону бекенд-сервісів.
Risk: Збільшена затримка, потенційні проблеми з відповідністю резидентності даних та зниження продуктивності.
Overlapping CIDR Blocks
Misconfiguration: Вибір CIDR-блоків, які перекриваються з існуючими VPC або іншими мережами.
Risk: Конфлікти мережі, що призводять до невдалих з'єднань, несанкціонованого доступу або витоку даних між мережами.
Improper VPC Peering Configuration
Misconfiguration: Неправильне налаштування VPC-пірінгу (наприклад, неправильні ID VPC, неповні оновлення таблиць маршрутів).
Risk: Неавторизований доступ до інфраструктури бекенду, невдалі безпечні з'єднання та потенційні витоки даних.
Excessive Project Assignments
Misconfiguration: Призначення кількох проектів до однієї мережі Secure Compute без належної ізоляції.
Risk: Спільна експозиція IP збільшує поверхню атаки, потенційно дозволяючи скомпрометованим проектам впливати на інші.
Inadequate IP Address Management
Misconfiguration: Невиконання управління або ротації виділених IP-адрес належним чином.
Risk: Підробка IP, вразливості для відстеження та потенційне занесення до чорного списку, якщо IP пов'язані зі шкідливою діяльністю.
Including Build Containers Unnecessarily
Misconfiguration: Додавання контейнерів збірки до мережі Secure Compute, коли доступ до бекенду не потрібен під час збірок.
Risk: Розширена поверхня атаки, збільшені затримки в постачанні та непотрібне споживання мережевих ресурсів.
Failure to Securely Handle Bypass Secrets
Misconfiguration: Витік або неналежне оброблення секретів, що використовуються для обходу захисту розгортання.
Risk: Неавторизований доступ до захищених розгортань, що дозволяє зловмисникам маніпулювати або розгортати шкідливий код.
Ignoring Region Failover Configurations
Misconfiguration: Невиконання налаштування пасивних регіонів відмови або неправильне налаштування параметрів відмови.
Risk: Перебої в обслуговуванні під час відмови основного регіону, що призводить до зниження доступності та потенційної несумісності даних.
Exceeding VPC Peering Connection Limits
Misconfiguration: Спроба встановити більше з'єднань VPC-пірінгу, ніж дозволено (наприклад, перевищення 50 з'єднань).
Risk: Нездатність безпечно підключити необхідні бекенд-сервіси, що викликає збої в розгортанні та операційні збої.
Insecure Network Settings
Misconfiguration: Слабкі правила брандмауера, відсутність шифрування або неналежна сегментація мережі в межах мережі Secure Compute.
Risk: Перехоплення даних, несанкціонований доступ до бекенд-сервісів та підвищена вразливість до атак.
Мета: Керувати змінними та секретами, специфічними для середовища, які використовуються всіма проектами.
Exposing Sensitive Variables
Misconfiguration: Префіксування чутливих змінних NEXT_PUBLIC_
, що робить їх доступними на стороні клієнта.
Risk: Витік API ключів, облікових даних бази даних або інших чутливих даних для публіки, що призводить до витоків даних.
Sensitive disabled
Misconfiguration: Якщо вимкнено (за замовчуванням), можливо читати значення згенерованих секретів.
Risk: Збільшена ймовірність випадкового витоку або несанкціонованого доступу до чутливої інформації.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)