Skip to main content
Secure web and mobile application developmentView service
ARTICLE.READHOME/BLOG
Back to Research
Application Security
October 22, 2026
13 min read

Secure Software Development Lifecycle: Building Security Into Your Apps

A practical secure software development lifecycle for web and mobile apps: threat modelling, secure coding, CI/CD testing and security after launch.

ELST

Enigma Labs Security Team

Enigma Labs

Secure Software Development Lifecycle: Building Security Into Your Apps
secure software development lifecycleapplication securitymobile app securitythreat modellingDevSecOps

Most application vulnerabilities are not exotic. They are missing authorisation checks, secrets committed to a repository, an outdated library nobody updated, or a mobile app that stores tokens where they are easy to extract. Each is cheap to prevent when the decision is made, and expensive to fix once the application is in production and holding customer data.

A secure software development lifecycle (secure SDLC) is the discipline of making those decisions deliberately, by attaching specific security activities to every phase of delivery rather than a single test at the end. Whether you are a CTO running an internal team, a product owner commissioning an agency, or a founder about to ship a first app, the same sequence applies. This guide walks through each phase for web and mobile applications, the standards worth anchoring to, and the questions to ask of whoever builds your software.

Why Security Has to Start at the Requirements Stage

The OWASP Top 10:2025 lists Insecure Design (A06) as its own category and makes the point bluntly: a secure design can still have implementation defects, but an insecure design cannot be fixed by a perfect implementation. If the data model lets any signed-in user request any customer record, no amount of careful coding or late testing will make the product safe.

The major frameworks agree on the remedy. NIST's Secure Software Development Framework (SP 800-218, version 1.1, published in February 2022) organises its practices into four groups: Prepare the Organization, Protect the Software, Produce Well-Secured Software, and Respond to Vulnerabilities. NIST released a draft of version 1.2 in December 2025. CISA's Secure by Design guidance, revised in October 2023, asks software makers to take ownership of customer security outcomes, embrace radical transparency and accountability, and lead from the top.

WARNING
Design Debt Is Security Debt: Flaws in authorisation models, trust boundaries and data flows are the hardest to fix later, because correcting them usually means changing the architecture rather than a few lines of code. Decide them early and write the decisions down.

Write Requirements That Can Be Verified

"The app must be secure" is not a requirement. Useful security requirements are specific enough to pass or fail. The OWASP Application Security Verification Standard (ASVS) provides exactly that for web applications and services: version 5.0.0, released in May 2025, contains around 350 requirements across 17 chapters. For mobile apps, the OWASP Mobile Application Security Verification Standard (MASVS) plays the same role, with eight control groups running from storage and cryptography to resilience and privacy.

ASVS defines three levels. Level 1 is the minimum starting point, Level 2 is the level most applications should be striving for, and Level 3 is for applications that need to demonstrate the highest levels of security. The standard itself suggests that buyers can require a given level from a supplier and ask for proof, which makes it a practical tool for contracts.

Privacy belongs in the same conversation. Article 25 of the GDPR requires data protection by design and by default, so decide now what personal data the application genuinely needs, how long it is kept and who can see it.

TIP
For Buyers: If you are commissioning an application, name the standard and level in the contract, for example ASVS Level 2 for the web platform and the relevant MASVS controls for the mobile apps, and ask for evidence against them at handover rather than a general assurance.

Threat Modelling Before the Architecture Is Fixed

Threat modelling is a structured way of asking what could go wrong before it does. The OWASP Threat Modeling Cheat Sheet recommends doing it early, ideally during design, and maintaining the model as the system changes. It is built around the four questions set out in the Threat Modeling Manifesto.

  1. What are we working on?
  2. What can go wrong?
  3. What are we going to do about it?
  4. Did we do a good enough job?

In practice, the team draws the system, including clients, APIs, data stores, third-party services and the trust boundaries between them, then walks each data flow with a prompt list. STRIDE, which Microsoft uses in its Threat Modeling Tool and the OWASP cheat sheet uses as its main example, is a good place to start.

STRIDE CategoryExample in a Web or Mobile App
SpoofingA stolen session token replayed from another device
TamperingModified API requests that change prices or account IDs
RepudiationAdministrative actions with no audit trail
Information DisclosureVerbose error messages or over-broad API responses
Denial of ServiceUnthrottled login or search endpoints
Elevation of PrivilegeA regular user calling an admin-only endpoint directly

The output is a list of threats, each mapped to a control or an explicitly accepted risk. Keep it alongside the code, and update it whenever a new feature moves a trust boundary.

Secure Design and Secure Coding

Authentication and Authorisation as Core Features

Identity and permission models should be designed, not accumulated. Decide how users authenticate, when multi-factor authentication is required, how tokens expire and are revoked, and how authorisation is checked on the server for every request. The least-privilege thinking behind implementing zero trust security applies inside an application too. If your application will rely on existing corporate identity systems, an identity and access review of those systems is worth doing first.

Data Handling, APIs and Code Review

Validate input on the server, encode output for its context, use parameterised queries, and encrypt sensitive data in transit and at rest. Design APIs to return only the fields each client needs: a response that a mobile app filters on the device is still fully visible to anyone who inspects the traffic. Prefer well-maintained framework features over hand-rolled security code, and require peer review of every change.

Dependencies, Secrets and the Software Supply Chain

Modern applications are mostly third-party code. The OWASP Top 10:2025 ranks Software Supply Chain Failures third (A03), covering compromises in the process of building, distributing or updating software, and recommends tracking transitive as well as direct dependencies and monitoring sources such as the National Vulnerability Database. A workable baseline looks like this.

  • Pin dependency versions and commit lock files so builds are reproducible
  • Generate a software bill of materials (SBOM) with every build and remove unused components
  • Review new dependencies before adopting them, including maintenance activity and licence
  • Keep secrets in a dedicated secrets manager, never in source code, configuration files or mobile app bundles
  • Scope, rotate and isolate credentials for CI/CD, cloud and third-party APIs per environment
  • Protect the build pipeline itself with least-privilege access and mandatory review of its configuration

Building SAST, DAST and SCA Into CI/CD

Automated testing catches known classes of defect on every change. Each tool type sees something different, so they complement rather than replace each other.

Tool TypeWhat It ExaminesTypical StageMain Limitation
SASTSource code for insecure patternsEvery pull requestFalse positives and little insight into business logic
SCAThird-party components against known vulnerabilitiesEvery build and on a scheduleOnly finds publicly known issues
Secret scanningCommits and history for exposed credentialsBefore commit and on every pushA leaked secret must still be rotated
DASTThe running application from the outsideStaging deploymentsCovers only paths it can reach

Start with a small set of high-confidence rules that block the build, and report the rest without blocking. A pipeline that fails on hundreds of low-quality findings teaches developers to ignore it.

Security Testing Before Release

Automated tools are weakest at the vulnerabilities that matter most in custom applications: broken access control, flawed business logic and chains of minor issues. Before a significant release, test the build against the requirements you set at the start. ASVS and MASVS give testers a checklist, and the OWASP Mobile Application Security Testing Guide (MASTG), whose version 2.0.0 was released in June 2026, provides test procedures for Android and iOS.

For higher-risk releases, add an independent manual assessment; our guide on how to prepare for a penetration test covers scoping, test accounts and environments. Either way, findings are fixed before release or documented as accepted risks with a named owner.

Mobile-Specific Concerns for iOS and Android

Mobile apps run on devices you do not control, and the app package can be downloaded, decompiled and modified by anyone. The OWASP Mobile Top 10 2024 reflects this: Improper Credential Usage sits at M1 and Inadequate Supply Chain Security at M2, with Insecure Communication, Insufficient Binary Protections and Insecure Data Storage also on the list.

  • Secure storage: Keep credentials and keys in the platform facilities built for them, such as the iOS Keychain and the Android Keystore system, not in plain preferences or files
  • No embedded secrets: Treat anything shipped in the app bundle as public, and issue short-lived, user-scoped tokens from your backend instead
  • Network security: Use TLS for all traffic; Android apps targeting Android 9 (API level 28) or higher have cleartext traffic disabled by default, so justify any opt-out
  • Privacy: Request only the device permissions a feature needs, in line with the privacy controls MASVS added in version 2.1.0
  • Hardened builds: Disable debugging and sensitive logging in release builds, and add resilience controls where the app protects high-value assets
INFO
Untrusted Client: Treat every mobile app as an untrusted client. Obfuscation and anti-tampering raise the cost of attack, but they do not replace server-side authorisation, which is the control that actually protects your data.

Keeping Applications Secure After Launch

Release is the start of the maintenance phase, not the end of the security work. Vulnerabilities will be disclosed in components you depend on, and the attack surface grows with every integration. Keep dependency monitoring running against production releases, patch on agreed timelines, and monitor security-relevant events with detection that does not rely on known patterns alone, as our comparison of AI and signature-based detection explains. Practise continuous attack surface discovery so forgotten staging environments do not become entry points, publish a way for researchers to report vulnerabilities, and make sure your incident response plan covers a compromised application.

What the Cyber Resilience Act Means for App Makers

If you place software products on the EU market, the Cyber Resilience Act (Regulation (EU) 2024/2847) turns much of this lifecycle into law. It entered into force on 10 December 2024 and its main obligations apply from 11 December 2027, but the Article 14 reporting obligations have applied since 11 September 2026: manufacturers must send an early warning of an actively exploited vulnerability within 24 hours of becoming aware of it, followed by a fuller notification within 72 hours.

Its manufacturer obligations read like a secure SDLC checklist: a documented cybersecurity risk assessment, no known exploitable vulnerabilities at release, secure by default configuration, an SBOM covering at least top-level dependencies, a coordinated vulnerability disclosure policy, and security updates for a support period that must generally be at least five years. A backend service the manufacturer develops, and which its mobile app needs to function, can fall in scope as a remote data processing solution, while the recitals point to the NIS2 Directive, rather than the CRA, for cloud service models such as SaaS. Fines for breaching the essential requirements or manufacturer obligations reach up to EUR 15 million or 2.5% of total worldwide annual turnover, whichever is higher. Our ISO 27001 and NIS2 readiness guide covers the organisational side.

INFO
Check Your Scope: Whether a particular web or mobile application counts as a product with digital elements under the CRA depends on how it is placed on the market and what it connects to. Take legal advice on scope early, because the evidence the regulation expects is easiest to produce when it is built into the lifecycle.

Conclusion: Questions to Ask Before You Commission an App

A secure software development lifecycle is not a product or a single test. It is a set of habits attached to each phase, from verifiable requirements and a living threat model to real testing before release and disciplined maintenance afterwards. If you are commissioning an application, these questions separate a team that builds security in from one that tests for it at the end.

  • Which security standard and level will the application be built and verified against?
  • Will we receive the threat model and a record of the controls implemented against each risk?
  • How are dependencies, SBOMs and secrets managed in the build pipeline?
  • What testing happens before each release, and how are findings resolved or documented?
  • Who monitors, patches and updates dependencies after handover?

This is the approach behind our secure web and mobile application development service. We design, build and deliver applications for the browser, iOS and Android, with threat modelling shaping the architecture, authentication and authorisation built as core features, and every release tested before it ships. You receive working software together with the design record and test evidence needed to maintain it securely after handover. If you already run an application, a cybersecurity audit can assess it before you build on it.

Found this useful?

Apply this to
your environment.

Our team assesses existing systems, responds to incidents, and builds secure applications. Talk to us about the problem you are working on.

01
01 — SERVICE

Assess

Security audits and penetration testing

02
02 — SERVICE

Respond

Incident response and forensic investigation

03
03 — SERVICE

Build

Secure web and mobile application development

No commitment required