Runtime application self-protection (RASP) is security software that integrates with an application or its runtime environment during execution and constantly intercepts calls to the application to check their security, permitting those deemed safe and blocking those that could indicate an attack. RASP can protect against application attacks such as SQL injection because it can make sense of the commands involved and distinguish normal sequences from suspicious instructions or requests.
Application security is often neglected during software development and most apps lack the capacity to detect and block attacks. RASP adds security to applications that might otherwise be vulnerable. Because it has insight into what's happening within the application, RASP can analyze application behavior and the context in which it occurs, unlike perimeter-based protection, such as web application firewalls (WAF). That capacity makes it possible for the software to respond to attacks in real time.
RASP has two operational modes. In diagnostic mode, the software monitors calls to the application and sounds an alarm if a suspect call is made. In self-protection mode, RASP can prevent the execution of suspect instructions or terminate a user session.
RASP technology is designed for the two most popular application servers, Java virtual machine (JVM) and .NET Common Language Runtime. Additional implementations are expected. Vendors of RAST products include Contrast, HP, Immunio, Promon, Veracode, Waratek and WhiteHat Security.
Joseph Feiman first advocated the concept behind RASP in his 2014 research report, "Stop Protecting Your Apps; It's Time for Apps to Protect Themselves."
Jeff Williams delivers an introductory tutorial on RASP: