Mobile threat modelling and secure architecture
You assess a mobile system at design time: assets and trust boundaries, device, app, network and backend threats, and architecture decisions and security requirements for offline work, payment and identity flows.
Level 401 · 18 lessons · 15 practice labs
Lessons
Building the model
- Assets, actors and trust boundaries
- Drawing data flow diagrams for mobile
- Attacker profiles: lost device, malicious app, network, the user themselves
- Applying STRIDE to mobile
- Ready-made threat lists: MASVS, ATT&CK Mobile, earlier findings
- Short task: draw the data flow diagram of a food ordering app and mark its trust boundaries
Architecture decisions
- Thin client or offline-first: where the data lives
- Identity architecture: tokens, device binding, step-up
- Key management architecture: on device, on server, in hardware
- Payment and high-risk flows
- Notification and SMS design: carrying no confidential data
- Short task: write the data protection design for a field app that works offline
Deciding and tracking
- Risk rating and the treatment decision
- From threat to requirement, from requirement to test
- Bringing third-party SDKs into the model
- Keeping the model alive: review on every major change
- Short task: rate a ten-threat table and write a requirement for each
Capstone
- Capstone: prepare the threat model and architecture advice document for a digital wallet
Practice labs
- List the assets and actors of an ordering app: Write the assets to protect and the actors for a food ordering app.
- Draw a data flow diagram and mark trust boundaries: Draw the diagram with a text-based tool, covering the app, backend, payment provider and push service.
- Add third-party SDKs to the diagram and assess their effect: Add the data flows of analytics and map SDKs and write the new trust boundaries and risks.
- Write the STRIDE threats for one flow: Produce one threat from each of the six categories for the login flow.
- Build a threat list by attacker profile: Write two threats each for a lost device, a malicious app and a network attacker.
- Complete the model with ready-made threat lists: Find and add the threats missing from the model using the MASVS and ATT&CK Mobile lists.
- Decide where the data lives: Write which data stays on the device and which on the server for a catalogue app.
- Write the data protection design for an offline field app: Write the local encryption, key and sync design for Demirsu Enerji's meter reading app.
- Design a step-up flow for a high-risk transaction: Define the flow with device binding and extra verification for a money transfer, and the data notifications must not carry.
- Rate five threats by likelihood and impact: Fill in the given table.
- Rate ten threats and write requirements: Add a treatment decision and a testable requirement to each threat.
- Tie requirements to tests: Set the verification method, owner and release gate for ten requirements.
- Update an existing model for a new feature: Update the diagram and threat list for a newly added pay-by-QR feature.
- Write an architecture advice note: Write the proposed design change, with reasons, for three high risks.
- Prepare the threat model and advice document for a digital wallet: Deliver the diagram, threat table, requirements and architecture advice for the Yelkovan Bankası wallet.
About this course
You assess a mobile system at design time: assets and trust boundaries, device, app, network and backend threats, and architecture decisions and security requirements for offline work, payment and identity flows.
What you will learn
- Building the model
- Architecture decisions
- Deciding and tracking
- Capstone
Prerequisites
You should have practised the topics of the same path up to level 301.
Lab environment
Lessons run in your own Kali Linux terminal that opens in the browser. Nothing to install; the lab starts clean in every lesson.
Frequently asked questions
- Is this course right for my level?
- The course is at level 401; it assumes you know the topics of the lower-level courses.
- Is there anything to install?
- No. Every lesson runs in your own lab environment that opens in the browser.
- How do lessons work?
- Each lesson has 8 to 10 steps and a short quiz. Early steps show the command to type, later steps give less help; if two attempts fail, the solution opens.
- Can I try it for free?
- Yes. The first three lessons of every course are free.