Here is a Teaching Note for Section 1: Introduction to Secure Software Development from the "Fundamentals of Secure Application Development" course material.
By the end of this section, students should be able to:
Use the CIA Triad:
Provide examples for each using relatable scenarios (banking, e-commerce, etc.)
💡 Activity: Ask students to list assets in their favorite apps and identify potential threats.
Introduce:
📍Point students to URLs for further exploration (optional homework).
Have them identify:
Here’s a Quiz for Section 1: Introduction to Secure Software Development with multiple-choice, true/false, and short answer questions. You can use this as a printed worksheet or digital quiz.
What does the “C” in the CIA Triad stand for? A. Control B. Confidentiality C. Consistency D. Classification
Which of the following is an example of a threat? A. SQL Injection B. A hacker C. An unpatched software vulnerability D. A firewall
What is a vulnerability? A. A known hacker group B. A potential future event C. A weakness in the system that could be exploited D. An encrypted file
An example of an exploit is: A. Using strong passwords B. Encrypting sensitive data C. A hacker stealing data through an SQL injection D. Removing access privileges
What is the main goal of “Defense in Depth”? A. To reduce coding effort B. To avoid using firewalls C. To secure only the network layer D. To use multiple layers of security to protect assets
___ Confidentiality is about making sure only authorized users can access an asset.
___ Threats always cause damage.
___ Defense in Depth applies only to network and hardware layers.
___ Vulnerabilities can be completely eliminated in all software systems.
___ Secure software development is one part of a larger organizational security strategy.
List two examples of digital assets that should be protected in a software system.
Define “Risk” in the context of software security.
Why is secure coding considered a necessary part of the Defense in Depth strategy?
What are three sources of threats to a software system?
Name one industry-recognized framework or model for secure software development.
Here’s the Answer Key for the Section 1 Quiz – Fundamentals of Secure Application Development:
Two examples of digital assets:
Source code repository
Risk (Definition): A potential future event where a threat exploits a vulnerability, causing harm to the confidentiality, integrity, or availability of assets.
Why secure coding is necessary in Defense in Depth: It addresses vulnerabilities introduced during development, forming a crucial internal layer of protection that reduces exploit potential even if outer defenses fail.
Three sources of threats:
System failures
One secure development framework/model:
DDoS stands for Distributed Denial of Service.
It's a cyberattack where multiple systems (often infected with malware and controlled by an attacker) are used to flood a target server, website, or network with so much traffic that it becomes slow, unresponsive, or crashes completely.
| Feature | DoS (Denial of Service) | DDoS (Distributed Denial of Service) |
|---|---|---|
| Attack Origin | Single source/machine | Multiple sources (botnet of compromised devices) |
| Scale of Attack | Smaller, easier to block | Large-scale, harder to mitigate |
| Speed & Power | Limited by one machine’s resources | Very powerful—can bring down large infrastructures |
| Detection | Easier to trace and stop | Hard to trace as it mimics legitimate traffic |
| Example | One computer repeatedly pings a server | Thousands of IoT devices send requests to a bank’s site at once |
Here’s a clear explanation of the three major secure development frameworks:
What it is: A security-focused software development process created by Microsoft to help developers build more secure software and address security compliance requirements.
Key Features:
SDL Phases Include:
Goal: Reduce security vulnerabilities before software is released.
🔗 Learn more: https://www.microsoft.com/sdl
What it is: An observational model, not a prescriptive one, that collects data from real organizations to show how software security activities mature over time.
Key Features:
Defines 12 core practices in 4 domains:
Organizations can benchmark their security efforts against others.
Unique Approach: Unlike SDL, BSIMM doesn’t tell you what to do. Instead, it shows you what others are doing successfully and helps you choose your next steps.
Goal: Help organizations measure and mature their software security programs.
🔗 Learn more: https://www.bsimm.com
What it is: A set of language-specific coding rules and best practices published by the CERT division of the Software Engineering Institute (SEI) at Carnegie Mellon University.
Focus: Avoiding common programming errors that lead to security vulnerabilities.
Available for:
Each guideline includes:
Goal: Help developers write secure, robust, and maintainable code from the start.
🔗 Learn more: https://wiki.sei.cmu.edu
| Framework | Purpose | Prescriptive / Observational | Scope |
|---|---|---|---|
| SDL | Embed security into every dev phase | Prescriptive | Process-driven |
| BSIMM | Benchmark and mature practices | Observational | Strategic maturity |
| CERT | Write secure code | Prescriptive | Language-specific |
Here's a clear comparison of the Waterfall Approach and the Agile Approach, along with simple explanations and real-world analogies:
Definition: The Waterfall model is a linear and sequential software development method where each phase must be completed before the next begins.
Like building a house—you complete the blueprint first, then build the foundation, walls, roof, etc., one step at a time.
Definition: Agile is an iterative and incremental software development approach that promotes flexibility, continuous feedback, and collaboration.
Like preparing daily meals with feedback from your family each day—adjusting ingredients and tastes based on their input.
| Feature | Waterfall | Agile |
|---|---|---|
| Process | Linear, sequential | Iterative, incremental |
| Flexibility | Low | High |
| User Involvement | Minimal after requirements | Continuous |
| Testing | After development is done | Continuous, within each sprint |
| Changes | Difficult to handle | Welcomed and managed |
| Best For | Clear, fixed-scope projects | Evolving or complex projects |
Here’s a simple explanation of the three popular Agile frameworks: Scrum, Kanban, and XP (Extreme Programming) — along with key concepts, benefits, and use cases.
What it is: Scrum is the most widely used Agile framework. It breaks work into time-boxed iterations called Sprints (usually 2–4 weeks) and relies heavily on team roles, ceremonies, and artifacts.
Scrum Roles:
Ceremonies:
What it is: Kanban is a visual workflow management method. It focuses on continuous delivery rather than fixed-length sprints. Work items flow through stages shown on a Kanban board (e.g., To Do → In Progress → Done).
What it is: Extreme Programming is a technical Agile framework focused on engineering practices to improve software quality and responsiveness to changing customer requirements.
| Feature | Scrum | Kanban | XP (Extreme Programming) |
|---|---|---|---|
| Work Style | Time-boxed sprints | Continuous flow | Iterative + Technical focus |
| Focus | Team collaboration & delivery | Workflow & efficiency | Code quality & engineering |
| Planning | At sprint start | As needed | Frequent, small releases |
| Key Tool | Sprint board & backlog | Visual Kanban board | TDD, CI, Pair programming |
| Best For | Product teams | Support/Maintenance teams | Skilled developer teams |