Application Security (AppSec) for Security Engineers in 2026: SAST, DAST, SCA, Threat Modeling
In short
Application Security (AppSec) is the security-engineering specialization that hardens the software itself: SAST, DAST, SCA, threat modeling, and secure-SDLC integration. The 2026 craft anchors on the OWASP Top 10 2025 vulnerability catalog, the OWASP ASVS verification rubric, OWASP SAMM for program maturity, the NIST Secure Software Development Framework (SSDF), and the MITRE CWE taxonomy. Senior AppSec engineers ship engineering; CodeQL queries, Semgrep rules, Dependency-Track instrumentation, threat models; not compliance checklists.
Key takeaways
- Application Security in 2026 is an engineering discipline, not a compliance checkbox. The senior bar is a shipped CodeQL query, a tuned Semgrep ruleset, a Dependency-Track deployment, or a STRIDE / PASTA threat model on a real surface; not a passing scan report.
- The OWASP Top 10 2025 (owasp.org/Top10) is the canonical web-application vulnerability catalog: A01 Broken Access Control, A02 Cryptographic Failures, A03 Injection, A04 Insecure Design, A05 Security Misconfiguration, A06 Vulnerable and Outdated Components, A07 Identification and Authentication Failures, A08 Software and Data Integrity Failures, A09 Security Logging and Monitoring Failures, A10 Server-Side Request Forgery. AppSec engineers cite the A0x category fluently in design reviews and PR feedback.
- OWASP ASVS is the verification rubric (testable security requirements at three levels) and OWASP SAMM is the program-design maturity model. ASVS answers
did this code meet the bar
; SAMM answersis the AppSec program maturing
. Both belong in the senior AppSec vocabulary alongside the Top 10. - Threat modeling is the AppSec design-time skill; STRIDE (Microsoft) for component-level decomposition, PASTA for risk-centric end-to-end analysis, attack trees for adversary-objective walkthroughs. The 2026 senior expectation is leading a 60-90 minute threat-modeling session on a real design without a template.
- The 2026 SAST / DAST / SCA tool stack is GitHub CodeQL (advanced semantic SAST), Semgrep (lightweight pattern-based SAST), Snyk and GitHub Dependabot (SCA), OWASP ZAP (open-source DAST), and OWASP Dependency-Track (SBOM management). Tool literacy is hiring-bar table stakes; tool authorship (custom CodeQL queries, custom Semgrep rules) signals senior depth.
- The NIST Secure Software Development Framework (csrc.nist.gov/Projects/ssdf) is the canonical secure-SDLC framework; Prepare the Organization, Protect the Software, Produce Well-Secured Software, Respond to Vulnerabilities. AppSec programs at FAANG-tier and federal-contractor companies map their tooling and process to SSDF practices explicitly.
- Application Security is one of the highest-paying security specializations in 2026. The BLS Information Security Analysts SOC 15-1212 May 2024 median is $124,910 with 29 percent projected 2024-2034 growth and about 16,000 annual openings; and FAANG-tier total compensation for senior AppSec engineers belongs on levels.fyi/t/security-engineer with the per-company filter applied.
What Application Security actually is in 2026: SAST, DAST, SCA, threat modeling, and the secure-SDLC spine
Application Security (AppSec) is the security-engineering specialization that hardens the software itself; the application code, the dependencies, the build pipeline, the runtime configuration, and the trust boundaries between them. It is the half of Security Engineering that lives inside the software development lifecycle rather than at the network perimeter, the IAM layer, or the SOC. The 2026 craft is built on five pillars:
- SAST; Static Application Security Testing. Source-code analysis without executing the program. The 2026 reference set is GitHub CodeQL for advanced semantic queries (CodeQL is a query language over a code-as-data graph database, used by GitHub Security Lab to find systemic vulnerabilities across OSS), Semgrep for pattern-based rules with a low-friction syntax, and language-specific tools (Bandit for Python, Brakeman for Rails, gosec for Go). Senior AppSec engineers author custom rules; they do not just consume default rulesets.
- DAST; Dynamic Application Security Testing. Runtime analysis of the running application. The 2026 open-source reference is OWASP ZAP; the commercial reference set is Burp Suite Professional and the cloud-DAST platforms (Veracode, Checkmarx, Invicti). DAST exercises the OWASP Top 10 categories that show up at the request boundary; injection, authentication-bypass primitives, SSRF, request smuggling, broken access control. The senior pattern in 2026 is continuous DAST in CI rather than annual external pentest as the only DAST signal.
- SCA; Software Composition Analysis. Dependency-graph vulnerability tracking. Snyk, GitHub Dependabot, and OWASP Dependency-Track are the 2026 reference set, with SBOM (Software Bill of Materials) in CycloneDX or SPDX format as the data interchange. SCA covers OWASP Top 10 A06 Vulnerable and Outdated Components and is the primary control against supply-chain attacks like the SolarWinds-class compromises.
- Threat modeling. The design-time AppSec discipline. STRIDE (Microsoft) decomposes a system component-by-component into Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, and Elevation of privilege. PASTA (Process for Attack Simulation and Threat Analysis) is the risk-centric methodology for end-to-end application analysis. Attack trees walk an adversary objective backward through the decisions an attacker must make. Senior AppSec engineers lead threat-modeling sessions live on a whiteboard for a real new design; not as a checkbox in a spreadsheet.
- Secure-SDLC integration. The wiring that connects the four technical disciplines to the engineering organization: SAST in pre-commit and PR; SCA in dependency updates; DAST in staging-deploy; threat modeling in design review. The NIST Secure Software Development Framework (SSDF) is the canonical 2026 framework; Prepare the Organization, Protect the Software, Produce Well-Secured Software, Respond to Vulnerabilities; with specific practices that AppSec programs map their tooling and process to.
Three properties define the 2026 AppSec craft and separate it from earlier eras of the discipline:
- The OWASP Top 10 is orientation, not the program. The Top 10 names the high-frequency vulnerability classes that appear in real-world breaches; and AppSec engineers must speak the A01-A10 vocabulary fluently; but the actual program is built on the OWASP ASVS verification requirements and the OWASP SAMM maturity model. ASVS gives the per-control testability; SAMM gives the program-level scoring.
- AppSec is engineering, not compliance. The 2026 anti-pattern is
AppSec as a checkbox the security team owns, feeding scanner findings into a Jira backlog the engineering team triages reluctantly
. The 2026 strong pattern is AppSec engineers who ship; custom CodeQL queries that catch a specific bug class across the codebase, Semgrep rules that encode the company's secure-coding standards, Dependabot configurations that auto-merge low-risk patch bumps, threat-model templates that engineering teams self-serve. The senior AppSec engineer is a force multiplier for engineering, not a tax on it. - Shift-left and shift-right are complements. Shift-left integrates security into design and CI (threat modeling, SAST, SCA in pre-merge gates); shift-right complements it with runtime signals (DAST in staging and production, RASP, runtime-behavior baselining, continuous fuzzing). Programs that only shift-left miss deserialization gadgets and request-smuggling primitives that only manifest at runtime; programs that only shift-right pay the cost of finding the same bug class repeatedly. The 2026 senior bar is ownership of both halves.
The OWASP Top 10 2025 cited fluently: what each category actually means
The OWASP Top 10 2025 is the current canonical edition (the 2025 refresh has been announced but the 2021 edition remains the cited reference set in 2026 hiring loops and AppSec program documentation). Senior AppSec engineers cite categories explicitly in PR review, design review, and threat-modeling sessions; the A0x labels are the shared vocabulary across the discipline.
- A01 Broken Access Control. Authorization failures: missing checks, IDOR (Insecure Direct Object Reference), forced browsing to admin functions, JWT-claim tampering, OAuth-scope abuse. A01 is consistently the most-prevalent category in real-world breaches and the most-frequent finding in a competent code review. The compensating control is centralized authorization (an auth-policy service) and ASVS V4 Access Control verification.
- A02 Cryptographic Failures. Weak ciphers, missing TLS, hard-coded keys, predictable randomness, password-hashing failures (MD5 / SHA1 used as password hashes instead of Argon2 or bcrypt), broken JWT signing (none-algorithm acceptance, RS256-to-HS256 confusion). The OWASP Cheat Sheet Series covers each primitive in depth.
- A03 Injection. SQL injection, command injection, LDAP injection, XSS (re-categorized into A03 in the 2021 edition), and SSRF-adjacent injection primitives. The compensating control is parameterized queries and contextual output encoding; the SAST coverage is mature in every modern toolchain.
- A04 Insecure Design. The design-time category; added in 2021 to differentiate
the implementation has a bug
fromthe design itself is unsafe
. Examples: a password-reset flow that emails the password in clear text, a multi-tenant authorization model that leaks tenant IDs in URLs, a payment flow that lets the client compute the order total. A04 is what threat modeling addresses; SAST cannot catch a design-level flaw. - A05 Security Misconfiguration. Default credentials, exposed admin interfaces, verbose error messages, missing security headers, permissive CORS, container images with a shell as PID 1. The 2026 reference is CIS Benchmarks for the platform layer and an explicit
security headers in baseline
policy for the application layer. - A06 Vulnerable and Outdated Components. Dependency vulnerabilities. The compensating control is SCA in CI (Snyk, Dependabot, Dependency-Track) plus an SBOM in CycloneDX or SPDX format. The Log4Shell incident (CVE-2021-44228) is the canonical example of why SBOM-driven dependency management is non-negotiable in 2026.
- A07 Identification and Authentication Failures. Weak password policies, predictable session IDs, missing MFA, broken session-rotation, account-enumeration via timing differences in login responses. The 2026 strong pattern is passkeys (WebAuthn) plus magic-link fallback rather than password-plus-TOTP.
- A08 Software and Data Integrity Failures. Insecure deserialization, unsigned auto-update channels, CI / CD pipeline tampering. The SolarWinds compromise is the canonical A08 incident; the compensating control is signed builds, signed packages, and provenance (Sigstore, SLSA framework).
- A09 Security Logging and Monitoring Failures. Missing audit logs, log tampering, alerts that never fire, runbooks that are never exercised. A09 is the AppSec-side hand-off to defensive security: the application must emit the structured signals the SOC needs to detect compromise.
- A10 Server-Side Request Forgery (SSRF). The application is tricked into making a request to an attacker-chosen internal URL; frequently chained to cloud-metadata-service credential exfiltration (IMDSv1 to AWS-credential exfil to lateral movement). SSRF graduated to its own A0x category in 2021 because of the cloud-credential-chain prevalence in real-world breaches.
Three usage patterns separate engineers who cite the Top 10 fluently from engineers who memorized the list:
- Categories appear in PR review.
This is an A01 Broken Access Control issue; the delete endpoint takes an object_id from the request body and trusts the caller's claim to own it
is what a senior AppSec PR comment looks like. The category label communicates severity and reference rubric in one phrase. - Categories anchor the threat model. A STRIDE-decomposed component diagram is back-annotated with Top 10 categories; Spoofing maps to A07, Tampering and Information Disclosure map to A02 and A03, Elevation of Privilege maps to A01; so the threat model deliverable is legible to engineering partners in shared vocabulary.
- Categories drive the program metric. SAMM maturity scoring and ASVS verification coverage are reported per Top 10 category. The AppSec program report to leadership says
A01 coverage is at SAMM Level 2; A06 coverage is at Level 3 with Dependabot in production
, notthe scanner found 412 issues this quarter
.
Threat modeling at senior level: STRIDE, PASTA, attack trees, and what good looks like
Threat modeling is the AppSec design-time skill that interview loops weight most heavily at the senior level; because tooling literacy can be interviewed in 30 minutes but threat-modeling judgment requires a 60-90 minute open-ended session on a real design. The 2026 senior bar is leading the session on a whiteboard cold, with the interviewer playing the design owner.
- STRIDE; Microsoft's component-level framework. Spoofing identity, Tampering with data, Repudiation of action, Information disclosure, Denial of service, Elevation of privilege. STRIDE is applied per data-flow-diagram element (process, data store, data flow, trust boundary). The deliverable is a per-element threat list with mitigations and residual-risk acceptance. STRIDE is the right default for component-level design review of a single new service.
- PASTA; Process for Attack Simulation and Threat Analysis. A seven-stage risk-centric methodology: define objectives, define technical scope, decompose application, threat analysis, vulnerability and weakness analysis, attack modeling, risk and impact analysis. PASTA is heavier than STRIDE and is the right choice for end-to-end application analysis where business context (regulatory exposure, payment flows, PII handling) drives the threat-prioritization decision.
- Attack trees; Schneier's adversary-objective framework. The root node is the attacker's objective (
exfiltrate the customer PII database
); child nodes are the alternative paths to that objective (compromise a developer laptop, exploit an SSRF in a public service, compromise a vendor with database access). Attack trees are the right framework when the business askswhat is the realistic attack path to this specific crown jewel
rather thanwhat could go wrong with this component
. - OWASP Threat Dragon and Microsoft Threat Modeling Tool. The 2026 open-source and Microsoft-ecosystem reference tools. Threat Dragon is browser-based, OWASP-maintained, and STRIDE-oriented; the Microsoft tool is desktop-based and integrates with Microsoft's broader secure-development guidance. Senior AppSec engineers use the tools where useful but do not depend on them; the senior session is on a whiteboard, with the formalization coming after the conversation, not before.
Five signals separate a senior threat-modeling session from a junior one:
- Trust boundaries are named explicitly. The senior moderator draws the trust boundaries on the diagram (browser-to-server, service-to-service, service-to-database, application-to-cloud-IAM) before listing threats. Threats only exist where data crosses a trust boundary; if the diagram does not show boundaries, the threat list is incoherent.
- The session asks what is in scope and what is not.
We are modeling the new OAuth flow; we are not re-modeling the existing session-store, which has a separate threat model from last quarter
. Scope discipline keeps the session productive; scope drift turns threat modeling into a 4-hour boil-the-ocean exercise that engineering teams refuse to repeat. - Each threat has a mitigation and a residual-risk owner.
Confused-deputy in the OAuth callback; mitigated by state parameter validation in the callback handler; owned by the platform-auth team
. A threat without a mitigation is an open issue; a mitigation without an owner is theater. - The session distinguishes design flaws from implementation bugs. A04 Insecure Design issues need a different mitigation from A03 Injection issues; design flaws are fixed by re-architecting (move authorization to a centralized service); implementation bugs are fixed by code change (parameterize the query). A senior moderator sorts the threat list into design and implementation buckets explicitly.
- The output is consumable by engineering. A senior threat model concludes with a small set of action items keyed to ASVS controls and OWASP Top 10 categories, owned by named engineering teams, with timeframes. A junior threat model concludes with a 12-page PDF nobody reads.
The senior AppSec interview loop in 2026: the threat-modeling round, the SAST coding round, and the program-design round
Senior AppSec interview loops at FAANG-tier and security-product companies in 2026 typically run five to six rounds across one or two days. The specific shape varies by company but the gates are consistent: threat-modeling depth, SAST / coding competence, OWASP Top 10 fluency, secure-SDLC program judgment, and behavioral / partnership.
- A threat-modeling round (60-90 minutes). The dominant senior gate. Open prompt:
walk me through the threat model for an OAuth-based public API with third-party integrations
,threat-model a multi-tenant file-upload service with virus scanning and signed URLs
, orreview this design for a SaaS company's customer-managed-keys (CMK) feature, and tell me what breaks
. The interviewer wants explicit trust boundaries on the whiteboard by minute 15, a STRIDE or attack-tree decomposition by minute 45, OWASP Top 10 vocabulary used fluently throughout, and a small set of prioritized mitigations with engineering trade-offs at the end. Senior AppSec candidates who cannot run the session without a template fail this round. - A SAST / code-review round (45-60 minutes). A piece of vulnerable code in Python, Java, Go, or JavaScript; typically 50-150 lines that contain three to five OWASP Top 10 issues across multiple categories. The interviewer wants the candidate to find the issues, name the OWASP category for each, propose the fix, and discuss the SAST / Semgrep / CodeQL pattern that would catch each one in CI. The senior signal is thinking in queries (
I would write a CodeQL query that flags any deserializer call where the input flows from a request boundary without a type-allowlist
) rather than in one-off findings. - A coding round (45-60 minutes in Python or Go). A real software-engineering problem with a security flavor: implement a token-bucket rate limiter for an authentication endpoint, build a constant-time string-comparison wrapper for secret comparison, write a TOTP validator with clock-drift handling, parse a structured-log stream and emit anomaly counts, build a Semgrep-style AST walker. The bar is real software-engineering competence; the security flavor does not lower it. Senior AppSec engineers are software engineers first.
- A secure-SDLC / program-design round (45-60 minutes).
Design the AppSec program for a 200-engineer Series-C SaaS company; you have one AppSec engineer (you) and a budget for tooling. Walk me through the SAST, DAST, SCA, threat-modeling, and training program you build over the first 12 months.
The interviewer wants explicit reference to OWASP SAMM levels, NIST SSDF practices, the prioritization of A06 Vulnerable Components and A01 Broken Access Control as highest-frequency-breach categories, and concrete tooling choices (CodeQL or Semgrep, Snyk or Dependabot, ZAP or Burp). The senior signal is judgment about sequencing and trade-offs, not encyclopedic knowledge of every tool. - A behavioral / partnership round (45 minutes). STAR-format stories about disagreeing with a backend engineer on an authorization design, mentoring a junior on threat modeling, partnering with a product manager who wants to ship an MVP without MFA, commanding a real AppSec incident (a credential leak, a vulnerable dependency in production). The senior signal is engineering partnership and judgment under ambiguity, not security-team purity tests.
- A deep-dive on past production work. You walk the hiring manager through an AppSec surface you owned, a threat model you led, or a program you drove (a SAMM Level 2 to Level 3 lift, a SAST rollout, a passkey migration). Expect
what did you decide not to fix, and why
,where did the SAST coverage have a gap, and how did you discover it
,what did the post-mortem reveal that the threat model did not
. The signal is whether you understood the surface or only operated it.
Two preparation patterns separate candidates who clear the senior AppSec bar:
- Recite the OWASP Top 10 2025 cold with at least one real-world breach example per category. A01 Broken Access Control; Snapchat IDOR, Equifax. A02 Cryptographic Failures; LinkedIn 2012 SHA-1 password leak. A03 Injection; TalkTalk SQLi. A04 Insecure Design; Capital One SSRF-to-IAM. A05 Security Misconfiguration; MongoDB exposed defaults. A06 Vulnerable Components; Equifax Struts 2. The breach examples make the categories memorable; the categories make the examples teachable.
- Build at least one public artifact before the loop. A custom CodeQL query with a write-up, a Semgrep rule for a specific bug class with a CVE pattern, an OWASP-project contribution, a threat-model template published on GitHub, a CVE you reported and got assigned. The senior calibration committee weights public artifacts heavily; they are the evidence that the candidate actually ships AppSec engineering rather than only consuming it.
Career economics and the AppSec-as-engineering anti-pattern
Application Security in 2026 supports four distinct career economics. A senior AppSec engineer typically picks the path that matches their preference for engineering-org embedding, public visibility, and program-leadership scope:
- FAANG-tier internal AppSec. Google security engineering, Microsoft MSRC and MORSE, Apple SEAR, Meta security engineering, Cloudflare CRSP, the Amazon AppSec organization. The role is embedded in product engineering, with named surface ownership (the auth platform, the billing service, the developer-platform). Compensation belongs on levels.fyi/t/security-engineer with the per-company filter applied. This is the most common senior-AppSec path with the strongest engineering-partnership culture.
- Security-product company AppSec. Snyk, Semgrep, GitHub Security Lab, Veracode, Checkmarx, HashiCorp, 1Password. The AppSec engineer at a security-product company is frequently a customer-facing or research-facing role; building product features, authoring public research, contributing to OWASP projects. Compensation also anchors on levels.fyi per-company filters; the public-research and conference-publication expectations are typically higher than at FAANG-tier internal AppSec because the research is product-marketing-adjacent.
- AppSec consultancy. NCC Group, Trail of Bits, Bishop Fox, Doyensec, Praetorian, Synopsys. Engagement-based work; secure-code review, threat-modeling sessions, AppSec program design for client companies; with lower total compensation than FAANG-tier internal but higher engagement diversity and stronger public-research expectations. Consultancy is a common path into senior AppSec because the engagement diversity compresses the years-of-experience-to-senior timeline.
- Bug bounty as a public-AppSec discipline. HackerOne and Bugcrowd programs as an independent supplement to a FAANG-tier AppSec day job, providing public-craft visibility (HackerOne Hall of Fame, Bugcrowd leaderboard) and upside variance while the day job provides equity, benefits, and base-salary stability. Top-tier hunters can clear seven-figure annual disclosure income but the variance is high; the public Hall-of-Fame data is the canonical reference for the achievable distribution.
The broader US occupational baseline for Information Security Analysts (the BLS bucket that contains most AppSec work) per the BLS Occupational Outlook Handbook:
- SOC 15-1212 May 2024 median annual wage: $124,910. The BLS median under-counts FAANG-tier total compensation (which is dominated by equity not captured in the wage statistic).
- Employment growth 2024-2034: 29 percent. Much faster than the average for all occupations.
- Annual openings: about 16,000 per year on average across the decade. Application Security is one of the highest-concentration sub-buckets of this growth; secure-SDLC tooling, supply-chain security, and cloud-application security are all 2026 hiring priorities at FAANG-tier and security-product companies.
The dominant 2026 anti-pattern is AppSec as compliance checkbox: the security team owns a SAST scanner, files scanner findings into a Jira backlog, the engineering team triages them reluctantly, the AppSec engineer files an annual report showing scanner-finding-volume metrics, nothing structural improves, and the program scores SAMM Level 1 indefinitely. The anti-pattern is recognizable by three signals: scanner-finding-count as the primary program metric, AppSec engineers who do not write code, and threat models that exist as spreadsheet artifacts rather than design-review conversations.
The 2026 strong pattern is AppSec as engineering: the AppSec engineer ships code (custom CodeQL queries, Semgrep rules, Dependabot configurations, threat-model templates), partners with product engineering on design reviews, owns named surfaces with explicit ASVS-mapped requirements, drives the program toward higher SAMM levels with measurable lift, and reports out in OWASP Top 10 coverage and SSDF practice maturity rather than scanner-finding volume. The senior AppSec signal in 2026 calibration cycles is consistently the engineer who shipped the engineering work; who moved the org from we run a SAST scanner
to we have custom CodeQL queries that catch the company-specific bug classes, integrated into the PR-merge gate, with measurable false-positive rate
. Tooling literacy is the floor; engineering-program impact is the ceiling.
Frequently asked questions
- What is the difference between SAST, DAST, and SCA?
- Three complementary AppSec scan types. SAST (Static Application Security Testing) analyzes source code without running it; GitHub CodeQL, Semgrep, Bandit, Brakeman, gosec are the 2026 reference set. SAST catches injection, hard-coded secrets, unsafe deserialization, missing authorization checks, and similar source-visible bug classes. DAST (Dynamic Application Security Testing) exercises the running application from the request boundary; OWASP ZAP and Burp Suite Professional are the references. DAST catches issues that only manifest at runtime: request smuggling, configuration issues, authentication-bypass primitives, SSRF. SCA (Software Composition Analysis) tracks dependency vulnerabilities; Snyk, GitHub Dependabot, OWASP Dependency-Track. SCA covers OWASP Top 10 A06 Vulnerable and Outdated Components and is the primary control against supply-chain attacks. Senior AppSec programs run all three in CI.
- Is the OWASP Top 10 2025 still the canonical reference in 2026?
- Yes. The 2021 edition remains the cited reference in 2026 hiring loops and AppSec program documentation. OWASP has announced a refresh but the 2021 edition (A01 Broken Access Control, A02 Cryptographic Failures, A03 Injection, A04 Insecure Design, A05 Security Misconfiguration, A06 Vulnerable and Outdated Components, A07 Identification and Authentication Failures, A08 Software and Data Integrity Failures, A09 Security Logging and Monitoring Failures, A10 Server-Side Request Forgery) is the canonical version still anchoring AppSec interview vocabulary, ASVS control-mapping, and SAMM coverage reporting. The 2025 OWASP API Security Top 10 and OWASP LLM Top 10 are companion lists for those specific surface types but do not replace the core Top 10.
- How fluent in threat modeling do I need to be for senior AppSec hiring?
- Fluent enough to lead a 60-90 minute whiteboard session on a real design without a template. Senior AppSec interview loops weight the threat-modeling round most heavily because tooling literacy is interviewable in 30 minutes and judgment is not. The senior bar requires fluent STRIDE decomposition, attack-tree authorship, explicit trust-boundary diagrams by minute 15 of the session, OWASP Top 10 vocabulary used fluently, and a small set of prioritized mitigations with engineering trade-offs at the end. Strong preparation: lead three real threat-modeling sessions on production designs at your current job before the loop, plus two cold rehearsals (a public OAuth flow, a multi-tenant SaaS authorization model) so the muscle memory is there.
- What is the difference between OWASP ASVS and OWASP SAMM?
- ASVS (Application Security Verification Standard) is a per-control verification rubric; a structured checklist of testable security requirements at three levels of rigor (Level 1 for low-risk applications, Level 2 for the default rigor of most production applications, Level 3 for high-assurance systems handling sensitive data). ASVS answers
did this specific application meet the verification bar.
SAMM (Software Assurance Maturity Model) is a program-design maturity model; a framework for measuring an organization's secure-SDLC maturity across Governance, Design, Implementation, Verification, and Operations business functions, with maturity Levels 1 through 3 per practice. SAMM answersis the AppSec program maturing across the organization.
Senior AppSec engineers cite ASVS as the per-application audit rubric and SAMM as the program-level maturity metric. - Should I learn CodeQL or Semgrep?
- Both, with CodeQL as the depth tool and Semgrep as the breadth tool. CodeQL is a query language over a code-as-data graph database; semantically rich, capable of cross-procedural taint analysis and complex security-property queries. CodeQL is the right choice when you need to catch a specific bug class precisely (a particular deserialization gadget, a specific authorization-bypass pattern). Semgrep is a pattern-based SAST tool with a low-friction syntax; fast to author, fast to run, easy to integrate into pre-commit and PR gates. Semgrep is the right choice for company-wide secure-coding-standard enforcement and high-volume false-positive-tolerant scanning. Senior AppSec programs use Semgrep in pre-commit for fast feedback and CodeQL in PR-merge gates for deep coverage. Authoring custom rules in either tool; not just consuming defaults; is the senior-depth signal.
- What is the NIST Secure Software Development Framework (SSDF) and how does it relate to OWASP SAMM?
- NIST SSDF (csrc.nist.gov/Projects/ssdf, formally NIST SP 800-218) is the canonical secure-SDLC framework from NIST; Prepare the Organization, Protect the Software, Produce Well-Secured Software, Respond to Vulnerabilities, with specific practices under each pillar (PO.1 Define Security Requirements, PS.1 Protect All Forms of Code, PW.4 Reuse Existing Well-Secured Software, RV.1 Identify and Confirm Vulnerabilities). SSDF is the framework federal-contractor and FAANG-tier AppSec programs map their tooling and process to explicitly. SAMM is OWASP's complementary maturity model; SAMM scores program maturity across the same lifecycle stages SSDF describes, but with explicit Level 1 / 2 / 3 maturity scoring per practice. The two frameworks are complementary: SSDF defines the practices, SAMM scores the maturity. Senior AppSec engineers cite both; SSDF as the framework, SAMM as the scorecard.
- How do supply-chain attacks like SolarWinds and Log4Shell change the AppSec craft?
- They centered SCA (Software Composition Analysis) and SBOM (Software Bill of Materials) as first-class AppSec controls rather than afterthoughts. Log4Shell (CVE-2021-44228) demonstrated that a single transitive dependency could expose the majority of Java applications globally to RCE; SolarWinds demonstrated that build-pipeline tampering could ship malicious code through trusted-vendor channels. The 2026 AppSec response is OWASP Top 10 A06 Vulnerable and Outdated Components and A08 Software and Data Integrity Failures as named program priorities; SBOM in CycloneDX or SPDX format as a build artifact; Snyk, Dependabot, or OWASP Dependency-Track in CI; signed builds and signed packages (Sigstore, SLSA framework). Senior AppSec engineers in 2026 own the supply-chain control set explicitly; it is not delegated to a platform team.
- Is bug bounty a legitimate AppSec career path or a side hustle?
- Both, depending on the configuration. Most senior bug-bounty hunters work it as an independent supplement to a FAANG-tier AppSec or offensive-security day job; the day job provides equity, benefits, and base-salary stability while bug bounty provides public-craft visibility and upside variance. Top-tier hunters on HackerOne and Bugcrowd can clear seven-figure annual disclosure income but with high variance; the public Hall of Fame and leaderboard data is the canonical reference for the achievable distribution. The median full-time hunter earns substantially less than the top of the leaderboard and has lumpy income. As an AppSec discipline bug bounty is a credible public-research signal; Hall-of-Fame entries with public reports are calibration-cycle evidence at FAANG-tier AppSec hiring.
- How does the OWASP LLM Top 10 fit into the AppSec craft?
- It is a companion list, not a replacement. The OWASP LLM Top 10 (LLM01 Prompt Injection, LLM02 Insecure Output Handling, LLM03 Training Data Poisoning, and the rest) addresses the new vulnerability classes specific to large-language-model applications; prompt injection, model-output handling at the application boundary, training-data integrity, supply-chain risks in model artifacts, model-denial-of-service. AppSec engineers shipping LLM-integrated applications cite the LLM Top 10 alongside the core OWASP Top 10. Prompt injection in particular (LLM01) is increasingly relevant because LLM-integrated applications often grant the model tools or function-call capabilities that turn prompt-injection into a remote-code-execution-adjacent primitive. NIST AI RMF (nist.gov/itl/ai-risk-management-framework) anchors the broader AI governance side.
- What public artifact should I build to break into senior AppSec?
- Pick one and ship it. A custom CodeQL query with a write-up that catches a specific bug class across an open-source project. A Semgrep rule set for a particular vulnerability pattern, published with a CVE walk-through. An OWASP project contribution (Cheat Sheet Series, Dependency-Track, Threat Dragon, ZAP add-on). A threat-model template for a specific application class (multi-tenant SaaS, OAuth flow, file-upload service) published on GitHub with a worked example. A CVE you reported through a coordinated disclosure with a HackerOne or Bugcrowd public report. A conference talk at AppSec USA, AppSec Europe, or DEF CON AppSec Village. Senior AppSec calibration committees weight one substantive public artifact above a stack of certifications; the artifact is the evidence the candidate actually ships engineering rather than only consuming it.
Sources
- OWASP Top 10 2025; canonical web-application vulnerability catalog
- OWASP Application Security Verification Standard (ASVS); testable security requirements
- OWASP Software Assurance Maturity Model (SAMM); secure-SDLC maturity model
- OWASP Cheat Sheet Series; per-control implementation guidance
- OWASP Top 10 for Large Language Model Applications
- OWASP Dependency-Track; SBOM and SCA platform
- OWASP ZAP; open-source DAST proxy
- NIST Secure Software Development Framework (SSDF, SP 800-218)
- MITRE CWE; Common Weakness Enumeration taxonomy
- SANS / CWE Top 25 Most Dangerous Software Weaknesses
- CISA Known Exploited Vulnerabilities (KEV) catalog; patch-priority signal
- GitHub CodeQL; semantic SAST query language and platform
- Semgrep; pattern-based SAST and secure-coding-standard enforcement
- Snyk; SCA, SAST, container, and IaC security platform
- GitHub Dependabot; automated dependency vulnerability tracking
- levels.fyi; Security Engineer compensation track (per-company filters)
- BLS Occupational Outlook Handbook; Information Security Analysts (SOC 15-1212)
About the author. Blake Crosley founded ResumeGeni and writes about security engineering, hiring technology, and ATS optimization. More writing at blakecrosley.com.