Application security

Mobile app security for Android and iOS

Otukan protects released Android, iOS, Flutter and React Native apps at code, runtime, data, network and API level, inside the release pipeline you already run.

  • Android
  • iOS
  • Flutter
  • React Native
Five protection layers of a mobile app, from code at the bottom to API at the topAPIRequests reaching your backendNetworkTraffic between app and serverDataStored, in memory, in logsRuntimeThe app while it runsCodeThe package as shipped
  • Five layers, one product

    One product protects your app's code, its running process, its data, its traffic and its API, with controls built for Android and for iOS.

  • Ships with every release

    Protection fits the build and release pipeline you already run. Your signing keys stay with your team, and releases keep their pace.

  • You set the response

    Choose what happens when a threat appears, from recording the signal to ending the session, one user flow at a time.

Threats Otukan handles

Pick a threat to see how Otukan detects it, how your app responds and what your team receives.

Reverse engineering

  1. Detect

    Obfuscated code, protected strings and restructured logic leave a decompiler little to read, and integrity checks notice when protected code is altered.

  2. Respond

    Your business logic, endpoints and keys stay slow to recover; altered copies trigger the response you set.

  3. Report

    Integrity events reach your backend with the session they concern.

Repackaged copies

  1. Detect

    Otukan compares the installed app's code, resources and signing identity with the release you shipped through your channels.

  2. Respond

    Observe, warn, restrict sensitive functions or end the session, according to your policy.

  3. Report

    Your backend receives a tamper signal it can weigh alongside the request.

Hooking and instrumentation

  1. Detect

    Otukan detects instrumentation frameworks and injected code inside the running process, at launch and before sensitive steps.

  2. Respond

    The app applies the action you chose for that flow, such as blocking a payment step.

  3. Report

    A runtime threat signal goes to your backend and your security team.

Debuggers and emulators

  1. Detect

    Otukan recognises attached debuggers and emulated devices while your app runs.

  2. Respond

    Allow in your own test builds; restrict or terminate in production, as you decide.

  3. Report

    Each detection is recorded with its platform context for investigation.

Rooted and jailbroken devices

  1. Detect

    Otukan checks whether the operating system still enforces the platform's security model, with separate checks for Android and iOS.

  2. Respond

    Step up authentication, limit features or continue with monitoring, per flow.

  3. Report

    Device integrity signals feed your fraud and risk decisions.

Scripted clients and bots

  1. Detect

    App attestation gives your backend evidence that a request comes from your genuine app on a genuine device.

  2. Respond

    Your API refuses or challenges requests that cannot show that evidence.

  3. Report

    Attestation results sit next to each request for your API and fraud teams.

Protections in one product

Each layer of your app gets a dedicated control, and the controls reinforce each other.

  • Code obfuscation

    Renames symbols, protects strings and reshapes control flow so your logic stays yours.

  • Anti-tampering

    Confirms the running app is the release you shipped and acts when it is not.

  • Runtime self-protection (RASP)

    Detects hooking, debugging, emulators and modified operating systems while the app runs.

  • Root and jailbreak detection

    Tells your app and backend when a device no longer enforces its platform's security model.

  • Data protection

    Keeps sensitive data out of logs, readable storage and memory, using the platform keystore where it counts.

  • Network hardening

    Protects traffic between app and backend, with a certificate strategy your team can operate.

  • App attestation and API protection

    Lets your backend separate your genuine app from scripts and modified clients.

  • Fraud and malware signals

    Flags risky sessions and malicious apps on the device, and sends the context to your fraud and risk decisions.

How it works

  1. Scope your app

    We map your platforms, frameworks, sensitive flows and the attacks that matter most to your business.

  2. Choose protections

    Select the controls for each layer, scoped separately for Android and for iOS.

  3. Add to your pipeline

    Protection becomes a step in the build and release process you already run; your keys stay with you.

  4. Set your response

    Decide per user flow whether a threat is observed, warned, restricted or ends the session.

  5. Monitor and adjust

    Threat signals reach your backend and security team, so you can tune policy release by release.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Otukan protects your released Android, iOS, Flutter and React Native apps without turning protection into a separate project for every release. It hardens your code, watches the running app for hooking, debugging, emulators and modified operating systems, confirms that the installed copy is the one you shipped, and gives your backend evidence that a request comes from your genuine app. Protection fits the build and release pipeline you already run, your signing keys stay with your team, and you decide how the app responds to each threat, one user flow at a time. Android and iOS each get controls built for that platform.

Protection scope

A released app can be attacked in five places: its code, its running process, its data, its network traffic and its API. Otukan puts a dedicated control on each, so a gap in one layer is covered by another.

LayerWhat attackers tryHow Otukan protects it
CodeDecompile the app, lift logic, extract keys and endpointsCode obfuscation and anti-tampering
RuntimeHook functions, attach debuggers, run on emulators or modified operating systemsMobile RASP, root detection, jailbreak detection
DataRead sensitive data from storage, memory or logsSecure storage with the platform keystore, memory handling, log hygiene
NetworkIntercept or alter traffic between app and backendTransport hardening and a certificate strategy your team can operate
APIImitate the app with scripts, bots and replayed requestsApp attestation and mobile API protection

The layers work as one system. Obfuscation makes runtime checks hard to find and remove. Integrity checks notice when someone strips protection out and re-signs the app. Runtime checks catch attacks on the running process that static protection cannot see. Attestation carries the result to your server, where a modified client cannot argue with it. On top of the layers, fraud and malware signals and threat monitoring show your risk and security teams what is happening to your app in the field.

Android and iOS expose different signals and enforce different rules. Otukan uses controls designed for each platform and scopes every control per OS version with your team, so you know exactly what each release is protected against.

On the network layer, Otukan treats certificate pinning as a decision rather than a reflex. Android’s own guidance cautions against routine pinning, because a certificate change can cut off installed copies of the app. Where pinning is right for you, we plan certificate rotation and outage recovery with you before the release ships.

For combined static and runtime protection, see mobile app shielding.

Delivery model

Protection that slows releases gets switched off. Otukan is built to become a quiet, repeatable step in the way you already ship.

Build inputs

Otukan works with the artefacts you already produce: native Android and iOS builds, and apps built with Flutter and React Native. In cross-platform apps the logic lives in framework code, so Otukan protects that code as well as the native shell. We agree the scope for every artefact you ship, including native libraries and third-party SDKs. Platform specifics are on Android app security and iOS app security.

Signing responsibilities

Your signing keys stay with your team, and Otukan does not ask for them. Before the first protected release we agree, per platform, which certificate each channel delivers. This matters because store-managed signing, such as Play App Signing on Android, changes the certificate the installed app carries, and integrity checks must expect exactly what your users receive. On iOS, App Store builds are re-signed by Apple for distribution, and the checks are set up for that too.

Lifecycle

Protection settings change less often than code, so most releases reuse the same configuration. When an operating system update changes what a runtime check can see, Otukan updates its checks and you carry the change forward in your next release. Your response policy is yours to tune as threat signals come in. For pipeline detail, see mobile DevSecOps and integration.

By industry and app environment

Each industry page covers the fraud patterns and user flows that matter in that sector: banking, fintech and payments, crypto wallets, insurance, ecommerce, healthcare, government services, telecom, superapps, streaming and media, travel and mobility, mobile games and enterprise workforce apps.

Each environment page covers how protection fits that platform or framework: Android, iOS, Swift, Objective-C, Flutter, React Native, Unity, .NET MAUI and Ionic and Cordova. The full list is on supported environments.

How the platform works

Protection runs through your own pipeline: build and release integration, the protection lifecycle with gated handoffs and planned rollback, and release evidence for every protected build. Your team sets responses through security policy management and works with the signals through threat operations. Third-party code is covered by mobile SDK protection, and what Otukan collects is set out on data privacy.

Proof on your own app

You should see protection working on your own app before you commit. Otukan plans the evaluation with your team, on your devices and your user journeys, with pass criteria agreed up front. How to compare protection options on threats, integration, performance and lifecycle is covered on mobile app security evaluation.

  • Compatibility. The protected build installs, updates and runs on the devices, OS versions and frameworks your users have, and your crash reporting stays readable.
  • Performance. Start-up time, app size and your key journeys are measured with and without protection on the same devices, with the method and date recorded.
  • Response policy. Each check is triggered in an authorised lab to confirm the response you chose, then the same journeys run on legitimate devices to confirm nothing fires for real users.

The result is evidence your security, mobile and risk teams can all sign off on. The mobile app security evaluation checklist lists the questions to cover. To turn published industry findings into a test of your own app, see the mobile security index analysis. Performance and compatibility are covered on app protection performance.

If your app is already published, start with a free App Exposure Check: a passive review of the public store release, with findings sent by email to the verified publisher.

Common questions

  • Will app protection slow down our releases?

    It is designed not to. Otukan fits the build and release pipeline you already run, so protection becomes a repeatable step rather than a separate project. Protection settings change less often than code, so most releases reuse the same configuration. Your signing keys stay with your team throughout, and your release owner stays in control of when a protected build ships.

  • Does Otukan cover Flutter and React Native apps?

    Yes. Otukan protects native Android and iOS apps and apps built with Flutter and React Native. Cross-platform apps carry their logic in framework code, so Otukan protects that code as well as the native shell. Android and iOS builds of the same app are still scoped and tested separately, because each platform exposes different signals.

  • How does protection affect app performance?

    Every check has a cost, and Otukan lets you place the heavier protections on the code and flows that matter most. During evaluation we measure start-up time, app size and your key journeys on your own devices, with and without protection, so you decide on real results from your app rather than general figures.

  • Does this replace secure coding or penetration testing?

    It complements them. Secure coding and server-side checks remove weaknesses; penetration tests find the ones that remain. Otukan protects the released app in the hands of users, where attackers can study and modify it, and makes attacks slower and costlier while giving your backend the signal to act.

  • Do we need to share our signing keys or source code?

    No. Signing keys stay with your team, and Otukan does not ask for source code, binaries or production credentials to discuss your requirements. Signing responsibilities are agreed per platform before the first protected release, so integrity checks expect exactly the certificates your users receive.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Protect your next release

Tell us the platform, the app framework and your main requirement. We do not ask for binaries, signing keys or production credentials.

Or request a technical demo