GitHub не вибачає промахів як видалені коміти призвели до витоку таємниць і 25 000 $ винагород

04.07.2025 1 хвилин Автор: Newsman

Білий хакер Шарон Брізінов показав на практиці, що GitHub нічого не забуває: навіть після ліквідації комітів через force push, чутливі дані можуть залишатись у системі. Він просканував так звані dangling commits — фрагменти історії, які більше не мають посилань, але все ще існують, — і знайшов тисячі активних секретів, серед яких токени AWS, ключі Telegram Bot API, MongoDB, Postgres та інші. Найнебезпечніший випадок — адмін-доступ до всіх репозиторіїв великого проєкту Istio, що використовується такими компаніями як Google, IBM та Red Hat. За результати дослідження він отримав 25 000 $ у межах програми bug bounty.

Брізінов сканував події force push із 2020 року, використовуючи інструмент, згенерований ним на основі AI (v0 Vercel) — так званий «vibe-кодинг». Завдяки цьому він знайшов:

  • 1 247 ключів MongoDB

  • сотні TelegramBotTokens

  • доступи до Postgres, Infura, OpenWeather, AWS

  • GitHub PAT з адмін-рівнем доступу

Більше половини витоків містилися у .env, решта — у index.js, server.js, application.properties та подібних файлах. Один із найнебезпечніших витоків — GitHub PAT-токен від Istio, що дозволяв змінювати пайплайни, пушити нові коміти, запускати релізи або навіть видалити увесь проєкт. Це класична точка входу для масових атак на ланцюжки поставок (supply-chain), адже компрометація таких репозиторіїв впливає на тисячі залежних систем.

Dangling commits — це коміти, які були переписані під час force push, але все ще існують у внутрішній структурі Git. Вони доступні через GitHub Archive, Events API або навіть через локальну історію. Хоча здається, що код ліквідовано — насправді він продовжує зберігатися, якщо GitHub його не прибрав вручну або користувач не провів повну ревізію історії. У 2024 році GitGuardian виявив понад 23 мільйони hardcoded секретів, і ця історія лише доводить масштаб проблеми.

Цей кейс — нагадування всім розробникам, що репозиторій — не місце для токенів і ключів. Навіть якщо ви зробили force push і сховали стару версію коду, ви не стерли її з історії — вона лишилась. А якщо таємниці не відкликано — вони досі активні й можуть бути використані для атак. Брізінов зробив свою роботу за 25 000 $, але інший хакер міг би використати ці ж токени для злому інфраструктури.

Зображення Шерон Брізінов / Truffle Security

Що потрібно робити ?

  • Після випадкового коміту таємниць негайно відкликайте токени.
  • Використовуйте .gitignore, але краще — секретні сховища типу Vault, Doppler або AWS Secrets Manager.
  • Регулярно перевіряйте репозиторії через Gitleaks, TruffleHog або GitHub Secret Scanning.
  • Розгляньте впровадження автоматичного ротаційного механізму ключів.
Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.