Application Security Fundamentals
Application security is the practice of finding and fixing vulnerabilities in software throughout its lifecycle. It covers threat modeling, secure coding, testing for common weaknesses, and integrating security checks into development and deployment processes.
itOffensive security and application security | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — Application Security Fundamentals
Somewhere between "we should probably look at security" and an actual program sits a fair amount of dread, mostly because the phrase gets used to mean everything from a firewall rule to a two-year cultural overhaul. Here is the useful version: application security is keeping what the software actually does aligned with what it is supposed to do, from the first design decision through the day someone finally retires it.
Before this had a name, the alternative was a review at the end: ship the thing, then have someone poke at it, then patch whatever they found. That works about as well as proofreading a book by reading the last page. The field's whole argument is that the earlier a decision gets checked, the cheaper the fix and the fewer surprises reach production.
Two ideas carry the rest. First, an application is not its source code — it's code plus data, identities, dependencies, build pipeline, deployment environment, and whoever operates it afterward. Second, everything of interest happens at a trust boundary: any point where data or authority crosses from one component to another that trusts it less. A browser calling your API crosses one. So does a third-party package landing in your build. Most of this course is really about naming those crossings and deciding, on purpose, what's allowed to happen at each.
The surprise is that "make it secure" is not a requirement, it's a wish — unfalsifiable, and useless to a developer trying to know when they're done. The fix the field settled on is embarrassingly literal: say who, doing what, to what, under which condition, with which outcome. "The server denies invoice download unless the requester owns the invoice or holds the billing-administrator role" can be tested. "The application must be secure" cannot. A surprising amount of this discipline is just that translation, done consistently, at every boundary that matters.
The other surprise: none of the frameworks this course leans on — OWASP's requirement catalog ASVS, its program maturity model SAMM, or NIST's development framework SSDF — tells you which application to fix first. They describe what good looks like once you're working on the right thing. Picking the right thing is a business call nobody outsources, and skipping it is how a team ends up with a beautifully verified internal tool and an unexamined payment flow.
Worth knowing going in: even organizations that take this seriously score low on the parts you'd expect to matter most — verification consistently lags every other area industry-wide, and champions programs die quietly when nobody protects the time promised for them. None of that is an argument against doing the work. It's the argument for expecting the gap between the framework and the calendar, and planning for it.
Start at the Cheatsheet for the vocabulary and the control map, the Slides for the shape of the whole lifecycle in one pass, and Field Notes for where the gap between the paperwork and the practice actually shows up.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://csrc.nist.gov/projects/ssdf
Supports
- SSDF practices organized as Prepare the Organization, Protect the Software, Produce Well-Secured Software, and Respond to Vulnerabilities
- Outcome-based and risk-based use of SSDF rather than a fixed checklist
- Security requirements, protected development environments, third-party component verification, and provenance tasks
- Lifecycle feedback and root-cause action for residual vulnerabilities
- https://csrc.nist.gov/pubs/sp/800/218/final
Supports
- NIST SSDF version 1.1 as a core set of practices integrated into each software development lifecycle
- Reduction of released vulnerabilities, mitigation of residual vulnerability impact, and prevention of recurrence
- Shared vocabulary for software producers, purchasers, and consumers
- Claims and quiz answers about lifecycle scope, component protection, response, and root-cause improvement
- https://csrc.nist.gov/glossary/term/risk
Supports
- Risk as a function of adverse impact, likelihood, and context
- The risk definition and prioritization language in the introduction and glossary
- https://csrc.nist.gov/glossary/term/threat
Supports
- Threat as a circumstance or event with potential adverse impact
- The threat definition in the course glossary
- https://csrc.nist.gov/glossary/term/vulnerability
Supports
- Vulnerability as a weakness that a threat can exploit or trigger
- The vulnerability definition in the course glossary
- https://csrc.nist.gov/glossary/term/least_privilege
Supports
- Least privilege as restricting authorizations and resources to those needed for a task
- The least-privilege design and glossary guidance
- https://csrc.nist.gov/glossary/term/defense_in_depth
Supports
- Layered countermeasures used to achieve security objectives
- The defense-in-depth guidance and glossary definition
- https://owaspsamm.org/model/
Supports
- OWASP SAMM version 2.0 program structure
- Governance, Design, Implementation, Verification, and Operations as five business functions
- The fifteen practices named within those functions
- Claims and quiz answers about program capability, lifecycle ownership, verification, operations, and improvement
- https://owaspsamm.org/model/implementation/defect-management/
Supports
- Collection, recording, and analysis of software security defects
- Use of defect information to support metrics-based decisions and feedback
- The repeated-defect quiz scenario and lifecycle feedback guidance
- https://cheatsheetseries.owasp.org/cheatsheets/Threat_Modeling_Cheat_Sheet.html
Supports
- Threat modeling as a structured and repeatable process based on a system model
- The four questions covering system scope, threats, responses, and review
- Data flows, stores, processes, external entities, and trust boundaries as system-model inputs
- Maintenance of a threat model as the system changes
- https://owasp.org/www-project-application-security-verification-standard/
Supports
- ASVS as a basis for testing application technical security controls
- ASVS as a list of requirements for secure development
- ASVS uses in metrics, control guidance, and procurement
- ASVS version 5.0.0 as the current stable release verified on 2026-07-14
- Versioned requirement identifiers and traceability guidance
- https://owasp.org/Top10/2025/0x03_2025-Establishing_a_Modern_Application_Security_Program/
Supports
- OWASP Top 10 as an awareness document and starting point rather than a complete standard
- Risk-based portfolio management, lifecycle integration, education, visibility, and repeatable controls
- ASVS as the recommended verifiable application security standard
- Limits of tool claims and Top 10 coverage
- https://owasp.org/Top10/2025/0x02_2025-What_are_Application_Security_Risks/
Supports
- Application risk depending on exposure, applicable threats, technical impact, and business impact
- Organization-specific context affecting priority
- Quiz scenarios that distinguish risk context from a raw tool label
- https://owasp.org/www-project-web-security-testing-guide/
Supports
- WSTG as a structured guide to web application and web-service security testing
- WSTG version 4.2 as the current stable version on the project page
- Versioned test-scenario identifiers and stable-link guidance
- Testing as one part of a wider application security lifecycle
- https://owasp.org/www-project-web-security-testing-guide/latest/2-Introduction/README
Supports
- Balanced use of threat modeling, source review, penetration testing, and automated tools
- Positive and negative tests for identity, access control, input handling, encryption, errors, and logging
- Limits of automated tools for business logic and context-specific vulnerabilities
- https://cheatsheetseries.owasp.org/
Supports
- The linked collection as implementation guidance for individual application security control areas
- The final study-path rationale in 06-links.yaml
- https://owasp.org/blog/2024/04/21/owasp-foundation-20th-anniversary
Supports
- OWASP began as an informal open community in September 2001 and formed the OWASP Foundation in April 2004
- https://owasp.org/www-project-developer-guide/assets/exports/OWASP_Developer_Guide.pdf
Supports
- OWASP Top 10 first released in 2003 and its subsequent version history
- https://owasp.org/www-project-web-security-testing-guide/latest/6-Appendix/E-History
Supports
- OWASP Testing Guide release history for versions 1.0, 3.0, 4.0, and 4.1
- https://wiki.owasp.org/images/c/cf/About_OWASP_ASVS_Web_Edition.pdf
Supports
- OWASP ASVS conception and Summer of Code 2008 project history
- https://wiki.owasp.org/images/4/44/OWASP_Top_10_-_2010.pdf
Supports
- OWASP Top 10 2010 release and its people, process, and technology framing
- https://owaspsamm.org/blog/samm2-release/
Supports
- OWASP SAMM version 2 public release on January 31, 2020
- https://github.com/security/advanced-security
Supports
- GitHub Advanced Security code security, dependency monitoring, and secret protection capabilities
- https://snyk.io/plans/
Supports
- Snyk coverage for SCA, SAST, infrastructure as code, and container testing, including free and paid plans
- https://semgrep.dev/products/semgrep-appsec-platform/
Supports
- Semgrep Code, Secrets, and Supply Chain products and developer-workflow integrations
- https://checkmarx.com/pricing/
Supports
- Checkmarx One coverage for SAST, SCA, API security, DAST, infrastructure as code, and runtime protection
- https://portswigger.net/burp/application-security-testing
Supports
- Burp Suite support for manual and automated web application security testing, including DAST workflows
- https://www.linkedin.com/blog/engineering/scalability/scaling-linkedin-s-security-champions-program
Supports
- LinkedIn's Security Champions program design: a fixed time allocation carved out of regular duties
- Conflicting work priorities named as the recurring threat to maintaining champion time commitment
- The Field Notes mistake card on champions programs losing protected time to feature work
- https://shostack.org/blog/four-question-frame/
Supports
- Adam Shostack's four-question threat modeling framework and the reasoning behind its specific wording
- The claim that rephrasing the framework's questions loses nuance and flexibility
- The Field Notes difficulty card on why paraphrasing the four questions erodes comparability
- https://owaspsamm.org/benchmark/benchmark-report/
Supports
- OWASP SAMM Benchmark Report average maturity score of 1.44 out of 3.0 across 30 assessments
- Operations scoring highest at 1.81 and Verification scoring lowest at 1.12
- The Field Notes signal card on industry-baseline SAMM scores
