12 február 2024 / 14 minút čítania
Zraniteľnosť:
V našom komplexnom hodnotení zabezpečenia sme zistili kritickú zraniteľnosť, na ktorú by si mal dať pozor každý vývojár: možnosť nasadiť škodlivý kód priamo do produkčného prostredia. Nenachádzame sa len v hypotetickej rovine, nakoľko sme v nasadení boli úspešní.
Podrobnosti:
Nesprávne nakonfigurovaný pracovný postup nasadenia: (Continuous Integration/Continuous Deployment). V tomto kľúčovom procese chýbali ochranné opatrenia potrebné na zabezpečenie toho, aby bol každý nasadený kus kódu dôkladne skontrolovaný a schválený. Absencia týchto zabezpečení dáva útočníkom veľkú moc a možnosť útoku.
Zneužitie zraniteľností:
Využitím medzier v CI/CD sa nám podarilo do produkčného prostredia nasadiť NodeJS webshell - typ škodlivého kódu, ktorý útočníkovi poskytuje vzdialené rozhranie príkazového riadka k webovému serveru. Nešlo pritom o obyčajné produkčné prostredie, ale o prostredie nachádzajúce sa v rámci klastra OCP4 (OpenShift Container Platform 4), ktorý je zvyčajne známy svojimi robustnými bezpečnostnými funkciami.
Prečo sa to stalo?
K tejto zraniteľnosti prispelo niekoľko faktorov:
Ako zmierniť následky:
Tento incident zdôrazňuje potrebu ostražitosti a prísnych bezpečnostných protokolov v dnešnom digitálnom prostredí. Je to výzva pre organizácie, aby prehodnotili a posilnili svoje stratégie kybernetickej bezpečnosti.
V oblasti správy zdrojového kódu je GitHub titánom, ktorý spravuje milióny úložísk kódu. Je však veľmi dôležité vedieť, ako ukladať údaje do repozitárov. Nedávny bezpečnostný audit/test poukázal na významnú bezpečnostnú chybu: absenciu správne nakonfigurovaného tajného skenovania. Toto nedopatrenie zdôrazňuje dôležitosť dodržiavania osvedčených postupov pri správe úložísk na zabezpečenie integrity a bezpečnosti údajov.
Zraniteľnosť:
Naše hodnotenie zabezpečenia odhalilo, že tajné skenovanie, automatická funkcia v službe GitHub (https://docs.github.com/en/code-security/secret-scanning/about-secret-scanning) určená na zisťovanie citlivých informácií, ako sú heslá a súkromné kľúče, nebola povolená. Okrem toho nebola použitá žiadna ochrana ani detekcia proti ukladaniu citlivých údajov do úložísk. Úložiská organizácií sú tak zraniteľné voči náhodnému odhaleniu citlivých údajov.
Podrobnosti:
Odhalené citlivé dáta: Bez skenovania môžu byť citlivé údaje neúmyselne odovzdané do verejných alebo súkromných úložísk, čo predstavuje značné riziko pre bezpečnosť.
Potenciálne vplyvy:
Prečo sa to stalo?
Nedostatočná konfigurácia skenovania citlivých dát môže vyplývať z:
Ako zmierniť následky:
Je nevyhnutné uvedomiť si, že zabezpečenie úložísk kódu je rovnako dôležité ako zabezpečenie infraštruktúry, do ktorej sa nasadzujú.
Nedávno sme pomocou známeho obídenia dokázali zneužiť funkciu GitHub Actions Branch Protection Rules, ktorá je kľúčová pre zachovanie integrity kódu vo viacerých vývojových prostrediach.
Zraniteľnosť:
Táto zraniteľnosť sa v podstate týka neoprávneného obídenia mechanizmov ochrany vetiev v službe Github. Pravidlá ochrany vetiev sú kľúčové pri zabezpečovaní toho, aby zmeny v dôležitých vetvách vyžadovali riadne preskúmanie a schválenie. Známe obídenie, ktoré sme použili v systéme GitHub, umožňuje zneužitie funkcie GitHub Actions na obídenie procesu povinného preskúmania. Toto porušenie umožňuje neoprávnené vloženie nerecenzovaného kódu do zabezpečenej vetvy. Takáto medzera by mohla viesť k neúmyselnému použitiu škodlivého kódu inými používateľmi alebo k jeho neúmyselnému začleneniu do produkčného prostredia.
Podrobnosti:
Mechanizmus bypassu: Proces zneužitia zahŕňal využitie oprávnení Github Actions. Využitím oprávnení na zápis na koncovom bode API pull requestov sme mohli vytvoriť pull request na zlúčenie škodlivého kódu do chránenej vetvy. Hoci takúto žiadosť o stiahnutie zvyčajne nemožno zlúčiť bez schválenia, bot Github Actions, spojený s GITHUB_TOKEN, ju mohol schváliť. Keďže bot nie je členom organizácie, ale stále sa používa na účely schvaľovania, umožňuje útočníkovi samostatne schváliť požiadavku na vytiahnutie, čím účinne obíde mechanizmy ochrany vetvy. Táto skutočnosť umožňuje neoprávnené vloženie neschváleného kódu do zabezpečenej vetvy. Takáto medzera nás vedie k neoprávnenému začleneniu kódu do produkčného prostredia.
Riziká a hrozby:
Prečo sa to stalo?
Tento problém vznikol v dôsledku medzery v nastaveniach služby Github, ktorá umožňovala, aby akcie GitHubu schvaľovali žiadosti o stiahnutie, čo v existujúcich organizáciách nebolo bezpečné.
Ako zmierniť následky:
Na riešenie tohto významného rizika sa navrhujú tieto riešenia:
Táto zraniteľnosť zdôrazňuje zásadný význam neustálej ostražitosti a pravidelných aktualizácií bezpečnostných konfigurácií vo všetkých aspektoch vývojových operácií. Implementáciou odporúčaných zmien môžu organizácie ochrániť svoj kód pred takýmito zneužitiami a posilniť dôveru v procesy nasadenia.
Integrita každého vývojového prostredia závisí od zabezpečenia a kontrolovaného prístupu k jeho artefaktom. Pri nedávnom hodnotení zabezpečenia, ktoré sme vykonali, sa nám podarilo využiť dieru v službe Artifactory na prihlásenie bez explicitných oprávnení.
Zraniteľnosť:
Služba Artifactory umožňuje prihlásenie ľubovoľnému používateľovi domény bez toho, aby vyžadovala výslovné oprávnenia. Po prihlásení si používateľ môže prezerať, sťahovať artefakty a kontrolovať správy o zraniteľnostiach zo skenovania Xray súvisiace s úložiskami.
Podrobnosti:
Príliš povoľujúce kontroly prístupu: Predvolená konfigurácia umožňovala prístup k službe Artifactory každému používateľovi v rámci domény. Takáto konfigurácia zanedbáva the Least Privilege princíp, ktorý je nevyhnutný pri zabezpečení citlivých údajov.
Týmto spôsobom sa každému používateľovi domény sprístupní množstvo citlivých informácií. Schopnosť identifikovať, ktoré aplikácie obsahujú kritické zraniteľnosti, môžu black-hat hackeri využiť na zneužitie týchto zraniteľností. Okrem toho artefakty môžu obsahovať citlivé údaje, pretože neexistuje žiadne predpísané skenovanie týchto údajov.
Riziká a dôsledky:
Prečo sa to stalo?
Dôvody tejto nesprávnej konfigurácie môžu byť nasledovné:
Ako zmierniť následky:
Riziko vystavenia údajov v službe Artifactory je jasnou pripomienkou toho, že aj tie najdôveryhodnejšie služby v rámci vývojového prostredia organizácie musia byť podrobne preskúmané z hľadiska bezpečnostných nedostatkov. Rozhodnými krokmi na opravu týchto chybných nastavení môžu organizácie posilniť svoju obranu pred vonkajšími aj vnútornými hrozbami.
Agilita a škálovateľnosť, ktoré prostredia poskytujú, môžu tiež predstavovať významné bezpečnostné riziká, ak nie sú riadne spravované. Nedávne posúdenie vrhlo svetlo na závažnú chybnú konfiguráciu v rámci klastra OpenShift a poukázalo na zraniteľnosť, ktorá by mohla mať vážne dôsledky na bezpečnosť siete.
Zraniteľnosť:
V centre pozornosti je konfiguračná chyba v OpenShift, populárnej platforme. Táto chyba v konfigurácii umožnila, aby mali pody (najmenšie nasaditeľné jednotky výpočtovej techniky, ktoré možno v OpenShift vytvoriť a spravovať) možnosť dosiahnuť IP adresu hostiteľského počítača a dokonca celú podsieť hostiteľa. Laicky povedané, ak by bol pod kompromitovaný, útočník by mal neobmedzený prístup k potenciálne citlivým interným sieťovým zdrojom.
Podrobnosti:
Široká viditeľnosť siete: Znamenalo to, že nasadený pod v systéme OpenShift mohol vidieť a potenciálne komunikovať s veľkým množstvom interných systémov. Takýto prístup sa podobá tomu, ako keby ste niekomu dali kľúče od kráľovstva a mohli by ste ho zneužiť s ničivým účinkom.
Riziká a dôsledky:
Prečo sa to stalo?
Hlavnou príčinou tejto nesprávnej konfigurácie môže byť:
Ako zmierniť následky:
Na nápravu tohto nebezpečného nedopatrenia by organizácie mali prijať nasledujúce opatrenia:
Prípad nesprávnej konfigurácie OpenShift slúži ako varovný príbeh o kritickej potrebe dôsledných postupov zabezpečenia siete v kontajnerových prostrediach. Vďaka starostlivej správe a neustálej ostražitosti môžu organizácie chrániť svoje siete pred takýmito zraniteľnosťami.
Zraniteľnosť:
Nedávne posúdenie bezpečnosti poukázalo na očividný problém v rámci konfigurácie úložiska GitHub, kde boli zdrojové kódy aplikácií uložené v rámci organizácie GitHub, čo otvára dvere zraniteľnosti, ktorá by mohla viesť k neoprávnenému a potenciálne škodlivému nasadeniu.
Podrobnosti:
Jadro tohto problému spočíva v permisívnosti predvolených konfigurácií úložísk a v nedostatku prísnych mechanizmov kontroly toku. Keďže neexistujú žiadne pravidlá ochrany vetiev, žiadne prostredia s pravidlami ochrany a citlivých údajov, táto situácia umožňuje komukoľvek s prístupom k zápisu do úložiska vykonávať potenciálne škodlivé činnosti, ako je čítanie všetkých citlivých dát, vytváranie akýchkoľvek artefaktov (vrátane škodlivých), odstraňovanie kontrol statickej analýzy zdrojového kódu v pipeline a potenciálne zneužívanie samo-hostiteľských runnerov.
Riziká a dôsledky:
Prečo sa to stalo?
Tento problém často vyplýva z:
Ako zmierniť následky:
Na zabránenie takýmto neoprávneným nasadeniam a na posilnenie bezpečnosti sa odporúčajú nasledujúce kroky:
Ďalším bodom bolo objasnenie zraniteľnosti v spôsobe správy a nasadzovania artefaktov. Ak by sa tento problém neošetril, mohol by pripraviť pôdu pre významné bezpečnostné hrozby v produkčných prostrediach.
Zraniteľnosť:
Počas procesu nasadzovania artefaktov uložených v službe Artifactory sme zistili, že artefakty, dokonca aj tie s kritickými zraniteľnosťami alebo zraniteľnosťami vysokej úrovne, mohli byť nasadené do produkčných prostredí bez akéhokoľvek overenia pred nasadením. Tento nedostatok v procese overovania ponecháva produkčné prostredie otvorené potenciálnym narušeniam bezpečnosti.
Artifactory X-ray: node. Js webshell docker image obsahujúci kritickú zraniteľnosť. Neskôr nasadený do produkcie.
Uvedomujeme si, že zablokovanie všetkých zraniteľných artefaktov by mohlo narušiť proces zostavovania/nasadzovania a mohlo by mať obchodné dôsledky. Napriek tomu by sa tieto zraniteľnosti mali pred nasadením aspoň skontrolovať a schváliť, aby sa znížilo riziko zavedenia bezpečnostných nedostatkov do produkčného prostredia.
Vplyv:
Riešenie:
Na zmiernenie týchto rizík sa dôrazne odporúčajú tieto opatrenia:
Záver:
Naším cieľom bolo obísť všetky bezpečnostné opatrenia a nasadiť škodlivý kód do produkčného prostredia s prístupom ku konfigurácii OCP4 ak celej línii CI/CD s prideleným priestorom v klastri. Zistili sme, že scenár je uskutočniteľný využitím reťazca nesprávnych konfigurácií a zraniteľností, ktoré sú konkrétne opísané v nasledujúcich častiach:
Nakoniec sa nám podarilo nasadiť škodlivú aplikáciu - NodeJS webshell do produkčného prostredia v rámci clusteru OCP4.
Týmto chceme poukázať na dôležitosť zodpovednosti vývojárov a na to, ako môže kombinácia malých zraniteľností vyústiť do kritickej situácie, kedy môže byť ohrozená celá náročná práca a bezpečnosť klientov.
Nie ste si istí bezpečnosťou vášej Pipeline? Otestujte ju s nami.
Všetky články
Prihláste sa k odberu nášho newslettera a získajte všetky dôležité novinky v oblasti kybernetickej bezpečnosti a etického hackovania.