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.
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.
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.
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
| 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.
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
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
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.




