Secure application development studies how software is written to resist exploitation, spanning the operating system’s process model, access control, and defensive coding practices.
Abstract View of a Program
A program is not just source code. Under execution it becomes a process, an instance of a program with its own memory, hardware, and OS context. Vulnerabilities exist at both levels.
- Source level
Logic errors, unsafe library calls, missing input validation. - Execution level
Memory layout, access control, privilege boundaries enforced by the OS.
Reasoning about a program’s security requires understanding how the OS represents it as a running process.