„STRIDE“ yra „Microsoft“ sukurta grėsmių modeliavimo sistema, kuri suskirsto saugumo rizikas į šešias kategorijas: klastojimą, klastojimą, paneigimą, informacijos atskleidimą, paslaugų trikdymą ir privilegijų iškėlimą. Ji suteikia kūrėjams pasikartojantį būdą bet kuriame programinės įrangos gyvavimo ciklo etape užduoti klausimą „kas čia gali nutikti ne taip?“.
Kodėl kūrėjai turėtų naudoti STRIDE grėsmių modelį programinės įrangos projektuose?
Jei siunčiate kodą, tvarkote pipelines arba liečiant CI/CD Bet kokiu atveju, STRIDE grėsmių modeliavimas turi būti jūsų įrankių rinkinio dalis. STRIDE reiškia klastojimą (Spoofing), klastojimą (Tampering), atmetimą (Repudiation), informacijos atskleidimą (Information Disclosure), paslaugos trikdymą (Denial of Service) ir privilegijų suteikimą (Elevation of Privilege) – tai šešios saugumo grėsmių kategorijos, į kurias kūrėjai turi atsižvelgti per visą programinės įrangos gyvavimo ciklą.
Sukūrė „Microsoft“ 2000-ųjų pradžiojeSTRIDE grėsmių modeliavimo sistema gali atrodyti kaip senamadiškas metodas. Tačiau jos stiprybė slypi nesenstančiame paprastume: ji padeda komandoms sistemingai klausti: „Kas čia gali nutikti ne taip?“. Nepaisant to, kiek pasikeitė programinės įrangos teikimas, atsirandančios debesijos architektūros, konteinerizavimas ir CI/CD pipelineSTRIDE išlieka labai aktualus. Jis puikiai atitinka poreikius modernus DevSecOps siūlant praktišką, kūrėjams patogų metodą, skirtą proaktyviai nustatyti ir spręsti saugumo rizikas.
Tai nėra teorinis modelis, skirtas tik auditams ar analizėms. STRIDE grėsmių modelis yra jūsų žemėlapis, skirtas silpnoms vietoms rasti dar prieš užpuolikams. Nesvarbu, ar rašote diegimo scenarijų, peržiūrite... pull request, arba prijungiant trečiųjų šalių paslaugas, STRIDE atskleidžia galimybes, kuriomis užpuolikai gali pasinaudoti.
„DevSecOps“ reiškia saugios programinės įrangos kūrimą nuo pat pradžių. STRIDE tikslas – ne sulėtinti jūsų darbą; tai reiškia sumažinti netikėtumus vėliau, patikrinant tinkamus dalykus dabar. Nuolatinis STRIDE grėsmių modeliavimo sistemos taikymas sustiprina jūsų gebėjimą numatyti ir išspręsti problemas anksti.
Trumpas suskirstymas: STRIDE kategorijos, kurias kūrėjai turi suprasti
STRIDE grėsmių modelis grėsmes suskirsto į šešias kategorijas. Kiekviena iš jų atitinka dažniausiai pasitaikančius programinės įrangos ir infrastruktūros probleminius taškus.
S: Apgaulės Tapatybė (Apsimetinėji, kas esi) Rizika: Neleistini vartotojai arba paslaugos, apsimetantys kitais asmenimis. Pavyzdys: pažeistas CI vykdytojas apsimeta patikimu diegėju ir diegia nesaugius pakeitimus. CI/CD Scenarijus: Užpuolikas gauna prieigą prie CI agento ir suaktyvina užduotis, kurios atrodo esančios iš patikimo komandos nario.
T: Sugadinimas su duomenimis arba kodu (žaidimas su savo daiktais) Rizika: Užpuolikai nepastebimai keičia kodą, konfigūracijas ar artefaktus. Pavyzdys: neteisėtas scenarijus modifikuoja konteinerio atvaizdą kūrimo proceso metu. CI/CD Scenarijus: Kūrimo etapas tyliai pakeičiamas, kad būtų galima įdiegti modifikuotą atvaizdą iš neleistino šaltinio.
R: Atsisakymas (Nėra įrodymų, kas ką padarė) Rizika: Atskaitomybės arba audito takelio stoka. Pavyzdys: sujungimas atliekamas nepatikrinus, kas jį patvirtino ar parašė. CI/CD Scenarijus: Komponavimo ir diegimo versijos paleidžiamos neregistruojant, kas jas inicijavo, todėl sunku atsekti problemas.
I: Informacijos atskleidimas (Nutekančios paslaptysRizika: Neskelbtinų duomenų nutekėjimas žurnaluose, kompiliacijose ar artefaktuose. Pavyzdys: slapti kodai, atspausdinti žurnaluose nepavykus scenarijaus vykdymui. CI/CD Scenarijus: aplinkos kintamieji su paslaptimis tampa matomi pipeline žurnalai arba klaidų pranešimai.
D: Paslaugų atsisakymas (Išsaugokite savo išteklius) Rizika: Procesai ar paslaugos tampa nepasiekiami dėl prastos logikos ar piktnaudžiavimo. Pavyzdys: nesibaigiantys užduočių ciklai užkemša integracijos eilę. CI/CD Scenarijus: Neteisingai sukonfigūruotas pipeline per dažnai suveikia, sunaudodamas visą turimą bėgiko pajėgumą.
E: Privilegijų pakėlimas (Daugiau prieigos nei leidžiama) Rizika: Vartotojai arba paslaugos gauna teises, kurių neturėtų turėti. Pavyzdys: A pipeline užduotis vykdoma su gamybos lygio prieiga, kurios neturėtų turėti. CI/CD Scenarijus: Dėl netinkamai sukonfigūruotų prieigos valdiklių bendraautorio užduotis vykdoma su padidintomis teisėmis.
STRIDE grėsmių modeliavimas DevOps aplinkoje: trumpoji nuorodų lentelė
| Kategorija | DevOps rizika | Realaus pasaulio pavyzdys |
|---|---|---|
| Apgaulės | Apsimetimas kitais vartotojais ar paslaugomis | CI bėgikas imituoja gamybos diegėją |
| Sugadinimas | Neleistinas kodas arba konfigūracijos pakeitimai | Kenkėjiškas scenarijus diegime pipeline |
| Atsisakymas | Nėra veiksmų žurnalų ar audito tako | Sujungti be commit pasirašymo arba audito takas |
| Informacijos atskleidimas | Paslapčių nutekėjimas žurnaluose arba kompiliacijose | Į CI žurnalus atspausdinti prisijungimo duomenys |
| Tarnybos atsisakymas | Išteklių išeikvojimas arba darbo eigos sutrikdymas | Rekursyvus pipeline darbai užvaldo bėgikus |
| Privilegijų pakėlimas | Pernelyg didelės prieigos teisės vartotojams ar procesams | dev pipeline prieigos raktas su prieiga prie produkto |
STRIDE taikymas DevOps darbo eigoms
Apgaulė DevOps sistemoje CI/CD Pipelines
Neleistini procesai apsimetinėja patikimais asmenimis pipeline etapai. Saugyklos: pažeistos bendraautorių paskyros siunčia kenkėjišką kodą naudodami teisėtą vartotojo vardą. Priklausomybės: kenkėjiški paketai naudoja pavadinimus, panašius į populiarių bibliotekų pavadinimus (spausdinimo klaidos), kad atrodytų patikimi.
Klastojimas DevOps sistemoje CI/CD Pipelines
Modifikuotas diegimo scenarijus sukeičia konteinerius arba įterpia nesąžiningas komandas. Saugyklos: priverstinai įkeltos commits apėjimo kodo peržiūra, užpakalinių durų įterpimas. Priklausomybės: kenkėjiški bibliotekų atnaujinimai įdiegia paslėptas funkcijas.
Atsisakymas DevOps sistemoje CI/CD Pipelines
Diegimai suaktyvinami neregistruojant, kas juos inicijavo. Saugyklos: trūksta commit Pasirašymas neleidžia patikrinti pakeitimų kilmės. Priklausomybės: Paketų pakeitimai ištraukiami be jokio patikrinamo pakeitimų žurnalo ar parašo.
Informacijos atskleidimas DevOps sistemoje CI/CD Pipelines
Dėl išsamaus derinimo žurnalo išvestyje atskleistos paslaptys. Saugyklos: netyčia .env failai arba konfigūracijos paslaptys. commitPriskirta prie šaltinio kontrolės. Priklausomybės: Paketai su netinkamai sukonfigūruotomis teisėmis atskleidžia jautrius failus.
Aptarnavimo atsisakymas DevOps sistemoje CI/CD Pipelines
Perkrauti vykdikliai dėl begalinių paleidiklių ciklų. Saugyklos: kenkėjiški įnašai su itin dideliais failais arba sudėtingais kūrimo paleidikliais. Priklausomybės: rekursinės arba prastai optimizuotos bibliotekos sunaudoja per daug sistemos išteklių.
Privilegijų padidinimas DevOps sistemoje CI/CD Pipelines
Bendri prieigos raktai leidžia ne administratoriaus užduotims atlikti administratoriaus užduotis. Saugyklos: „Git“ hooks arba automatizavimo scenarijai paleidžiami su nereikalingomis privilegijomis. Priklausomybės: trečiųjų šalių bibliotekos diegimo scenarijus vykdo su root prieiga kūrimo metu.
Įterptiniai pavyzdžiai: prieš ir po STRIDE taikymo
Atsisakymo pavyzdys: Nepasirašytas Commits
Kas taisoma: užkirsti kelią neaudituotiems sujungimams patikrinant commit parašų.
// Anyone can commit and push, no verification of who or with what identity
git commit -m "update deploy config"
git push origin main
// No branch protection: unsigned, unverified commits merge freely
// .github/settings.yml (missing or absent) Nėra parašo, nereikia recenzento ir nėra būdo vėliau įrodyti, kas atliko šį pakeitimą arba ar jis buvo pakeistas perdavimo metu.
// Commit signing enabled and enforced locally
git config commit.gpgsign true
git commit -S -m "update deploy config"
git push origin main
// Branch protection requires signed commits before merge
// .github/settings.yml
branches:
- name: main
protection:
required_signatures: true
required_pull_request_reviews:
required_approving_review_count: 1 Dabar kiekvienas commit on main turi patikrinamą parašą ir nepasirašytas commitatmetami šakos lygmeniu, taip panaikinant atmetimo spragą.
Informacijos atskleidimo pavyzdys: paslaptys žurnaluose
Kas taisoma: užkirsti kelią slaptos informacijos nutekėjimui, vengiant tiesioginio jautrių aplinkos kintamųjų spausdinimo.
// CI job prints the secret directly to logs for "debugging"
steps:
- name: Deploy
run: |
echo "Using API key: $API_KEY"
curl -H "Authorization: Bearer $API_KEY" https://api.example.com/deploy Jei šis darbas nepavyksta arba komandos narys turi prieigą prie žurnalo, $API_KEY dabar yra paprasto teksto formatu CI istorijoje ir matomas visiems, turintiems skaitymo prieigą. pipeline.
// Secret is referenced, never printed, and CI masks it by default
steps:
- name: Deploy
run: |
curl -H "Authorization: Bearer ${{ secrets.API_KEY }}" https://api.example.com/deploy
env:
API_KEY: ${{ secrets.API_KEY }} Raktas ištraukiamas iš CI slaptosios saugyklos vykdymo metu, niekada neperduodamas į standartinę išvestį, ir dauguma CI platformų jį automatiškai užmaskuoja žurnaluose, net jei jis netyčia pasirodo išvestyje.
Kaip kūrėjai gali taikyti STRIDE neturėdami saugumo patirties
Jei dirbate „DevSecOps“ srityje, grėsmių modeliavimas turėtų tapti antrąja prigimtimi. Naudodami STRIDE grėsmių modeliavimą kaip vadovą peržiūrų ir automatizavimo diegimo metu, galite numatyti problemas dar prieš joms pasiekiant gamybinę aplinką.
Jums nereikia būti saugumo ekspertu. Tiesiog užduokite su STRIDE susijusius klausimus įprasto darbo eigos metu:
Kodo peržiūros metu:
- Ar kas nors čia gali suklastoti tapatybę?
- Ar tai būtų galima pakeisti?
metu CI/CD apžvalga:
- Ar kur nors atskleidžiamos paslaptys?
- Ar kiekvienas veiksmas atsekamas?
Priklausomybės analizės metu:
- Ar remiamės patikrintais šaltiniais?
- Ar ši priklausomybė galėtų padidinti savo teises?
Ir tada automatizuokite tai, ką galite:
- Naudokite pasirašytą commits
- Įdiegti artefaktų pasirašymą
- Nustatykite paslapčių nuskaitymą
- Stebėti priklausomybių atnaujinimus
Šie maži žingsneliai leidžia praktiškai pritaikyti STRIDE grėsmių modelį be papildomų išlaidų.
Prieš nuosekliai taikant STRIDE grėsmių modeliavimą, naudinga žinoti, kada ir kur jis tinka jūsų darbo eigai.
Išsamus vadovas, kaip apsaugoti savo CI/CD Pipeline
Sužinokite, kaip atpažinti, užkirsti kelią ir reaguoti į CI/CD saugumo rizika.
STRIDE integravimas į grėsmių modeliavimo procesą
STRIDE natūraliai įsilieja į kūrimo gyvavimo ciklą kaip lengvas, pasikartojantis lęšis, skirtas ankstyvam galimų saugumo grėsmių nustatymui. Jis veiksmingiausias, kai nuosekliai taikomas pagrindiniuose etapuose:
- Kodo peržiūros metuUžduokite tokius klausimus kaip „Ar tai galima suklastoti arba pakeisti?“ arba „Ar yra šio pakeitimo audito seka?“
- Konfigūruojant CI/CD PipelinesĮvertinkite, ar paslaptys atskleidžiamos, jei užduotis galima atsekti arba jei leidimų taikymo sritys yra per plačios.
- In Priklausomybės valdymas: Patikrinkite, ar trečiųjų šalių paketai yra patikrinti, pasirašyti ir ar juose nėra rizikingų diegimo scenarijų ar pernelyg didelės prieigos.
- Planuojant naujas funkcijas ar paslaugas, naudokite STRIDE grėsmių modeliavimo sistemą kaip kontrolinį sąrašą, kad galėtumėte apgalvoti, kas gali nutikti kiekvienoje grėsmių kategorijoje.
Dėl to STRIDE grėsmių modeliavimas tampa praktiška ir veiksminga jūsų saugumo pastangų dalimi, o ne sudėtingu procesu, o mąstysena, integruota į jūsų kasdienius kūrimo ir DevOps darbo eigą.
Kaip „Xygeni“ susieja kiekvieną STRIDE kategoriją
„Xygeni“ ne tik atkreipia dėmesį į rizikas, bet ir reaguoja į jas visame pasaulyje. pipeline.
Štai kaip Ksigenis aptikimo žemėlapiai kiekvienai STRIDE kategorijai realiame gyvenime pipeline:
- Apgaulė: Xygeni anomalijų aptikimo žymės CI/CD netinkamas prieigos raktų naudojimas ir darbai, kuriuose apsimetama patikima tapatybe, įspėjant komandą, kad prisijungimo duomenis būtų galima pakeisti prieš paleidžiant užduotį.
- Sugadinimas: „Xygeni“ kodo klastojimo aptikimo funkcija nustato neleistinus diegimo YAML, kompiliavimo failų ir kt. pakeitimus. IaC šablonus ir praneša komandai apie konkrečius commit ir paveiktus failus.
- Atsisakymas: Xygeni vėliavos nepasirašytos commitir priverstiniai veiksmai, apeinantys filialų apsaugą, suteikia komandoms matomumą, kaip užtikrinti pasirašytų duomenų apsaugą.commit politika prieš susijungimą.
- Informacijos atskleidimas: „Xygeni“ slaptų raktų nuskaitymas aptinka paviešintus prisijungimo duomenis žurnaluose, kode ir integrinio ryšio istorijoje, patikrina, ar jie vis dar aktyvūs, ir automatiškai atšaukia palaikomų slaptų raktų tipus.
- Paslaugų atsisakymas: „Xygeni“ anomalijų aptikimo sistema nustato neįprastus reiškinius CI/CD veiklą, pvz., neįprastą kūrimo trukmę ar darbų dažnumą, ir įspėja komandą realiuoju laiku.
- Privilegijų padidinimas: „Xygeni“ mažiausiai privilegijų stebėjimo funkcija identifikuoja pernelyg privilegijuotus arba neaktyvius vartotojus ir CI/CD žetonus ir juos iškelia į paviršių taisymui per Health Check funkcija.
Išvada: STRIDE paverčia grėsmių modeliavimą praktišku kūrėjams
STRIDE grėsmių modeliavimo sistema suteikia kūrėjams aiškų ir veiksmingą požiūrį į rizikų ankstyvą pastebėjimą. Nepersistenkite. Tiesiog užduokite sau klausimą: „Kas čia gali nutikti ne taip?“ kiekvienai savo kodo, saugyklos daliai, pipeline, arba priklausomybė.
STRIDE grėsmių modeliavimas padeda ištaisyti saugumo klaidas prieš joms pasirodant. O tokios priemonės kaip „Xygeni“ padeda automatizuoti procesą nepadidinant trinties.
Įtraukite STRIDE grėsmių modelį į savo kodo rašymo, peržiūros ir siuntimo procesą. Nuolatinis STRIDE grėsmių modeliavimas padeda išlaikyti jūsų... pipelineyra saugūs, net ir jiems plečiantis bei tobulėjant.
DUK
Ką reiškia STRIDE?
Apgaulė, klastojimas, paneigimas, informacijos atskleidimas, paslaugų teikimo trikdymas ir privilegijų suteikimas – šešios kategorijos, kurias „Microsoft“ sukūrė saugumo grėsmėms suskirstyti.
Ar man reikia saugumo patirties norint naudoti STRIDE?
Ne. STRIDE veikia kaip klausimų, tokių kaip „ar tai galima suklastoti?“ arba „ar tai galima atsekti?“, kontrolinis sąrašas, kurį kūrėjai gali taikyti įprastos kodo peržiūros metu ir CI/CD konfigūracija.
Ar STRIDE vis dar aktualus debesijos technologijoms ir CI/CD aplinkos?
Taip. Nepaisant to, kad buvo sukurtas prieš konteinerizaciją ir CI/CD buvo standardŠešios STRIDE kategorijos tiesiogiai susijusios su šiuolaikine pipeline rizikos, tokios kaip netinkamas žetonų naudojimas, nepasirašyti commitir paslapčių atskleidimas.





