CS 483 Software Security Final Exam

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

1/44

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.

45 Terms

1
New cards
Confidentiality
Ensuring that information is only accessible to those authorized to access it. Example: Encryption of emails to prevent unauthorized access.
2
New cards
Integrity
Ensuring data is accurate and unaltered. Example: Checksums used to detect corrupted files.
3
New cards
Availability
Ensuring systems and data are accessible when needed. Example: Redundant servers for uptime.
4
New cards
Non-repudiation
Guaranteeing that a party cannot deny the authenticity of their signature on a message. Example: Digital signatures.
5
New cards
Authentication
Verifying the identity of a user or system. Example: Username and password login.
6
New cards
Authorization
Granting access to resources based on identity. Example: Admin-only pages.
7
New cards
Audit
Tracking actions for accountability. Example: Logging file access events.
8
New cards
Reverse Engineering
Analyzing software to discover its components and workings. Example: Decompiling to study malware.
9
New cards
Code Obfuscation
Transforming code to make it difficult to understand. Example: Renaming variables to meaningless names.
10
New cards
Code Obfuscation Techniques

Includes renaming, control flow obfuscation, and string encryption.

11
New cards
Minimal Attack Surface
Reducing the number of potential entry points. Example: Disabling unused services.
12
New cards
Least Privilege
Granting only necessary access rights. Example: Running apps without admin rights.
13
New cards
Defense-in-Depth
Using multiple layers of security. Example: Firewall + Antivirus + IDS.
14
New cards
Fail-Safe Stance
System fails in a secure way. Example: Locking out users on suspicious activity.
15
New cards
Secure by Default
Systems are secure out of the box. Example: Disabled remote access by default.
16
New cards
Separation of Duties
Splitting responsibilities to prevent abuse. Example: Different users for review and approval.
17
New cards
Avoidance of Security Through Obscurity
Not relying on secrecy alone for security. Example: Using tested encryption instead of custom algorithms.
18
New cards
Robust Resource Management
Properly allocating and releasing resources. Example: Avoiding memory leaks.
19
New cards
Forensic Readiness
Preparing for investigation. Example: Log retention policies.
20
New cards
Security Features ≠ Security
Having features doesn't ensure security. Example: Login page with poor password storage.
21
New cards
Overriding
Subclass modifies behavior of parent method. Application: Customizing methods.
22
New cards
Polymorphism

One interface, many implementations. Application: Multiple classes responding to same method

23
New cards
Dynamic Binding
Method call resolved at runtime. Application: Flexibility in object behavior.
24
New cards
Malicious Overriding
Overriding methods for harmful behavior. Example: SafeManager override hides logs.
25
New cards
Integer Overflow
Value exceeds max limit of type. Example: Adding 1 to 2^31-1 in C causes overflow.
26
New cards
Integer Overflow in Java
Java allows overflow silently. Example: `int x = Integer.MAX_VALUE + 1`.
27
New cards
Integer Overflow in C
Can lead to vulnerabilities like buffer overflows.
28
New cards
Fuzzing
Automated testing using invalid/random input. Example: Finding crash bugs in parsers.
29
New cards
Random Testing
Sending random inputs to software to find bugs.
30
New cards
What Can Be Fuzzed

Any input interface: files, protocols, APIs

31
New cards
Generation-based Fuzzers
Create inputs based on a model/schema. Example: XML fuzzer.
32
New cards
Mutation-based Fuzzers
Mutate existing valid inputs. Example: AFL.
33
New cards
American Fuzzy Lop (AFL)
Popular mutation-based fuzzer with coverage guidance.
34
New cards
SQL Injection
Inserting malicious SQL code in inputs. Example: ' OR '1'='1.
35
New cards
Common SQL Injection Attacks

Bypass login, extract data, modify tables.

36
New cards
SQL Injection Prevention
Use prepared statements and input validation.
37
New cards
Waterfall vs Agile
Waterfall is linear; Agile is iterative. Agile allows faster security feedback.
38
New cards
Why Vulnerabilities Exist

Poor coding lack of reviews, rushing to release.

39
New cards
Adversary Perspective
Designing from attacker’s view. Example: Think like hacker to secure APIs.
40
New cards
Threat-Driven Development
Security based on predicted threats.
41
New cards
Threat Modeling

Structured approach to identifying threats. Tools: DFDs, STRIDE, Attack Trees

42
New cards
DFDs
Data Flow Diagrams represent data movement. Helps identify trust boundaries.
43
New cards
STRIDE

Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege

44
New cards
Attack Trees
Visualize paths an attacker could take.
45
New cards
DREAD

Damage, Reproducibility, Exploitability, Affected users, Discoverability