Chapter 11- Software Security

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/32

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

33 Terms

1
New cards

Insecure Interaction

Includes issues like Cross-Site Scripting, SQL Injection, Improper Input Validation, OS Command Injection, CSRF, and Unrestricted File Upload.

2
New cards

Risky Resource Management

Includes Out-of-bounds Write/Read, Use After Free, Path Traversal, NULL Pointer Dereference, Integer Overflow, Race Condition, and Uncontrolled Resource Consumption.

3
New cards

Porous Defenses

Includes Improper Authentication, Hard-coded Credentials, Missing Authorization, Missing Authentication for Critical Function, and Incorrect Default Permissions.

4
New cards

Security Flaws

Critical flaws like injection attacks caused by poor input validation; developers must fix these weaknesses.

5
New cards

Reducing Software Vulnerabilities

Stop vulnerabilities with secure design; find them with better testing; reduce their impact with resilient architectures.

6
New cards

Software Quality vs Security

Quality focuses on random failures; security focuses on deliberate attacks exploiting bugs triggered by unusual inputs.

7
New cards

Defensive Programming

Design software to continue functioning under attack; validate all assumptions and handle all errors safely.

8
New cards

Security by Design

Integrate security into design phase; use SAFECode best practices for secure software development.

9
New cards

Handling Program Input

Identify all input sources; validate size, type, and format before use.

10
New cards

Input Size & Buffer Overflow

Failure to validate input size leads to buffer overflows; treat all inputs as dangerous.

11
New cards

Interpretation of Program Input

Incorrect encoding or character handling can cause vulnerabilities; e.g., Heartbleed bug due to unchecked binary input.

12
New cards

Injection Attacks

Occur when unvalidated input affects execution flow; common in scripting and web applications.

13
New cards

Cross-Site Scripting (XSS)

Attacker injects malicious scripts into trusted sites; exploits browser trust of same-origin content.

14
New cards

Validating Input Syntax

Compare input against expected safe patterns; reject anything not explicitly allowed.

15
New cards

Alternate Encodings

Canonicalization ensures consistent encoding of input; prevents attackers from bypassing filters using alternate forms.

16
New cards

Validating Numeric Input

Ensure correct signed/unsigned interpretation; avoid overflows or bypasses of validation checks.

17
New cards

Input Fuzzing

Randomly generate inputs to test for crashes and vulnerabilities; effective, low-cost method for robustness testing.

18
New cards

Writing Safe Program Code

Ensure algorithm correctness, secure machine code translation, valid data manipulation, and error handling.

19
New cards

Correct Algorithm Implementation

Poorly implemented algorithms create bugs; predictable TCP sequence numbers and leftover test code can be exploited.

20
New cards

Ensuring Machine Language Matches Algorithm

Compiler may not perfectly translate logic; high-assurance systems (EAL7) verify this manually.

21
New cards

Correct Data Interpretation

Use strongly typed languages; improper casting or reinterpretation of data can create security flaws.

22
New cards

Correct Use of Memory

Avoid memory leaks, use proper allocation/deallocation; older languages more prone to issues.

23
New cards

Race Conditions

Concurrent access without synchronization causes corruption; fix using locks and coordination mechanisms.

24
New cards

Operating System Interaction

Programs must manage permissions, shared resources, and environment variables safely.

25
New cards

Environment Variables

Can be exploited to escalate privileges; must be sanitized or reset to safe values.

26
New cards

Vulnerable Compiled Programs

PATH or LDLIBRARYPATH manipulation can hijack privileged programs; use static linking or controlled environment.

27
New cards

Use of Least Privilege

Run programs with only required privileges; limits damage from potential exploits.

28
New cards

Root/Administrator Privileges

Separate privileged and normal operations; modular design reduces breach impact.

29
New cards

System Calls & Library Functions

Unsafe assumptions about system calls may cause unexpected behavior or optimization conflicts.

30
New cards

Preventing Race Conditions

Use synchronization like lockfiles; all processes must cooperate to maintain consistency.

31
New cards

Safe Temporary Files

Use unpredictable random file names; avoid race between file creation and access.

32
New cards

Other Program Interaction

Programs calling others must validate and sanitize all interactions; web interfaces are especially risky.

33
New cards

Handling Program Output

Ensure output is properly formatted, validated, and filtered before display or transmission.