Learn · Mobile app security · Updated

What is mobile application security?

Mobile application security keeps your app, the data on your users’ phones and the APIs behind it safe from attack. It works by checking the app at every step of how it is made: the code, the build, the running app and the version in the store.

Why mobile is its own problem

Your app leaves the building. Your server doesn’t.

  1. 01

    Anyone can open it

    Once it is in the store, anyone can download your app, pull it apart and read what you shipped: keys, endpoints and debug settings.

  2. 02

    Data lives on the phone

    Tokens, caches, logs and backups sit on a device you do not control, next to every other app.

  3. 03

    Every screen calls an API

    Each request can be copied, replayed or changed. The server has to check every one, not trust the app.

  4. 04

    You ship other people’s code

    SDKs and open-source packages run inside your app with the same access as the code you wrote.

OWASP MASVS areasStorageCryptoAuthNetworkPlatformCodeResiliencePrivacy

How it works

One lifecycle. A check at every step.

Security is not one scan before launch. Each step of building an app can let a different problem in, so each step gets its own check. Pick a step to see what can go wrong and what Nandee does about it.

01 · Code · What happens

Every change is a pull request. This is the cheapest place to catch a mistake, before it is copied into a build.

What can go wrong

// LoginService.swift
let apiKey = "sk_live_4f9a"

hardcoded key

What Nandee does

Nandee SAST reads the source on each pull request and flags the key. Nandee Green Agent opens the fix: move the key out of the app and read it from the Keychain.

Point at a product to see where it worksNandeeSASTNandeeDASTNandeeSCANandeeGreen AgentNandeeRed Agent

The five checks, in plain English

Three find it. Two finish the job.

SAST, DAST and SCA find problems in what you write, what you run and what you include. Green Agent writes the fix. Red Agent shows what an attacker could do with what is left.

NandeeSAST

A spell-checker for security bugs in your code.

Short for
Static application security testing
Looks at
Your source code: Swift, Kotlin, Dart, JavaScript
Finds
Hardcoded keys, weak crypto, unsafe storage, injection paths
When
Code, Release
How Nandee SAST works →
NandeeDAST

Tries every door and window of your running app.

Short for
Dynamic application security testing
Looks at
The running app and the traffic it sends
Finds
Broken authorization, cleartext traffic, session problems
When
Test, Run
How Nandee DAST works →
NandeeSCA

Reads the ingredient label on every open-source package you use.

Short for
Software composition analysis
Looks at
Packages, SDKs and their versions
Finds
Known vulnerabilities, risky licenses, outdated SDKs
When
Build, Release, Run
How Nandee SCA works →
NandeeGreen Agent

Writes the fix, ready for your developers to merge.

Short for
AI remediation
Looks at
Each confirmed finding and the code around it
Finds
A pull request with the change and why it fixes the issue
When
Code, after any finding is confirmed
How Nandee Green Agent works →
NandeeRed AgentEarly access

Connects small weaknesses the way a real attacker would.

Short for
AI penetration testing
Looks at
The whole app and its APIs, the way an attacker sees them
Finds
Chains of small issues that add up to a real breach
When
Test, Run
How Nandee Red Agent works →

One finding, start to finish

From one bad line to a proven fix.

Here is how a single hardcoded key moves through the lifecycle, from the line that caused it to the test that proves it is gone.

  1. 01 · FoundNandeeSAST

    Found in the code

    let apiKey = "sk_live_4f9a"

    SAST flags a live key written into the app, where anyone who downloads it can read it.

  2. 02 · TriagedHigh

    Checked and ranked

    reachable: release build
    exposed:   yes

    The finding is confirmed as real and in the release build, so it goes to the top of the list.

  3. 03 · FixedNandeeGreen Agent

    Fixed in a pull request

    - let apiKey = "sk_live_4f9a"
    + let apiKey = try Keychain.read("api")

    Green Agent writes the change and explains it. A developer reviews and merges it.

  4. 04 · ProvedNandeeDAST

    Proved in the running app

    key in binary:  no
    re-test:        pass

    The next build is tested again, so you can show the fix worked, not just say it.

Questions

Common questions

Is mobile app security different from web app security?

They share a lot: both need secure APIs, authentication and safe handling of data. The difference is that a mobile app is installed on a device you do not control. Anyone can download it, pull it apart and read what you shipped, and the app keeps data on the phone itself.

What is the difference between SAST and DAST?

SAST reads your code without running it, like a spell-checker for security bugs. DAST runs the app and tests how it behaves. Each catches problems the other misses, which is why mobile app security testing (MAST) uses both.

What is SCA, and why does it matter for mobile apps?

Software composition analysis lists the open-source packages and SDKs inside your app and checks them for known vulnerabilities and license issues. Mobile apps often ship more third-party code than first-party code, so this is where many issues come from.

Which standard should we follow?

The OWASP Mobile Application Security Verification Standard (MASVS) is the most widely used. It groups requirements into eight areas: storage, crypto, authentication, network, platform, code, resilience and privacy. The OWASP Mobile Application Security Testing Guide (MASTG) explains how to test each one.

Do we need all five checks?

They cover different parts of the lifecycle. SAST and SCA cover what you write and what you include. DAST and Red Agent cover how the running app behaves. Green Agent turns what they find into fixes. Start where your biggest risk is, and add the rest as you grow.