Рутинна грешка при разработката изложи на риск хиляди софтуерни хранилища. Изследователи откриха 28 000 публично достъпни .git хранилища, съдържащи идентификационни данни, финансова информация и вътрешни записи на служители, които биха могли да осигурят на престъпниците директен път до облачни акаунти и бизнес системи.

Това не е кампании за разпространение на зловреден код в обичайния смисъл. Рискът възниква, когато уеб сървър случайно остави своята скрита Git директория достъпна, което позволява на автоматизирани скенери да извлекат код и по-стари версии на файлове.

Изтеклата тайна информация след това може да бъде използвана за кражба на данни, измами с плащания, фишинг или злонамерени промени в кода. Анализаторите от Intruder идентифицираха тази уязвимост, докато изследваха мащабно системи, свързани с интернет.

В доклад, споделен с „Cyber Security News“ (CSN), от Intruder посочват, че са тествали 3,5 милиона активни хоста и са открили проблем, който може да персистира дълго след като даден разработчик вярва, че съответните идентификационни данни са били премахнати.

Разкритията подкрепят неотдавнашните доклади за публично изтекли AWS идентификационни данни, при които стари облачни ключове са останали използваеми години след излагането им на риск.

В този случай опасността е особено голяма, тъй като историята на хранилището може да запази тайни данни, конфигурационна информация и документи в изтрити клонове и минали коммити.

28 000 достъпни Git хранилища

Изследователите са започнали с 40 милиона потенциални цели, извлечени от данни за прозрачност на сертификатите (Certificate Transparency), стеснявайки групата до хостове, работещи с HTTP услуга, преди да проверят за достъпни хранилища.

Те са разработили инструмента gitreaper, за да инспектират историята на хранилищата в паметта, без да изтеглят целите проекти. Тази история е от съществено значение. Премахването на парола или ключ от най-новата версия на даден проект не изтрива по-ранния коммит, който ги е съдържал.

Метаданните на Git, указателите към клоновете и логовете могат да отведат посетителя обратно към старо съдържание – слабост, която беше наблюдавана и при публичното излагане на данни от CISA в GitHub, включващо облачни идентификационни данни и код на инфраструктурата.

Сканирането е възстановило повече от 400 AWS ключа за достъп, 107 Stripe API ключа, 123 OpenAI API ключа, 80 Telegram токена и 17 GitHub лични токена за достъп. Някои от тях са останали активни по време на тестването, което означава, че атакуващ би могъл потенциално да влезе в свързаната среда.

Един твърдо кодиран AWS ключ е осигурил достъп до хранилище (bucket), съдържащо вътрешни трудови документи, включително присъствени записи и дисциплинарни досиета.

Подобни материали могат да помогнат на престъпниците да направят измамните съобщения да изглеждат достоверни, да се насочат към отделни служители или да притиснат организацията със заплаха за разкриване на информацията. Отделен ключ, оставен в конфигурационен файл, е разкрил историята на плащанията и трансакциите чрез платежна услуга.

Достъпните данни включват данни за приходите, графици за плащания и частични подробности за банкови сметки. В зависимост от разрешенията, валиден ключ за плащане може също да бъде използван злонамерено за извършване на възстановяване на средства, преглед на клиентска информация или пренасочване на плащания.

Старите коммити превръщат малките грешки в инциденти

Докладът показва защо изложените на риск Git директории трябва да се разглеждат като спешен инцидент със сигурността, а не като незначителна грешка в уеб сървъра.

Атакуващите все по-често автоматизират търсенето на тайни данни; предишни проучвания показват, че ботове за автоматизирано търсене на идентификационни данни откриват изложени AWS ключове в рамките на минути след публичното им разкриване.

Организациите трябва незабавно да премахнат публичния достъп до .git директориите, да установят дали хранилището е било копирано и да подменят (ротират) всички идентификационни данни, открити в настоящите и историческите коммити.

Анулирането само на видимия ключ не е достатъчно, ако свързани токени, пароли или тайни за внедряване също са били съхранявани в проекта.

Екипите трябва да прегледат облачната активност и логовете за плащания за подозрителна употреба, да ограничат всеки идентификационен данък до минималния необходим достъп и да преместят тайните в управлявано хранилище или система, базирана на средата.

Редовните проверки за изложени конфигурационни файлове на средата могат да засекат подобен път за компрометиране на облачни акаунти, преди престъпниците да го направят.

Разработчиците също се нуждаят от контроли, преди кодът да достигне до производствената среда. Сканирането за тайни данни в коммитите, правилата за блокиране на частни файлове и проверката при внедряване, която отказва достъп до .git пътища, могат да предотвратят повторно излагане на риск.

Историята на хранилището трябва да бъде изчистена, където е възможно, но екипите все пак трябва да приемат, че всяка предишна публична тайна е била копирана, и да я заменят.

От Intruder съобщиха, че са уведомили отговорно собствениците, които са успели да идентифицират. Няколко засегнати хранилища са премахнати, а няколко организации са ротирали маркираните идентификационни данни.

По-широкият извод е ясен: скритата папка за разработка не е безопасна, когато е изложена онлайн, тъй като може да се превърне в архив за търсене на достъп до организацията зад нея.