Runtime application self-protection (RASP) é um software de segurança que se integra com uma aplicação ou seu ambiente de tempo de execução durante a execução e intercepta constantemente chamadas para a aplicação para verificar sua segurança, permitindo aqueles considerados seguros e bloqueando aqueles que poderiam indicar um ataque. RASP pode proteger contra ataques de aplicações como SQL injection porque pode fazer sentido dos comandos envolvidos e distinguir sequências normais de instruções ou requisições suspeitas.
A segurança de aplicações é frequentemente negligenciada durante o desenvolvimento de software e a maioria das aplicações não tem a capacidade de detectar e bloquear ataques. O RASP adiciona segurança a aplicações que de outra forma poderiam ser vulneráveis. Por ter uma visão do que está acontecendo dentro da aplicação, o RASP pode analisar o comportamento da aplicação e o contexto no qual ele ocorre, ao contrário da proteção baseada no perímetro, como as firewalls de aplicações web (WAF). Essa capacidade permite que o software responda a ataques em tempo real.
RASP tem dois modos operacionais. Em modo diagnóstico, o software monitora as chamadas para a aplicação e soa um alarme caso seja feita uma chamada suspeita. No modo de auto-protecção, o RASP pode impedir a execução de instruções suspeitas ou terminar uma sessão do utilizador.
A tecnologia RASP foi concebida para os dois servidores de aplicações mais populares, máquina virtual Java (JVM) e .NET Common Language Runtime. São esperadas implementações adicionais. Os fornecedores dos produtos RAST incluem Contrast, HP, Immunio, Promon, Veracode, Waratek e WhiteHat Security.
Joseph Feiman defendeu o conceito por trás do RASP em seu relatório de pesquisa de 2014, "Stop Protecting Your Apps; It's Time for Apps to Protect Themselves"
Jeff Williams oferece um tutorial introdutório sobre o RASP: