Application security feature

Mobile camera injection detection

Otukan detects virtual cameras, hooked capture code and emulators during selfie and document capture, so your identity checks know the feed was not genuine.

  • Android
  • iOS
  • Flutter
  • React Native
Injected camera feed is met at the capture path checks boundary before it reaches the appInjected camera feedCapture path checksYour app
  • Trust the source

    Otukan checks that selfie and document frames come from the device's own camera, not from a virtual camera, a video file or rewritten capture code.

  • Integrity beside liveness

    Capture-path signals sit next to your identity provider's liveness and face checks. Each answers its own question, so neither has to guess.

  • Evidence with the upload

    The capture-integrity verdict travels with the images to your backend, where the identity decision is made out of an attacker's reach.

Camera injection routes Otukan handles

Choose an injection route to see how Otukan detects it, what the app does and what your identity backend receives.

Virtual camera apps

  1. Detect

    Otukan recognises a capture source that is not the device's physical camera, such as a virtual camera presented to your app.

  2. Respond

    The capture step stops and the customer is asked to retry on the built-in camera, or the application goes to review, per your policy.

  3. Report

    A virtual-camera flag is attached to the submission your backend forwards for verification.

Hooked camera functions

  1. Detect

    Otukan finds instrumentation attached to the camera and image-processing code inside your app's process.

  2. Respond

    Frames captured while hooks are present are marked untrusted or discarded, per your policy.

  3. Report

    A hooking signal tied to the capture session reaches your server.

Emulated capture

  1. Detect

    Otukan identifies emulators and virtual environments that feed prepared video into an app as if it were live.

  2. Respond

    Onboarding from an emulated device can be refused or routed to manual review.

  3. Report

    An emulator signal lets your backend separate scripted applications from real people.

Modified app builds

  1. Detect

    Otukan confirms that your code and signing identity match the release, so a copy with a swapped capture module is caught.

  2. Respond

    The altered copy is stopped before the capture screen opens.

  3. Report

    An integrity signal tells your backend the images came from a repackaged app.

Compromised operating system

  1. Detect

    Otukan finds root on Android and jailbreak on iOS, the conditions attackers rely on to replace system camera services.

  2. Respond

    Capture continues with a step-up, or the flow moves to an assisted channel.

  3. Report

    Device-integrity context accompanies the submission for your risk rules.

Controls behind camera injection detection

Capture integrity draws on several Otukan runtime controls, each built separately for Android and iOS.

  • Hooking detection

    Spots code injected into the camera pipeline, where attackers replace live frames with prepared images or video.

  • Emulator detection

    Separates physical handsets from virtual devices that stream a video file into the capture screen.

  • Anti-tampering

    Checks the app itself, so a rebuilt copy with a replaced capture component is stopped before your verification step.

  • Android root detection

    Finds the modified-system traces that system-level virtual camera tooling on Android depends on.

  • iOS jailbreak detection

    Flags jailbroken iPhones, where system tweaks can substitute the camera feed an app receives.

  • KYC fraud prevention

    Places capture integrity inside the wider onboarding journey, from install to the final identity decision.

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 it works

  1. Mark capture screens

    We identify the selfie, document and video steps in your onboarding and account recovery flows.

  2. Protect the release

    Otukan fits your existing build and release pipeline, and your signing keys stay with your team.

  3. Check during capture

    Capture-path checks run while the camera is open, not only when the app starts.

  4. Bind verdict to images

    The integrity result is attached to the captured media before it leaves the device.

  5. Decide on the server

    Your backend combines the verdict with liveness and document results from your identity provider.

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 identifies injected camera input before it reaches identity verification. From inside your app, it checks whether the frames reaching your selfie and document capture come from the device’s own camera. It detects virtual cameras, instrumentation attached to capture code, emulators streaming prepared video, modified app builds and compromised operating systems, and attaches that verdict to the images before your identity provider sees them. Checks run while the camera is open and are built separately for Android and iOS. Otukan does not judge whether a face is synthetic or whether a person is who they claim to be: liveness and identity decisions stay with your verification provider.

The difference between the two problems is covered on camera injection versus deepfake detection.

Threat boundary

An onboarding fraudster has two ways to beat a face check. One is to produce a face good enough to fool the model. The other is to skip the camera and hand the app whatever frames they like. Otukan owns the second route.

Injection is about where the frames come from

Injection attacks replace the live camera feed with media the attacker controls: a recorded video of the real account holder, a stolen selfie, a face swap rendered on a laptop. The media can be crude or perfect. What makes it an injection is the path, not the quality. That is why a capture-path check keeps its value as generative tools improve: a flawless synthetic face still has to enter the app through a route that is not the camera.

Deepfake classification answers a different question

Classifiers inspect pixels for signs of synthesis. Liveness checks ask the user to move, blink or turn. Both work on the content, and both assume the content arrived honestly. Otukan supplies that missing assumption.

AttackWhat reaches your appWhere it is caught
Printed photo or screen held up to the lensReal camera frames of a fake subjectLiveness and presentation-attack checks at your identity provider
Synthetic face streamed through a virtual cameraFrames that never passed through the lensOtukan capture-path checks
Recorded video fed through hooked capture codeGenuine-looking frames with a tampered originOtukan hooking and integrity checks
Emulator replaying a prepared fileVideo from a device that does not existOtukan emulator detection

Signal path

A capture-integrity verdict is only useful if it reaches the system that decides. Otukan follows the frames from sensor to server.

On the device

On Android, injection usually relies on a rooted device, a virtual camera app or a framework that rewrites camera calls. Otukan checks the capture source, the process and the system. On iOS, the camera feed is harder to replace, so attacks lean on jailbroken devices and tweaks that hook the capture framework; Otukan concentrates on those. Each platform gets its own checks. Otukan never assumes an Android result holds for iOS.

Alongside the capture

Checks run during the capture session itself, because a hook can attach after launch and a virtual camera can be selected at the last moment. The verdict is tied to the specific media produced in that session, so your backend can reject a verdict reused on another upload.

At your identity provider and backend

The images travel to your backend and on to your identity provider as they do today. The integrity verdict travels with them. Your server can refuse the submission, request a new capture or send the application to manual review before any document or face result is accepted. Hooking detection covers how instrumentation is found.

Where app integrity ends

Buyers get the best result when each party owns a clear question.

QuestionOwner
Did these frames come from this device’s physical camera, in an unmodified app?Otukan
Is the subject a live person in front of the lens?Your identity provider’s liveness check
Is the identity document authentic and unaltered?Your identity provider’s document check
Is this person who they claim to be, and should the account open?Your onboarding and compliance decision

Otukan proves its part with the same discipline your onboarding needs. For each injection route, we reproduce the attack in an authorised lab and confirm the signal. We then run the same journey on a legitimate device and confirm that nothing fires, and repeat install, update, sign-in and the capture flow on each release. Tests with your identity provider are reviewed jointly, and results are recorded with devices, OS versions and the reviewer.

Camera injection detection sits within mobile fraud prevention. The wider onboarding journey is covered on mobile KYC fraud prevention. For claim photos in insurance apps, see insurance application security. For voice steps, voice and audio injection detection checks whether audio comes from the device microphone.

Common questions

  • Is camera injection detection the same as deepfake detection?

    No. Deepfake classification looks at the content of an image and asks whether the face is synthetic. Camera injection detection asks whether the frames came from the physical camera at all. Otukan answers the second question from inside your app. Your identity provider answers the first. Together they close the gap where a convincing fake is streamed straight into the capture screen.

  • Does Otukan replace our liveness or identity verification provider?

    No. Otukan protects the capture path and the app that runs it. Liveness, document authenticity and the decision that a person is who they claim to be stay with your identity provider and your compliance team. Otukan strengthens those checks by telling them whether the media they receive can be trusted as live camera input.

  • What happens to a genuine customer on an older or unusual phone?

    Nothing changes for them unless a capture-integrity signal fires. When one does, you choose the response for that flow: record it, ask for a retry on the built-in camera, or send the application to manual review. Starting in observe mode shows how often signals fire on your real applicants before anything is enforced.

  • Does Otukan analyse or store customer faces?

    No. Otukan looks at the environment and the capture path, not at the biometric content of the images. The captured media flows to your backend and identity provider as it does today, with an integrity verdict attached. What that verdict contains is agreed with your team during the technical review.

On the mobile engineering team?

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

Stop injected video before identity checks

Tell us the platform, the app framework and where camera capture sits in your onboarding or recovery journey. We do not ask for binaries, customer images, signing keys or production credentials.

Or request a technical demo