RASP utilizza un'applicazione ingenua e consente di identificare gli attacchi e bloccarli. Esistono diversi approcci diversi tra cui filtri, sandbox e strumentazione completa. Ecco un buon articolo indipendente su RASP che descrive i casi d'uso e gli approcci: link .
Diamo un'occhiata a un semplice esempio di iniezione SQL. Un'applicazione ingenua semplicemente non ha difesa e viene sfruttata. Un'applicazione che utilizza PreparedStatements è sicura contro l'iniezione, ma non ha idea se sia stata attaccata o meno. Vediamo come funziona con RASP. Sto descrivendo l'approccio della strumentazione di Contrast qui.
In primo luogo, il RASP viene installato nell'applicazione. In questo caso, è sufficiente aggiungere semplicemente l'agente RASP all'ambiente. Quando il codice viene caricato, il RASP utilizza la strumentazione binaria dinamica per aggiungere nuovi sensori di sicurezza e funzionalità di analisi all'applicazione. Questo processo è molto simile a come NewRelic o AppDynamics funzionano per strumentare un'applicazione per le prestazioni.
Quando l'attacco arriva all'applicazione, RASP utilizza i dati relativi alla richiesta, all'utente, alla sessione e a qualsiasi altra informazione contestuale. I dati della richiesta dell'attacker vengono tracciati attraverso l'applicazione. Se sembra un attacco, ma non raggiunge mai una query SQL, viene segnalato come sonda. Questa è una grande differenza rispetto a ciò che può fare un WAF, poiché i WAF non sono in grado di vedere cosa succede all'interno dell'applicazione e devono essere sottoposti a overblock.
Se l'attacco raggiunge effettivamente una query SQL e modifica il significato di tale query, solo allora RASP blocca l'attacco. Questo essenzialmente sta rafforzando la definizione di SQL Injection, poiché sono bloccati solo gli attacchi che modificano con successo il significato delle query SQL. Questo è il motivo per cui l'implementazione RASP può essere implementata senza molta configurazione o formazione.
In definitiva, l'utente ottiene visibilità su chi sta attaccando le loro applicazioni, da dove provengono gli attacchi, le tecniche utilizzate, la riga esatta del codice che viene presa di mira e la query SQL completa contenente l'attacco. Il numero di attacchi vitali è solo una piccola parte delle sonde generali che non hanno mai colpito una vulnerabilità corrispondente. Quindi i risultati sono molto diversi da quelli che un WAF può fornire.
Il processo è più o meno lo stesso per altre vulnerabilità. Sebbene, RASP possa aggiungere protezioni specifiche per vulnerabilità conosciute in librerie e componenti. RASP può anche aggiungere registrazioni di sicurezza o altre funzionalità di sicurezza alle applicazioni.