Runtime Application Self-Protection (RASP): Explained
Runtime Application Self-Protection (RASP) is a security control that runs inside the application process itself, hooks framework and language-runtime calls, and observes inputs as they reach the code that consumes them. For CISOs, AppSec teams, product security teams, cloud security teams, security engineering teams, vulnerability management teams, and GRC owners, RASP is the operating discipline that adds an in-process inspection plane on top of the perimeter layers and the build-time layers. The agent sees the actual SQL query the request becomes, the file path the request opens, the deserialised object the request constructs, and the function call the request triggers, then applies detection content and a configured action. This guide covers what RASP is and is not, the five capability layers (In-Process Instrumentation, Runtime Detection Content, Decisioning and Action, Observability and Evidence, Operations and Tuning), how RASP differs from WAF, IAST, ASPM, EDR, CWPP, ADR, and API gateway, the deployment shapes that fit different architectures, the cadence that makes RASP a programme rather than an install, the recurring adoption pitfalls, the procurement criteria that separate a programme-grade platform from a checkbox purchase, and how the finding side of the RASP record connects to prioritisation, remediation tracking, and audit evidence fulfilment so the RASP work does not live in a parallel backlog.
What RASP Actually Is
Runtime Application Self-Protection is a security technology category and an operating model. The inspection plane sits inside the running application process, instruments framework and language-runtime calls, observes inputs as they reach the code that consumes them, and applies detection content (taint-tracking from request entry to dangerous sinks, signature checks against known exploit patterns, behavioural rules against abnormal runtime shapes, customer-side custom rules) to identify calls that match malicious patterns or violate the configured policy. When a rule fires, the agent applies a configured action: block the call by throwing a configured exception, log the event, sanitise the input where the platform supports it, or invoke a custom response.
The category emerged in the early 2010s in response to the structural inability of perimeter controls to see the runtime context inside the application. A WAF inspects the wire-shaped HTTP request; it does not know which user is authenticated, which query the request becomes, which file the request reads, or which framework method the request invokes. The runtime context is the difference between a high-confidence in-context detection (this specific request reached a SQL execute call with a tainted query string fragment in the parameter) and a low-confidence wire-shape match (this request body contains a substring that looks like a SQL keyword). The runtime context also enables taint-tracking from request entry to dangerous sinks, which is the dominant detection pattern for SQL injection, command injection, path traversal, server-side template injection, and insecure deserialisation.
RASP is a technology category rather than a single product shape. A buyer can run RASP as a JVM Java agent attached via the -javaagent argument, as a .NET CLR profiler registered with the runtime, as a Node.js require-hook installed via a language package, as a Python middleware or sys.settrace hook, as a sidecar variant for languages where in-process instrumentation is constrained, or as a container image bake-in pattern that ships the agent with the workload. The mature programme distinguishes between the platform decision (what RASP product we operate and where it attaches) and the operating decision (who owns the rules, who triages the false positives, who authors the runtime signatures, who handles the emergency rollout). The two are commonly decided separately, with the platform decision driving instrumentation depth and language coverage and the operating decision driving the programme cadence.
The Five Capability Layers of a RASP Platform
A mature RASP platform has five capability layers. The layers depend on each other: a gap in any of them weakens the service the platform produces. Buyers evaluating RASP vendors should benchmark each layer against the named application population, the named language and framework stack, the named action set, and the named outcome metrics the organisation needs, rather than treating the RASP category label as a capability claim.
Layer 1: In-Process Instrumentation
In-Process Instrumentation covers the agent surface and what the platform can actually hook. The minimum viable footprint is framework middleware for the dominant web frameworks on the supported languages. A stronger platform also hooks the language runtime itself (JVM bytecode instrumentation via the -javaagent path, .NET CLR profiler API, Node.js require-hook with module interception, Python sys.settrace and import hooks, Go binary instrumentation where the platform supports it, Ruby method aliasing patterns, PHP extension hooks) and the framework-specific hook points (Spring controller methods, Django middleware and ORM hooks, Express request handlers, ASP.NET pipeline modules, Rails ActiveRecord hooks, Laravel routing). Deployment packaging matters: JVM agents attach via the -javaagent argument or via the JAVA_TOOL_OPTIONS environment variable, .NET profilers register via the COR_PROFILER environment variable, language-package agents install via the language package manager, sidecar variants run as a separate container with traffic interception, and container image bake-in patterns ship the agent with the workload. Buyers should benchmark instrumentation depth against the actual language and framework stack the application population uses, because gaps in language support produce coverage holes that the rule library cannot recover from.
Layer 2: Runtime Detection Content
Runtime Detection Content covers the detection library itself: taint-tracking from request entry to dangerous sinks (SQL injection, command injection, path traversal, server-side template injection, insecure deserialisation, XML external entity processing, LDAP injection), deserialisation guards against known unsafe gadgets in loaded libraries, runtime Software Composition Analysis against the loaded library set, signature checks for named CVE exploit patterns, behavioural anomaly detection, customer-side custom rules, and the rule update cadence. Mature platforms map the detection library against the OWASP Top 10 and the OWASP API Top 10 so the coverage matrix is reviewable as a discipline rather than as a one-off configuration. Detection content is also where the platform distinguishes between a library shipped from the vendor and a library tuned to the customer baseline. A library that fires on every legitimate framework call produces alert fatigue and runtime exception noise; a library tuned to the customer normal operating shape produces high-confidence signal. The internal AppSec function on the customer side still owns the custom rules, the per-application exception register, and the tuning backlog regardless of how strong the vendor library is.
Layer 3: Decisioning and Action
Decisioning and Action covers what the platform does when a rule matches. The minimum action set is block (throw a configured exception or return a configured HTTP response), monitor (log the matched rule but allow the call to proceed), and sanitise where the platform supports it (neutralise the offending fragment before passing it to the sink). Stronger platforms also support per-rule confidence scoring (high confidence blocks, medium confidence logs with elevated severity, low confidence logs at baseline), custom exception types per rule for clean error handling in upstream code, custom HTTP response codes and bodies, rate-limited blocking under attack signature pressure, and the policy hierarchy the team needs to model per-application, per-environment, and per-endpoint behaviour. The monitoring-versus-blocking mode decision is the most consequential one in RASP operations: monitoring mode produces defensible detection logs but no prevention, while blocking mode produces actual enforcement at the cost of user-facing exception risk if a false positive fires on a legitimate runtime path. The mature platform supports per-application, per-ruleset, and per-rule granularity on this decision so the team can promote rules into blocking mode at the pace the calibration discipline allows.
Layer 4: Observability and Evidence
Observability and Evidence covers what the platform records about every decision and how that record reads downstream. The per-decision record names the matched rule, the rule confidence, the action taken, the source IP and authenticated user where available, the runtime path the request took (controller, service method, sink call), the stack trace at the decision point, the request fingerprint, the response shape, and the timestamp. The aggregate cadence read covers in-process call volume by application, blocked-call volume, monitored-but-allowed volume, false positive triage rate, latency overhead trend per application, agent health across the protected fleet, time-to-runtime-signature on emerging vulnerabilities, and the trending picture of each ruleset against the baseline. The audit-grade output maps event-level evidence against ISO 27001 Annex A 8.16, A 8.7, and A 5.25, SOC 2 CC6.6 and CC7.1, PCI DSS Requirement 6.4 and 10, NIST 800-53 SC-7 and SI-4 and SI-10, and NIST CSF 2.0 PR.PT and DE.CM so the RASP platform produces directly defensible audit material rather than only a vendor dashboard.
Layer 5: Operations and Tuning
Operations and Tuning covers the analyst workflow that turns the rule output into a defensible operating discipline. The tuning surface includes per-application false positive triage, per-rule disablement and exception register, the calibration window for new rule packs, custom rule authoring for application-specific patterns, runtime-signature workflows for emerging vulnerabilities, latency overhead review against the application SLO, agent health monitoring across the fleet, and the runbook that defines what the on-call operator does when a real attack surfaces or when the agent causes user-facing exceptions during business hours and outside them. The strongest platforms expose a rule management surface fast enough that the emergency runtime-signature cycle (publish, calibrate, deploy to monitoring, validate, promote to blocking) runs in hours rather than days. Mature programmes review the exception register monthly against the lifecycle so disabled rules are either re-enabled with revised tuning or formally retired with documented rationale, and review the latency overhead monthly against the application SLO so the team does not silently degrade application performance under the agent.
RASP vs WAF, IAST, ASPM, EDR, CWPP, ADR, and API Gateway
RASP overlaps with several adjacent categories. The boundaries are operational rather than strict, and mature application security organisations run more than one in parallel. The table below lays out the differences so security leaders can decide what each category actually buys them and where RASP sits relative to the existing security stack.
| Category | Anchor | Relationship to RASP |
|---|---|---|
| WAF | Layer-7 HTTP and HTTPS traffic inspection at the application perimeter, applying detection content to requests and responses. | Complementary at a different plane. WAF inspects the wire-shaped request from outside the process; RASP inspects the runtime call from inside the process. Mature programmes run WAF at the perimeter for broad coverage and consider RASP on the highest-risk applications for runtime context. |
| IAST | Interactive Application Security Testing: in-process agent that observes runtime behaviour during testing and emits findings. | Same instrumentation pattern, different purpose. IAST runs in pre-production for finding generation; RASP runs in production for inline enforcement. The same vendor often ships both as one agent with a testing mode and a production mode. |
| SAST | Static Application Security Testing: source-code analysis at build time. | Sibling at a different point in the lifecycle. SAST surfaces the weakness at build time; RASP surfaces the same class of weakness at runtime when it actually fires. Mature programmes run both because the false positive shape and the remediation surface are different. |
| DAST | Dynamic Application Security Testing: external scanning of the running application from a black-box position. | Adjacent. DAST scans from outside without runtime context; RASP runs inside the process with full runtime context. DAST is the pre-production exercise discipline; RASP is the production runtime enforcement discipline. |
| ASPM | Application security findings consolidated across SAST, SCA, DAST, IaC, secret scanning, pentest, and bug bounty on the application or repository record. | Peer for governance. ASPM consolidates application findings; RASP is one of the runtime signal sources feeding findings into the ASPM picture. RASP-derived findings (runtime signature decisions, recurring attack patterns surfacing weak code, taint-tracking findings) feed into the same finding store ASPM reads against. |
| EDR | Endpoint Detection and Response: host process telemetry for general operating-system-level threats. | Sibling at a different plane. EDR sees that a suspicious process spawned a shell; RASP sees that a user input reached a dangerous deserialisation sink inside the application code. Both planes are needed on production workloads; one does not substitute for the other. |
| CWPP | Cloud Workload Protection Platform: workload-level security (vulnerability scanning, configuration assessment, runtime threat detection at the workload tier). | Sibling at a different plane. CWPP covers the workload posture and the workload-tier runtime; RASP covers the in-process application runtime. Mature cloud-native programmes run CWPP plus RASP on the highest-risk applications. |
| ADR | Application Detection and Response: emerging category bundling RASP, runtime API security, and runtime application telemetry under one application-runtime plane. | Packaging label. ADR usually includes RASP as one of its capabilities; the underlying discipline is the in-process detection and enforcement inside the bundle, not the bundle as a single product. Buyer should benchmark the RASP capability inside the ADR offering rather than the ADR label. |
| API gateway | API management plane: routing, authentication, rate limiting, schema enforcement, lifecycle management. | Adjacent at a different layer. API gateway enforces identity and shape at the boundary; RASP enforces runtime detection inside the process. Some bundles ship gateway plus RASP plus WAF as a unified application protection platform. |
RASP is not a replacement for any of the broader application security categories. A mature programme operates RASP for the in-process runtime layer, WAF for the perimeter inspection layer, IAST in pre-production for in-process finding generation, SAST and SCA at build time for source and dependency findings, DAST in pre-production for runtime external exercise, ASPM for the consolidated finding record, EDR for the host-tier process telemetry, CWPP for the workload-tier posture and runtime, and an API gateway for the boundary identity and shape enforcement. A programme that ships RASP as a substitute for the rest of the stack usually loses depth on build-time signal, perimeter coverage, workload-tier protection, or finding consolidation and ends up reintegrating the dedicated tools later. RASP is the in-process inspection plane, not the entire application security stack.
RASP Deployment Shapes: JVM Agent, CLR Profiler, Language Package, Sidecar, and Container Bake-In
The most consequential RASP architecture decision is how the agent attaches to the application process. Each deployment shape carries different operational properties, language coverage, integration burden, and audit-evidence shape. The decision should follow the application stack rather than the vendor preference.
JVM Java agent (-javaagent)
JVM agents attach via the -javaagent argument on the JVM command line or via the JAVA_TOOL_OPTIONS environment variable. The agent instruments bytecode at class load time, hooks framework method calls, and runs inside the same JVM as the application. Operational properties: deepest possible instrumentation surface, native fit with Java enterprise stacks (Spring, Spring Boot, Java EE, Quarkus, Micronaut), but tied to the JVM lifecycle and sensitive to JVM upgrade compatibility. This is the dominant deployment shape for Java application portfolios.
.NET CLR profiler
.NET agents attach via the CLR Profiler API by registering the COR_PROFILER and CORECLR_PROFILER environment variables and pointing them at the agent assembly. The agent instruments managed method calls, hooks framework pipeline stages, and runs inside the .NET process. Operational properties: deep instrumentation of ASP.NET and ASP.NET Core stacks, native fit with Windows and Linux .NET workloads, but sensitive to .NET runtime upgrade compatibility and to side-by-side profiler conflicts.
Node.js, Python, Ruby, PHP language-package agent
Dynamic-language agents install via the language package manager (npm, pip, gem, composer) and attach through language-specific hook mechanisms: Node.js require-hook with module interception, Python sys.settrace and import hooks, Ruby method aliasing patterns, PHP extension hooks or auto_prepend_file patterns. Operational properties: broad language coverage, fits cloud-native packaging, deployment moves with the application code, but instrumentation depth varies by language and the agent load order matters for hook completeness.
Go binary instrumentation
Go agents typically require build-time instrumentation because Go produces statically linked binaries and does not expose a runtime profiler API comparable to the JVM or CLR. The vendor toolchain wraps the build pipeline, rewrites the binary with hook stubs, and ships the instrumented binary to production. Operational properties: requires build pipeline integration, ties the RASP lifecycle to the application release cycle, but produces a runtime profile comparable to the dynamic-language agent surface. Vendor coverage of Go is uneven; buyers running Go-heavy stacks should benchmark coverage carefully.
Sidecar variant and container bake-in
Some platforms ship a sidecar variant that runs as a separate container next to the application container, intercepts traffic between the service mesh and the application, and applies a subset of the detection content the in-process agent supports. Container bake-in patterns ship the in-process agent as part of the container image so deployment moves with the workload. Operational properties: fits cloud-native and Kubernetes-native packaging, deployment lifecycle aligns with platform engineering, but the sidecar variant has shallower instrumentation than the in-process agent because it lacks the in-process call hooks. The container bake-in pattern preserves the in-process agent advantages while fitting the container release model.
Most mature programmes operate more than one deployment shape simultaneously: JVM agent on the Java portfolio, CLR profiler on the .NET portfolio, language-package agent on the dynamic language services, and either sidecar or container bake-in on the cloud-native workload portfolio. The operating discipline is to read the deployment matrix against the application inventory and decide each application individually rather than pick one shape and force every workload into it.
Monitoring Mode, Blocking Mode, and the Calibration Discipline
The most consequential operating decision in RASP deployment is the monitoring-versus-blocking mode for each rule against each application. The decision is not binary across the ruleset: mature programmes operate a per-rule, per-application mode policy that promotes calibrated rules into blocking while leaving high-noise rules in monitoring during the calibration window.
The safe starting position for new rule packs is monitoring mode: the rule fires, the matched event is logged with the full runtime context, but the application call proceeds normally. Monitoring produces no user-facing impact and surfaces the false positive rate against the application baseline. A calibration window (typically two to six weeks for stable applications, longer for high-traffic surfaces or applications with seasonal traffic patterns or framework upgrades planned in the window) gives the operating team data to tune the high-noise rules, author exceptions for legitimate call patterns that match generic rules, and validate that the rule is ready for blocking promotion.
Blocking mode is the operating goal because monitoring mode by itself provides no actual enforcement. A RASP agent that logs every taint-tracking hit without blocking any of them is a defensible detection control with no preventive function, which the auditor reads as a control without an enforcement step and the attacker reads as an unenforced policy. The promotion gate from monitoring to blocking is the formal decision that closes the calibration window. The promotion criteria are documented per ruleset: false positive rate below the configured threshold for the application, latency overhead within the application SLO, no open exceptions for legitimate call patterns, named owner for the promotion decision, and a rollback procedure documented in case the promotion produces user-facing exceptions in the first hours.
The recurring failure modes in this discipline are leaving RASP in monitoring mode indefinitely (defensible detection logs but no prevention), flipping every rule to blocking without calibration (user-facing exceptions and runtime errors that lead the operations team to disable the high-noise rules under pressure and then disable the high-value rules in the same pattern), and treating the promotion gate as a one-time decision rather than a recurring discipline (the application evolves through framework upgrades and refactors but the RASP posture is frozen at the original promotion moment, producing drift between the application shape and the RASP policy).
RASP Audit Evidence: ISO 27001, SOC 2, PCI DSS, NIST 800-53, NIST CSF, NIST SSDF, DORA, NIS2
RASP is increasingly recognised in framework guidance as a runtime detection and protection control for the highest-risk application population. The mature programme treats the RASP evidence pack as a first-class deliverable rather than a screenshot the team produces during fieldwork. The mapping below is the standard reading of RASP artefacts against the major framework requirements; the team should validate the specific control language for the current revision of each framework against the audit scope.
| Framework | Control reference | What the RASP record provides |
|---|---|---|
| PCI DSS | Requirement 6.4 (public-facing web application protection); 10 (logging and monitoring); 11.6 (change-and-tamper detection where the agent surfaces application tampering). | The RASP runtime decision record, blocked-call evidence, exception register, and agent currency report support the public-facing web application protection requirement as a runtime defence-in-depth control on top of the WAF inspection record. |
| ISO 27001 | Annex A 8.7 (protection against malware), A.8.8 (management of technical vulnerabilities), A.8.16 (monitoring activities), A.8.25 (secure development life cycle), A.5.25 (assessment and decision on information security events). | The RASP inspection record, runtime signature decisions for newly published CVEs, monitoring-mode triage records, and blocking-mode enforcement logs map directly against these controls as a runtime application defence. |
| SOC 2 | CC6.6 (logical access controls), CC7.1 (system monitoring for security events), CC7.2 (system monitoring for analysis), CC7.3 (evaluation of security events). | The RASP runtime-decision record demonstrates the in-process inspection control and the on-call triage record demonstrates the security event analysis discipline. |
| NIST 800-53 | SC-7 (boundary protection), SI-3 (malicious code protection where applicable), SI-4 (system monitoring), SI-10 (information input validation), SA-11 (developer security testing). | The RASP inspection record demonstrates runtime input validation, malicious-pattern detection, and runtime monitoring as a defence-in-depth control alongside the application-level input validation discipline. |
| NIST CSF 2.0 | PR.PS (platform security), PR.PT (protective technology), DE.CM (continuous monitoring), DE.AE (anomalies and events), RS.AN (response analysis). | The RASP record demonstrates the protective technology control at the application runtime layer, the continuous monitoring discipline, the anomaly surfacing surface, and the response analysis input. |
| NIST SSDF | PW.8 (review and analyse vulnerabilities), PW.9 (configure software securely by default), RV.1 (identify and confirm vulnerabilities), RV.2 (assess, prioritise, and remediate). | The RASP runtime-finding record contributes to the vulnerability identification and analysis surface called out in the Secure Software Development Framework with runtime-confirmed exploit evidence. |
| DORA | Article 9 (ICT security tools), Article 10 (detection mechanisms), Article 17 (ICT-related incident management). | The RASP inspection record is a recognised ICT security tool with documented runtime detection mechanisms and incident input under the DORA regulation for in-scope financial entities. |
| NIS2 | Article 21 (cybersecurity risk management measures), Article 23 (significant incident reporting). | The RASP inspection record is one of the named measures for application-layer runtime risk management and a primary source of input to the significant-incident reporting decision under NIS2 for in-scope essential and important entities. |
| CIS Controls v8.1 | Control 13 (network monitoring and defence), Control 16 (application software security). | The RASP inspection record is named under application software security as a structural runtime defence-in-depth control alongside SAST, SCA, DAST, and code review. |
The mature pattern is to feed RASP-derived findings (runtime signature decisions, recurring attack patterns identifying weak code, taint-tracking findings pointing at unvalidated input, exception register entries) into the same finding store as scanner output, pentest findings, bug bounty submissions, and AppSec triage decisions, so the audit reader and the executive cadence reason about RASP posture alongside the wider application risk rather than reading it from a separate vendor dashboard. Programmes that hold RASP events inside the RASP console as a parallel queue separate from the wider finding record have to reconcile two backlogs at audit; programmes that ingest RASP-derived findings into one operating record collapse the audit read and the prioritisation queue.
Eight Common RASP Adoption Pitfalls
Eight failure modes appear in stalled RASP programmes. Most teams hit at least three of these on the first deployment cycle. Reading the pitfalls upfront is the highest-leverage way to avoid them.
1. Indefinite monitoring mode
Leaving RASP in monitoring mode indefinitely produces defensible detection logs but no actual prevention, which the auditor reads as a control without an enforcement step and the attacker reads as an unenforced policy. The promotion gate from monitoring to blocking is the formal close to the calibration window and the recurring decision that keeps the agent from drifting back into pure detection.
2. Deploying default rules against every application without calibration
Deploying the vendor ruleset directly into blocking mode against every application without calibration produces user-facing exceptions and runtime errors on legitimate framework call patterns. The operations team then disables the high-noise rules first under pressure and the high-value rules next under the same pattern, leaving the agent as a logging control with most enforcement disabled.
3. Coverage gap on unsupported languages
Running RASP only on the legacy Java monolith while the new microservices written in Go, Rust, or another language with shallow or unsupported agent coverage have no in-process protection leaves a coverage hole the team often cannot close without a vendor swap. The coverage matrix should follow the application portfolio, and the language coverage decision should sit upstream of the vendor selection.
4. RASP as a substitute for fixing the underlying code
Treating the RASP runtime signature as the long-term remediation for a vulnerability produces a runtime-signature dependency that compounds over time. The mature pattern treats RASP signatures as defence-in-depth mitigations with an explicit follow-up to fix the underlying code, tracked in the finding record alongside the runtime signature.
5. Latency overhead drift past the application SLO
Letting the per-request latency overhead drift past the application SLO produces an operations team that disables the agent during the next incident war room. The monthly latency review against the SLO is the recurring discipline that keeps the agent operating inside the budget the application owner accepts.
6. Parallel RASP backlog separate from the wider finding record
Holding RASP events inside the RASP console as a parallel queue separate from the wider finding record means the audit read and the executive cadence cannot reason about RASP posture alongside scanner findings, pentest findings, and bug bounty submissions. The mature pattern feeds RASP-derived findings into one operating record so the prioritisation queue and the audit read are unified.
7. No exercised emergency runtime-signature rollout
Not exercising the emergency runtime-signature rollout under a structured tabletop produces a real-CVE moment where the runbook fails and the response window stretches from hours to days. The quarterly tabletop should run a synthetic high-severity advisory through the full cycle so the operating team validates the publish, calibrate, deploy-to-monitoring, validate, promote-to-blocking sequence.
8. Skipping agent compatibility review before a language runtime upgrade
Skipping the agent compatibility review before a Java, .NET, Node.js, or Python runtime upgrade produces a deployment where the agent fails to attach against the new runtime version and the team loses coverage silently. The quarterly currency review and the upgrade-readiness checklist for any major runtime bump are the disciplines that keep the agent attached across the rolling runtime upgrade cycle.
RASP Procurement Criteria
Nine procurement criteria separate a programme-grade RASP from a checkbox purchase. The procurement artefact that captures all nine is a coverage matrix the buyer fills against the named application population, named threat models, named compliance regimes, and named operating constraints, not a vendor capability checklist filled by the vendor.
- Language and framework coverage matrix. Java JVM, .NET CLR, Node.js, Python, Go, Ruby, PHP, and the specific framework hooks (Spring, Django, Express, ASP.NET, Rails, Laravel) against the application stack the team actually runs.
- Deployment packaging fit. JVM agent argument, .NET profiler registration, language package install, sidecar variant for service mesh deployments, container image bake-in patterns, and Kubernetes admission controller patterns against the team operating model.
- Detection content matrix. Vendor-shipped ruleset against the OWASP Top 10 and the OWASP API Top 10, named CVE coverage, runtime-signature authoring surface, taint-tracking depth, the vendor update cadence, and the customer-side custom rule capability.
- Decisioning surface. Per-rule blocking versus monitoring, confidence-based actions, custom exception types, custom HTTP response codes, sanitisation actions where supported, and the policy hierarchy granularity the team needs.
- Latency and overhead profile. Per-request added latency validated against the application SLO with the actual workload shape and concurrency, not a synthetic benchmark.
- Observability and audit-grade evidence. Full-request and stack-trace logging or sampled logging, log retention, SIEM forwarding, decision rationale in each event, and the audit-grade export surface for compliance review against PCI DSS, ISO 27001, SOC 2, NIST 800-53, NIST CSF, NIST SSDF, DORA, NIS2, and other applicable frameworks.
- Integration model. API surface for rule management, infrastructure-as-code support for rules and policies, identity provider hooks for authenticated-user context, ticketing and case management integration, ASPM ingestion surface, and the relationship to adjacent vendor products (WAF, IAST, EDR, CWPP, ADR).
- Operating cost shape. Per-application pricing, per-host pricing, per-request pricing, retention tier pricing, premium feature gating, and the published cadence the vendor commits to for content updates and platform feature releases.
- Support and real-incident response. The support tier the vendor offers when the customer is in a real incident, the agent crash escalation path, the compatibility regression escalation, the SLA on the emergency runtime-signature response, and the reference customers the buyer can speak to about the service shape under live attack pressure.
A Phased RASP Rollout
The mature RASP rollout is a phased programme rather than a one-shot deployment. The phases below are the standard shape; specific durations vary with application complexity and the calibration depth the team is willing to commit to.
Phase 1: Application inventory, ranking, and language matrix (weeks 1-3)
Build the authoritative list of production applications with the language, framework, runtime version, deployment shape, and ownership for each one. Rank by attacker value (public exposure, sensitive data, regulated workload, customer impact). Cross-check the ranked list against the vendor language coverage matrix to surface any coverage gaps before they hit the rollout. The exit criterion is a ranked coverage list the team commits to walking through phase by phase, with the language gaps explicitly logged for mitigation through a different control or a different vendor.
Phase 2: First-application calibration (weeks 4-9)
Deploy the RASP agent against the highest-priority application in monitoring mode with the vendor baseline ruleset. Run the calibration window of two to six weeks. Tune high-noise rules, author exceptions for legitimate call patterns, validate the latency overhead against the application SLO, and validate readiness for blocking promotion. The exit criterion is a documented promotion decision with a named owner, a documented latency overhead within the SLO, and a rollback procedure.
Phase 3: Promotion to blocking and ruleset extension (weeks 10-15)
Promote the calibrated rules to blocking mode for the first application. Add custom rules for application-specific patterns. Begin the rollout to the next application cohort in monitoring mode. The exit criterion is the first application running in blocking mode with the tuned ruleset, the latency overhead holding inside the SLO, and the second cohort entering the calibration window.
Phase 4: Full coverage and operating discipline (weeks 16 onwards)
Roll RASP coverage across the ranked application list. Lock the monthly tuning review, the monthly latency review, the agent health monitoring across the fleet, the quarterly tabletop, the rule pack and agent currency review, the exception register lifecycle, and the audit-evidence pack refresh. Integrate RASP-derived findings into the wider security backlog so closure work tracks alongside scanner findings, AppSec triage, and pentest follow-ups rather than as a parallel queue.
Where SecPortal Fits Alongside a RASP Programme
SecPortal does not market itself as a RASP. The in-process instrumentation surface, the vendor-shipped runtime detection library, the taint-tracking engine, the per-call decisioning at runtime, and the language-runtime agents that define a RASP platform are not part of SecPortal. Programmes evaluating RASPs should benchmark coverage of named languages and frameworks, detection content density against the OWASP Top 10 and the OWASP API Top 10, the decisioning surface, and the deployment-shape fit against named RASP vendors.
SecPortal is the operating record where the security work driven by a RASP programme lands. The mature pattern is the RASP holds the in-process inspection plane and the per-call decision, and SecPortal holds the finding-and-engagement truth for the work that flows from RASP-derived findings, runtime signature decisions, recurring attack-pattern reviews, exception register entries, and the audit evidence pack.
SecPortal provides the following verified capabilities:
- Findings management with CVSS 3.1 calibration, named owner, status lifecycle, and evidence attachments, so the remediation work driven by a RASP-surfaced finding (a runtime signature tracked to a code fix, a taint-tracking finding pointing at an unvalidated input, a recurring attack pattern that points at a weak validator) is tracked on the same record as the rest of the security backlog.
- Bulk finding import from CSV exports, so RASP events the team treats as findings (taint-tracking hits, runtime signature decisions, exception register entries) can be ingested into the engagement record without a manual re-entry pass.
- Code scanning via Semgrep SAST and dependency analysis against connected GitHub, GitLab, and Bitbucket repositories, so the underlying code weakness the RASP agent surfaces at runtime is tracked in the same finding record with the repository, file, and line context the developer needs to ship the durable code-level fix.
- Authenticated scanning with cookie, bearer token, basic, and form authentication against the applications behind the RASP agent, with credentials stored encrypted at rest under AES-256-GCM and scoped to verified domains, so the pre-production dynamic exercise and the production runtime enforcement read against the same finding record.
- External scanning for the verified domains the team has authorised, covering subdomain enumeration, security header analysis, technology fingerprinting, exposed path discovery, and other modules that read the perimeter alongside the in-process RASP signal.
- Continuous monitoring on daily, weekly, biweekly, and monthly schedules, so coverage changes on the applications behind the RASP surface alongside the wider security finding queue.
- Retesting workflows paired to the original finding, so the closure of a code fix that retires a runtime signature can be verified against the same record.
- Finding overrides for the exception register entries where a RASP rule is intentionally disabled for a specific call pattern, with the eight-field decision chain (rationale, scope, owner, expiry, compensating control, review cadence, named approver, supersedes link) that the audit reader expects.
- Compliance tracking against PCI DSS, ISO 27001, SOC 2, NIST 800-53, NIST CSF 2.0, NIST SSDF, DORA, NIS2, CIS Controls, and other applicable frameworks, so the RASP runtime record and the supporting findings can be cross-linked to the control reference the audit reader needs.
- Activity log with CSV export and a named-actor timestamped audit trail across the engagement and finding lifecycle.
- AI report generation drafted from the live engagement and finding record for the executive cadence read of the RASP programme, with runtime signature lifecycle, exception register state, and the wider remediation backlog included.
- Team management with RBAC (owner, admin, member, viewer, billing), MFA enforcement, and verified domain management for scan authorisation against the applications the RASP agent protects.
The honest scope is that SecPortal is not a substitute for a RASP on the in-process inspection plane; it is the downstream operating record that gives the RASP programme a defensible home for its findings, exceptions, runtime signature follow-ups, and audit evidence alongside whichever RASP the team operates. There are no built-in RASP agent connectors, no Jira or ServiceNow ticket synchronisation, no SIEM or SOAR push connectors, no enterprise SSO or SCIM, and no automated approval routing in SecPortal; the platform provides the unified finding record and the audit-evidence surface the team reads against. The relevant adjacent workflows include scanner-to-ticket handoff governance, vulnerability acceptance and exception management, zero-day and emergency vulnerability response, API security posture assessment, and security leadership reporting. On the framework side, the RASP evidence pack feeds the audit fieldwork evidence request fulfilment workflow against the team primary control framework.
Scope and Limitations
This guide describes the operating shape of Runtime Application Self-Protection as it is consumed in mainstream enterprise programmes. The vendor landscape evolves quickly: language coverage, instrumentation depth, detection content density, agent deployment packaging, latency profile under load, and packaged framework mappings shift between releases. Specific feature claims, supported runtimes, and the precision of named language coverage should be verified against current vendor documentation and against benchmark exercises on the team own application estate.
RASP is an in-process inspection discipline on top of the existing application security stack; it is not a substitute for secure code, for input validation in the application itself, for a perimeter WAF layer, for an ASPM or AppSec-finding consolidation discipline, or for the wider vulnerability management programme. Programmes that adopt RASP as a substitute for secure development lose the durable code-level fix and end up carrying a growing runtime-signature register that gets harder to migrate off over time. Programmes that adopt RASP as the in-process inspection layer alongside WAF for the perimeter, IAST in pre-production for in-process finding generation, SAST and SCA at build time for source and dependency findings, ASPM for finding consolidation, and a defensible finding-and-engagement record for the remediation work are the ones that see durable operating value.
Run RASP findings on SecPortal
Stand up the operating record that holds RASP-derived findings, runtime signature follow-ups, exception register entries, and the audit evidence pack alongside scanner and pentest output in under two minutes. Free plan available, no credit card required.