iniezione di mudelli da u latu di u servitore - vulnerabilità ssti - carichi utili ssti

Iniezione di mudelli lato server spiegata cù esempi di codice reale

L'iniezione di mudelli da u servitore (SSTI) hè una vulnerabilità induve l'input di l'utente hè valutatu da un mutore di mudelli invece di esse resu cum'è testu chjaru, permettendu à un attaccante di eseguisce codice arbitrariu nantu à u servitore.

Cumu funziona l'iniezione di mudelli lato server daretu à e quinte

Una iniezione di mudelli da u servitore si verifica quandu l'input di l'utente hè integratu direttamente in un mutore di mudelli è valutatu senza una sanificazione o un isolamentu adeguati. Questu crea una vulnerabilità SSTI chì permette à un attaccante d'iniettà payload SSTI appositamente cuncepiti (per esempiu, {{7*7}} in Jinja2), chì u mutore valuterà, permettendu tuttu, da a divulgazione di dati à l'esecuzione arbitraria di codice in u cuntestu di u servitore. Siccomu i diversi motori di mudelli esponenu diversi oggetti è API, i carichi utili SSTI varianu secondu a piattaforma, ma spartenu u listessu periculu: permettenu à l'input micca affidabile di scappà da u flussu di rendering previstu è di esse eseguiti in u runtime di l'applicazione, ciò chì spessu porta à l'esecuzione remota cumpleta di codice o à un muvimentu laterale se ùn hè micca verificatu.

Esempiu minimamente vulnerabile in Jinja2

Sè un utilizatore manda ?nome={{7*7}}, l'app a valuterà, restituendu Salutami 49Hè una vulnerabilità SSTI di manuale.

Esempiu minimamente vulnerabile in Twig

Un attaccante pò injectà carichi SSTI cum'è {{7*7}} per pruvà l'esecuzione di codice. U periculu: una semplice iniezione pò aggravà a lettura di fugliali, l'esecuzione di cumandamenti di u sistema operatore, o un pivotamentu più prufondu in l'infrastruttura.

Exploit di u mondu reale: carichi utili SSTI chì attivanu l'esecuzione di codice remota

Una volta chì esiste una vulnerabilità SSTI, l'attaccanti cercanu di passà da a matematica di prova di cuncettu à a matematica cumpleta. RCEI diversi motori di mudelli gestiscenu i carichi utili in modu diversu.

Carichi utili Jinja2

  • {{7*7}} esecuzione aritmetica
  • {{config.items()}} → divulga cunfigurazioni di u servitore.
  • {{ “”.__class__.__mro__[2].__subclasses__() }} → percorsu versu RCE

Carichi utili di velocità

  • #set($x=”7″)${x} → bypass di l'iniezione
  • #set($a=$class.inspect("java.lang.Runtime")) accessu direttu à l'esecuzione

Carichi utili di rami

  • {{7*7}} → aritmetica
  • {{app.request.server.all}} → variabili d'ambiente
  • {{_self.env.registerUndefinedFilterCallback(‘system’)}} esecuzione di codice

Questi carichi SSTI mostranu cumu a listessa vulnerabilità in diversi motori porta à diverse sfruttà i percorsi, ma sò sempre periculosi.

Induve si piatta l'iniezione di mudelli da u latu di u servitore CI/CDApplicazioni guidate da

L'iniezione di mudelli da u latu di u servitore ùn hè micca solu un risicu di l'applicazione web; si manifesta in mudernu CI/CD pipelines troppu. I lochi di nascondigliu tipici includenu:

  • Grafici Helm in Kubernetes, induve i valori di u mudellu sò resi dinamicamente
  • E mail mudelli chì concatenanu input cuntrullati da l'utente
  • Dashboards induve e stringhe di query o i dati di cunfigurazione sò iniettati in i mudelli
  • Script DevOps chì generanu HTML/Markdown aduprendu i motori di mudelli.

esempiu:

If.Valori.messagiu vene da un input micca affidabile, introduce una iniezione di mudelli da u servitore in u vostru implementazione pipeline iddu stissu.

Prevenzione di l'SSTI cù mudelli di mudelli più sicuri è analisi statica

A mitigazione di e vulnerabilità SSTI richiede migliori mudelli di codificazione è una rilevazione precoce.

Modelli sicuri

  • ❌ Ùn aduprà micca render_template_string o equivalente
  • ✅ Aduprate i fugliali di mudellu predefiniti è passate variabili sanitizate
  • ✅ Motori di mudelli Sandbox quandu dispunibili
  • ✅ Validà è scappà l'input di l'utente prima di u rendering
  •  

Mini Lista di cuntrollu per i sviluppatori

  • Ùn rende mai direttamente l'input crudu di l'utente
  • Aduprà mudelli sandbox quandu sò supportati
  • Sanitizà è validà tutte e variabili di mudellu
  • Evitate i valutatori di mudelli persunalizati
  • Scansione di u codice per render_template_string o mudelli di concatenazione di stringhe

Analisi statica è i linters ponu segnalà custruzzioni risicate prima ch'elle ghjunghjenu à a pruduzzione.

Integrazione di cuntrolli SSTI in DevSecOps Pipelines

Catturà l'iniezione di mudelli da u servitore in anticipu hè più economicu è più sicuru chè riparà la dopu. E squadre DevSecOps devenu integrà cuntrolli in pipelines:

  • Commit hooksricusà commits cù funzioni periculose (render_template_string)
  • Analizzatori statichi: scansione per u risicu di iniezione di mudelli da u latu di u servitore in u codice di mudelli
  • Validazione di dipendenza: signalà i motori di mudelli obsoleti cù vulnerabilità SSTI cunnisciute
  • Pipeline porte: i blocchi si fusionanu finu à chì i cuntrolli SSTI sianu passati

Facendu di a rilevazione di u payload SSTI una parte di CI/CD, impedite a spedizione di codice sfruttabile.

Ùn lasciate micca chì l'iniezione di mudelli lato server si infiltri in u vostru stack

Una sola iniezione di mudelli da u servitore pò degenerà da trucchi matematichi ({{7*7}}) à l'esecuzione cumpleta di codice remotu. E vulnerabilità SSTI cumpariscenu micca solu in l'applicazioni web, ma ancu in CI/CD pipelines, grafichi Helm è mudelli di email.

Da asportu chjave

  • Ùn rende mai l'input crudu di l'utente in i mudelli
  • Validà è sanitizà tutte e variabili dinamiche
  • Diversi motori (Jinja2, Velocity, Twig) anu diversi carichi SSTI, ma tutti ponu esse armati.
  • Aduprà l'analisi statica è e porte fail-fast in pipelines
  • I mudelli di verificazione in u vostru stack regularmente

Xygeni scansiona a vostra basa di codice per difetti d'iniezione è altri mudelli di codificazione insicuri quand'elli appariscenu, catturendu custruzzioni risicate cum'è u rendering di mudelli micca sanificati prima ch'elli ghjunghjenu à pruduzzione, cù a più bassa percentuale di falsi pusitivi in ​​u Benchmark OWASP. Xygeni CI/CD e IaC security a scansione estende a listessa cupertura à pipeline cunfigurazioni, grafichi Helm è script di compilazione, signalendu cunfigurazioni errate è cumandamenti maliziosi prima ch'elli sianu spediti. Quandu Xygeni trova una vulnerabilità, AI AutoFix genera una correzione sensibile à u cuntestu, pronta per u sviluppatore direttamente in u pull request, dunque a riparazione ùn aspetta micca u prossimu sprint.

In DevSecOps, catturà l'iniezione di mudelli à u pipeline a tappa, micca dopu à u spiegamentu, hè ciò chì impedisce à un unicu payload di diventà un compromessu cumpletu.

Cuminciate gratuitamente. Nisuna carta di creditu hè necessaria, scansate u vostru primu repositoriu in minuti.

FAQ

Chì ghjè l'iniezione di mudelli da u servitore?

L'SSTI si verifica quandu l'input di l'utente hè passatu in un mutore di mudelli è valutatu cum'è codice invece di esse visualizatu cum'è testu, permettendu à un attaccante d'eseguisce cumandamenti in u cuntestu di u servitore.

SSTI hè listessu chè XSS?

Innò. XSS inietta un script chì funziona in u navigatore di a vittima; SSTI inietta un codice chì u mutore di mudelli valuta nantu à u servitore stessu, per quessa SSTI pò purtà direttamente à l'esecuzione di codice remota.

Quali motori di mudelli sò vulnerabili à SSTI?

Ogni mutore chì valuta l'espressioni pò esse vulnerabile se l'input di l'utente u ghjunghje senza sanificazione, cumpresi Jinja2, Twig è Velocity, ancu s'è ognunu espone oggetti diversi è dunque percorsi di sfruttamentu diversi.

Cumu prevene l'SSTI in CI/CD pipelines?

Scannate per mudelli periculosi cum'è render_template_string at commit tempu, i motori di mudelli sandbox eranu supportati, è e fusioni di porte nantu à i risultati di l'analisi statica prima chì u codice ghjunghje à a pruduzzione.

sca-tools-software-strumenti-d'analisi-di-cumpusizione
Priorizà, rimedià è assicurà i vostri risichi di software
Uttene u vostru contu gratuitu.
Nisuna carta di creditu necessaria.

Assicurà u vostru sviluppu è a consegna di software

cù a Suite di Prodotti Xygeni