Kietasis kodavimas, „Hashicorp“ saugykla, paslapčių valdymas

Kaip sustabdyti kietojo kodavimo paslaptis naudojant „HashiCorp Vault“

Kietasis kodavimas, Prasta paslapčių valdymasir tokių įrankių trūkumas kaip „HashiCorp Vault“ ir toliau kelia programoms rimtą pavojų. Kiekvieną kartą, kai kūrėjas pateikia API raktą arba slaptažodį „GitHub“, jis rizikuoja sukelti įsilaužimą. Iš tiesų, užpuolikai aktyviai nuskaito viešas ir privačias saugyklas, ieškodami atskleistų paslapčių, nesvarbu, ar jos yra kode, konfigūracijos failuose, ar „Docker“ atvaizduose.

Realios pasekmės rodo, kas pastatyta ant kortos. 2022 m. užpuolikai rado „Uber“ AWS raktus, užkoduotus „GitHub“ saugykloje, ir panaudojo juos, kad įsilaužtų į kritines sistemas. „Toyota“ atskleidė privačių klientų infrastruktūrą po to, kai kūrėjai perkėlė paslaptis į viešą „GitHub“ saugyklą. Abiem atvejais komandos paliko paslaptis kode, ir užpuolikai tuo pasinaudojo. Viso to buvo galima išvengti.

Šiame vadove sužinosite, kaip apsaugoti savo programėlę naudojant „HashiCorp Vault“ centralizuotam paslapčių valdymui kartu su „Xygeni“ automatinis aptikimas ir taisymas funkcijos. Kartu šie įrankiai padeda jums:

  • Pašalinkite kietai užkoduotas paslaptis iš savo kodo bazės
  • Neleiskite paslaptims patekti į „Git“ istoriją
  • Automatiškai aptikti ir pašalinti nuotėkius, kol jie dar nėra išnaudojami

Žingsnis po žingsnio panagrinėkime, kaip jį nustatyti.

2. Kas laikoma paslaptimi (ir kaip ji nuteka)

Visų pirma, a paslaptis nėra tik slaptažodis. Jį sudaro API prieigos raktai, „OAuth“ kredencialai, duomenų bazės ryšio eilutės, SSH raktai, šifravimo raktai ir net JWT. Viskas, kas suteikia prieigą prie sistemos, ištekliaus ar tapatybės, laikoma paslaptimi.

Nes kietasis kodavimas Nors šie prisijungimo duomenys vis dar įterpiami į šaltinio kodą, daugelis komandų to nežinodamos sukuria pažeidžiamumų. Vietinio kūrimo metu lengva įterpti greitą API raktą į .env failą – arba, dar blogiau, tiesiai į kodą. Vėliau vienas git commit gali atskleisti tą paslaptį visiems laikams.

Net ir tada, kai vėliau paslaptys bus pašalintos commitjie dažnai lieka Git istorija, „Docker“ sluoksnius arba kompiliuotus artefaktus. Pavyzdžiui, daugelis nutekėjimų lieka nepastebėti, kol kas nors nepaleidžia git log arba ištraukia metaduomenis iš konteinerio atvaizdo.

Tai kodėl paslapčių valdymas turi būti proaktyvūs, nuolatiniai ir automatizuoti. Tradiciniai skaitytuvai gali nepastebėti paslapčių, paslėptų šakose, vaizduose ar suspaustuose failuose. Būtent tam reikalingi tokie įrankiai kaip „HashiCorp Vault“ bei Ksigeni Įeiti.

Be to, atminkite, kad paslaptys nuteka ne tik iš kūrėjų. CI/CD pipelines, testavimo scenarijai ir net konfigūracijos failai gamybinėje aplinkoje gali būti poveikio šaltiniai.

Todėl paslapčių apsauga nėra vien tik įrankiai, bet ir įpročiai, matomumas ir automatizavimas.

Norite giliau panagrinėti slaptą informacijos nutekėjimą?

Jei norite suprasti, kodėl iš viso nuteka paslaptys ir kaip užpuolikai jas išnaudoja, nepraleiskite šio išsamaus aprašymo:

Susiję skaitymai:

3. Kodėl paslapčių kietasis kodavimas yra rizikingas net ir privačiuose saugyklose

Užkoduoti tokias paslaptis kaip API raktai, kredencialai ir žetonai gali atrodyti patogu kūrimo metu. Tačiau ši praktika kelia rimtų pavojų, ypač kai paslaptys tampa prieinamos. commitprijungtas prie versijų kontrolės.

Pavyzdžiui, per 2022 m. „Uber“ įsilaužimą užpuolikai prieigą gavo per kietai užkoduoti AWS raktai rasta viešojoje „GitHub“ saugykloje. Panašiai „Toyota“ paviešino svarbius prisijungimo duomenis „GitHub“ projekte, taip paveikdama savo klientų duomenis.

Nes užkoduotos paslaptys dažnai gyvena .env failus, scenarijus ar šaltinio kodo komentarus – juos lengva nepastebėti. Net privačiuose saugyklose robotai ir vidiniai asmenys gali prie jų prieiti. Dar blogiau, „Git“ istorija išsaugo kiekvieną nutekėjimą, net ir po to, kai jį „ištrinate“.

Be to, šiuolaikiniai užpuolikai nuolat nuskaito „GitHub“ ir konteinerių registrus, ieškodami nutekėjusių žetonų. Vienas paspaudimas su užkoduota paslaptimi gali atverti duris:

  • Infrastruktūros pažeidimas (prieiga prie debesies)
  • Šaltinio kodo klastojimas (tiekimo grandinės atakos)
  • Slaptas pakartotinis naudojimas skirtingose ​​sistemose (privilegijų eskalavimas)

Todėl kietąjį kodą pakeisti tinkamu paslapčių valdymas nėra pasirenkamas, jis yra esminis saugiam vystymuisi.

4. Kaip „HashiCorp Vault“ saugo paslaptis (ir kodėl tai geriau nei kietasis kodavimas)

Tokių slaptų duomenų kaip API raktai ar duomenų bazės kredencialai, užkodavimas tiesiai į šaltinio kodą kelia rimtą saugumo riziką. „HashiCorp Vault“ pašalina šią riziką siūlydama centralizuotą, užšifruotą ir prieigos kontroliuojamą slaptų duomenų saugyklą.

Užuot įterpę paslaptis į aplinkos kintamuosius arba .env failai, programos gali saugiai juos gauti pagal poreikį naudodamos „Vault“ API. Šis metodas statinį slaptų duomenų tvarkymą pakeičia dinamine, politika pagrįsta prieiga.

„HashiCorp Vault“ paslapčių valdymas siūlo keletą pagrindinių pranašumų, palyginti su kietuoju kodavimu:

  • Paslaptys lieka užšifruotos tiek ramybės, tiek tranzito metu.
  • Prieiga yra griežtai kontroliuojama naudojant tapatybe pagrįstas politikas.
  • Saugykla dinamiškai generuoja paslaptis, todėl jie automatiškai nustoja galioti.
  • Kiekviena užklausa yra registruojama, užtikrinant visišką atsekamumą ir audituojamumą.

„Vault“ taip pat sklandžiai integruojasi į CI/CD pipelinekonteinerizuotas aplinkas, debesijos infrastruktūrą ir paslaugų tinklus, todėl tai yra keičiamo dydžio ir gamybai paruoštas sprendimas šiuolaikinėms „DevSecOps“ komandoms.

Realaus pasaulio pavyzdys:
Be 2022, kad „Toyota GitHub“ saugykla netyčia paviešino prisijungimo duomenis, atskleisdami vidines paslaugas. Tokia priemonė kaip „Vault“ kartu su griežtais commit politika galėjo to išvengti.

Jau turėtų būti aišku: atsisakyti kietojo kodavimo ir pereiti prie saugaus programavimo. paslapčių valdymas įrankiai kaip „HashiCorp Vault“ yra ne tik geriausia praktika, tai būtina.

5. Kaip integruoti „Git“, „HashiCorp Vault“ ir „Xygeni“, kad būtų užtikrintas saugus paslapčių valdymas

Norint visiškai išvengti kietasis kodavimas paslapčių, kūrėjai privalo imtis iniciatyvių veiksmų vietos plėtros metu ir CI/CD. Gera žinia ta „HashiCorp Vault“ bei Ksigeni dirbti kartu siekiant užtikrinti saugų paslapčių valdymas darbo eigos.

1 veiksmas: naudokite „Vault“, kad saugiai atkurtumėte paslaptis

Pirmiausia sukonfigūruokite programą, kad ji įkeltų paslaptis iš „HashiCorp Vault“ vykdymo metu. Pavyzdžiui, „Node.js“:

				
					const vault = require("node-vault")({
  endpoint: process.env.VAULT_URL,
  token: process.env.VAULT_TOKEN,
});

const secret = await vault.read("secret/production/db-password");
console.log("DB password:", secret.data.data.value);
				
			

Tai užtikrina, kad paslaptys niekada nebus saugomos kodo ar konfigūracijos failuose.

2 veiksmas: užkirskite kelią kietajam kodavimui naudodami „Git Hook“ ir „Xygeni“

Norėdami užkirsti kelią atsitiktiniam nuotėkiui, galite pridėti pre-commit kablys naudojant „Xygeni“ komandinę eilutę (CLI):

				
					#!/bin/sh
# .git/hooks/pre-commit
xygeni secrets --staged-files --no-upload
if [ $? -ne 0 ]; then
  echo "❌ Commit blocked due to hardcoded secret. Fix and try again."
  exit 1
fi
				
			

Šis kabliukas nuskaito tik modifikuotus failus, paruoštus naudoti. commitJei randa užkoduotas paslaptys, tokios kaip žetonai ar slaptažodžiai, blokuoja commit, prieš tai, kai kas nors pasiekia saugyklą.

3 veiksmas: integruokite „Vault“ ir „Xygeni“ CI/CD

CI pipelines, galite:

  • Gauti vykdymo laiko paslaptis iš Vault
  • paleisti xygeni scan --run="secrets" siekiant patvirtinti, kad nebuvo įvestos jokios paslaptys
  • Automatinis nuotėkio šalinimas naudojant „Xygeni“

Kūrėjai kiekviename žingsnyje saugo paslaptis, pradedant vietiniais... commitDėl diegimo padėkokite vadovybei už šį glaudų grįžtamojo ryšio ciklą.

6. Nuo kietojo kodavimo iki saugaus paslapčių valdymo naudojant „Vault“ ir „Xygeni“

Kietojo kodo paslapčių naudojimas vis dar yra vienas iš labiausiai paplitusių būdų, kaip kūrėjai netyčia atskleidžia slaptus prisijungimo duomenis. Štai kodėl poravimas „HashiCorp Vault“ su „Xygeni“ realiuoju laiku atliekamu nuskaitymu sukuriamas pilnas paslapčių valdymas architektūra: aptikimas, prevencija ir automatinis taisymas, integruoti tiesiai į jūsų darbo eigą.

ŽingsnisKaip paslapčių valdymas veikia su „HashiCorp Vault“ ir „Xygeni“
1 veiksmas: apibrėžkite paslaptis saugyklojeSaugiai saugokite paslaptis, pvz., API raktus, kredencialus ar žetonus, „HashiCorp Vault“ saugykloje, laikydamiesi griežtų prieigos kontrolės priemonių ir šifravimo ramybės būsenoje.
2 veiksmas: įšvirkškite paslaptis per CI/CDNaudokite aplinkos kintamuosius arba dinaminį įterpimą, kad pateiktumėte paslaptis savo konstrukcijai pipelinearba programėlėse, vengiant kietojo kodo kūrimo šaltinio kode.
3 veiksmas: nuskaitykite užkoduotas paslaptis„Xygeni“ nuskaito kas pull request, „Docker“ atvaizdą ir „git“ istoriją, kad realiuoju laiku būtų galima aptikti ir patvirtinti nutekėjusius slaptus duomenis.
4 veiksmas: patikrinkite paslaptis„Xygeni“ patikrina, ar slaptasis raktas aktyvus ir ar jį galima naudoti. Patvirtinti slaptieji raktai pažymimi neatidėliotiniems veiksmams naudojant tikrinimo variklį.
5 veiksmas: suaktyvinkite automatinį taisymąJei aptinkama patvirtinta paslaptis, „Xygeni“ gali ją atšaukti arba pakeisti, paskelbti PR/MR su kontekstu ir vadovauti taisomųjų veiksmų eigoms.

7. Nustokite visam laikui užkoduoti paslaptis naudodami automatinį taisymą ir paslapčių valdymą

Net ir naudojant „HashiCorp Vault“, klaidų vis tiek pasitaiko. Kūrėjai gali užkoduoti prieigos raktą vietinio testavimo metu arba pamiršti jį sukonfigūruoti. .gitignore tinkamai. Štai kodėl labai svarbu derinti paslapčių valdymą su nuolatiniu nuskaitymu ir automatiniu taisymu.

Su Xygeni paslapčių valdymas, jūs ne tik aptinkate užkoduotus prisijungimo duomenis, bet ir automatiškai juos ištaisote, kol jie netampa incidentais.

Štai kaip „Xygeni AutoFix“ veikia su paslaptimis:

  • „Xygeni“ nuskaito kas pull request Vos atidarius, ieškoma kietuoju kodu užkoduotų raktų kode, konfigūracijose, „Git“ istorijoje ir „Docker“ sluoksniuose.
  • Tai patvirtina bet kokią rastą paslaptį prieš tikslinę paslaugą ir užmaskuoja reikšmę žurnaluose.
  • „Xygeni“ tiesiogiai pažymi paslaptį viešajame pranešime, pridedant kontekstinius komentarus su svarbos laipsniu ir tipu.
  • „AutoFix“ sukuria saugų pataisymą, kuris gali:
    • Komentuokite atskleistą paslaptį
    • Pakeiskite jį nuoroda į saugyklą arba aplinkos kintamąjį
    • Pateikite nuoseklias taisymo instrukcijas
  • Jei apsauginis turėklas yra aktyvus„Xygeni“ automatiškai blokuoja PR, kol problema bus išspręsta.

Be to, Ksigeni palaiko vykdymą per „GitHub Actions“, „GitLab“, „Jenkins“ ir „Bitbucket“. Todėl slaptos prieigos niekada nepasiekia gamybos, net jei jų nepastebėjote peržiūros metu.

Tai ne tik paslapčių aptikimas. Tai paslapčių apsauga, kuri gali būti plečiama.

sca-tools-software-composition-analyses-tools
Prioritetizuoti, pašalinti ir apsaugoti savo programinės įrangos rizikas
Gaukite nemokamą paskyrą.
Nebūtina kreditinės kortelės.

Apsaugokite savo programinės įrangos kūrimą ir tiekimą

su „Xygeni“ produktų rinkiniu