Runtime application self-protection (RASP) è un software di sicurezza che si integra con un'applicazione o il suo ambiente di runtime durante l'esecuzione e intercetta costantemente le chiamate all'applicazione per verificarne la sicurezza, consentendo quelle ritenute sicure e bloccando quelle che potrebbero indicare un attacco. RASP può proteggere dagli attacchi alle applicazioni come l'iniezione di SQL perché può dare un senso ai comandi coinvolti e distinguere le sequenze normali da istruzioni o richieste sospette.
La sicurezza delle applicazioni viene spesso trascurata durante lo sviluppo del software e la maggior parte delle app non è in grado di rilevare e bloccare gli attacchi. RASP aggiunge protezione alle applicazioni che potrebbero altrimenti essere vulnerabili. Poiché ha una visione di ciò che sta accadendo all'interno dell'applicazione, RASP può analizzare il comportamento dell'applicazione e il contesto in cui si verifica, a differenza della protezione basata sul perimetro, come i firewall delle applicazioni web (WAF). Questa capacità consente al software di rispondere agli attacchi in tempo reale.
RASP ha due modalità operative. In modalità diagnostica, il software monitora le chiamate all'applicazione e suona un allarme se viene effettuata una chiamata sospetta. Nella modalità di autoprotezione, RASP può impedire l'esecuzione di istruzioni sospette o terminare una sessione utente.
La tecnologia RASP è progettata per i due server delle applicazioni più diffusi, Java virtual machine (JVM) e .NET Common Language Runtime. Sono previste implementazioni aggiuntive. I fornitori di prodotti RAST includono Contrast, HP, Immunio, Promon, Veracode, Waratek e WhiteHat Security.
Joseph Feiman ha sostenuto per la prima volta il concetto alla base di RASP nel suo rapporto di ricerca del 2014, "Smetti di proteggere le tue app; è ora che le app si proteggano".
Jeff Williams offre un tutorial introduttivo su RASP: