Каталог .git у відкритому доступі

Каталог .git у відкритому доступі

До завантаження всього вашого репозиторію — одна URL-адреса.

Що таке Каталог .git у відкритому доступі?

Розгортання, що копіює робоче дерево в кореневий каталог сайту, копіює разом із ним і .git. Цей каталог зберігає кожен коміт і кожну версію кожного файлу, а не лише те, що працює зараз. Будь-хто, хто може до нього звернутися, відновить усе дерево вихідного коду, зокрема секрети, видалені в пізніших комітах. Ви запитаєте /.git/ на робочому сайті, запустите git-dumper, щоб відновити вихідний код, і прочитаєте з нього пароль до бази даних. Потім заблокуєте шлях на вебсервері, розгорнете артефакти збірки замість репозиторію та заміните те, що витекло.

Що ви дізнаєтесь у Каталог .git у відкритому доступі

Каталог .git у відкритому доступі — Кроки навчання

  1. Оцініть ціль

    Сьогодні Боб націлюється на Verlune, компанію з продуктової аналітики, чия панель працює за адресою app.verlune.io. Він починає звідти, звідки почав би будь-хто, — з публічного сайту, щоб зрозуміти, що компанія випускає, перш ніж шукати лазівку. Сам застосунок мало що видає. Цікаві помилки зазвичай ховаються в шляхах, на які сайт ніколи не мав відповідати.

  2. Шлях, який не мав би відповідати

    Боб напряму запитує /.git/ на тому самому хості — шлях, який правильно налаштований сервер ніколи б не віддав. Замість помилки 404 сервер відповідає списком файлів каталогу, який можна переглядати. Внутрішні файли репозиторію Git — HEAD , config , objects — лежать у кореневому каталозі сайту й віддаються, як будь-яка інша сторінка.

  3. Це справжній репозиторій

    Боб натискає файл config у списку. Той відкривається як звичайний конфіг Git: віддалений репозиторій origin, основна гілка, налаштування користувача. Це не випадковий файл, який хтось залишив. У продакшн потрапив увесь робочий репозиторій, тож уся історія репозиторію — за одне завантаження.

  4. Відновіть вихідний код

    Боб не перебирає список вручну. Він наводить на каталог, доступний ззовні, інструмент для завантаження репозиторіїв: той обходить об'єкти, які віддає сервер, і відновлює робоче дерево точно таким, яким воно є в репозиторії. За кілька секунд увесь вихідний код застосунку Verlune разом з історією вже на його власному комп'ютері.

  5. Облікові дані у вихідному коді

    Коли вихідний код відновлено, Боб відкриває відновлений конфіг бази даних. Найцінніше у витеклому репозиторії — зазвичай не сам код, а секрети, закомічені разом із ним. Шукати довго не доводиться.

  6. Пароль і ключ

    Відновлений файл віддає Бобу два робочі секрети відкритим текстом: рядок підключення до продакшн-бази даних разом із паролем і API-ключ до API адміністратора. Обидва закомітили прямо у вихідний код, тому відкритий репозиторій їх і видає.

  7. Підключіться з витеклими обліковими даними

    Облікові дані, що витекли, залишаються теорією, доки не відкриють якийсь доступ. Відновлений конфіг дає Бобу повний рядок підключення до бази даних — хост, назву бази, користувача й пароль, — тож він відкриває SQL-клієнт і підключається просто до продакшн-бази даних Verlune. Ні експлойта, ні викраденої сесії: база даних довіряє паролю, який видав репозиторій.

  8. Таблиця клієнтів у відкритому доступі

    Підключено. Боб виконує очевидний запит, і таблиця customers із продакшну повертається повністю: імена, адреси електронної пошти, тарифи й платіжні дані. Він читає живі записи про клієнтів Verlune прямо з бази даних, не маючи власного облікового запису.

  9. Перевірка знань

  10. Сповіщення моніторингу

    Ви відповідаєте за конвеєр розгортання вебзастосунку Verlune. Уночі спрацювала перевірка моніторингу, яка стежить за чутливими шляхами на продакшні: вона звернулася до .git/config на app.verlune.io і отримала відповідь 200. Служба безпеки надіслала вам результат листом.

Охоплення стандартів безпеки

CWE

  • CWE-527 Exposure of Version-Control Repository to an Unauthorized Sphere
  • CWE-548 Exposure of Information Through Directory Listing

MITRE ATT&CK

  • T1213.003 Data from Information Repositories: Code Repositories

CIS Controls

  • CIS 16 Application Software Security
  • CIS 4 Secure Configuration of Enterprise Assets and Software

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.PS Platform Security