← → navigate · ESC index · Back to quit
SCIA 120 · Week 09
cover · 01/30
Introduction to Secure Computing and Information Assurance

Secure Programming

Author: Dr. Zhijiang Chen (Frostburg State University)

Tech darkAI line artReading-based content
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where secure programming affects users, data, or operations.
InstructorHow would you recognize secure programming in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Every application that runs on a network, every operating system,…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 01PROTECT - DETECT - RESPONDSecure...Every...ControlEvidence
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
agenda · 02/30
Overall Page

Overall roadmap

The week moves from core definitions to practical security decisions.

Introduction

Core reading concept for Week 09.

The Secure Software Development Lifecycle (SSDLC)

Core reading concept for Week 09.

Threat Modeling

Core reading concept for Week 09.

STRIDE

Core reading concept for Week 09.

Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where overall roadmap affects users, data, or operations.
InstructorHow would you recognize overall roadmap in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Introduction
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 02PROTECT - DETECT - RESPONDOverall roadmapIntroductionThe Secure...Threat Modeling
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
objectives · 03/30
03 objectives

Learning objectives

Students should explain, apply, and evaluate the week’s main security ideas.

Explain Introduction.
Explain The Secure Software Development Lifecycle (SSDLC).
Explain Threat Modeling.
Explain STRIDE.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where learning objectives affects users, data, or operations.
InstructorHow would you recognize learning objectives in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Explain Introduction.
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 03POLICY - TOOL - TEST - EVIDENCELearning...Explain...Explain The...Explain Threat...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 04/30
04 application

Opening scenario

Use a realistic scenario to anchor Secure Programming in operational decision-making.

Every application that runs on a network, every operating system, every firmware image represents a body of code that was written by human beings who made decisions under the…
Those decisions — some deliberate, many inadvertent — produced vulnerabilities that adversaries exploit every day at scale.
The consequences of insecure software extend far beyond inconvenience.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where opening scenario affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Every application that runs on a network, every operating system,…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 04POLICY - TOOL - TEST - EVIDENCEOpening scenarioEvery...Those decisions...The...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
definition · 05/30
05 definition

Introduction

Every application that runs on a network, every operating system, every firmware image represents a body of code that was written by human beings who made decisions under the…

Every application that runs on a network, every operating system, every firmware image represents a body of code that was written by human beings who made decisions under the…
Those decisions — some deliberate, many inadvertent — produced vulnerabilities that adversaries exploit every day at scale.
The consequences of insecure software extend far beyond inconvenience.
The 2017 Equifax breach, which exposed the sensitive personal data of 147 million Americans, was caused by a failure to patch a known Apache Struts vulnerability (CVE-2017-5638).
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where introduction affects users, data, or operations.
InstructorWhat problem does introduction help us understand?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Every application that runs on a network, every operating system,…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 05POLICY - TOOL - TEST - EVIDENCEIntroductionEvery...Those decisions...The...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
concept · 06/30
06 concept

The Secure Software Development Lifecycle (SSDLC)

The traditional Software Development Lifecycle (SDLC) — requirements, design, implementation, testing, deployment, maintenance — becomes a Secure SDLC by integrating security…

The traditional Software Development Lifecycle (SDLC) — requirements, design, implementation, testing, deployment, maintenance — becomes a Secure SDLC by integrating security…
Requirements Phase : Security requirements must be explicitly gathered alongside functional requirements.
What data does the application handle?
What are the regulatory requirements (HIPAA, PCI-DSS, GDPR)?
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where the secure software development lifecycle (ssdlc) affects users, data, or operations.
InstructorHow would you recognize the secure software development lifecycle (ssdlc) in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: The traditional Software Development Lifecycle (SDLC) — requirements,…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 06POLICY - TOOL - TEST - EVIDENCEThe Secure...The traditional...Requirements...What data does...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 07/30
07 application

Threat Modeling

Threat modeling is a structured approach to identifying security threats, their likelihood and impact, and appropriate countermeasures during the design phase.

Threat modeling is a structured approach to identifying security threats, their likelihood and impact, and appropriate countermeasures during the design phase.
It answers the question: "What can go wrong with this system?"
Threat Modeling connects to risk, controls, and evidence.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where threat modeling affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Threat modeling is a structured approach to identifying security…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 07POLICY - TOOL - TEST - EVIDENCEThreat ModelingThreat modeling...It answers the...Threat Modeling...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
evidence · 08/30
08 evidence

STRIDE

STRIDE is the most widely used threat categorization framework for software systems, developed by Microsoft.

STRIDE is the most widely used threat categorization framework for software systems, developed by Microsoft.
STRIDE connects to risk, controls, and evidence.
STRIDE connects to risk, controls, and evidence.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where stride affects users, data, or operations.
InstructorHow would you recognize stride in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: STRIDE is the most widely used threat categorization framework for…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 08RISK = ASSET x THREAT x IMPACTSTRIDESTRIDE is the...STRIDE connects...Evidence
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
definition · 09/30
09 definition

DREAD

The DREAD model provides a risk rating framework for prioritizing identified threats: - D amage: How severe is the damage if exploited?

The DREAD model provides a risk rating framework for prioritizing identified threats: - D amage: How severe is the damage if exploited?
(1-10) - R eproducibility: How reliably can the attack be reproduced?
(1-10) - E xploitability: How much skill/effort is required to exploit?
(1-10) - A ffected users: What percentage of users would be affected?
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where dread affects users, data, or operations.
InstructorWhat problem does dread help us understand?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: The DREAD model provides a risk rating framework for prioritizing…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 09RISK = ASSET x THREAT x IMPACTDREADThe DREAD model...1-10 - R...1-10 - E...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
concept · 10/30
10 concept

Buffer Overflow

A buffer overflow occurs when a program writes more data to a buffer (a contiguous block of memory) than it was allocated to hold, overwriting adjacent memory regions.

A buffer overflow occurs when a program writes more data to a buffer (a contiguous block of memory) than it was allocated to hold, overwriting adjacent memory regions.
When the vulnerable function returns, execution jumps to the attacker's payload.
Heap buffer overflows target memory allocated by malloc/new.
They are more complex to exploit but can corrupt heap metadata structures, function pointers, or vtable entries to achieve code execution.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where buffer overflow affects users, data, or operations.
InstructorHow would you recognize buffer overflow in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: A buffer overflow occurs when a program writes more data to a buffer…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 10POLICY - TOOL - TEST - EVIDENCEBuffer OverflowA buffer...When the...Heap buffer...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 11/30
11 application

Integer Overflow

An integer overflow occurs when an arithmetic operation produces a result outside the range that the integer type can represent.

An integer overflow occurs when an arithmetic operation produces a result outside the range that the integer type can represent.
For example, adding 1 to a uint8 t with value 255 yields 0 (wraps around).
Integer Overflow connects to risk, controls, and evidence.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where integer overflow affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: An integer overflow occurs when an arithmetic operation produces a…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 11POLICY - TOOL - TEST - EVIDENCEInteger OverflowAn integer...For example...Integer...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
evidence · 12/30
12 evidence

Format String Vulnerabilities

Format string vulnerabilities arise when user-supplied data is passed directly as the format string argument to functions like printf: An attacker providing format specifiers like…

Format string vulnerabilities arise when user-supplied data is passed directly as the format string argument to functions like printf: An attacker providing format specifiers like…
%n writes the number of bytes printed so far to a memory address, potentially enabling arbitrary memory writes.
Format string bugs can lead to information disclosure and remote code execution.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where format string vulnerabilities affects users, data, or operations.
InstructorHow would you recognize format string vulnerabilities in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Format string vulnerabilities arise when user-supplied data is passed…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 12POLICY - TOOL - TEST - EVIDENCEFormat String...Format string...n writes the...Evidence
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
definition · 13/30
13 definition

SQL Injection (with Code Examples)

SQL injection (SQLi) remains one of the most prevalent and impactful web vulnerabilities.

SQL injection (SQLi) remains one of the most prevalent and impactful web vulnerabilities.
It occurs when user-supplied data is incorporated into a SQL query without proper sanitization.
Vulnerable code (Python): Attack : An attacker enters admin' -- as the username (and anything as the password).
The query becomes: The -- comments out the rest of the query, bypassing the password check entirely.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where sql injection (with code examples) affects users, data, or operations.
InstructorWhat problem does sql injection (with code examples) help us understand?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: SQL injection (SQLi) remains one of the most prevalent and impactful…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 13POLICY - TOOL - TEST - EVIDENCESQL Injection...SQL injection...It occurs when...Vulnerable code...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
concept · 14/30
14 concept

Cross-Site Scripting (Revisited from a Developer Perspective)

As covered in Chapter 8 from the attacker's perspective, XSS is fundamentally a failure of output encoding.

As covered in Chapter 8 from the attacker's perspective, XSS is fundamentally a failure of output encoding.
Safe: htmlspecialchars encodes , ", and ' as HTML entities, preventing script injection.
Cross-Site Scripting (Revisited from a Developer Perspective) connects to risk, controls, and evidence.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where cross-site scripting (revisited from a developer perspective) affects users, data, or operations.
InstructorHow would you recognize cross-site scripting (revisited from a developer perspective) in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: As covered in Chapter 8 from the attacker's perspective, XSS is…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 14CONFIDENTIALITYINTEGRITYAVAILABILITYCIACross-Site...As covered in...Safe...Evidence
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 15/30
15 application

Race Conditions

A race condition (or TOCTOU — Time Of Check to Time Of Use) vulnerability occurs when a program's behavior depends on the relative timing of events in a concurrent environment,…

A race condition (or TOCTOU — Time Of Check to Time Of Use) vulnerability occurs when a program's behavior depends on the relative timing of events in a concurrent environment,…
Example: A program checks if a file is writable (check), then opens and writes to it (use).
An attacker using a symlink race can replace the target file with a symlink to a sensitive file (e.g., /etc/passwd) between the check and the use, causing the program to overwrite…
In web applications, race conditions can arise in multi-threaded environments where shared state (e.g., session data, balance checks) is not properly synchronized.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where race conditions affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: A race condition (or TOCTOU — Time Of Check to Time Of Use)…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 15POLICY - TOOL - TEST - EVIDENCERace ConditionsA race...Example A...An attacker...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
evidence · 16/30
16 evidence

Insecure Deserialization

Many languages provide mechanisms to serialize (convert to bytes) and deserialize (reconstruct from bytes) complex objects for storage or transmission.

Many languages provide mechanisms to serialize (convert to bytes) and deserialize (reconstruct from bytes) complex objects for storage or transmission.
Insecure deserialization occurs when untrusted data is deserialized without validation.
Depending on the language and libraries involved, this can lead to remote code execution, object injection, or data tampering.
Java's native serialization mechanism is particularly notorious — the readObject method can trigger arbitrary code execution if an attacker can supply crafted serialized data.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where insecure deserialization affects users, data, or operations.
InstructorHow would you recognize insecure deserialization in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Many languages provide mechanisms to serialize (convert to bytes) and…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 16POLICY - TOOL - TEST - EVIDENCEInsecure...Many languages...Depending on...Javas native...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
definition · 17/30
17 definition

Use-After-Free

A use-after-free vulnerability occurs when a program continues to use a memory pointer after the memory it points to has been freed (deallocated).

A use-after-free vulnerability occurs when a program continues to use a memory pointer after the memory it points to has been freed (deallocated).
If an attacker can control what data is placed in the reallocated memory region, they may be able to redirect program execution.
Use-after-free vulnerabilities are among the most common critical memory safety vulnerabilities in C/C++ code and are a primary motivation for the adoption of memory-safe…
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where use-after-free affects users, data, or operations.
InstructorWhat problem does use-after-free help us understand?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: A use-after-free vulnerability occurs when a program continues to use…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 17POLICY - TOOL - TEST - EVIDENCEUse-After-FreeA...If an attacker...Use-after-free...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
concept · 18/30
18 concept

Input Validation and Sanitization

All data entering a program from external sources — web forms, API parameters, URL parameters, HTTP headers, file uploads, database data, environment variables — must be treated…

All data entering a program from external sources — web forms, API parameters, URL parameters, HTTP headers, file uploads, database data, environment variables — must be treated…
Validation checks that input conforms to the expected format, type, length, and range.
Prefer whitelist (allowlist) validation over blacklist validation: define what is acceptable and reject everything else, rather than trying to enumerate all possible malicious…
Blacklists are almost always incomplete.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where input validation and sanitization affects users, data, or operations.
InstructorHow would you recognize input validation and sanitization in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: All data entering a program from external sources — web forms, API…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 18POLICY - TOOL - TEST - EVIDENCEInput...All data...Validation...Prefer...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 19/30
19 application

Parameterized Queries

As demonstrated in the SQL injection section, parameterized queries (also called prepared statements) prevent SQL injection by separating code from data.

As demonstrated in the SQL injection section, parameterized queries (also called prepared statements) prevent SQL injection by separating code from data.
Every modern database library supports them.
There is no legitimate reason to use string concatenation to build SQL queries with user input.
Similarly, use ORM frameworks that handle parameterization automatically, but be aware of their configuration — many ORMs support raw query modes that can reintroduce SQLi if…
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where parameterized queries affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: As demonstrated in the SQL injection section, parameterized queries…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 19POLICY - TOOL - TEST - EVIDENCEParameterized...As demonstrated...Every modern...There is no...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
evidence · 20/30
20 evidence

Output Encoding

Output encoding is the complement to input validation: before including any data in output (HTML, JavaScript, CSS, URL, XML, JSON), encode it appropriately for the output context.

Output encoding is the complement to input validation: before including any data in output (HTML, JavaScript, CSS, URL, XML, JSON), encode it appropriately for the output context.
HTML encoding, JavaScript encoding, URL encoding, and CSS encoding all use different character escapes and must be applied contextually.
A string that is safe in an HTML body context may be dangerous in an HTML attribute, JavaScript string, or URL.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where output encoding affects users, data, or operations.
InstructorHow would you recognize output encoding in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Output encoding is the complement to input validation: before…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 20POLICY - TOOL - TEST - EVIDENCEOutput EncodingOutput encoding...HTML encoding...A string that...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
definition · 21/30
21 definition

Error Handling and Logging

Security-sensitive applications must handle errors carefully: - Do not expose internal details (stack traces, database error messages, file paths) to end users in production.

Security-sensitive applications must handle errors carefully: - Do not expose internal details (stack traces, database error messages, file paths) to end users in production.
These help attackers understand the system's internals.
- Log sufficient information for forensic investigation (who did what, when, and from where) but do not log sensitive data (passwords, credit card numbers, health information,…
- Use structured logging that can be analyzed by SIEM systems.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where error handling and logging affects users, data, or operations.
InstructorWhat problem does error handling and logging help us understand?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Security-sensitive applications must handle errors carefully: - Do…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 21POLICY - TOOL - TEST - EVIDENCEError Handling...Security-sensiti...These help...- Log...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
concept · 22/30
22 concept

Cryptographic API Usage

A recurring theme in software security: never roll your own cryptography .

A recurring theme in software security: never roll your own cryptography .
Cryptographic implementation is extraordinarily subtle — timing side channels, improper IV handling, padding oracle vulnerabilities, and subtle mathematical errors can completely…
Even expert cryptographers discover implementation flaws in their own code.
Use well-established, actively maintained cryptographic libraries: OpenSSL/BoringSSL/LibreSSL (C), Bouncy Castle (Java), Python's cryptography package (which wraps libsodium or…
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where cryptographic api usage affects users, data, or operations.
InstructorHow would you recognize cryptographic api usage in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: A recurring theme in software security: never roll your own…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 22POLICY - TOOL - TEST - EVIDENCECryptographic...A recurring...Even expert...Use...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 23/30
23 application

Dependency Management and Software Composition Analysis (SCA)

Modern applications depend on dozens or hundreds of third-party libraries.

Modern applications depend on dozens or hundreds of third-party libraries.
These dependencies have their own vulnerabilities.
Tools include Snyk, OWASP Dependency-Check, GitHub's Dependabot, and Google's OSV-Scanner.
Incorporate SCA into the CI/CD pipeline to catch new vulnerabilities as they are disclosed.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where dependency management and software composition analysis (sca) affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Modern applications depend on dozens or hundreds of third-party…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 23POLICY - TOOL - TEST - EVIDENCEDependency...Modern...These...Tools include...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
evidence · 24/30
24 evidence

Static Analysis (SAST)

Static Application Security Testing (SAST) tools analyze source code (or compiled bytecode) without executing the program, looking for patterns that indicate security…

Static Application Security Testing (SAST) tools analyze source code (or compiled bytecode) without executing the program, looking for patterns that indicate security…
They can detect common vulnerabilities like SQL injection, XSS, buffer overflows, use of deprecated functions, and hard-coded credentials.
SAST tools include Semgrep (multi-language, rule-based), Checkmarx, Veracode, SonarQube (open-source tier available), Bandit (Python), and Brakeman (Ruby on Rails).
SAST should be integrated into the IDE (developer gets immediate feedback) and CI/CD pipeline (gates build/merge on security findings).
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where static analysis (sast) affects users, data, or operations.
InstructorHow would you recognize static analysis (sast) in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Static Application Security Testing (SAST) tools analyze source code…
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 24POLICY - TOOL - TEST - EVIDENCEStatic Analysis...Static...They can detect...SAST tools...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
vocabulary · 25/30
25 vocabulary

Key terms to keep

Vocabulary becomes useful when students can connect terms to scenarios and evidence.

Introduction
The Secure Software Development Lifecycle (SSDLC)
Threat Modeling
STRIDE
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where key terms to keep affects users, data, or operations.
InstructorHow would you recognize key terms to keep in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Introduction
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 25POLICY - TOOL - TEST - EVIDENCEKey terms to...IntroductionThe Secure...Threat Modeling
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
comparison · 26/30
26 comparison

Compare: Introduction vs. The Secure Software Development Lifecycle (SSDLC)

Comparing related ideas helps students avoid shallow memorization.

Where Introduction applies.
Where The Secure Software Development Lifecycle (SSDLC) applies.
How the difference changes the security decision.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where compare: introduction vs. the secure software development lifecycle (ssdlc) affects users, data, or operations.
InstructorHow would you recognize compare: introduction vs. the secure software development lifecycle (ssdlc) in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Where Introduction applies.
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 26POLICY - TOOL - TEST - EVIDENCECompare:...Where...Where The...How the...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
application · 27/30
27 application

Applied decision checkpoint

Students should translate concepts into a defensible security decision.

Identify the asset or process at risk.
Choose a preventive, detective, or corrective control.
Explain what evidence would prove the control is working.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where applied decision checkpoint affects users, data, or operations.
InstructorIf this issue appeared in a campus or business system, what evidence would you collect first?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Identify the asset or process at risk.
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 27RISK = ASSET x THREAT x IMPACTApplied...Identify the...Choose a...Explain what...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
review · 28/30
28 review

Review questions

Retrieval practice should ask students to define, compare, apply, and evaluate.

Define one core concept in plain language.
Compare two controls or threats from the week.
Apply one idea to a campus or business system.
Evaluate why a solution might fail in practice.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where review questions affects users, data, or operations.
InstructorWhat is the one sentence takeaway for review questions?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Define one core concept in plain language.
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 28POLICY - TOOL - TEST - EVIDENCEReview questionsDefine one core...Compare two...Apply one idea...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
bridge · 29/30
29 bridge

Bridge to lab and assessment

The reading should transfer into evidence-based lab work and written explanations.

Collect evidence, not just screenshots.
Explain what the artifact proves.
Connect the proof back to risk and control selection.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where bridge to lab and assessment affects users, data, or operations.
InstructorHow would you recognize bridge to lab and assessment in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Collect evidence, not just screenshots.
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 29VERIFY - MONITOR - IMPROVEBridge to lab...Collect...Explain what...Connect the...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck
SCIA 120 · Week 09
closing · 30/30
30 closing

Takeaway

The central takeaway from Week 9 is to reason from risk to evidence to action.

Secure Programming
Security is a decision process, not just a tool list.
Use the reading to justify practical choices.
Classroom Dialog
ScenarioA campus technology team is reviewing a realistic Week 9 incident where takeaway affects users, data, or operations.
InstructorHow would you recognize takeaway in a real organization?
StudentThis concept helps us decide what is at risk, what evidence to check, and which control would reduce harm. For this slide, the key clue is: Secure Programming
Teaching point: Push the answer beyond a definition: name the asset, identify the risk, choose evidence, and justify a practical control.
GAMMA-STYLE VISUAL - SLIDE 30POLICY - TOOL - TEST - EVIDENCETakeawaySecure...Security is a...Use the reading...
Dr. Zhijiang Chen · Frostburg State University
Week 09 deck