SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
Cloud Application Security

CCSP Application Security Awareness: Cloud Development Basics, Pitfalls and the OWASP, API, LLM and CWE Top Lists

20 min readCCSP · Cloud Application SecurityUpdated

Application security awareness is the training and shared knowledge that lets developers, architects and testers recognise and avoid the vulnerabilities they introduce into cloud applications, because the customer's own code stays the customer's responsibility in IaaS and PaaS. CCSP sub-domain 4.1 asks you to advocate it: know which security tasks a development team keeps in each service model, spot the common pitfalls of building for and migrating to the cloud, design training that actually changes what developers write, and know the community vulnerability lists — the OWASP Top 10, ASVS, the OWASP API Security Top 10, the OWASP Top 10 for LLM Applications and the CWE (SANS) Top 25 — well enough to say what each is for and to classify a finding against it.

What you’ll learn
  • Identify which application security tasks stay with the customer's developers in IaaS, PaaS and SaaS
  • Recognise common cloud development and migration pitfalls, and tell security risks apart from cost, legal and performance concerns
  • Design a role-based, finding-driven application security awareness programme that scales with security champions
  • Distinguish awareness lists (OWASP Top 10, API Top 10, LLM Top 10), the ASVS verification standard and the CWE Top 25 ranking, and use each for the right job
  • Choose an ASVS 5.0 level for an application from its risk
  • Classify a described finding into the correct OWASP Top 10:2025, API Security Top 10 (2023) or LLM Top 10 (2025) category by its root cause
  • Explain how the CWE Top 25 is ranked and how CWE differs from CVE

Cloud development basics: what the developer still owns

In every cloud service model except SaaS, the security of the code a customer writes and deploys stays with the customer. The provider secures the layers it runs; the application's input validation, authorization logic, session handling, error handling, libraries and the access settings it gives its own identities are the customer's share. Application security awareness exists because that share is written by developers, and most of the flaws that breach cloud applications are introduced there rather than in the provider's infrastructure.

The split moves with the service model, and developers need to know exactly where it sits for the platform they deploy to:

LayerIaaSPaaSSaaS
Physical data centre, hosts, hypervisorProviderProviderProvider
Operating system and language runtime patchingCustomerProviderProvider
Application code (input validation, authorization, error handling)CustomerCustomerProvider
Third-party libraries packaged with the codeCustomerCustomerProvider
Field-level encryption done by the applicationCustomerCustomerProvider
Identities, access grants and data configurationCustomerCustomerCustomer

Moving an application from IaaS to PaaS therefore changes only the operating-system and runtime row of the table: everything the team writes, bundles or configures stays with it. A common misunderstanding is that "the platform is managed" means "the application is managed".

Cloud development also changes how applications are built: almost everything is reached through APIs (the provider's management APIs and the application's own), infrastructure is defined as code, components are small services that call each other over the network, and deployments are frequent and automated. Each of these widens what a developer must understand — an API is an attack surface, a template is a configuration that can be wrong, and a service-to-service call can no longer assume a trusted network.

Common pitfalls when building for or migrating to the cloud

The common pitfalls are assumptions that held on premises, or that sound reassuring, but that the cloud breaks. The ones the CCSP outline has in mind are:

  • Lift-and-shift trust assumptions. Legacy components often accept unauthenticated calls from any internal address because the data centre perimeter screened callers. Moving them unchanged to IaaS moves the code but not the perimeter it relied on, so components that authenticate nobody become exposed. Of all migration pitfalls this is usually the most significant security risk, because it is a direct, exploitable exposure: anyone who can reach the component can use it, with no further weakness needed.
  • Overreliance on provider certifications. A provider's certifications and attestation reports describe the provider's own controls and the services in their scope. The customer's application code and configuration sit outside that scope, so whatever the provider holds, the application still needs its own security assessment. Risk acceptance does not close the gap either: a risk has to be identified and assessed before anyone can decide to accept it.
  • Not every pitfall is a security pitfall. Migrations raise many genuine concerns — software licence terms written for physical hardware, performance of components that become distant from each other, portability, contractual exit terms. These are legal, cost or performance problems. When the question is specifically about security risk, weigh each concern by whether an attacker could exploit it, and keep the commercial and operational ones for the teams that own them.
  • Insecure defaults left in place. Convenience settings from development — debug modes, sample accounts, permissive sharing, detailed error pages — that ship to production unchanged are a frequent cause of cloud data exposure.
  • Treating integration data as trusted. Data returned by partner APIs, model output and content fetched from URLs is all untrusted input, however reputable its source.

The developer-facing lesson in each case is the same: identify what the old environment or a third party was silently providing, and build that control into the application itself.

How to design an application security awareness programme

An effective application security awareness programme is role-based, driven by the organization's own findings, and carried into daily work by people embedded in the teams. General annual security awareness training for all staff is necessary, but it does not teach developers to avoid the specific flaws they write.

  • Start from evidence. When penetration tests or reviews keep finding the same flaw class (for example, authorization flaws), start by analysing those recurring findings: which flaw classes, in which teams, introduced by which roles. That analysis tells you what to teach and to whom, and gives you a baseline to measure the programme against. Content chosen without it tends to cover what is easy to buy rather than what your developers actually get wrong. Testing tools such as static analysis belong to sub-domain 4.4; they catch flaws after they are written and complement awareness rather than replacing it.
  • Role-based content. Developers, architects, testers, operations staff and product owners need different material: secure coding patterns for developers, design and threat considerations for architects, verification standards for testers, configuration and deployment hygiene for operations.
  • Scale with security champions. Awareness that depends on a handful of central specialists stops growing once their calendars are full. A security champion is a developer in each team, given extra training and a direct line to the central security team, who brings security into design discussions and code reviews as they happen and keeps knowledge current between formal sessions. The model scales with the number of teams instead of the size of the security team.
  • Use the community lists as shared vocabulary. The OWASP and CWE lists below give developers names for the flaws they are learning to avoid, and give the programme a way to map findings to categories and track whether training changes them.
  • Keep it continuous. Feed new findings, incidents and list updates (the OWASP Top 10, API and LLM lists are all revised over time) back into the content.

The vulnerability lists and what each is for

The lists named in the CCSP outline serve different purposes: the OWASP Top 10, the API Security Top 10 and the Top 10 for LLM Applications are awareness documents of risk categories; OWASP ASVS is a verification standard of testable requirements; and the CWE Top 25 (historically published with SANS, hence "SANS Top 25") is a data-driven ranking of weakness types. Choosing the wrong one for a job is a classic mistake.

ResourceWhat it isUse it forNot for
OWASP Top 10 (2025 edition)Awareness document ranking the most critical web application security risk categoriesDeveloper awareness, shared vocabulary, prioritising trainingCertification, contract compliance, acceptance criteria
OWASP ASVS (version 5.0)Catalogue of specific, testable security requirements organised into three levelsRequirements, acceptance criteria, sign-off testing, contractual verificationRaising awareness of broad risk themes
OWASP API Security Top 10 (2023)Awareness list of risks specific to APIsTraining API developers and reviewersA complete API test specification
OWASP Top 10 for LLM Applications (2025)Awareness list of risks specific to applications built on large language modelsTraining teams building chatbots, assistants, RAG and agentsA general verification standard
CWE Top 25 Most Dangerous Software WeaknessesRanking of weakness types, scored from real vulnerability dataRoot-cause awareness: what kinds of coding mistake to avoidA list of requirements to verify against

No one is certified against the OWASP Top 10. OWASP describes it as an awareness document, and there is no Top 10 certification scheme. Because its categories are broad themes rather than requirements, "compliant with the Top 10" has no agreed test. When security has to be measurable — in a contract, a vendor assessment or a release gate — the requirements must be specific and testable, which is the job ASVS was written for.

OWASP ASVS: testable requirements and levels chosen by risk

The OWASP Application Security Verification Standard (ASVS) is a list of detailed, testable security requirements that teams use as a basis for designing, building and verifying applications. Because each requirement can be checked, ASVS works as acceptance criteria, as the scope of sign-off testing before a release, and as the yardstick in a contract or vendor assessment.

ASVS 5.0 (the current version) groups its requirements into three levels, each including the one below:

  • Level 1 — the first layer of defence that every application should meet. ASVS 5.0 notes that Level 1 is not necessarily verifiable by black-box penetration testing alone; some requirements need access to code, configuration or documentation.
  • Level 2 — the level ASVS 5.0 says most applications should be striving to achieve.
  • Level 3 — for applications that must demonstrate the highest level of assurance, such as those protecting the most sensitive data or critical functions.

The standard leaves the choice to the organization: each application's level should come from an analysis of its risk, the sensitivity of its data and what its users expect. The level is a property of the application and what is at stake if it fails, so two applications on the same platform can rightly target different levels.

How ASVS is used in secure coding and in testing is taught in the sibling lessons on applying the SDLC (4.3) and on software assurance and validation (4.4); here the point is knowing what ASVS is and how it differs from the awareness lists.

OWASP Top 10:2025 — the web application risk categories

The OWASP Top 10:2025 ranks ten web application risk categories, each mapped to a set of CWE weaknesses. The 2025 edition reorganised several categories, and the mappings matter because findings are classified by them:

IDCategoryTypical cloud examples
A01Broken Access ControlChanging a record identifier to see another customer's data (insecure direct object reference), force browsing, server-side request forgery (SSRF, CWE-918) now mapped here
A02Security MisconfigurationImproperly configured cloud service permissions such as open storage, insecure defaults, session cookies without Secure/HttpOnly (CWE-614, CWE-1004)
A03Software Supply Chain FailuresA compromised upstream package pulled into the build and shipped to production
A04Cryptographic FailuresWeak or missing encryption of sensitive data in transit or at rest
A05InjectionInput interpreted as code or a query command (SQL, OS command, cross-site scripting)
A06Insecure DesignMissing or ineffective design-level controls
A07Authentication FailuresWeak credential, login and session-identifier handling
A08Software or Data Integrity FailuresUnsigned updates, deserializing client-controlled objects without an integrity check (CWE-502)
A09Security Logging and Alerting FailuresEvents not logged or nobody alerted, so attacks go unnoticed
A10Mishandling of Exceptional ConditionsFailing open when a dependency errors (CWE-636), incomplete rollback of a multi-step transaction

Distinctions that decide the category

  • Authenticated but reaching someone else's data is Broken Access Control, not an authentication failure — the login worked; the per-record authorization check is missing.
  • SSRF has no category of its own in 2025. An application that fetches attacker-chosen URLs (for example, a webhook or image-import feature made to call internal-only addresses) is listed under Broken Access Control. Restricting what the server can reach on the network reduces impact but does not change where the code weakness is mapped.
  • Open cloud storage is Security Misconfiguration. Data reaches unauthorised users, but OWASP explicitly places improperly configured cloud service permissions in A02. A protection that exists but was switched off or left at its default — including missing cookie attributes — is a misconfiguration rather than a cryptographic or design failure.
  • Supply chain vs integrity. A03 covers compromise that enters through the dependency chain and build process (a hijacked maintainer account, an unpinned dependency that pulls a malicious release). A08 is the lower-level failure to verify the integrity of code or data the application trusts, such as unsigned updates or serialized session objects that a client can edit.
  • Exceptional conditions are about how code reacts when something goes wrong. Code that treats an unavailable dependency — a policy engine that cannot be reached, a validation call that throws — as permission to proceed is failing open; the remedy is to fail closed. A multi-step operation that completes its first step, hits an error part-way and leaves the earlier steps in place instead of rolling them back is also A10. Unauthorised access or inconsistent records are the results; the root cause is the error path.

OWASP API Security Top 10 (2023): authorization at three levels

The OWASP API Security Top 10 (2023) is the awareness list for API risks, and cloud applications are mostly APIs. Its categories are: API1 Broken Object Level Authorization (BOLA), API2 Broken Authentication, API3 Broken Object Property Level Authorization (BOPLA), API4 Unrestricted Resource Consumption, API5 Broken Function Level Authorization (BFLA), API6 Unrestricted Access to Sensitive Business Flows, API7 Server Side Request Forgery, API8 Security Misconfiguration, API9 Improper Inventory Management and API10 Unsafe Consumption of APIs.

Three of them are near-twins about authorization, separated by what the caller should not reach:

RiskThe caller reaches…Example
API1 BOLAAnother user's objectA user swaps the invoice number in a download link and receives another customer's invoice
API3 BOPLAFields (properties) of an object it may otherwise accessWriting a field it should not set ("mass assignment", such as adding a role field to its own profile update), or reading fields it should not see ("excessive data exposure", such as returning internal fields and relying on the client not to display them)
API5 BFLAAn operation reserved for another roleA regular user calls the endpoint meant for support managers to approve refunds, and the API carries it out

In every case the caller is authenticated, which is why Broken Authentication (API2) is rarely the answer for these findings.

Resource consumption vs business flows

API4 Unrestricted Resource Consumption is missing limits on what requests consume — compute, bandwidth, storage, or money spent on paid third-party services. OWASP's own scenarios include an endpoint that triggers a paid third-party service, such as SMS or email delivery, on every call with no limit. API6 Unrestricted Access to Sensitive Business Flows is automated abuse of a legitimate flow for its business outcome, such as bots on real accounts reserving every available appointment slot to sell them on, or mass-creating accounts to claim a sign-up bonus — even with no implementation bug and no strain on the service. A useful test: if the attacker wants the flow's result, it is API6; if they are burning resources or cost, it is API4.

Inventory and third-party data

  • API9 Improper Inventory Management is about versions and hosts nobody tracks: a retired API version or a forgotten staging host that is still reachable and never received later fixes. You cannot secure an API you do not know is running. The root cause is the missing inventory: the exposure exists because nobody knows the version is still running.
  • API10 Unsafe Consumption of APIs is trusting data from integrated third-party APIs more than user input — for example, following a partner's redirects blindly or processing its responses without validation, so that a compromise of the partner becomes a compromise of your application. This differs from API7 SSRF, where the attacker controls where the server sends requests.

OWASP Top 10 for LLM Applications (2025)

The OWASP Top 10 for Large Language Model Applications (2025) is the awareness list for applications built on LLMs — chatbots, assistants, retrieval-augmented generation (RAG) and agents that call tools. Its categories are: LLM01 Prompt Injection, LLM02 Sensitive Information Disclosure, LLM03 Supply Chain, LLM04 Data and Model Poisoning, LLM05 Improper Output Handling, LLM06 Excessive Agency, LLM07 System Prompt Leakage, LLM08 Vector and Embedding Weaknesses, LLM09 Misinformation and LLM10 Unbounded Consumption.

Cause vs consequence

Several categories describe a result (Sensitive Information Disclosure) while others describe the cause that produced it. When untrusted text changes what the model does and data leaks as a result, the cause is Prompt Injection. Classify by the weakness that must be fixed, not by the harm.

CategoryWhat it isWhat it is not
Direct prompt injectionThe user's own typed input carries instructions that alter the model's behaviourInstructions hidden in external content
Indirect prompt injectionInstructions hidden in content the model processes — a ticket, an email, a web page, a documentSomething the user typed
Data and Model PoisoningTampering with training, fine-tuning or embedding dataText arriving at run time in a prompt
System Prompt LeakageRevealing the system prompt and whatever sensitive content it holdsMaking the model act on other data

Controls that hold when injection succeeds

  • Excessive Agency (LLM06). An LLM extension or plugin with more functionality, permission or autonomy than its task needs. For example, a scheduling assistant that only needs to read calendars but was given a connector that can also create invoices and change payment details turns any successful manipulation into a financial incident. Measures that make injection less likely are worth having, but none is reliable, so the control that bounds the damage is least privilege on the tools themselves: grant only the functions and permissions the task needs, and require human approval for high-impact actions. Assume injection will happen; limit what the model can do when it does.
  • System Prompt Leakage (LLM07). Treat the system prompt as public: anything placed in it — an API key, internal business rules, details of how permissions work — should be assumed extractable. OWASP's guidance is that the system prompt must not be a security control and must not hold secrets; credentials belong in the application's secret storage, and authorization decisions belong in code outside the model, where a clever prompt cannot reach them.
  • Improper Output Handling (LLM05). Model output passed downstream without validation or encoding — for example, handed to a shell, a database query or a page template, so that generated text becomes executed commands, SQL or script. The crafted request may be an injection, but the weakness to fix is trusting the output. Treat LLM output as untrusted input to whatever consumes it.
  • Vector and Embedding Weaknesses (LLM08). Includes weak access partitioning in multi-tenant vector stores, where embeddings from several customers or permission groups share one store and retrieval does not filter by who is asking — so a user's normal query can pull back content they were never entitled to. The weakness is in how the store is partitioned, not in the data or the prompt. Multi-tenant RAG needs tenant isolation inside the vector store, not just at the application.
  • Unbounded Consumption (LLM10). Uncontrolled inference use — requests that exhaust model capacity, run up pay-per-use inference costs ("denial of wallet"), or query the model at scale to extract its behaviour. Controls are input size limits, quotas and rate limiting. The CCSP outline's commentary on Domain 4 highlights exactly this pairing: input validation and rate limiting against prompt injection and automated resource exhaustion.

CWE Top 25 (SANS Top 25): weakness types ranked from real data

The CWE Top 25 Most Dangerous Software Weaknesses, published by MITRE (and long known as the CWE/SANS Top 25), ranks types of software weakness — such as cross-site scripting, out-of-bounds write or missing authorization — by how common and how severe they are in real vulnerability data. It gives an awareness programme a root-cause view: the kinds of mistake developers should learn to avoid.

TermWhat it identifies
CVE (Common Vulnerabilities and Exposures)A specific vulnerability in a specific named product and version
CWE (Common Weakness Enumeration)The kind of mistake behind vulnerabilities — the weakness type
CVSS (Common Vulnerability Scoring System)A severity score for a vulnerability

How the ranking is built. The CWE Top 25 team takes published CVE records from the CVE Program and uses the root-cause CWE mappings provided by the CVE Numbering Authorities (CNAs) that published them, reviewing and remapping them where needed. Each weakness is then scored by multiplying its normalised frequency in that data by the normalised average CVSS base score of the CVEs mapped to it: the ranking is frequency times severity, computed from real vulnerability records. (OWASP builds its Top 10 differently, combining contributed testing data with a community survey for some categories.)

In the 2025 edition, cross-site scripting held the top position. Because the list is recalculated from new data, exact ranks move between editions; what stays stable is the method and the purpose.

Classifying a finding: a method that works across all the lists

Most questions on this topic describe a finding and ask which category it fits. A reliable way to classify is to separate the root cause from the consequence and then test the near-twin categories against the facts given.

  1. Name the harm, then set it aside. Data disclosure, unauthorised access and runaway cost are usually consequences. Ask what weakness made them possible.
  2. Ask who was trusted that should not have been. A caller with an identifier (object authorization), a role (function authorization), a field (property authorization), a dependency (supply chain), client-supplied serialized data (integrity), a partner API (unsafe consumption), model output (output handling) or a URL (SSRF).
  3. Ask whether the protection existed. If a control is available but switched off or left at its default, it is a misconfiguration. If the code reacts badly only when something fails, it is mishandling of exceptional conditions. If the control was never designed, it is insecure design.
  4. Test each near-twin against every fact. A category fits only if the scenario contains its defining condition. When a stated fact contradicts that condition, rule the category out, however close the harm looks.

Teaching developers this reasoning, rather than memorised lists, is the purpose of the awareness programme: it lets them recognise a new flaw by its cause. Avoiding these vulnerabilities during development (threat modelling, secure coding) is taught in the lesson on applying the secure SDLC (4.3); finding them with testing tools in the lesson on software assurance and validation (4.4); and API gateways, supply-chain assessment and verified components in the lesson on using verified secure software (4.5).

Tip. Questions on this topic are mostly short scenarios that describe a finding — a tester changing an identifier, an open storage container, a crafted email, a flood of prompts — and ask which category of the OWASP Top 10:2025, the OWASP API Security Top 10 (2023) or the OWASP Top 10 for LLM Applications (2025) it fits. The options are neighbouring categories, so you need the precise boundaries between them and the habit of classifying by root cause rather than consequence. Other items ask what each list is for (awareness, verification or weakness ranking), how the CWE Top 25 is scored, how an ASVS level is chosen, which tasks a development team keeps in a given service model, which migration pitfall is the main security risk, and what to do FIRST or BEST when designing developer awareness training.

Key takeaways
  • Except in SaaS, the security of the code you deploy is yours; PaaS moves only the operating system and runtime to the provider.
  • Lift-and-shift moves the code, not the perimeter it relied on; components that authenticate nobody become exposed.
  • A provider's certificate or SOC 2 report covers the provider, not the application you put on it.
  • Build developer training from your own recurring findings, by role, and scale it with a security champion in every team.
  • Top 10 lists raise awareness; ASVS is what you verify and contract against; no one is certified against the OWASP Top 10.
  • ASVS level is a risk decision per application; most should strive for Level 2, the most sensitive for Level 3.
  • In Top 10:2025, SSRF sits under Broken Access Control, open cloud storage and missing cookie flags under Security Misconfiguration, and failing open under Mishandling of Exceptional Conditions.
  • API authorization: wrong object = BOLA, wrong field = BOPLA, wrong operation = BFLA; attacker wants the flow's result = API6, burns resources = API4.
  • For LLM apps, assume prompt injection will succeed: limit agency, keep secrets out of the system prompt, treat output as untrusted, isolate tenants in vector stores and rate-limit inference.
  • CWE names the kind of mistake, CVE a specific flaw; the CWE Top 25 ranks weaknesses by frequency times severity in real CVE data.

Frequently asked questions

Can an application be certified against the OWASP Top 10?

No. OWASP describes the Top 10 as an awareness document of the most critical web application risk categories, and there is no Top 10 certification scheme. To make security measurable in a contract or a release gate, verify the application against an agreed level of the OWASP Application Security Verification Standard (ASVS), which lists specific, testable requirements.

What is the difference between the OWASP Top 10 and OWASP ASVS?

The OWASP Top 10 is an awareness document that ranks broad web application risk categories to educate developers. OWASP ASVS is a verification standard: a catalogue of detailed, testable security requirements in three levels, used as acceptance criteria, for sign-off testing and as a contractual yardstick.

Which ASVS level should a cloud application target?

ASVS 5.0 leaves the choice to the organization, decided per application from its risk, the sensitivity of its data and its users' expectations. Level 1 is the first layer of defence, most applications should be striving for Level 2, and Level 3 is for applications that must demonstrate the highest assurance.

What is the difference between BOLA, BOPLA and BFLA in the OWASP API Security Top 10?

All three are authorization failures for an authenticated caller. Broken Object Level Authorization (API1) lets the caller reach another user's object by changing an identifier. Broken Object Property Level Authorization (API3) lets the caller read or write fields of an object they may otherwise access, such as mass assignment of a role field. Broken Function Level Authorization (API5) lets the caller run an operation reserved for another role, such as an admin function.

What is the difference between direct and indirect prompt injection?

Both are LLM01 Prompt Injection in the OWASP Top 10 for LLM Applications (2025). Direct prompt injection comes from instructions the user types into the application. Indirect prompt injection comes from instructions hidden in external content the model processes, such as a support ticket, an email, a document or a web page.

Where is server-side request forgery in the OWASP Top 10:2025?

The 2025 edition has no separate SSRF category. Server-side request forgery (CWE-918) is mapped into A01:2025 Broken Access Control. The OWASP API Security Top 10 (2023) still lists it on its own as API7.

What is the difference between CWE and CVE?

A CVE record identifies a specific vulnerability in a specific product. A CWE entry describes a type of weakness, the kind of mistake that causes vulnerabilities, such as cross-site scripting or missing authorization. The CWE Top 25 ranks weakness types by combining how often they are mapped to CVE records with the average CVSS severity of those records.

Does a cloud provider's ISO/IEC 27001 certificate or SOC 2 report mean an application needs no security review?

No. Provider certifications and attestations scope the provider's own environment and services. The customer's application code and configuration are outside that scope, so the application still needs its own security assessment, and a risk cannot be formally accepted until it has been assessed.

Source

This lesson covers the "Cloud Application Security" domain of the official CCSP exam guide. Vendors revise their guides — check the source for the current version.

Test yourself on this topic
Practice now

Sign up free to mark lessons complete, bookmark topics and track your exam readiness.

Spotted a mistake in this lesson?