JS eskulekuak: Erabilera segurua injekzio akatsak saihesteko

Handlebars-ekin lan egitean, garatzaileek askotan ez dute konturatzen txantiloiak gaizki erabiltzeak injekzio-akats larriak agerian utzi ditzakeela. Handlebars JS-k automatikoki irteera saihesten badu ere, hirukoitzeko kortxeteak edo gaizki idatzitako Handlebars laguntzaileak bezalako eredu ez-seguruek babesak saihestu ditzakete. Ondorioz, erasotzaileek XSS kargak txertatu, datuak lapurtu edo kode gaiztoa exekutatu dezakete.

Gida honek Eskulekuen erabilera segurua nola aplikatu erakusten dizu, adibide arriskutsuak eta seguruak nabarmentzen ditu eta txantiloien balidazioa nola automatizatu azaltzen du. pipelineXygeni bezalako tresnekin.

Zergatik izan daitezkeen eskulekuko txantiloiak arriskutsuak

Berez, Handlebars JS-k balioak ihes egiten ditu injekzio zuzena blokeatzeko. Baina garatzaile askok desaktibatzen dute hau arriskuak ezagutu gabe. Adibidez, hirukoitzeko kortxeteak erabiltzeak HTML gordina erakusten du:

If userInput is <script>alert('XSS')</script>, Script-a arakatzailean exekutatzen da. Ondorioz, txantiloi seguru bakar batek ere aplikazio osoa arriskuan jar dezake.

Oinarrizko akats hauek arriskua nabarmentzen dute. Ondorioz, historiak erakutsi du eskulekuen erabilera okerrak ustiapen handiak ekarri dituela basamortuan. Ikus ditzagun kasurik aipagarrienetako batzuk.

Eskulekuen ahultasunen benetako adibideak

Nahiz eta JS eskulekuak balioak lehenespenez ihes egiten ditu, historiak erakusten du eredu ez-seguruak edo ahulak direla Eskulekuko laguntzaileak arazo larriak eragin dituzte:

1. Kutsadura prototipoa eskulekuetan (npm aholkua GHSA-2cf5-4w76-r9qv)

2021ean, akats bat aurkitu zen handlebars paketea bera. Akatsa onartuta prototipoen kutsadura, non erasotzaileek propietateak txerta zitzaketen objektu globaletan landutako txantiloien bidez.

  • eragina: Prototipoen kutsadurak erasotzaileei kodea exekutatu, sarbide handiagoa lortu edo datuak lapurtu ahal die.
  • Ustiapena: Erasotzaileek sarrera gaiztoa bidali zuten, adibidez __proto__ propietateak. Txantiloiak errendatzen zirenean, objektu kutsatu hauek aplikazioaren portaera aldatzen zuten.
  • ikasgaia: Txantiloi-motorra ere arriskutsua izan daiteke eguneratzen ez bada. Ezinbestekoa da mendekotasun-eskaneatzeak egitea eta paketeak konpontzen mantentzea.

2. XSS Asanaren helduleku pertsonalizatuen laguntzaileetan (2019)

2019an, segurtasun-ikertzaileek aurkitu zuten Asana, zereginak kudeatzeko tresna batek, erabiltzaileei eragin zien XSS laguntzaile pertsonalizatu ez-seguruak direla eta. Garatzaileek kate gordinak itzultzen zituzten laguntzaileak idatzi zituzten SafeString, Eskulekuen barneko ihes egiteko funtzioa saihestuz.

  • eragina: Erasotzaileek JavaScript gaiztoa txertatu zuten zeregin edo iruzkin partekatuetan.
  • Ustiapena: Karga erabilgarriak bezalakoak <script>alert('XSS')</script> biktimaren arakatzailean exekutatu zen eremu horiek ireki zituenean.
  • ikasgaia: Ez desgaitu inoiz ihes egitea beste aukerarik ez baduzu behintzat. Berrikusi beti pertsonalizatua Eskulekuko laguntzaileak zabaldu aurretik.

Eskulekuen ahultasun motak

Erabilera ez-segurua JS eskulekuak Txantiloiek ahultasun mota desberdinak agerian utzi ditzakete. Hauek ulertzeak garatzaileei zer saihestu behar duten zehazki jakiten laguntzen die:

Gune gurutzatuen script (XSS)

Hau da akats ohikoena. Garatzaileek hirukoitzeko kortxeteak erabiltzen dituztenean gertatzen da. {{{}}} edo ihes egitea desgaitzen duten laguntzaile gordinak.

  • eragina: Erasotzaileek injektatu dezakete <script> erabiltzailearen arakatzailean exekutatzen diren etiketak, HTML edo iframeak.
  • Adibidea:
  • If userInput dauka <script>alert('XSS')</script>, berehala exekutatzen da.

Kutsaduraren prototipoa

Honi buruz ikusten den moduan npm advisory GHSA-2cf5-4w76-r9qv, sarrera gaiztoek objektu globalak alda ditzakete landutako txantiloien bidez.

  • eragina: Honek portaera arbitrarioa, pribilegioen eskalada edo datuen esfiltrazioa ekar ditzake.
  • ikasgaia: Beti mantendu handlebars eguneratu eta mendekotasun-egiaztapenak exekutatu CI/CD.

Zerbitzariaren aldeko txantiloi injekzioa (SSTI)

SSTI gertatzen da fidagarria ez den sarrera zuzenean zerbitzarian exekutatzen ari den txantiloi-motor batera pasatzen denean. Honekin JS eskulekuak, garatzaileek txantiloiak erabiltzailearen sarrera gordina erabiliz konpilatzen badituzte, erasotzaile batek kargak zerbitzari mailan exekutatu ditzake.

Erasotzaile batek aurkezten badu:

motorrak ebaluatzen saiatu daiteke, zerbitzariaren aldeko fitxategiak agerian utziz.

  • eragina: XSS-k arakatzaileari bakarrik eragiten dion bitartean, SSTI-k zerbitzariaren ingurunerako sarbide zuzena eman dezake.
  • Prebentzio: Ez konpilatu inoiz txantiloiak iturri fidagarrietatik. Horren ordez, erabili aurrez definitutako txantiloiak soilik eta garbitu sarrerak errendatu aurretik.

Antzeko arriskuak beste ekosistema batzuetan agertzen dira. Adibidez, ikusi gure gida Python Mendekotasun Injekzioa praktika seguruak testuinguru ezberdin batean ikasteko.

Logika gehiegikeria laguntzaileetan

Custom Eskulekuko laguntzaileak arriskutsua izan daiteke kate gordinak onartzen badituzte edo balioztatu gabeko sarrerarekin lan egiten badute.

  • eragina: Erasotzaileek ihes egitea saihestu edo laguntzaileak engainatu ditzakete datu sentikorrak agerian uzteko.
  • Adibidea:
  • Laguntzaile honek ihes egitea erabat desgaitzen du eta saihestu egin behar da.

Datuen ihesa

Batzuetan laguntzaileek edo gaizki konfiguratutako txantiloiek informazio sentikorra agerian uzten dute.

  • eragina: Tokenak, konfigurazio-balioak edo datu-basearen kredentzialak HTML irteeran errendatu daitezke.
  • ikasgaia: Ez erakutsi inoiz sekretuak txantiloietan; balioztatu eta eskaneatu zure biltegietako ustekabeko ihesak.

Elkarrekin, kategoria hauek garatzaileek dituzten arrisku sorta erakusten dute. Ondorioz, Handlebars JS-ko akats txikiak ere hornidura-kateko arazo bihur daitezke konpondu gabe uzten badira.

Zergatik den garrantzitsua hau garatzaileentzat

Ahultasun hauek frogatzen dute erabilera ez-segurua ez dela teorikoa, Asana bezalako plataforma errealetan ustiatua izan dela baizik. npm paketeakGainera, Handlebars JS Node.js eta frontend proiektuetan asko erabiltzen denez, laguntzaile ez-seguruak edo mendekotasun zaharkituak azkar bihurtzen dira softwarearen hornikuntza-kateko arrisku.

Arrisku hauek automatikoki blokeatu nahi dituzu? Hasi Xygeni-ren doako proba bat eta gehitu guardrails zure pipeline gaur.

Eskulekuen erabilera segururako jardunbide egokiak

Injekzio akatsak saihesteko, jarraitu kodeketa seguruko praktika hauek:

1. Erabili beti hortzetako aparatu bikoitzak

Honek txantiloi-motorrak HTMLtik ihes egiten duela ziurtatzen du errendatu aurretik.

2. Sarrera balioztatu eta garbitu

Gainera, balioztatu sarrerak txantiloietara pasa aurretik. Liburutegiak bezalakoak baliozkotzailea.js

3. Laguntzaile arriskutsuak mugatu

Gaizki diseinatuta Eskulekuko laguntzaileak askotan ahultasunak eragiten dituzte:

Honek ihes egitea guztiz saihesten du. Hala ere, laguntzaile seguruak datak formateatzea edo testua moztea bezalako eragiketa sinpleetara mugatu beharko lirateke.

4. Erabili Edukiaren Segurtasun Politika (EPS)

Gainera, ezarri CSP goiburu sendoak edozein injekzioren leherketa-erradioa murrizteko.

Jardunbide egoki hauek garrantzitsuak dira garapenean zehar. Gainera, egiaztapen automatizatuak gehi ditzakezu kode ez-segurua ekoizpenera ez iristeko.

Baliozkotzea automatizatzea CI/CD Pipelines

Eskuzko berrikuspenak ez dira nahikoak. Argiago esateko, eskulekuen eredu ez-seguruak ekoizpenera sartu daitezke egiaztapen automatizatuak ez badaude:

  • SAST arauakBandera {{{ in .hbs fitxategiak.
  • Sekretuen eskanerrakTxantiloietan txertatutako kredentzialak detektatu.
  • CI/CD guardrailsEraikinak hautsi segurtasunik gabekoak direnean Eskulekuko laguntzaileak edo hirukoitz kortxeteak agertzen dira.

Adibidez, babes-hesi bat ezarri dezakezu pipelines:

Egiaztapen hauek txantiloi ez-seguruen aukera murrizten dute, baina automatizazioa eskala handian plataforma bat behar du. Hemen Xygenik babes gehigarria gehitzen du.

Nola babestu ere ikus dezakezu pipelineBitbucket-eko s-ek gurean funtzionatzen du Bitbucket-en segurtasunari buruzko maiz egiten diren galderak.

Nola laguntzen duen Xygenik eskulekuen erabilera arriskutsua saihesteko

Kode segurua idaztea garrantzitsua da, baina benetako babesa automatizaziotik dator. Xigenoa egiten JS eskulekuak seguruagoa zure lan-fluxuan egiaztapenak gehituz:

  • SAST Txantiloietarako: bilaketak .hbs fitxategiak arriskutsuak harrapatzeko {{{ edo laguntzaile pertsonalizatu arriskutsuak.
  • Guardrails: Ezarri arau sinpleak GitHub, GitLab edo Bitbucket-en. Handlebars JS kode ez-segurua aurkitzen bada, eraikuntza gelditu egiten da.
  • Konponketa automatikoa: Konponketa seguruak iradokitzen ditu pull requests, kortxete hirukoitzak kortxete bikoitz seguruekin edo laguntzaile-dei fidagarriekin trukatuz.
  • Sekretuak eta konfigurazio egiaztapenak: Txantiloietan ezkutatutako tokenak edo kredentzialak aurkitzen ditu filtratu aurretik.
  • CI/CD Segurtasuna: Bateratzean kode seguruak ez diren zatiak blokeatzen ditu, kode segurua bakarrik irits dadin ekoizpenera.

Xygenirekin, segurua JS eskulekuak erabilera ez da jada jarraibide bat soilik. Zure sistema automatizatuaren parte bihurtzen da pipeline.

Dena batera jartzea

Eskulekuak seguruak dira kaxatik aterata, baina gaizki erabiltzeak injekzio-erasoetarako bidea ireki dezake. Jardunbide egokiak jarraitzeak, sarrera balioztatzeak eta laguntzaile seguruak erabiltzeak arriskuak murrizten laguntzen du. Hala ere, benetako abantaila egiaztapen hauek automatikoki egiten direnean dator. pipelines.

Ondorioz, kodeketa ohitura onak Xygeni bezalako tresnekin konbinatzeak injekzio akatsak saihesten laguntzen du eta txantiloiak seguru mantentzen ditu, entrega moteldu gabe.

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin