In this article

    Sign up to our newsletter

    Stay up to date on our product updates, new case studies, latest blogs, upcoming events, and more.


    We’ll use your email to send updates and insights on industry news, thought leadership and products, nothing else. Privacy Policy.

    Hardened App. Compromised Session.

    New eBook (1)
    In this article
      A practical guide to the structural gap in mobile app and device security: why runtime attacks succeed despite investment in hardening tools, and what a session-level trust architecture looks like in practice.

      Contents

      1. The attack your stack cannot see
      2. Three failed generations
      3. Adding more layers does not close the gap
      4. What session-level trust architecture looks like
      5. The practical case for acting now

      Chapter 01 – The attack your stack cannot see

      You have shipped the app shielding. Root and jailbreak detection is live. Certificate pinning is in place. Your SAST pipeline flags vulnerable dependencies before they reach production. By most measures, the app is hardened. And yet the incident pattern keeps recurring.

      An account takeover investigation finds credentials that were valid, MFA that passed, and session behaviour that looked entirely normal to the fraud engine. The compromise is eventually traced to an overlay framework operating on the device during the customer session, sitting in a layer that the app shielding never reached.

      This is not an edge case. It is the defining characteristic of the current generation of mobile attacks. And the reason it keeps succeeding is structural, not a gap in any individual tool.

      The overlay does not defeat the app shielding. It sits on top of it. The hooking framework does not bypass the fraud engine. It intercepts the session before the fraud engine sees anything.

      The gap is in the runtime, not the binary

      Mobile app security tooling was built, almost without exception, to analyse the binary and harden it before it reaches the device. SAST, DAST, obfuscation, anti-tampering controls: all of them operate on the app as an artefact.

      The runtime is a different environment entirely. After launch, the app operates inside an OS, alongside other processes, in an ecosystem that changes continuously. Overlay malware attaches after launch. Hooking frameworks load dynamically into the process space. Accessibility abuse exploits legitimate OS features. Emulator farms mimic real device behaviour closely enough to pass binary-level checks.

      The practical consequence for the security team is a hard visibility problem. Binary analysis tells you what the app looks like before it runs. It tells you almost nothing about the environment the app is running in at the moment a high-value transaction is being authorised.

      An automated binary analysis against a typical financial services app can often be sobering. Hardcoded secrets visible in the binary. API endpoints that can be called directly. Authentication flows that can be replayed. Certificate pinning implementations with known bypass paths.

      This is not a hypothetical. Every repackaged version of your app on a third-party store started with exactly this analysis. Every overlay campaign targeting your customers began with an attacker understanding from the outside.


      Chapter 02 – Three failed generations

      The mobile security market has produced three distinct generations of tooling. Each was a genuine step forward and addressed the threat it could see at the time. Butthe same question unanswered has remained.

      ERA 01

      Network and channel security

      TLS enforcement, certificate pinning, API security controls, network-layer monitoring. When mobile became the primary banking channel, securing the connection was the logical first response. The channel became meaningfully more secure.

      The structural assumption was that securing the channel was equivalent to securing the interaction. What this generation could not account for was an attacker already inside it. Overlay malware captures credentials before encryption. Hooking frameworks intercept function calls before data reaches the network stack. By the time the server sees the traffic, it is indistinguishable from a legitimate session, because it was generated by the legitimate app.

      Blind spot: securing the channel assumes the session entering it is clean. Runtime attacks do not need to touch the channel.


      ERA 02

      Mobile Threat Defence

      MTD brought detection capability closer to the device. Malware scanning, compromised OS flagging, known signature identification. For enterprise device management use cases, it was a genuine improvement.

      The structural limitation is definitional. MTD was designed for IT operations: catalogue threats, generate alerts, feed SIEMs. It was not designed to produce a session-level trust signal consumable in real time by a fraud engine making a transaction decision in milliseconds.

      More fundamentally, the attack category that defines financial services risk today does not reliably look like malware. Overlay frameworks, hooking tools, and accessibility abuse exploit legitimate OS functionality. They do not always carry signatures. MTD tells you what threats are present. It does not tell the rest of your stack whether the session right now is trustworthy.

      Blind spot: detection and trust are different outputs. Knowing a threat exists in the ecosystem is not the same as verifying the session is clean.


      ERA 03

      App shielding and point RASP

      The third generation turned attention to the app itself. Obfuscation, anti-tampering, root detection, runtime application self-protection. These controls raised the cost of certain attacks measurably.

      Two structural limitations emerged. The first is continuity: app shielding checks the environment largely at launch. An overlay that attaches after authentication passes. A hooking framework that loads dynamically does so between checks. A check that passes at first open does not guarantee the session is clean at the moment a payment is authorised.

      The second is isolation. Point RASP tools were built to block or terminate, not to produce structured intelligence the rest of the stack can consume. When a session is flagged, the fraud engine does not know. The identity platform does not know. The compliance record does not reflect it. Each tool defends its own boundary without contributing to a shared picture of session state.

      Blind spot: hardening the binary is not the same as verifying the session. A control that cannot share what it knows only works alone.


      Each generation addressed a threat but could not answered the question: is the session that initiated this transaction genuinely trustworthy?


      Chapter 03 – Adding more layers does not close the gap

      The predictable response to every new mobile threat vector is a new tool. The specific attack gets addressed. The procurement cycle is completed and the next variant arrives.

      The result is a mobile security stack that is impressive in its breadth, and limited in ways that breadth alone cannot fix.


      The fragmentation problem

      MTD sees threats in the device environment. App shielding sees the binary. The fraud engine sees the transaction. Each control has a view of one slice of the session. None produces a signal that is easy for the others to consume in real time as a shared measure of whether the session is trustworthy.

      The attacker operates across the entire session. The defence is a series of independent snapshots, each taken at a different time, in a different system, with no shared output.

      When a session is compromised at the runtime layer, the fraud engine sees a normal transaction. The identity platform sees a valid credential. The compliance record shows a passed authentication. Nothing in the stack is wrong. The session was just never verified.


      The practical cost for the security team

      More tools means more SDK integrations, more vendor relationships, more alert volumes for teams already stretched. But the deeper cost is visibility: no individual tool, and no combination of them as currently architected, produces a continuous, attributable record of session integrity that the rest of the stack can act on.

      When an incident occurs, the forensic process is reconstruction. Pull logs from MTD, app shielding, fraud scoring, and authentication systems separately, align them on a timeline, and try to establish what the session state was at the moment of compromise. This takes days. The attacker moved in milliseconds.

      The question worth asking is not how to add another detection layer. It is what the architecture would look like if session state were verified continuously and the output were available to every downstream system as a first-class input in real time.


      The compliance dimension

      Regulatory pressure is intensifying in ways the current stack is structurally ill-suited to address. DORA requires that control effectiveness be demonstrated continuously, not reconstructed after the fact. PSD2 SCA creates specific obligations around authentication environment integrity, not just credential validity. eIDAS 2.0 will require verifiable device and app trust as a precondition for high-assurance interactions under the EUDI wallet framework.

      Regulators are increasingly asking not whether a control was deployed, but whether it was demonstrably working at the moment of the interaction under investigation. A stack of independent tools, each logging to its own system, cannot answer that question cleanly without significant manual reconstruction.


      Chapter 04 – What a session-level trust architecture looks like

      The previous three chapters describe a structural gap. This one describes what closes it, and what it looks like in practice for the teams responsible for mobile app and device security.

      The fourth generation of mobile security does not begin with the threat. It begins with the trust assertion. Before any fraud decision, before any identity check, before any transaction is authorised, the question is whether the session about to carry out those actions can be verified as trustworthy. That verification has four dimensions, each assessed continuously throughout the session, not at a single point.

      01  Device integrity: is this environment suitable for a high-assurance interaction?

      Rooted devices, jailbroken iOS builds, emulators, and virtualisation variants (including those engineered to defeat standard detection) are identified before the session is established. Critically, device state can change mid-session. A device that passes an initial check can subsequently load a hooking framework or have an overlay attach. Continuous assessment keeps pace with that, producing an attributable integrity signal at every point in the session lifecycle.

      What this means in practice: The fraud engine, identity platform, and authentication stack can each receive current device state as a live input, not a snapshot from session start.


      02  App integrity: is this binary authentic and running in a clean environment?

      Is the app genuine and unmodified? Is it free from hooking frameworks, code injection, overlay activity, and accessibility abuse? This assessment runs continuously, not just at launch. The overlay that attaches after authentication completes. The hooking framework that loads dynamically three minutes into the session. Continuous monitoring means the session cannot be compromised between checks without the trust signal reflecting it.

      What this means in practice: Security teams gain a continuous record of app runtime state, not just binary analysis. Incident forensics shifts from reconstruction to replay.


      03  Channel integrity: is communication between app and server intact?

      Mutually authenticated, encrypted communication assessed in real time detects man-in-the-middle attempts, rogue network insertion, and TLS interception before any sensitive data moves. This assessment runs as part of the same continuous evaluation, not as a separate tool operating in isolation, so its output is available to the same downstream systems receiving device and app state.

      What this means in practice: Channel compromise is surfaced alongside session state rather than as a separate alert that may arrive after the transaction has already completed.


      04  Session continuity: has the journey remained clean from first contact to final action?

      The most sophisticated attacks do not compromise a session at a single detectable moment. They establish a foothold during onboarding, maintain it through authentication, and activate at the point of highest value. A session integrity score, updated continuously, is available as a live signal at the moment any high-value action is taken. The score reflects the full journey, not just the current moment.

      What this means in practice: High-value transaction authorisation can be conditioned on verified session continuity, not just on the validity of the credential presented at that moment.


      Where Ditto Protect sits in the architecture

      Ditto Protect instruments the mobile runtime as a continuous security observation and enforcement point. It combines app shielding, runtime protection, and session integrity verification in a single architecture, producing a unified trust signal the rest of the stack can consume in real time.

      The trust signal Ditto Protect produces is continuous, structured, and attributable. It is designed to be consumable by downstream systems as a first-class input, giving fraud, identity, and compliance functions a verified foundation to act on rather than an assumption.

      Ditto Protect is part of a broader identity and trust suite covering onboarding, verification, passwordless authentication, and EUDI wallet services. What Protect contributes is the client-side foundation that makes every other element of that suite more reliable. A passwordless authentication completed on a verified device in a clean app session is a materially stronger assertion than one that simply passed the protocol on an unknown endpoint.


      Chapter 05 – The practical case for acting now

      The threat environment is not going to stabilise. Android banking trojan families grew 56% in 2025. More than 1,200 financial apps are currently under active malware campaigns. AI is compressing the cost of synthetic identity creation, app cloning, and overlay framework development simultaneously. Named campaigns targeting specific payment systems and app categories are being documented faster than the reactive, detection-first model can absorb.

      But the urgency is not only about threat velocity. It is about the gap between what the current stack can evidence and what regulators, auditors, and boards are starting to require.

      The evaluation criteria for mobile security tooling are shifting. The questions that defined procurement decisions in previous cycles reflected a market proving basic capability. The questions that matter now reflect a market that has capability and is being asked to demonstrate continuous assurance.

      Questions the stack answered beforeQuestions being asked now
      How many malware families does it detect?Is the trust assessment continuous or point-in-time?
      What is the false positive rate?What can my fraud engine consume from the session in real time?
      How large is the SDK footprint?Can session integrity be evidenced to a regulator without reconstruction?
      How quickly does it respond to a known signature?Does the architecture produce a shared signal or another isolated alert?
      Does it pass the penetration test?What does the app look like to an attacker analysing the binary?

      The fastest way to understand the gap between what your app looks like from the inside and what it looks like to an attacker is to run an automated analysis. The results surface the hardcoded secrets, exposed endpoints, and bypass-prone implementations that define the attacker’s starting point.

      Run the free scan here and get the results in minutes. The conversation about what to do with them can follow from there.

      LI Social
      Enjoyed this article? Share it.

      Sign up to our newsletter

      Stay up to date on our product updates, new case studies, latest blogs, upcoming events, and more.

      You maybe interested in