openskills.info
Open Course

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

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