„yaml“ inkarai ir slapyvardžiai – „yaml“ inkarai

YAML inkarai ir slapyvardžiai: nepastebėta atakos sritis CI/CD

Kaip veikia YAML inkarai ir slapyvardžiai CI/CD Pipelines

YAML inkarai ir slapyvardžiai yra galingi įrankiai CI/CD pipeline apibrėžimai DRY (Nekartokite savęs). Inkarai apibrėžia daugkartinio naudojimo blokus (ir inkaras) ir slapyvardžius (*slapyvardis) kopijuoti jų turinį, kad ir kur jis būtų nurodytas. Tai veikia populiariose platformose, tokiose kaip „GitHub Actions“, „GitLab CI“ ir „CircleCI“.

Štai paprastas pavyzdys:

⚠️ Nesaugus pavyzdys, nenaudoti gamyboje

Nors tokie YAML šablonų inkarai pagerina priežiūrą, jie taip pat gali pašalinti svarbų kontekstą. CI/CD, kur konfigūracija yra kodas, YAML inkarai ir slapyvardžiai gali tyliai skleisti nesaugius numatytuosius nustatymus, kūrėjams nesuvokiant, kas paveldima.

Saugumo rizikos, paslėptos „Anchors YAML“ struktūrose

Problema su jais Svarbu ne sintaksė, o tai, kaip jie naudojami (arba netinkamai naudojami). Saugumo nustatymai, pvz., pernelyg platūs leidimai, praleisti patvirtinimai arba užkoduotos paslaptys, gali būti integruoti į inkarą ir pakartotinai naudojami visur.

Pavyzdys:

Šis inkaras (&nesaugu) yra nesaugus garbanoti | bash šablonas, kuris įterpiamas į kelias užduotis. Jei net viena užduotis turėjo turėti skirtingą patvirtinimą ar slaptą apdorojimą, dabar ji yra pažeista. Inkarų YAML struktūros kad peržiūros metu būtų lengva nepastebėti šios klaidos.

Kaip netinkamai sukonfigūruotas YAML inkaras sukelia tiekimo grandinės apšvitinimą

Vienas neteisingai sukonfigūruotas YAML inkaras gali perduoti nesaugią logiką keliems pipelines. Kai slapyvardžiai naudojami be aiškios dokumentacijos ar matomumo, lengva netyčia paveldėti pavojingą elgesį.

Apsvarstykite šį scenarijų:

  • A .ci-šablonai repo apibrėžia bendrus inkarus statyti, dislokuotiir testas.
  • Projektai, kuriuose dalyvauja kelios komandos <<: *sukurti-etapu neperžiūrėjus jo turinio.
  • Vėliau kažkas modifikuoja inkarą, kad praleistų parašo tikrinimą priklausomybėms.

Dabar kiekvienas vartojantis pipeline paveldi šią nesaugią logiką. Tai klasika programinės įrangos tiekimo grandinės rizika: nesaugūs šablonai tyliai replikuojami per YAML inkarai ir slapyvardžiai.

Šio tipo pažeidžiamumai ne visada aptinkami tradicinėse kodo peržiūrose. YAML piktnaudžiavimo inkarai slepiasi po aliasavimu, todėl CI/CD logika neskaidri.

Nesaugaus inkarų naudojimo aptikimas ir prevencija

Siekiant sumažinti YAML inkarų keliamą riziką, įdiekite patvirtinimą keliais lygmenimis:

  • CI/CD LinteriaiPrieš analizę naudokite YAML palaikančių sąsajų elementus, kurie išplečia YAML inkarus ir slapyvardžius. Pavyzdys: veiksmo juosta „GitHub Actions“ arba pasirinktiniams „GitLab“ skirtukams.
  • Konfigūracijos nuskaitymo įrankiaiNaudokite įrankius, galinčius analizuoti YAML logiką siekiant aptikti didelės rizikos modelius.
  • Peržiūrėti skirtumus po išplėtimoKai kurios platformos leidžia peržiūrėti sukompiliuotą pipelineVisada peržiūrėkite išplėstinį YAML failą, o ne tik šaltinio failą.
  • Guardrails: Nustatykite politiką, skirtą blokuoti nesaugias konfigūracijas pvz., neribotos apvalkalo komandos arba nepatvirtinti scenarijų atsisiuntimai.

YAML inkarų apsauga DevSecOps sistemoje Pipelines

Geriausia saugaus naudojimo praktika inkarai ir slapyvardžiai taip pat yra:

  • Laikykite inkarus minimaliusVenkite per daug atsakomybių sugrūsti į vieną pagrindinį elementą. Padalinkite logiką į atskirus, aiškiai įvardytus pagrindinius elementus.
  • Naudokite aiškius darbo apibrėžimus kur svarbios saugumo ribos, ypač tarp kūrimo ir gamybos etapų.
  • Venkite pakartotinai naudoti inkarus skirtingose ​​aplinkose nebent būtina. Apibrėžkite atskirus prieraišus kūrimo, testavimo ir gamybos versijoms.
  • Nuskaitymo šablonai ir paveldėjimo grandinės centralizuotai CI/CD konfigūracijos saugyklos.

Niekada neįdėkite paslapčių į inkarą. Visada juos saugiai patraukite.

Išvada

YAML inkarai ir slapyvardžiai yra galingi produktyvumo didinimo įrankiai, tačiau netinkamai valdomi jie tampa tiesiogine tiekimo grandinės rizika. Jie gali tyliai skleisti nesaugius numatytuosius nustatymus, susilpninti etapų izoliaciją ir užgožti kritinę logiką jūsų sistemoje. CI/CD pipelines.

Norėdami užtikrinti pipelinesukurtos remiantis YAML inkarinėmis struktūromis, užtikrina matomumą, riboja pakartotinį inkarų naudojimą ir gydo CI/CD konfigūracijas tikrina taip pat kruopščiai, kaip ir programos kodą. Netinkamai naudojami inkarai yra ne tik stiliaus problema; jie yra atakos paviršius. Įrankiai kaip Ksigeni gali aptikti netinkamai naudojamus prierašus, blokuoti nesaugius modelius ir suteikti komandoms visišką paveldėtų duomenų matomumą CI/CD logika, prieš nesaugiam kodui pasiekiant gamybą.

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