Mobile banking app security: what is RASP and what banks need
By LCode Technologies · Updated · 8 min read
In short
Runtime application self-protection (RASP) is security built into a mobile app that checks, while the app runs, whether the device, the app code and its connections can be trusted. It then reacts to threats such as rooting, tampering or debugging. OWASP lists RASP as a defence-in-depth measure alongside obfuscation, anti-debugging and anti-tampering.
What is RASP in mobile app security?
RASP is protection embedded in the app itself. It watches for a compromised device, a modified app, an attached debugger or a hostile network while the app runs, then blocks, limits or reports the session.
A mobile banking app runs on a device the bank doesn't control. The phone may be rooted, infected with malware or on an attacker's Wi-Fi, and the app package can be decompiled and altered. Server-side controls can't see this, so RASP moves some checks into the app itself.
The OWASP Mobile Application Security Verification Standard (MASVS) covers this in its MASVS-RESILIENCE group: "Defense-in-depth measures such as code obfuscation, anti-debugging, anti-tampering, and runtime application self-protection (RASP) can increase an app's resilience against reverse engineering and specific client-side attacks." [1] Its four controls require that the app validates the integrity of the platform, implements anti-tampering mechanisms, and resists static analysis and dynamic analysis [1].
OWASP also cautions that the absence of these measures "does not in itself constitute a vulnerability", and that all apps must still meet the rest of the MASVS [1]. RASP adds to secure design and server-side validation; it doesn't replace them.
How is RASP different from app shielding, obfuscation and a WAF?
Obfuscation makes app code hard to read, app shielding usually bundles obfuscation with anti-tampering and RASP checks, RASP reacts to threats at runtime, and a WAF filters traffic at the server. They protect different places and work best together.
| Control | Where it runs | What it protects against | Limitation |
|---|---|---|---|
| Code obfuscation | Applied to the app package at build time | Reverse engineering: understanding logic, keys and API calls from decompiled code | Slows attackers down but does not detect an attack in progress |
| RASP | Inside the app on the device, at runtime | Rooted or jailbroken devices, tampering, debuggers, hooking frameworks, hostile networks | Can be bypassed by determined attackers, and detections need a defined response |
| App shielding | Applied to the app, usually as an SDK or build step | A combined layer, typically obfuscation, anti-tampering and runtime checks together | The term means different things to different vendors, so ask what is actually included |
| Web application firewall (WAF) | In front of the bank's servers or APIs | Malicious HTTP requests such as injection attempts and abusive traffic | Cannot see the state of the device or whether the app has been modified |
Which OWASP Mobile Top 10 risks matter most for banking apps?
All ten apply, but for banking apps the ones most directly addressed by app-side controls are insecure communication (M5), insufficient binary protections (M7), insecure data storage (M9), insufficient cryptography (M10) and insecure authentication (M3).
The OWASP Mobile Top 10 2024 (final release) lists M1 Improper Credential Usage, M2 Inadequate Supply Chain Security, M3 Insecure Authentication/Authorization, M4 Insufficient Input/Output Validation, M5 Insecure Communication, M6 Inadequate Privacy Controls, M7 Insufficient Binary Protections, M8 Security Misconfiguration, M9 Insecure Data Storage and M10 Insufficient Cryptography [2]. The mapping below shows typical controls. It is a practical guide, not an OWASP mapping.
| Risk | Why it matters for a banking app | Typical controls |
|---|---|---|
| M1 Improper Credential Usage | Hard-coded keys or stored passwords can be extracted | No credentials in the app package, server-issued tokens, secure key storage |
| M2 Inadequate Supply Chain Security | Third-party SDKs and libraries run with the app's privileges | Library inventory and validation, dependency review |
| M3 Insecure Authentication/Authorization | Account takeover leads directly to fraud | MPIN or biometrics, device binding, re-authentication, server-side authorization |
| M5 Insecure Communication | Traffic can be intercepted on hostile networks | TLS with certificate pinning, detection of unsafe Wi-Fi, man-in-the-middle and replay protection |
| M7 Insufficient Binary Protections | Attackers can decompile, modify and redistribute the app | Obfuscation, anti-tampering, anti-debugging, root and jailbreak detection (RASP) |
| M9 Insecure Data Storage | Lost or compromised phones expose customer data | Encrypted storage, no sensitive data in logs or temp files, wiping data from memory on exit |
| M10 Insufficient Cryptography | Weak algorithms or poor key handling undermine every other control | Current algorithms, proper key management, no home-made cryptography |
What are root detection, SSL pinning, device binding, MITM and replay protection?
Root and jailbreak detection checks whether the phone's security model has been broken. SSL pinning makes the app trust only the bank's own certificates. Device binding ties an account to a registered phone. MITM and replay protection stop intercepted traffic from being read, altered or reused.
- Root and jailbreak detection: rooting (Android) or jailbreaking (iOS) removes the operating system's sandbox, so malware can read another app's memory or files. The app checks for signs of this and can refuse to run or restrict high-risk functions.
- SSL or certificate pinning: by default, an app trusts any certificate signed by an authority the device trusts, including one an attacker has installed. Pinning limits trust to the bank's expected certificate or public key, so an intercepting proxy is rejected.
- Device binding: the customer's account is linked to a specific registered device, often using a combination of hardware, software and SIM or service identifiers. A stolen password is then not enough on another phone.
- Man-in-the-middle (MITM) attacks: an attacker sits between the app and the server, for example on a rogue Wi-Fi hotspot, to read or change traffic. Pinning, end-to-end encryption and network checks are the usual defences.
- Replay attacks: an attacker captures a valid request, such as a payment instruction, and sends it again. Nonces, timestamps and request signing make each request valid only once.
What do RBI's Digital Payment Security Controls Directions say about mobile apps?
RBI's Digital Payment Security Controls rules set mobile app controls including mandatory device binding, device policy checks, phasing out old app versions and code obfuscation, while root and jailbreak checks are optional. Since 31 July 2026 they are issued as separate Directions for each type of regulated entity.
The 2021 Master Direction on Digital Payment Security Controls (RBI/2020-21/74) covered scheduled commercial banks (excluding RRBs), small finance banks, payments banks and credit card issuing NBFCs. On 31 July 2026 RBI issued separate Digital Payment Security Controls Directions for individual categories of regulated entity, for example small finance banks [3] and urban co-operative banks [4], repealing the earlier instructions for those categories. Each bank should read the Directions issued for its own category. The mobile application controls in the SFB and UCB Directions include the following [3][4]:
- The bank shall enforce a device policy that allows the app to install or run only after baseline checks, including for a vulnerable operating system, vulnerable or malicious apps and insecure Wi-Fi configurations.
- The bank shall deactivate older app versions in a phased but time-bound manner, within six months of releasing a newer version, and shall identify remote access applications where possible and prohibit login from them.
- Other listed controls include secure download and installation, device or application encryption, minimal data collection and app permissions, application sandboxing and code obfuscation.
- The bank shall ensure device binding of the mobile application, implemented through a combination of hardware, software and service information. If several devices may be registered, the user must be notified of each new device.
- The bank may explore checking whether the device is rooted or jailbroken before installation and disallowing the app from installing or functioning on such a device. This check is optional, not mandatory.
- The bank shall host the checksum of the current app version on a public platform so users can verify it.
- The app should require re-authentication each time it is launched and after an idle period, and should not store user IDs, passwords, keys or hashes on the device.
This guide summarises regulation and standards for general information and is not legal or compliance advice. Always refer to the current text of the RBI Directions for your category of institution, and note that some controls are stated as mandatory ("shall") while others are advisory ("may").
What should banks check when evaluating a mobile app security or RASP solution?
Check which threats it detects, what it does when it detects them, how it protects network traffic, storage and authentication, how it is integrated and updated, and how its controls map to OWASP MASVS and your regulator's requirements.
- Detection coverage: root, jailbreak, emulators, debuggers, hooking, app tampering, repackaging, malware and remote access tools.
- Response options: block, restrict features, force re-authentication or alert the server, and whether the bank configures these per threat.
- Network protection: certificate pinning, detection of compromised or unsecured Wi-Fi, and MITM and replay defences.
- Data protection: encrypted local storage, secure key handling and no sensitive data left on the device.
- Authentication support: device binding, session handling and cryptographic protection of credentials.
- Binary hardening: obfuscation and anti-tampering on both Android and iOS builds.
- Standards mapping: evidence against MASVS-RESILIENCE and the other MASVS groups, and against the RBI Direction clauses that apply to you.
- Operational fit: effect on app size, start-up time and false positives, and how quickly new bypass techniques are addressed.
Where does LCode's D-Secure fit?
D-Secure is LCode Technologies' mobile app security suite for banking apps. It provides protection across five layers: application binary, network connectivity, transport, application authentication and storage.
About LCode: this section describes LCode Technologies' own product. The table lists what D-Secure includes in each layer.
| Layer | D-Secure capabilities |
|---|---|
| Application binary security | Code tampering access control, analysis and reverse engineering controls, jailbreak detection, debugger detection, certificate pinning controls, session handling, detection of apps downloaded from third-party sources, third-party library validation, compromised device security, potentially dangerous Android app validation, root access controls, malware infection detection, remote access controls and device binding |
| Network connectivity security | Endpoint verification through SSL pinning and detection of compromised Wi-Fi networks |
| Transport layer security | Cryptography, end-to-end encryption, MITM handling and replay attack handling |
| Application authentication security | Secure authentication and cryptographic encryption and decryption |
| Storage layer security | Secure data storage and encryption in transfer of data |
Frequently asked questions
What is RASP in mobile banking?
Runtime application self-protection (RASP) is security built into a mobile banking app that detects threats while the app runs, such as a rooted or jailbroken phone, a modified app, an attached debugger or an intercepted connection, and responds by blocking, restricting or reporting the session. OWASP's MASVS lists RASP as a defence-in-depth resilience measure.
Why do banking apps not work on rooted or jailbroken phones?
Rooting or jailbreaking removes the operating system protections that keep apps isolated, so malware could read the banking app's data or alter its behaviour. Many banks therefore block or restrict their apps on such devices. RBI's Digital Payment Security Controls Directions say a bank may explore disallowing the app from installing or functioning on rooted or jailbroken phones; the check is optional rather than mandatory.
What is SSL pinning and why do banking apps use it?
SSL or certificate pinning makes an app accept only the bank server's expected certificate or public key instead of any certificate the device trusts. This stops man-in-the-middle attacks in which an attacker installs a rogue certificate or runs an intercepting proxy on a hostile Wi-Fi network.
Is RASP the same as app shielding?
Not exactly. RASP refers to runtime detection and response inside the app. App shielding is a broader vendor term that usually combines RASP with code obfuscation and anti-tampering. Always ask a vendor exactly which controls their shielding includes.
Is the 2021 RBI Master Direction on Digital Payment Security Controls still in force?
No longer as a single document. On 31 July 2026 RBI issued separate Digital Payment Security Controls Directions for individual categories of regulated entity, such as small finance banks and urban co-operative banks, repealing the earlier instructions for those categories. A bank should follow the Directions issued for its own category.
What does LCode's D-Secure protect against?
D-Secure covers code tampering, reverse engineering, jailbroken and rooted devices, debuggers, remote access, malware infections, apps from third-party sources, potentially dangerous Android apps, compromised devices and Wi-Fi networks, and man-in-the-middle and replay attacks, across five layers: binary, network connectivity, transport, authentication and storage.
Related LCode products
- D-Secure Mobile App Security
An advanced mobile app security suite designed to protect application binaries, secure network connections, encrypt transport layers, and ensure secure authentication and storage.
- Digital Banking – Omni Channel
A comprehensive digital banking suite empowering retail and corporate customers with seamless access across Mobile, Web, Agency, and USSD channels.
- Unified Payment Interface (UPI) & IMPS Switch
A unified platform for instant real-time inter-bank transactions combining IMPS and UPI functionalities, providing robust payment solutions for banks and merchants.
Key terms
Sources
- MASVS-RESILIENCE: Resilience Against Reverse Engineering and Tampering — OWASP Mobile Application Security
- OWASP Mobile Top 10 2024: Final Release — OWASP Foundation
- Reserve Bank of India (Small Finance Banks – Digital Payment Security Controls) Directions, 2026 (RBI/DoS/2026-27/420, July 31, 2026) — Reserve Bank of India
- Reserve Bank of India (Urban Co-operative Banks – Digital Payment Security Controls) Directions, 2026 (RBI/DoS/2026-27/438, July 31, 2026) — Reserve Bank of India
