Application security feature

DNS and connection integrity

Otukan checks that your Android and iOS app's hostnames resolve and connect to servers you declared, flags redirection and keeps the app available.

  • Android
  • iOS
  • Flutter
  • React Native
Redirected hostnames is met at the resolution checks boundary before it reaches the appRedirected hostnamesResolution checksYour app
  • The right destination

    Otukan checks that the names your app looks up resolve and connect to servers you operate, before sign-in or payment data leaves the device.

  • Redirection made visible

    Altered resolver settings, rewritten host entries and unexpected endpoints become signals your backend and security team can act on.

  • Built for moving backends

    Content delivery networks, regional endpoints and planned DNS changes are declared up front, so legitimate moves are not mistaken for attacks.

Redirection paths Otukan watches

Choose a path to see how Otukan notices it, what the app does and what reaches your team.

Spoofed answers on hostile Wi-Fi

  1. Detect

    Otukan compares where a protected hostname resolved against the endpoints you declared for it.

  2. Respond

    Requests to an undeclared destination are held, and the app retries once the network changes.

  3. Report

    The hostname, network type and platform are recorded with the event.

Rewritten host entries

  1. Detect

    On rooted Android devices and jailbroken iOS devices, Otukan checks for local overrides that point your hostnames elsewhere.

  2. Respond

    Sensitive flows follow your policy for a modified device, from observe to restrict.

  3. Report

    A local override signal travels with the next request your backend receives.

Resolver changed by a profile or app

  1. Detect

    On Android, Otukan reads whether a private DNS server or VPN-based resolver is active. On iOS, where apps see less system configuration, it judges resolution by where lookups land.

  2. Respond

    The app continues or asks the user to switch networks, depending on the flow.

  3. Report

    Resolver changes are reported separately from interception, so each gets the right owner.

Hooked lookup functions

  1. Detect

    Runtime checks spot instrumentation attached to the functions that resolve names or open sockets inside the app.

  2. Respond

    Sensitive calls are restricted or the session ends, per your policy.

  3. Report

    A lookup tampering signal reaches your backend with the session.

Connection to an unknown endpoint

  1. Detect

    Otukan confirms that the server reached for a protected hostname is one of the endpoints you declared.

  2. Respond

    The request is not sent to an endpoint outside the declared set.

  3. Report

    Your team sees unknown endpoints by hostname, which also exposes stale configuration.

Connection integrity in Otukan

Destination checks for name resolution and connection set-up, and the controls beside them.

  • Declared endpoints

    Each protected hostname carries the set of destinations your team expects, maintained alongside your server changes.

  • Local override checks

    Looks for host-file and resolver changes that a modified device uses to steer your traffic.

  • Lookup tampering detection

    Finds hooking of the app's resolution and socket code, where redirection can be injected without touching the network.

  • TLS session protection

    Keeps the session that runs over a verified connection tied to that connection and that device.

  • Connection hardening

    Sets the protocol and validation terms a connection must meet once it reaches the right server.

  • Proxy and VPN risk

    Adds context about proxies and tunnels that sit between the device and its resolver.

You choose the response

Set a response for each user flow. Start by observing, then tighten flow by flow as the signals prove themselves.

Observe

Signal sent to your backend

Rolling out a new policy and measuring real-world signals.

Warn

This device looks modified. Continue with care.

Conditions some genuine users create, such as developer settings.

Restrict

Payments are unavailable on this device.

Payments, stored data and account changes.

Terminate

Session closed for your security.

Clear tampering on a high-risk flow.

How connection integrity is rolled out

  1. List the hostnames

    Record every name the app resolves and mark the ones that carry sensitive traffic.

  2. Declare the endpoints

    Agree the expected destinations for each protected name with the team that runs DNS.

  3. Observe in the field

    Ship with observe mode and compare real resolutions with the declared set.

  4. Rehearse a DNS change

    Move one hostname to a new endpoint on a test build and confirm nothing breaks.

  5. Enforce per flow

    Switch on responses for sensitive flows once field results match expectations.

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 checks where your app’s sensitive requests are going and flags any that would reach somewhere other than your servers. It checks that protected hostnames resolve and connect to endpoints you have declared, looks for resolver changes and local overrides on the device, and detects hooking of the app’s own lookup code. Moving backends and enterprise networks are declared before enforcement, and when a check fails the app holds the sensitive request instead of sending it to an unknown server. This control covers where a connection goes; protocol strength and key pinning are separate controls on Android and iOS.

This control sits inside network protection.

Trust boundary

Redirection happens before encryption has a chance to help. Separating the layers shows where connection integrity works.

LayerThe questionWho answers it
Name resolutionDid this hostname resolve to one of our endpoints?Connection integrity, on the device
Connection set-upIs the socket open to the endpoint we expected?Connection integrity, on the device
Transport validationIs the channel strong and the certificate valid for this name?Platform TLS, tightened by connection hardening
Server identityDoes the server hold the key we declared?Certificate pinning, for selected domains
App identityIs a genuine app on a genuine device calling?App attestation, verified by your backend

Hostile intermediaries

A rogue access point can answer lookups with its own addresses. A malicious app or profile can change the resolver the device uses. On a rooted or jailbroken device, a local entry can send one hostname anywhere. Each of these leaves a trace at a different layer, and Otukan checks each layer separately.

On Android and on iOS

On Android, Otukan looks at how the app’s own requests resolve, whether a private DNS setting or a VPN-based resolver is in the path, and, on rooted devices, whether local entries override your hostnames. On iOS, apps see less of the system configuration, so Otukan concentrates on where the app’s own connections land against your declared endpoints, on whether a VPN or proxy configuration is active, and on local overrides that a jailbreak makes possible. Each platform has its own checks and its own test cases.

App and backend identity

Reaching the right server is necessary, not sufficient. Your backend still decides whether to trust the caller, using Otukan runtime signals and, where you use it, attestation. For that side of the boundary, see mobile app attestation.

Lifecycle

Legitimate change looks like redirection unless you plan for it.

Endpoint and certificate changes

Backends move: a new region, a new content delivery network, a replacement load balancer. Each protected hostname has a declared set of destinations, updated before your infrastructure team makes the move. Certificate renewals on the same endpoints do not affect these checks; certificate trust is handled by the transport and pinning controls.

Network transitions

When a device switches from Wi-Fi to mobile data, cached answers from the old network can linger. Otukan re-checks protected hostnames after a network change instead of trusting a lookup made somewhere else.

Approved enterprise resolvers

Corporate networks often run their own resolvers and split DNS, so an internal name resolves differently at the office. Your team declares these as approved exceptions per hostname, and they are tested before enforcement.

Availability

A check that blocks the only route to your backend becomes an outage. Otukan settles failure behaviour first.

Failure handling

When a protected hostname resolves outside the declared set, the request is held and the event is recorded. Browsing and content that carry no sensitive data can continue.

Fallback

The app does not fall back to an undeclared destination for a sensitive request. It re-resolves on the next network change, retries against declared endpoints or asks the user to move to a trusted network.

Recovery

Each hostname can also be switched back to observe mode on its own, so a problem with one endpoint does not force enforcement off for the rest of the app.

Events arrive grouped by hostname and network type. Many failures on one hostname after an infrastructure change point to a missing declaration; scattered failures on public networks point to redirection. Before enforcement, Otukan works with your team to reproduce each redirection path in an authorised lab, repeat the same journeys on legitimate networks, and rerun install, update, sign-in and your most sensitive flow, recording versions, devices and the reviewer.

For interception on a connection that did reach the right name, see man-in-the-middle prevention.

Common questions

  • Is this the same as certificate pinning?

    No. Pinning asks whether the server proves the key you declared once a connection is open. Connection integrity asks an earlier question: did the name lead to one of your servers at all. The two work together. Integrity catches redirection that happens before any certificate is shown, including local overrides on a modified device, and pinning catches a server that answers with the wrong key.

  • Our backend moves between regions and providers. Will that trigger alerts?

    Not if the move is declared. Each protected hostname has an expected set of destinations, which can include regional endpoints and content delivery networks. When your infrastructure team plans a change, the new endpoints are added first. Rehearsing one change on a test build before enforcement shows exactly how the app behaves.

  • Do Android and iOS expose the same DNS information?

    No. Android lets users set a private DNS server system-wide, and apps see resolution through the platform's networking stack. On iOS, encrypted DNS settings usually arrive through a configuration profile or an app with network extension rights, and other apps see little of that configuration. Otukan builds and tests its checks separately for each platform rather than assuming the same signals exist on both.

On the mobile engineering team?

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

Make every hostname lead home

Tell us the platform, the framework, the hostnames your app depends on and how your backend is served, for example through a content delivery network or regional endpoints. We do not ask for private keys, DNS credentials, binaries or production credentials.

Or request a technical demo