# Cross Application Scripting

Il Cross Application scripting (CAS) è una vulnerabilità che affligge applicazioni desktop che impiegano un insufficiente controllo dell'input. Un CAS permette ad un attaccante di inserire codice al fine di modificare il contenuto di una applicazione desktop utilizzata. In questo modo si potranno sottrarre dati sensibili presenti nel sistema degli utenti. Gli attacchi alle vulnerabilità CAS hanno effetti dirompenti perché possono implicare la completa compromissione dei target indipendentemente da sistemi operativi e piattaforme.
Scoperta inizialmente da Emanuele Gentili e presentata insieme ad altri due ricercatori, che hanno partecipato allo studio della tecnica e alle sue applicazioni, Emanuele Acri ed Alessandro Scoscia durante il Security Summit 2010 di Milano, questa nuova categoria di attacco è risultata vincente su prodotti di note software house commerciali ed open source.

## Concetto di Cross Application Scripting

Similmente alle interfacce web, i moderni framework per la realizzazione di applicazioni grafiche (in questo documento si fa riferimento nello specifico a GTK e QT, i più importanti frameworks multipiattaforma) permettono l'uso di tag all'interno di molti dei propri widgets. Ciò implica la possibilità di formattazione particolarmente raffinate per il testo contenuto negli oggetti di tipo testo e la capacità di rappresentazione e gestione di contenuti multimediali (immagini, audio e video) o interattivi (link).
È naturale che il proliferare del numero di funzionalità, se non gestite in modo corretto ed adeguato, possa rendere possibili utilizzi indesiderati della tecnologia, come la manipolazione della GUI (Graphical User Interface). Esattamente lo stesso fenomeno che si realizza con l'uso di XSS in una pagina web.
È proprio per questo motivo che abbiamo deciso di definire questo comportamento CAS (Cross Application Scripting). Tipicamente le applicazioni desktop ricevono quantità considerevoli di input e supportano un numero elevato di features, sicuramente maggiori di qualunque interfaccia web.
Ciò rende più complesso per lo sviluppatore il controllo che tutti i dati provenienti da fonti insicure vengano filtrati correttamente. Software vulnerabili a forme di Cross Application Scripting di base sono molti, incluse numerose applicazioni appartenenti a produttori noti.

## Concetto di Cross Application Request Forgery

Come evidenziato per il Cross Application Scripting, anche il CARF (Cross Application Request Forgery) è una riproduzione dell'analoga vulnerabilità web CSRF nelle applicazioni desktop.
Nel caso di CARF il concetto di "link" e di "protocollo", ereditato dall'ambito web, è estremamente più esteso, dato che coinvolge componenti dell'ambiente grafico e, in alcuni casi, direttamente del sistema operativo.
Lo sfruttamento della vulnerabilità riconducibili a CSRF richiede una certa interazione da parte dell'utente. Tale problematica in molti casi non è particolarmente vincolante poiché gli utenti possono essere facilmente indotti ad eseguire determinate azioni se l'interfaccia grafica del programma risulta opportunamente alterata.
Come detto, infatti, modifiche ingannevoli nell'aspetto delle applicazioni sono ottenibili con l'uso di CAS. In questi contesti si può quindi parlare di una nuova modalità di phishing, la cui pericolosità è amplificata dalla mancanza di strumenti per la rilevazione di questo tipo di attacchi fuori dall'ambito web o di posta elettronica.
Al contrario delle tecniche di XSS che possono manipolare ed arrivare ad impartire comandi lato browser utente, attraverso CAS si può arrivare anche a dialogare con il sistema operativo e non solo con la sua interfaccia grafica.