Glossary

What is runtime application self-protection

RASP is security logic inside an app that reacts when its execution is watched or altered. How it works on Android and iOS, and how to evaluate it.

Runtime application self-protection (RASP) is security logic built into an application that watches the application’s own execution and reacts when that execution is being observed or altered. On mobile it runs inside your app’s process on the user’s phone, a device the attacker may control. Evaluate it by the flows it guards, the split of work between app, operating system and server, and evidence gathered on physical Android and iOS devices. RASP makes attacks on a running app slower and costlier and produces a signal; it does not correct insecure server logic. Otukan builds RASP into Android, iOS, Flutter and React Native apps.

The threat and the trust boundary

A mobile app cannot trust the device it runs on. The boundary RASP defends is the app process itself: its memory, its code and the calls it makes. Attackers cross it by attaching tools that read or change the app while it runs.

Runtime conditionWhat it lets an attacker doFlow most at risk
Instrumentation or hookingChange a function’s result, such as a failed check turning into a passSign-in, licence and entitlement checks
Attached debuggerStep through logic and read keys from memoryCode that handles tokens or keys
Rooted Android or jailbroken iOSRead the app’s private storage and lift the limits the sandbox enforcesStored credentials, offline data
EmulatorRun many scripted sessions without real hardwareAccount creation, promotions, in-game economy
Modified binaryShip a copy with checks removed or ads injectedEvery flow, through a fake distribution channel

Control fit

The term began with server-side web applications. On mobile, three parties share the work.

  • The app detects the conditions above and applies an immediate response: record, warn the user, restrict the flow or end the session.
  • The operating system provides the sandbox and code signing. Android and iOS enforce them differently, and root detection on Android and jailbreak detection on iOS need separate checks.
  • The backend receives the runtime signal with each sensitive request and decides whether to serve it. A decision made there is out of the attacker’s reach.

Static protection completes the picture: obfuscation and integrity checks keep the runtime logic hard to find and patch.

Evaluation

Test each point on your own builds and devices.

  1. Platform scope. Confirm each check separately for Android and iOS, and for the frameworks you ship.
  2. Check placement. Confirm checks run at start-up, before sign-in and before the actions you mark sensitive.
  3. Response per flow. Set a different response for browsing and for payment, and watch both.
  4. Backend signal. Trigger each condition on a test device and confirm your server receives it.
  5. User impact. Run clean devices, Android developer options and assistive tools, and measure launch time before and after.

How Otukan applies RASP

Otukan builds runtime self-protection into Android, iOS, Flutter and React Native apps. It detects hooking, debuggers, emulators, rooted Android and jailbroken iOS devices and modified copies, runs its checks at start-up, before sign-in and before the actions you select, applies the response you set for each flow and sends the signal to your backend. Obfuscation and integrity checks protect the checks themselves, and your signing keys stay with you.

The product is covered on mobile RASP, and the Apple-specific view is on iOS RASP. For how RASP relates to static protection, see app shielding vs RASP. Other terms buyers meet are defined in the mobile security glossary.

Common questions

  • Is mobile RASP the same as web RASP?

    They share a name and an idea, but the setting differs. Web RASP runs on a server you own and watches requests for injection and similar attacks. Mobile RASP runs on a phone you do not own and watches the app for instrumentation, a modified operating system or a changed binary. Treat material written for one as background only when you assess the other.

  • Where in the app should runtime checks run?

    At more than one point. A check only at launch lets an attacker attach a tool a moment later. Running checks at start-up, before sign-in and before each sensitive action gives a truer picture of the session. Otukan lets you choose the flows that matter and set a separate response for each, so a banking transfer and a news feed are treated differently.

  • Can runtime checks themselves be removed by an attacker?

    An attacker with time will look for them, which is why RASP works best alongside static protection and a server that expects its signals. Obfuscation and integrity checks make the runtime logic hard to locate and patch, and a backend that notices missing signals treats their absence as a warning. Otukan combines these layers so that removing one check raises attention rather than silence.

Give your app its own defences

Tell us the platforms, the app framework and the flows where a tampered session would cost you most. We do not ask for binaries, signing keys or production credentials.

Or request a technical demo