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.





