Paieškos sistemos buvo sukurtos turiniui indeksuoti. Tačiau užpuolikai jas naudoja jūsų klaidoms indeksuoti. Užklausa allintext:login failo tipas: žurnalas gali atrodyti nekenksminga. Iš tikrųjų tai vienas iš paprasčiausių būdų aptikti paviešintus žurnalų failus, kuriuose yra autentifikavimo srautai, kredencialai, prieigos raktai ir vidinės infrastruktūros duomenys.
Jei „Google“ gali matyti tuos žurnalus, tai gali padaryti ir užpuolikai. Kai duomenys indeksuojami, jų atskleidimas neišvengiamas. Be to, kai prisijungimo duomenys atsiranda viešai prieinamame faile, pažeidimas jau vyksta.
1. Kodėl viskas tekste:login filetype:log yra pavojingesnis nei atrodo
„Google dork“ – tai paieškos užklausa, kuri naudoja pažangius operatorius, kad surastų jautrų arba netinkamai sukonfigūruotą turinį, indeksuotą paieškos sistemų. Ji neišnaudoja „Google“. Vietoj to, ji išnaudoja jūsų matomumą.
Ši užklausa sujungia du operatorius:
- allintext: grąžina puslapius, kuriuose visi terminai yra tekste
- failo tipas: žurnalas apriboja rezultatus iki
.logfailai
Todėl:
Reiškia: „Rodyti žurnalo failus, kuriuose yra žodis login"
Iš pirmo žvilgsnio tai atrodo nereikšminga. Tačiau praktikoje dažnai gaunama:
- Viešai prieinami žiniatinklio serverio žurnalai
- CI/CD žurnalai įkelti kaip artefaktai
- Netyčia derinkite žurnalus commitį saugyklas
- Programų žurnalai su paprasto teksto prisijungimo duomenimis
Tai ne paieškos sistemos klaida. Tai yra duomenų atskleidimo pažeidžiamumas dėl netinkamos konfigūracijos. „Google“ tiesiog indeksavo tai, kas buvo viešai prieinama.
2. Ką užpuolikai iš tikrųjų randa paviešintuose žurnalų failuose
Kai užpuolikai bėga allintext:login failo tipas: žurnalasJie nenaršo atsitiktinai. Jie ieško autentifikavimo pėdsakų.
2.1 Paprastojo teksto prisijungimo duomenys
Žurnaluose dažnai yra tokių įrašų:
or
Arba net SMTP kredencialai:
Autentifikavimo duomenų registravimas yra vienas greičiausių būdų nutekinti gamybinius prisijungimo duomenis. Todėl vienas atviras žurnalo failas gali panaikinti visą prieigos kontrolės modelį.
2.2 Sesijos žetonai ir JWT
Net kai slaptažodžiai neregistruojami, žetonai dažnai registruojami.
Pavyzdžiui:
Galiojantis JWT arba seanso slapukas viduje .log failas gali įgalinti:
- Sesijos užgrobimas
- Privilegijų eskalavimas
- Šoninis judėjimas per vidines sistemas
Kitaip tariant, žurnaluose esantys žetonai derinimo išvestį paverčia autentifikavimo apėjimo vektoriumi.
2.3 CI/CD Daiktai
Statybos žurnalai yra ypač pavojingi. Tiesą sakant, CI/CD Sistemos dažnai spausdina aplinkos kintamuosius kūrimo etapų metu.
Užpuolikai dažnai aptinka:
Turinčios tokias eilutes kaip:
If CI/CD Jei artefaktai yra vieši, tai ir paslaptys yra viešos. „Google“ kvailys tiesiog paspartina atradimą.
2.4 Debesijos ir infrastruktūros duomenys
Atviri rąstai dažnai atskleidžia:
- AWS prieigos raktai
- „Azure“ saugyklos ryšio eilutės
- Vidiniai paslaugų URL
- Duomenų bazės prisijungimo duomenys
- „Redis“ galiniai taškai
Net jei prisijungimo duomenys vėliau bus pakeisti, užpuolikas dabar turės:
- Infrastruktūros žemėlapių sudarymas
- Vardų suteikimo sutartys
- Tikslinė žvalgyba būsimoms atakoms
Todėl atviri rąstai suteikia ir prieigą, ir žvalgybą.
3. Kaip šie žurnalai iš pradžių tampa vieši
Žurnalai „Google“ paieškos sistemoje neatsiranda stebuklingai. Jie indeksuojami, nes buvo viešai pasiekiami.
3.1 Neteisingai sukonfigūruoti žiniatinklio serveriai
Įprasti modeliai apima:
/logs/katalogai, pasiekiami be autentifikacijos- Katalogo įrašas įjungtas
- „Nginx“ arba „Apache“ patiekiami neapdoroti
.logfailai
Jei žurnalas pasiekiamas per HTTP, jis yra indeksuojamas.
3.2 CI/CD Artefaktų ekspozicija
Tipiškos klaidos:
- Vieši artefaktai įgalinti „GitHub“ veiksmai
- Į atvirus S3 segmentus įkelti žurnalai
- Pipeline pėdsakai prieinami be autentifikavimo
A pipeline kuris saugo žurnalus viešame saugyklos aplanke, efektyviai skelbia savo paslaptis.
3.3 Derinimo režimas gamybinėje aplinkoje
Sistemos numatytieji nustatymai gali būti pavojingi:
Be to, per didelis užklausų registravimas gali rodyti:
- Antraštės
- Dovanėlės
- Išsamios užklausos tekstas
Derinimo registravimas gamybinėje aplinkoje paverčia jūsų programą kredencialų eksportuotoju.
3.4 Docker ir konteinerių žurnalai
Konteinerinėje aplinkoje atsiranda naujų poveikio būdų:
- Žurnalai, prijungti prie bendrinamų tomų
- Šalutinės mašinos eksportuoja žurnalus į neapsaugotus galinius taškus
- Žurnalas dashboardsu vieša prieiga
Jei konteinerio žurnalai pateikiami per HTTP arba atvirą saugyklą, juos galima ieškoti. Galiausiai jie indeksuojami.
4. Realistinis atakų srautas: nuo kvailumo iki prasiveržimo
Įprasta atakos grandinė atrodo taip:
Puolėjas bėga:
- Radiniai apdengti
.logfailas - Ištraukos:
- JWT prieigos raktas
- Pagrindinė autentifikavimo antraštė
- Duomenų bazės ryšio eilutė
Bandoma autentifikuoti prieš:
- API galiniai taškai
- Administratoriaus skydai
- Vidinės paslaugos
Jei autentifikavimas sėkmingas, užpuolikas gali:
- Eskaluoti privilegijas
- Judėti į šoną
- Prisijunkite CI/CD
- Pažeisti tiekimo grandinę
Tai, kas prasidėjo kaip paieškos užklausa, tampa:
- Sesijos užgrobimas
- Vidinis kredencialų įterpimas
- Pipeline perėmimo
- Artefaktų apsinuodijimas
Visa tai iš viešai indeksuoto žurnalo failo.
5. Kodėl „per didelis“ registravimas yra „AppSec“ problema
Medienos kirtimas nėra neutralus. Jis sukuria antrinė duomenų saugykla.
Jei registruojate slaptus duomenis, iš esmės sukuriate antrą savo paslapčių kopiją.
Tačiau žurnalai dažnai neįtraukiami į grėsmių modeliavimą. Pagal STRIDE tai aiškiai atitinka:
Informacijos atskleidimas
Todėl saugu SDLC praktikoje žurnalus reikėtų traktuoti taip:
- Su saugumu susiję artefaktai
- Jautrus turtas
- Infrastruktūros komponentai, kuriems reikalinga apsauga
Jei jūsų grėsmės modelis ignoruoja žurnalus, jis yra nepilnas.
6. Kaip išvengti kredencialų nutekėjimo žurnalų failuose
6.1 Nustokite registruoti paslaptis
Niekada neregistruoti:
- Slaptažodžiai
- Dovanėlės
- API raktai
- Seansų ID
- Autorizacijos antraštės
Net ir derinimo režimu.
Kai tik įmanoma, įdiekite automatinį redagavimą.
6.2 Struktūrizuotas ir saugus registravimas
Naudokite struktūrizuotą registravimą su maskavimu ir filtravimu.
Pavyzdys (Node.js):
Pavyzdys (Python):
Pagrindinis principas paprastas: paslaptys niekada neturi pasiekti rąstų kriauklės.
6.3 Užrakinti žurnalų saugyklą
Saugumo kontrolė turėtų apimti:
- Išjungti katalogų sąrašą
- Apsauga
/logs/keliai su autentifikavimu - Apriboti prieigą prie kibirų
- Taikyti saugojimo politikas
- Šifruoti žurnalus ramybės būsenoje
Žurnalai niekada neturi būti viešai pasiekiami per HTTP.
6.4 CI/CD Guardrails
Rankinių peržiūrų nepakanka. Vietoj to įdiekite automatines kontrolės priemones:
- Slaptas žurnalų nuskaitymas prieš artefaktų publikavimą
- Nepavyksta sukurti, jei aptinkami žetonai
- Neleisti įkelti artefaktų su prisijungimo duomenimis
- Maišos patvirtinimas artefaktams
CI/CD turėtų blokuoti poveikį prieš indeksavimą.
7. Kaip „Xygeni“ apsaugo nuo viso teksto:login failo tipas: žurnalo incidentai
Problema ne „Google“ kvailumas. Problema – matomumas. Todėl prieš indeksuojant reikia imtis prevencinių priemonių.
7.1 Slaptų elementų aptikimas žurnaluose ir artefaktuose
„Xygeni“ skenavimas:
- Programų žurnalai
- CI/CD darbo pėdsakai
- Sukurkite artefaktus
- Dockerio sluoksniai
- Serializuoti išėjimai
Jei kredencialai, prieigos raktai arba neskelbtinos vertės rodomos .log failus, „Xygeni“ juos nedelsdama pažymi.
7.2 CI/CD Guardrails Tas blokuoja ekspoziciją
Užuot pasikliavę rankinėmis peržiūromis, „Xygeni“ užtikrina saugumą pipeline lygis:
Tai:
- Sukūrimo klaida, kai žurnaluose atsiranda slaptų duomenų
- Blokuoja artefaktų publikavimą
- Apsaugo nuo atsitiktinio viešo poveikio
- Sustabdo nesaugius sujungimus prieš pasiekiant pagrindinį
Jei CI užduotis atspausdina prieigos raktą, pipeline nepavyksta.
Nėra indeksavimo.
Nėra ekspozicijos.
Jokių incidentų.
7.3 Apsauga nuo „Shift-Left“ prieš „Google“ tai pamatant
Laikas svarbus.
Užuot reagavęs į:
„Xygeni“ išsprendžia problemą:
- At commit laikas
- metu pull request patvirtinimas
- metu pipeline vykdymas
- Prieš artefakto publikavimą
Jei žurnalas niekada netampa viešas, „Google“ jo niekada neindeksuoja.
Galutinė išvada: jei „Google“ gali indeksuoti, užpuolikai jau tai padarė
Žurnalai nėra nekenksmingi. Tiesą sakant, jie retai būna laikini. Pagal numatytuosius nustatymus jie nėra privatūs. Todėl kiekvienas žurnalų failas turėtų būti laikomas su saugumu susijusiu turtu, o ne tik derinimo išvestimi.
Jei neskelbtini duomenys pasiekia .log byla ir tampa viešai prieinama, jis iš karto virsta atakos paviršiumi. Be to, kai paieškos sistema indeksuoja svetainę, jos matomumas padidėja ne jūsų valioje.
Sprendimas nėra nutraukti registravimą. Greičiau tai yra atsakingas registravimas ir griežtos saugojimo bei platinimo kontrolės vykdymas. Kitaip tariant, saugumas turi apimti ne tik pačią programą, bet ir stebimumo lygmenį.
Vietoj to:
- Nustokite registruoti paslaptis
- Užrakinti rąstų saugyklą
- vykdyti pipeline guardrails
- Automatizuoti aptikimą ir politikos vykdymą
Galų gale, prevencija yra susijusi su laiku. Nes kartą allintext:login failo tipas: žurnalas grąžina jūsų domeną, incidentas jau prasidėjo.




