291 Intercept: Кількість спроб знайти відкриті репозиторії Git на нашій інфраструктурі зросла більш ніж удвічі
Протягом тижня, що почався 19 жовтня, кількість джерел, які шукали на нашій доступній з інтернету інфраструктурі залишені репозиторії вихідного коду, зросла на 137% порівняно із середнім тижневим показником двох попередніх тижнів. Також побільшало сканерів, що шукали файли .env у вкладених папках, файли хмарних ключів і резервні копії.
Знайомтеся: 291 Intercept
Ми запускаємо 291 Intercept, нову щотижневу серію від 291 Group. Як і вебресурси будь-якої організації в інтернеті, нашу доступну з інтернету інфраструктуру щодня перевіряють автоматизовані сканери, які шукають незачинені двері: відкриті файли з паролями, забуті резервні копії, сторінки адміністрування без оновлень. У кожному випуску ми розповідаємо, що саме ці сканери шукали на нашій власній інфраструктурі протягом одного тижня, щоб інші системні адміністратори та компанії могли перевірити свої системи на те саме.
Щотижня на вас чекають: шаблони, що вирізнялися на нашій інфраструктурі, і те, як вони змінилися порівняно з попереднім тижнем, звідки надходив трафік, а також короткий список того, що варто перевірити на власних серверах. Усі дані агреговані. Ми ніколи не називаємо окремих адрес чи систем і включаємо лише шаблони, які спостерігалися з багатьох окремих джерел. Кожен випуск охоплює тиждень, що завершився щонайменше за сім днів до публікації.
З 19 по 25 жовтня близько 240 джерел шукали на нашій доступній з інтернету інфраструктурі репозиторії вихідного коду, залишені на вебсерверах. Це на 137% більше за середній тижневий показник двох попередніх тижнів. Вони запитували такі файли, як /.git/config, /.git/index і /.svn/entries. На нашій інфраструктурі цього тижня лише WordPress привернув більше сканерів, ніж вихідний код.
Одночасно зросла й кількість пов’язаних пошуків на наших сайтах. Кількість джерел, що полювали на файли хмарних ключів, зросла на 51%, а тих, що запитували резервні копії та дампи баз даних, на 75%. Ми також бачили, як сканери взялися за цілу групу файлів .env у вкладених папках, які раніше викликали значно менший інтерес. Жодна з цих цілей не є програмною вадою. Кожна з них є файлом, який хтось забув прибрати з публічного сервера.
Тиждень коротко
Ми зафіксували близько 660 окремих джерел, що на 28% більше порівняно з тією самою базою. Найбільше уваги, 56% джерел, привернули сторінки входу WordPress, XML-RPC і шляхи до плагінів. Файли із секретами та конфігураціями привернули 32%. Кількість джерел, що шукали діагностичні сторінки на кшталт /info.php, зросла на 33%, а тих, що зондували внутрішні механізми застосунків, як-от /actuator/env, на 37%.
Серед джерел, що до нас дісталися, 88% використовували рядки user-agent, які видають себе за звичайні браузери, а 64% надходили з орендованих серверів. Найчастіше траплялися США, Німеччина, Нідерланди, Сінгапур та Індія.
Як відкрита папка .git видає сайт
Більшість команд розробників відстежує зміни в коді за допомогою Git, і кожен проєкт Git зберігає свою історію в прихованій папці .git. Якщо сайт публікують, копіюючи всю папку проєкту на вебсервер, ця прихована папка теж може туди потрапити, і будь-хто, хто запитає її файли, зможе їх прочитати.
Файл /.git/config був серед найчастіше запитуваних шляхів до вихідного коду на нашій доступній з інтернету інфраструктурі. Цей файл вказує, з якого репозиторію походить код, а іноді містить облікові дані, що використовуються для розгортання. Сканери також запитували в нас /.git/head, /.git/logs/head і /.git/index, які показали б, чи доступна для читання достатня частина папки, щоб іти далі. Коли папка відкрита, зловмисники іноді можуть відновити весь вихідний код та історію комітів.
Ця помилка поширена. Дослідження, про яке повідомили в лютому 2026 року, виявило близько 4.96 мільйона публічних вебсерверів, що розкривають метадані Git. На 252,733 з них конфігураційний файл містив облікові дані для розгортання, а це, як попереджає той самий звіт, може призвести до захоплення репозиторію та атак на ланцюг постачання.
Секрети в несподіваних папках
Сканери запитували в наших сайтів /.env у кореневій папці, але цього тижня багато хто шукав і у вкладених папках. До /mailer/.env звернулися 40 джерел, у 7.8 раза більше за попереднє середнє. До /live/.env, /mail/.env, /v3/.env, /sitemaps/.env, /releases/.env і /exapi/.env звернулися по 40 джерел, приблизно в шість або сім разів більше за їхні попередні середні показники. Чотири шляхи вперше дійшли до нас, кожен приблизно з 10 джерел: /core/database/.env, /.changeset/config.json, /secrets і /settings/credentials.
Ці файли варті зусиль зловмисника. Вебзастосунки зберігають у файлах .env ключі API, паролі до баз даних і ключі доступу до хмари. Розслідування одного масового сканера у квітні 2026 року виявило викрадені файли .env понад 900 зламаних компаній, причому з 10 по 21 квітня 2026 року було зібрано понад 30,000 різних імен файлів .env. Викрадені секрети стосувалися сервісів штучного інтелекту, хмарних і платіжних сервісів, а також месенджерів.
Те саме ми бачили з хмарними обліковими даними. До /application_default_credentials.json звернулися 40 джерел, у 6.2 раза більше за попереднє середнє. Сканери також запитували в нас /service-account.json і /.config/gcloud/application_default_credentials.json. Цей файл створюється під час входу через хмарний інструмент командного рядка, і в офіційних рекомендаціях самого провайдера сказано, що він зберігається в незашифрованому вигляді й дозволяє будь-кому, хто ним володіє, безстроково запитувати токени доступу. Якщо копія опиниться в кореневому каталозі вебсервера, зловмисник, який її знайде, матиме доступ, доки файл не відкличуть.
Один прохід, багато цілей
Кілька скоординованих груп джерел проганяли ті самі списки по нашій доступній з інтернету інфраструктурі. В одній із них 20 джерел із 7 країн запитували ті самі 8 шляхів, зокрема /.git/config, /.env, /info.php, /config.json, /actuator/env і /server-status. Більшість із них розпочали роботу з інтервалом не більше 60 годин. Дві менші групи, приблизно по 10 джерел кожна, використовували значно довші списки, із 210 і 158 шляхів. Обидва списки містили /.git/config, варіанти .env, як-от /.env.old і /.env.development, а також файли хмарних ключів.
Шлях /actuator/env належить до тієї самої родини. Коли ендпоінт Spring Boot Actuator у застосунку на Java доступний без входу, він повертає змінні середовища та конфігурацію застосунку, серед яких можуть бути облікові дані баз даних і хмарні ключі. Забуті сторінки phpinfo теж можуть розкривати змінні середовища, а на нашій інфраструктурі кількість джерел, що запитували /admin/phpinfo.php, зросла в 5.9 раза порівняно з попереднім середнім. В одному реальному випадку плагін WordPress постачався з файлом phpinfo.php, який міг відкрити будь-хто.
Проти наших сайтів велася й окрема кампанія, спрямована на WordPress: 20 джерел із 7 країн запитували /xmlrpc.php разом із копіями wlwmanifest.xml у вгаданих папках, як-от /blog/wp-includes/wlwmanifest.xml і /wordpress/wp-includes/wlwmanifest.xml. Запит того самого файлу під багатьма назвами папок дає змогу швидко з’ясувати, чи працює сайт на WordPress і де саме. Через XML-RPC зловмисник може перевірити сотні чи тисячі паролів одним запитом.
Що зробити цього тижня
- Перевірте ззовні. З мережі, яка вам не належить, запитайте
/.git/configі/.envна кожному своєму сайті. Якщо хоч один із них повертає справжній вміст, вважайте, що його вже прочитали. - Розгортайте збірки, а не робочі папки. Публікуйте лише ті файли, які потрібні сайту, і заблокуйте вебдоступ до .git, .env та інших прихованих файлів.
- Замініть усе, що могло витекти. Якщо файли .git або .env були доступні для читання, змініть облікові дані й ключі, які вони містили. Видалення файлу не скасовує копії, яку хтось уже зробив.
- Тримайте секрети поза кореневим каталогом вебсервера. Зберігайте .env і файли хмарних облікових даних поза будь-якою опублікованою папкою. Якщо файл облікових даних колись був відкритий, відкличте його.
- Приберіть залишки. Видаліть резервні копії на кшталт
/wp-config.php.bakі/database.sql, а також приберіть сторінки phpinfo та налагоджувальні сторінки. - Закрийте ендпоінти керування. Захистіть ендпоінти Actuator автентифікацією й вимкніть XML-RPC на сайтах WordPress, які його не використовують.
Про ці спостереження
Цей звіт створює 291 Heat Seeker One, система моніторингу безпеки 291 Group, що працює на 291 Crossband, нашій власній платформі для операцій із безпеки. Він охоплює лише трафік до власної інфраструктури 291 Group, доступної з інтернету.
Цифри округлено, частки й зміни вимірюються кількістю окремих джерел, а не запитів, і враховуються лише шаблони, зафіксовані щонайменше з 20 окремих джерел.