TL;DR: Cloud-native development, open-source dependencies, and AI-generated code are widening the application security attack surface, while end-of-cycle scans and fragmented workflows fail to keep pace, according to Veracode. The practical shift is toward secure SDLC controls, package screening, dependency visibility, and developer-first enforcement that reduce risk without slowing delivery.
At a glance
What this is: This is a cloud application security guide arguing that modern SDLC risk now spans code, dependencies, containers, IaC, and runtime, with prevention and unified governance as the central response.
Why it matters: It matters because IAM, NHI, and broader security teams increasingly have to govern secrets, service access, and software supply chain exposure across developer workflows, not just at production boundaries.
By the numbers:
- Only 44% of developers are reported to follow security best practices for secrets management, exposing a significant developer behaviour gap.
👉 Read Veracode's guide to application security in the cloud
Context
Application security in the cloud now fails when teams treat code review, dependency control, and runtime protection as separate problems. The article’s primary point is that cloud-native delivery has made the SDLC a single risk surface, where malicious packages, transitive dependencies, containers, IaC, and hardcoded secrets all interact. For identity and security programmes, that means access governance must extend into build systems, developer tooling, and machine-to-machine trust.
The identity angle is genuine here because modern cloud AppSec depends on controlling secrets, service accounts, tokens, and deployment permissions as much as scanning code. When teams rely on reactive gates and fragmented tools, they lose the ability to govern non-human identities embedded in pipelines. That is typical of organisations modernising fast, but still using control models designed for slower release cycles.
Key questions
Q: How should security teams implement secure SDLC controls across modern delivery pipelines?
A: Start by defining security requirements at design time, then enforce code scanning, dependency review, and verification before release. Pair those controls with ownership, so each defect has a named team and response path. The goal is not to slow delivery, but to prevent insecure code and risky dependencies from reaching production unchecked.
Q: Why do malicious packages keep bypassing software supply chain controls?
A: They bypass controls because build systems often trust registry names, default resolution paths, and automation permissions more than they trust human review. When a pipeline can fetch packages automatically, typosquatting, dependency confusion, and repo-jacking exploit that trust. Strong source authentication and allowlisting are what change the outcome.
Q: What breaks when dependency visibility is missing in application security programmes?
A: Teams lose prioritisation, because findings from code, containers, and open-source libraries cannot be correlated into one risk picture. That leads to noisy scanning, late fixes, and a false sense of control while exploitable dependencies remain buried.
Q: Who is accountable when cloud AppSec controls fail in the SDLC?
A: Accountability should sit with the teams that own the pipeline policy, not only with the security scanner. When secrets, build permissions, and package trust are embedded in delivery, ownership has to include engineering, platform, and security leadership.
Technical breakdown
Why cloud appsec breaks when the SDLC is fragmented
Cloud-native development increases the number of trust boundaries inside the delivery pipeline. Code now depends on open-source packages, generated code, IaC templates, containers, and CI/CD systems that all carry security assumptions. If each stage uses a separate scanner or policy, risk becomes hard to correlate and easier to miss. Reachability analysis helps distinguish theoretical issues from exploitable ones, but only if dependency context is unified across the pipeline. The real technical problem is not lack of findings. It is lack of sequencing, context, and ownership across build, test, and release stages.
Practical implication: Consolidate code, dependency, container, and IaC signals into one risk view before relying on any single gate.
How malicious packages exploit trust in open-source ecosystems
Malicious packages work because package registries are built for speed and reuse, not adversarial verification. Typosquatting, dependency confusion, dependency hijacking, and package hallucinations all aim to get attacker-controlled code into trusted developer workflows. Once a build process resolves the wrong package, the attacker can steal data, plant backdoors, or persist through normal update cycles. The danger increases when internal package naming, version discipline, and approval workflows are weak. In practice, the package layer is an identity and trust problem as much as a code-quality problem, because the build system has to decide which publisher to trust.
Practical implication: Use package allowlisting, namespace protections, and provenance checks before packages reach the build resolver.
What secure SDLC automation changes in cloud AppSec
Secure SDLC automation shifts security from a final inspection step to a control fabric embedded across IDE, CI/CD, staging, and production. That includes SAST for first-party code, SCA for open-source dependencies, DAST for runtime exposure, and policy-as-code to enforce consistent decisions. The architecture only works if feedback is developer-friendly and exception handling is explicit, time-bounded, and auditable. Automated SBOM generation and governance dashboards add the evidence layer needed for compliance and executive reporting. The technical goal is not more scanning. It is faster, more precise control over what is allowed to move through the release pipeline.
Practical implication: Automate policy enforcement in the pipeline and require auditable exception workflows for every deviation.
Threat narrative
Attacker objective: The attacker wants to gain trusted execution inside software delivery pipelines so they can steal data, persist in builds, or seed future compromise.
- Entry begins when attackers place malicious code into package ecosystems through typosquatting, dependency confusion, or compromised maintainers.
- Escalation occurs when build systems pull the wrong dependency or accept a package with hidden malicious behaviour inside trusted pipelines.
- Impact follows as the malicious package exfiltrates data, introduces backdoors, or disrupts software delivery across downstream environments.
NHI Mgmt Group analysis
Cloud appsec has become a governance problem, not a tooling problem. Fragmented scanners can produce more findings without improving control, because the organisation still lacks a single policy model across code, dependencies, containers, and runtime. That makes prioritisation the real control gap. NIST CSF and CIS Controls both point toward coordinated protection, not isolated checks. Practitioners should treat unified risk governance as the primary design requirement, not an optional reporting layer.
Secrets and machine access are now part of the cloud AppSec boundary. The article mentions hardcoded secrets and CI/CD controls, which means the identity layer is already embedded in the security problem. In practice, secrets, tokens, and service credentials function as non-human identities inside delivery systems, even when teams do not label them that way. That is where NHI governance adds value: it forces ownership, rotation, and exception handling into software delivery instead of leaving them implicit. Practitioners should map pipeline credentials to explicit lifecycle controls.
Developer-first enforcement: security only scales when control decisions move into the workflow where code is created and changed. IDE feedback, ChatOps alerts, policy-as-code, and automated fixes reduce the gap between detection and remediation. Without that workflow integration, teams accumulate risk faster than they can close it. NIST 800-53, especially configuration and access-related controls, fits this model when paired with automation. Practitioners should optimise for fast corrective action, not for larger review queues.
Supply chain exposure is now the default cloud AppSec failure mode. Malicious packages, transitive dependencies, and generated dependencies from AI-assisted coding all widen the trust boundary beyond first-party code. Dependency trust gap: the hidden risk is not just what developers write, but what their tools silently resolve and execute. That concept matters because it names the control failure directly. Practitioners should validate upstream provenance and policy before code ever reaches production.
What this signals
Cloud AppSec programmes should expect the control centre of gravity to move upstream into developer tooling and build policy. That means teams need to measure whether package trust, secrets handling, and pipeline permissions are governed before release, not merely observed after deployment. The more cloud-native the delivery model becomes, the more security outcomes depend on policy consistency across the SDLC.
Dependency trust gap: this is the practical failure mode that emerges when organisations trust package ecosystems, generated code, and CI/CD automation without provenance checks or explicit ownership. It affects both software integrity and identity governance because secrets, tokens, and service accounts are often the execution path for compromise. Teams should prepare for a future in which pipeline credential governance is treated as part of AppSec, not as an adjacent IAM task. See the OWASP Non-Human Identity Top 10 for the credential and lifecycle risks that map directly to this problem.
For practitioners, the next wave of cloud AppSec maturity will be measured by how quickly they can close the gap between detection and remediation. Unified risk scoring, automated pull requests, and auditable exceptions will matter more than the number of tools deployed. For broader controls context, align operating models with NIST SP 800-53 Rev 5 Security and Privacy Controls and use the 52 NHI Breaches Analysis to understand how weak machine-credential governance turns into repeatable compromise.
For practitioners
- Build a single cloud AppSec policy layer Unify SAST, SCA, DAST, container scanning, and IaC checks into one prioritisation workflow so teams can see which issues are actually exploitable and who owns them.
- Block risky packages before resolution Use package firewall rules, namespace protections, and provenance checks to stop typosquatting, dependency confusion, and hijacked packages from entering the build system.
- Treat pipeline credentials as governed non-human identities Inventory secrets, tokens, and service accounts used in CI/CD, then tie each one to ownership, rotation, and exception expiry so build access is not permanent by default.
- Automate developer-friendly remediation Push policy feedback into IDEs, CLIs, and ChatOps channels, and use auto-generated pull requests for safe fixes so developers do not have to leave their workflow to remediate.
- Instrument SBOM and exception reporting for governance Generate SBOMs in standard formats and keep time-bounded exception workflows auditable so security leaders can evidence control effectiveness to compliance and executive stakeholders.
Key takeaways
- Cloud application security now fails when teams treat code, dependencies, and runtime as separate governance problems.
- Malicious packages succeed because package trust, pipeline automation, and identity controls are often not governed as one system.
- Practitioners need policy-as-code, provenance checks, and pipeline credential governance to reduce supply chain and secrets risk.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK and OWASP Non-Human Identity Top 10 address the attack and risk surface, while NIST CSF 2.0, NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| MITRE ATT&CK | TA0006 , Credential Access; TA0009 , Collection; TA0010 , Exfiltration | The article’s malicious package scenario maps to credential theft and downstream exfiltration. |
| NIST CSF 2.0 | PR.IP-3 | Secure SDLC and change governance are central to the article’s control model. |
| NIST SP 800-53 Rev 5 | CM-8 | SBOM generation and inventory visibility directly align to system component management. |
| CIS Controls v8 | CIS-16 , Application Software Security | Application software security is the article’s primary operational focus. |
| OWASP Non-Human Identity Top 10 | NHI-03 | Pipeline secrets and service credentials are non-human identities that need lifecycle governance. |
Map supply chain threats to credential access and exfiltration tactics, then validate package provenance before execution.
Key terms
- Secure SDLC: A Secure SDLC is a software development process that embeds security into each lifecycle phase instead of treating it as a final check. It requires requirements, design, code, testing, deployment, and maintenance to all include controls that reduce vulnerabilities, supply chain exposure, and release-path abuse.
- Software Bill of Materials: A software bill of materials is an inventory of the components and dependencies used in an application. It helps teams identify what they shipped, but it becomes most useful when paired with source verification, signature checks, and policy enforcement for third-party code.
- Package Firewall: A package firewall is a control that screens software dependencies before they enter the development pipeline. It can block known malicious packages, enforce policy on component provenance, and reduce the chance that build systems ingest attacker-controlled code.
- Dependency Confusion: Dependency confusion is a supply chain attack where a build system is tricked into pulling a malicious public package instead of a private internal dependency. It succeeds when naming, registry priority, and trust rules are not tightly controlled.
What's in the full article
Veracode's full article covers the operational detail this post intentionally leaves for the source:
- Step-by-step guidance on building a secure SDLC across IDE, CI/CD, staging, and production.
- Operational examples of package firewall policy, exception workflows, and policy-as-code enforcement.
- Practical details on SBOM generation, compliance reporting, and developer-first remediation flows.
- A worked view of how to combine SCA, SAST, DAST, and governance dashboards in one programme.
Deepen your knowledge
NHI Foundation Level course, the industry's only accredited NHI security programme, covers NHI governance, machine identity security, IAM, and secrets management. It helps security practitioners connect identity control to the delivery systems where modern risk is created.
Published by the NHIMG editorial team on August 2, 2026.
NHI Mgmt Group — the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org