Новини безпеки та ШІ

Витоки облікових даних і API-ключів · Автор FireAI Security & Research Team · Опубліковано

Truffle Security знаходить у публічних репозиторіях GitHub 543 699 облікових даних, які досі проходять автентифікацію

Truffle Security перевірила дані з 224 млн публічних репозиторіїв: 543 699 облікових даних досі дійсні, медіана — 784 дні. Що це означає для розробників на Mac.

A key icon beside the FireAI activity mascot, illustrating Truffle Security finding 543,699 credentials in public GitHub repositories that still authenticate.

Truffle Security повідомляє, що знайшла в публічних репозиторіях GitHub 543 699 унікальних облікових даних, які досі проходили автентифікацію під час перевірки 27 і 28 липня 2026 року [1]. BleepingComputer повідомив про ці результати 30 вересня 2026 року [2]. До підрахунку увійшли хмарні ключі, рядки підключення до баз даних і ключі ШІ-сервісів [1].

Передумови

GitHub увімкнув push protection для всіх користувачів у лютому 2024 року, і цей захист охоплює не всі формати облікових даних [1] [2]. Аналіз Truffle Security ставить інше питання, ніж сканування нових комітів: які облікові дані в наявному публічному корпусі досі дійсні й як довго вони були відкриті [1].

Результати

Корпус складався з 224 553 295 репозиторіїв і 58 467 468 698 файлів із набору даних The Stack v3. Truffle Security перевіряла кожен імовірний обліковий запис у сервісі, який його видав, і рахувала облікові дані за значенням, тож один ключ, знайдений у 62 репозиторіях, враховано один раз [1]. Обхід охоплював лише гілку за замовчуванням і завершився 7 серпня 2025 року [1].

Медіанний вік дійсних облікових даних у публічному репозиторії становив 784 дні, а 90-й процентиль — 6,3 року; найстаріші закомітили 2009 року, і вони досі працюють [1]. Серед дійсних облікових даних було 69 041 сервісний обліковий запис Google Cloud, 33 343 ключі Google API і 31 374 ключі Gemini, а 51 067 рядків підключення MongoDB належали до категорії, яку push protection не блокує [1].

Живучість залежала від постачальника. Із 101 886 закомічених токенів npm дійсним лишився 1, а з 73 048 закомічених токенів GitHub — 260; для рядків підключення Postgres дійсними були 11 465 з 12 985, тобто 88 відсотків [1]. Висновок Truffle Security: різницю визначає те, чи має постачальник механізм, що отримує токен, який потрапив у відкритий доступ, і анулює його [1].

Щодо push protection звіт зазначає, що трохи менше 200 000 дійсних облікових даних було запушено після того, як цей захист увімкнули за замовчуванням, що 51,8 відсотка дійсних облікових даних належать до категорій, яких він не розпізнає, і що кількість у захищеній групі скоротилася на 53 відсотки, а в незахищеній — на 7 відсотків [1] [2].

Наслідки для користувачів Mac

Дані описують репозиторії, а не комп’ютери, і джерела не повідомляють, якими операційними системами користувалися розробники. Для користувача Mac важливі самі облікові дані: ключ, що лежить у публічному репозиторії, можна використати звідусіль, незалежно від того, на якому пристрої його створено. Кількість ключів Gemini — приклад того, як ключі ШІ-сервісів трапляються в тих самих даних, що й хмарні ключі [1].

Методологія також обмежує те, що показують цифри. Усе, що було перезаписано force push, перенесено в гілку не за замовчуванням або закомічено й скасовано до серпня 2025 року, для цього методу невидиме, тож цифра — це кількість знайденого, а не всього, що було відкрито [1].

Рекомендації

  1. Вважайте закомічені облікові дані скомпрометованими з тієї миті, як вони потрапили в репозиторій, незалежно від того, чи щось їх позначило, і спершу замініть їх, а потім чистіть історію, як радить звіт [1].
  2. Замініть кожен ключ, який будь-коли комітили, зокрема в старих гілках і в репозиторіях, згодом зроблених приватними, адже медіанні дійсні облікові дані були відкриті 784 дні [1].
  3. Надавайте перевагу обліковим даним, термін дії яких спливає автоматично; підсумок BleepingComputer називає автоматичне закінчення терміну дії активних секретів серед заходів захисту [2].
  4. Зберігайте ключі в сховищі секретів або в змінних середовища поза репозиторієм і скануйте історію репозиторію, перш ніж робити його публічним.

Стосунок до FireAI

FireAI — це фаєрвол для одного Mac. Він ідентифікує застосунок за підписом коду або шляхом і застосовує правила для застосунків до з’єднань, які той відкриває, а сторінка Активність показує, які застосунки виходили в мережу і куди. Це допомагає користувачеві побачити, які програми на Mac звертаються до хмарного чи ШІ-сервісу, і створити правило, щоб до нього діставався лише потрібний застосунок.

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

Обмеження

Цифри ґрунтуються на власній методології й наборі даних Truffle Security. Два джерела описують розподіл за віком різними словами: BleepingComputer пише, що приблизно десята частина дійсних облікових даних старша за 6,3 року, а Truffle Security — що 90-й процентиль становить 6,3 року [1] [2]. Дата коміту файлу — єдиний годинник для окремого файлу, який дає корпус, тож вік приблизний [1].

Обхід набору даних завершився в серпні 2025 року, а перевірки дійсності проводили в липні 2026 року, тож частина облікових даних у підрахунку була відкрита роками до перевірки, і звіт не може сказати, хто, якщо хтось узагалі, ними скористався [1].

Спробуйте FireAI від HisnLabs безкоштовно 17 днів.

Джерела

  1. Truffle Security: 543,699 credentials in public GitHub repos still work, and nobody revoked them
  2. BleepingComputer, 30 September 2026: Over 543,000 valid credentials exposed in public GitHub repositories