sisestage keskkonnamuutujad ehitusprotsessi

Süstige keskkonnamuutujaid turvaliselt ehitusprotsessi

Keskkonnamuutujate sisestamine ehitusprotsessi on a standard tänapäeva praktikas CI/CD pipelines. Meeskonnad sisestavad ehitusprotsessi keskkonnamuutujaid, et edastada saladusi, märke ja käitusaja konfiguratsiooni ehitustesse ilma väärtusi kõvakodeerimata. Pealiskaudselt tundub see lihtsa ja turvalise mustrina.

Praktikas muutub see aga sageli tarkvara tarneahela üheks kõige alahinnatumaks riskiks.

Sest kui meeskonnad lisavad keskkonnamuutujad ehitusprotsessi, siis need väärtused lakkavad olemast isoleeritud. Need muutuvad kättesaadavaks kõigele, mis selle sees töötab. pipelineNeid saavad lugeda skriptide koostamise skriptid, CLI-tööriistad, kolmandate osapoolte toimingud ja isegi sõltuvused.

Siit hakkavad asjad lagunema.

Selles juhendis vaatame, kuidas meeskonnad sisestavad keskkonnamuutujaid reaalses elus ehitusprotsessi. pipelines, kus lekked tegelikult tekivad ja kuidas ehitusprotsessi turvata ilma arendust aeglustamata.

Mida tähendab keskkonnamuutujate lisamine ehitusprotsessi

Keskkonnamuutujate sisestamine tähendab väärtuste edastamist pipeline käitusajal, et tööd saaksid neile täitmise ajal ligi pääseda. 

Praktikas sisestavad enamik meeskondi keskkonnamuutujaid ehitusprotsessi mitu korda eri etappides, sageli ilma täieliku ülevaateta nende väärtuste kasutamisest.

Need väärtused sisaldavad tavaliselt API-võtmeid, andmebaasi volitusi, märke või keskkonnapõhist konfiguratsiooni. Nende otse koodi salvestamise asemel CI/CD Süsteem laadib need dünaamiliselt ehituse alustamisel.

See lahendab tõelise probleemi. See hoiab koodi puhtana, väldib dubleerimist ja võimaldab sama pipeline töötama nii lavastus-, testimis- kui ka tootmiskeskkondades.

See mudel tugineb aga eeldusele, mis enam ei kehti: et ehituskeskkond on kontrollitud ja prognoositav.

Kaasaegne pipelined ei ole kumbki. Need hõlmavad mitut sammu, väliseid integratsioone ja sõltuvusi, mis käivitavad koodi dünaamiliselt. Selle tulemusena, kui muutuja on süstitud, pole see enam lihtsalt konfiguratsioon. Sellest saab osa täitmiskontekstist.

Kuhu keskkonnamuutujad ehitusprotsessis lekivad

Enamik lekkeid ei juhtu seetõttu, et keegi avalikustab saladuse. Need juhtuvad seetõttu, et pipelinekäituvad viisil, mida arendajad täielikult ette ei näe.

Iga kord, kui meeskonnad lisavad ehitusprotsessi keskkonnamuutujaid, laiendavad nad komponentide arvu, millel on potentsiaalselt juurdepääs tundlikele andmetele.

Näiteks võib arendaja lubada üksikasjaliku logimise ebaõnnestunud ehituse silumiseks. CLI-tööriist võib oma väljundi osana väljastada keskkonnamuutujad. Sõltuvus võib oma täitmise osana vaikselt protsessimuutujatele juurde pääseda.

Ükski neist tegevustest ei tundu iseenesest kahtlane. Kokkuvõttes loovad nad aga mitu lekketeed.

Saladused võivad lõppeda järgmisega:

  • luua logisid, mis salvestatakse ja indekseeritakse
  • silumisväljundit jagatakse meeskondade vahel
  • kolmanda osapoole CI-toimingud, mis käitavad välist koodi
  • sõltuvused, mis käivituvad installimise või käitusaja ajal
  • ehituse ajal loodud ajutised artefaktid

Kui saladus logidesse ilmub, jääb see harva saladusse. Logisid kopeeritakse, salvestatakse ja säilitatakse mitmes süsteemis. Sel hetkel ulatub avalikustamine palju kaugemale algsest teabest. pipeline.

Seetõttu avastatakse keskkonnamuutujate lekkeid sageli hilja ja pärast seda, kui kahju on juba tekkinud.

Miks meeskonnad lisavad keskkonnamuutujaid ehitusprotsessi?

Vaatamata neile riskidele toetuvad meeskonnad suuresti keskkonnamuutujate süstimisele. Ja see on mõistetav.

See võimaldab pipelines paindlikkuse säilitamiseks. Üks töövoog saab kohaneda erinevate keskkondadega, autentida mitme teenuse vastu ja muuta käitumist dünaamiliselt ilma koodi muutmata.

Kiirelt muutuvates DevOps keskkondades on see paindlikkus oluline. Paindlikkusega kaasnevad aga alati kompromissid. Mida dünaamilisem on pipeline Mida keerulisemaks see muutub, seda keerulisem on kontrollida selle sees toimuvat. Iga täiendav samm, integratsioon või sõltuvus suurendab kohtade arvu, kust tundlikele andmetele juurde pääseb.

Selle tulemusel nihkub keskkonnamuutujate süstimine konfiguratsioonidetailist turvaprobleemiks.

Levinud riskid keskkonnamuutujate lisamisel ehitusprotsessi

Riskid ei ole teoreetilised. Need ilmnevad reaalsuses. pipelines iga päev.

Saladused lekivad logidesse

Palgid on üks neist kõige levinumad kokkupuuteallikadSilumislipud, CLI-tööriistad ja pinujäljed paljastavad sageli tundlikke väärtusi arendajate märkamatult.

Kui need väärtused on avalikustatud, levivad need kiiresti süsteemide vahel.

Liiga lubav juurdepääs

Palju pipelines paljastavad kõik muutujad kõigile töödele. See loob tarbetut riski.

Kui üks samm satub ohtu, pääseb see ligi volitustele, mida see tegelikult ei vaja.

Sõltuvus ja tegevuse kuritarvitamine

Kaasaegne pipelinetoetuvad suuresti kolmandate osapoolte tööriistadele ja integratsioonidele. Need komponendid töötavad samas keskkonnas kui teie saladused.

Kui üks neist käitub pahatahtlikult, pääseb see süstitud muutujatele vaikselt ligi.

Järgi OWASPTarneahela rünnakud kasutavad ehitusprotsessis sageli ära usaldusväärseid komponente. Keskkonnamuutujatest saavad sageli lihtsaim sihtmärk.

See risk ei ole teoreetiline. Hiljutised juhtumid, näiteks axios npm-i kompromiteerimine, näitavad, kuidas ründajad kuritarvitavad usaldusväärseid sõltuvusi, et pääseda juurde käitussaladustele ja pipeline andmed.
 

Varusaladused koodis

Kui ehitised ebaõnnestuvad puuduvate muutujate tõttu, lisavad meeskonnad mõnikord varuväärtusi, et säilitada pipelinejookseb.

Aja jooksul need väärtused muutuvad commitpaigutatud või kasutusele võetud, tekitades pikaajalise kokkupuute.

Parimad tavad keskkonnamuutujate turvaliseks lisamiseks ehitusprotsessi

Keskkonnamuutujate ehitusprotsessi sisestamise turvamine ei seisne paindlikkuse kaotamises. See seisneb nende väärtuste käivitamise ajal nähtavaks tegemise kontrollimises.
 
Kategooria Best Practice Miks see on oluline
Saladuste hoidmine Kasutage seifi või CI-saladuste haldurit Hoiab ära koodis esineva ohu
Juurdepääsu kontroll Piira juurdepääsu töö kohta Vähendab rünnakupinda
Raie Maskeeri tundlikke väärtusi Hoiab ära lekked
Ulatus ja eluiga Kasutage lühiajalisi volitusi Piirab plahvatusraadiust
Kinnitamine Muutujate puudumisel ehitus ebaõnnestub Väldib ohtlikke varuvariante

Miks paljud CI/CD Turvatööriistad Miss Env Var Leaks

Enamik turvatööriistu keskendub koodi või sõltuvuste skannimisele pärast ehituse valmimist.

Keskkonnamuutujate lekkeid juhtub aga täitmise ajal.

A pipeline saab saladusi õigesti sisestada ja neid ikkagi logide või käitusaja käitumise kaudu avaldada. Selleks ajaks, kui skanner probleemi tuvastab, võib saladus juba olla ohustatud.

See loob lõhe avastamise ja ennetamise vahel.

Meeskonnad vajavad kontrolle, mis toimivad samal ajal kui pipeline jookseb, mitte pärast selle lõppu.

See muutub eriti kriitiliseks, kui meeskonnad sisestavad keskkonnamuutujaid ehitusprotsessi mitme töö ja kolmanda osapoole etappide kaudu ilma käitusaja kontrollideta.

Kuidas me soovitame keskkonnamuutujate süstimise turvamist

Praktikas taandub tõhus kaitse mõnele järjepidevale põhimõttele.

Hoidke saladusi väljaspool pipelineSüstige neid ainult käitusajal. Piirake juurdepääsu minimaalse vajaliku ulatusega. Kasutage võimaluse korral lühiajalisi volitusi.

Samal ajal jälgige, kuidas pipelines juurdepääsutundlikud väärtused. Ootamatud juurdepääsumustrid viitavad sageli riskile enne, kui leke nähtavaks muutub.

See lähenemisviis nihutab turvalisuse reaktiivselt tuvastamiselt ennetavale kontrollile.

Kuidas Xygeni aitab kaitsta CI/CD Salajane süst

Xygeni keskendub punktile, kus meeskonnad lisavad keskkonnamuutujaid ehitusprotsessi ja kus saladused tegelikult avalikustatakse: sees pipeline, hukkamise ajal.

Selle asemel, et toetuda ainult järeltöötlusele, analüüsib Xygeni, kuidas pipelines kasutavad töötamise ajal keskkonnamuutujaid. See hõlmab seda, kuidas saladused tööde vahel liiguvad, kuidas ehitusetapid neile juurde pääsevad ja kuidas sõltuvused käituskeskkonnaga suhtlevad.

Näiteks suudab Xygeni tuvastada, millal a pipeline avaldab muutujaid liiga laialdaselt, kui samm võib logidesse printida tundlikke väärtusi või kui sõltuvus üritab ootamatult mandaatidele juurde pääseda.

Samal ajal, guardrails poliitikat otse jõustada pipelineMeeskonnad saavad blokeerida ohtlikke versioone, piirata salajast juurdepääsu konkreetsetele töödele ja ennetada riskantseid konfiguratsioone enne nende tootmiskeskkonda jõudmist.

Sest see toimub seespool CI/CD töövoo osas ei pea arendajad oma tööviisi muutma. Turvalisusest saab osa pipeline, mitte eraldi samm.

Selle tulemusel saavad meeskonnad ülevaate sellest, kuidas saladusi kasutatakse, kontrollivad nende avalikustamist ja vähendavad lekete ohtu ilma edastamist aeglustamata.

Final Thoughts

Keskkonnamuutujate sisestamine ehitusprotsessi on tänapäevaste rakenduste jaoks hädavajalik. CI/CD töövooge. Ilma korralike kontrollideta võib see aga paljastada saladusi teostuse mitmes etapis.

Samas toob see kaasa ka riskikihi, mis jääb sageli märkamata.

Väljakutse ei seisne selles, kas keskkonnamuutujaid kasutada, vaid selles, kuidas nende nähtavust käivitamise ajal kontrollida.

Kaasaegsetes DevOps keskkondades on lekete vältimine ehitusprotsessi ajal palju olulisem kui nende tuvastamine hiljem.

sca-tööriistad-tarkvara-kompositsiooni-analüüsi-tööriistad
Tarkvarariskide prioriseerimine, leevendamine ja turvamine
Hankige oma tasuta konto.
Krediitkaarti pole vaja.

Turvaline tarkvaraarendus ja -tarne

Xygeni tootekomplektiga