Na javnom GitHubu više od pola miliona ključeva koji i dalje rade
Firma Truffle Security, koja pravi alate za pronalaženje procurelih ključeva, objavila je 29. septembra istraživanje o lozinkama i pristupnim ključevima zaboravljenim u javno dostupnom kodu. Pregledala je The Stack v3, kopiju 224 miliona GitHub repozitorijuma, napravljenu za treniranje AI modela i prikupljenu zaključno sa avgustom 2025. U njoj je pronašla 543.699 različitih ključeva i lozinki koje su krajem jula 2026. i dalje omogućavale pristup matičnim sistemima. Polovina njih je starija od dve godine, a najstariji ključ, postavljen u junu 2009, i dan danas radi. Ključeva u programskom kodu je sve više: 2015. ih je bilo 3,72 na milion fajlova, a 2025. prosečno 11,62. GitHub od februara 2024. automatski odbija programski kod u kojem prepoznaje određene vrste ključeva, i za te vrste je procenat curenja opao za oko 53 odsto. Ali 51,8 odsto pronađenih ključeva nisu od vrsta koje zaštitni mehanizam proverava, a to su najpre pristupni podaci za baze podataka i Google API ključevi. Razlika je u tome ko vodi brigu: GitHub i npm procurele tokene sami opozivaju, pa ih radi manje od jedan odsto, dok procureli pristupi Postgres bazama rade u 88 odsto slučajeva, a MongoDB u svim pronađenim uzorcima.
Ključ u kodu je propust koji se dešava svakome, i GitHub ga sve češće zaustavlja pre nego što ode u etar. Problem je šta se dešava posle. Ko ključ obriše iz koda, a ne promeni ga, nije rešio problem, jer ključ ostaje u istoriji izmena i kopijama repozitorijuma. Iz kopija, napravljenih za treniranje AI modela, niko više ne može da ih povuče. Brojke pokazuju da ključ ne preživljava zato što ga niko ne vidi, nego zato što posle curenja retko ko nešto po tom pitanju uradi. Gde provajder sam poništi procureli token, problem najčešće nestaje. Gde to zavisi od čoveka, kao kod lozinke za bazu, ključ i dalje radi godinama kasnije. Lozinka za bazu je obično i najvredniji ključ, jer otvara podatke, a ne samo servis koji ih koristi.
- Svaki ključ koji je ikada bio u javnom kodu smatraj ukradenim i zameni ga, i kada je obrisan iz poslednje verzije
- Pretraži istoriju svojih repozitorijuma alatom kao što su TruffleHog ili gitleaks, ne samo trenutni kod
- Lozinke za baze i API ključeve drži van koda, u promenljivim okruženja ili menadžeru lozinki
- Gde god možeš, koristi ključeve sa rokom važenja i ograničenim ovlašćenjima umesto trajnih
- Baze podataka ne izlaži ka internetu, jer procurela lozinka ne vredi mnogo ako bazi ne može da se priđe