CS 483 Final Review Guide

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/22

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.

23 Terms

1
New cards

The C.I.A. Triad

2
New cards

The C.I.A. Triad Means-

  • Authentication: Verify identity (passwords, biometrics, cards, etc.).

  • Authorization: Check user permissions.

    Audit: Maintain logs to track critical events.

3
New cards

Reverse Engineering


  • Purpose: Understand software design and functionality (used in auditing, malware analysis, compatibility).

  • Process: Gather data → analyze structure → analyze behavior → modify/test.

  • Tools: IDA, Ghidra, BinaryNinja, OllyDbg, Wireshark, etc.

4
New cards

Code Obfuscation

  • Applications: IP protection, anti-tampering, evasion of analysis.

  • Techniques:

    • Control flow obfuscation

    • Code packing

    • Variable/function renaming

    • Opaque predicates

    • Dead code insertion

    • String encryption

    • Dynamic code generation

5
New cards
  1. Secure Design Principles

Example: Simple Web Server


6
New cards
  1. Secure Design Principles

Principles

  1. Minimal Attack Surface

  2. Least Privilege

  3. Defense-in-Depth

  4. Fail-Safe Stance

  5. Secure by Default

  6. Separation of Duties

  7. Avoidance of Security Through Obscurity

  8. Robust Resource Management

  9. Forensic Readiness

  10. Security Features ≠ Security

7
New cards

Inheritance Security Concepts and Risks

  • Concepts: Overriding, Polymorphism, Dynamic Binding.
    Risk: Malicious overriding (e.g., SafeManager example with malicious clone() in MaliciousDate class).

8
New cards

Inheritance security Java hashCode & equals contract

Java hashCode & equals contract: Properly overriding these prevents attackers from faking object equality to retrieve protected data.

9
New cards

Integer Security

Issue: Integer overflows in C, C++, Java can cause vulnerabilities.

10
New cards

Integer Security Examples

  • Silent overflow in Java's built-in integer types.

  • Unsafe memory allocation (e.g., JPEG comment field overflow).

  • Sign errors (signed to unsigned conversions leading to buffer overflows).

Truncation vulnerabilities.

11
New cards

Integer Security Mitigations

  • Use Math.addExact(), BigInteger in Java.

  • Apply secure coding practices in C/C++.

12
New cards

What is Fuzzing?


  • Testing by providing random or invalid inputs to discover vulnerabilities.

13
New cards

Fuzzing Types

  • Generation-based: Create inputs from scratch (e.g., URL parsing).

  • Mutation-based: Modify existing valid inputs (e.g., image file fuzzing).

14
New cards

Fuzzing Tools & Concepts

  • SAGE (Microsoft)

  • Smart vs. dumb fuzzing

  • Used for file formats, protocols, APIs, databases, etc.

15
New cards

SQL Injection

Exploiting improper user input validation to execute arbitrary SQL commands.

16
New cards

SQL Injection Common Attacks

  • Tautology (' OR 1=1--).

  • Union-based (UNION SELECT ... FROM creditcards).

  • Additional commands (DROP TABLE creditcards).

17
New cards

SQL Injection Prevention

  • Use parameterized queries.

  • Input validation.

  • Principle of least privilege for database accounts.

18
New cards

Secure Software Processes Models

  • Waterfall: Sequential development stages.

Agile: Incremental, iterative (Scrum, Kanban).

19
New cards

Secure Software Processes Why Vulnerabilities Happen

  • Poor requirements/design

  • Misuse of cryptography

  • Language/platform vulnerabilities

Bad coding practices & flawed assumptions

20
New cards

Secure Software Processes Threat-Driven Development

  • Threat modeling as part of the design process.

21
New cards

Secure Software Process

Process

Decompose system → Determine threats → Rank threats → Mitigate threats.

22
New cards

Secure Software Processes STRIDE Methodology

STRIDE Methodology

  • Spoofing

  • Tampering

  • Repudiation

  • Information disclosure

  • Denial of service

  • Elevation of privilege

23
New cards

Secure Software Processes Tools

  • Microsoft Threat Modeling Tool

  • OWASP Threat Dragon