Software Security Flashcards

(20 cards)

1
Q

What are software vulnerabilities?

A

Unintended behaviour, exploited by attackers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Main types of software vulnerabilities

A

Bugs
Inconsistent/emergent functionality
Design flaws
Supply chain attacks
Platform vulnerabilities

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are bugs

A

a mistake in the code, design, or logic of a software program that causes it to behave unexpectedly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

A common design flaw

A

Confused deputy problem - Type of privilege escalation where a program with high authority (deputy) is tricked by a program with fewer privileges into misusing its authority

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Supply chain attacks

A

An attack where a less secure element in the supply chain is exploited to gain access to the target company’s systems or data

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Example of a platform vulnerability

A

Meltdown - accesses kernel memory directly, allowing attackers to read privileged memory from an unprivileged process

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How are vulnerabilities found?

A

User input, root of most attacks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Fuzzing

A

Bombard input fields with random input, watch for crashes or odd behaviour

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Injections

A

User input designed to cause unintended behaviour

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Command Injection

A

an attack that allows the attacker to execute arbitrary commands on the host operating system by exploiting a vulnerable application

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Example of Command Injection

A

SQL Injection
Shell Injection

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Script Injection

A

an attacker injects malicious scripts into a web application that is executed on the user’s browser or server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Example of Script Injection

A

Cross-Site Script (XSS)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Memory Injection

A

injects malicious code into a computer’s runtime memory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Example of memory injection

A

buffer overflow - program writes more data into buffer than it can hold, causing program to crash or allow attacker to inject and execute malicious code

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Heartbleed vulnerability

A

2014 flaw in OpenSSL, attackers could send small requests but trick server into replying with large chunks of memory, leaking sensitive data

17
Q

Key Mitigation/Best Practices

A

Assume breach
Defence in depth
Security by Design
Never trust user input
Test continuously (fuzzing, pen testing)
Manage supply chain attacks
Avoid security by obscurity

18
Q

Defence in Depth

A

Using multiple-layered security measures, such as physical, technical, and administrative, to protect organisations’ assets. If one defence fails, other layers are in place to protect, detect, and mitigate attacks

19
Q

Security by Obscurity

A

Security practice that relies on hiding details/vulnerabilities of a system to make it more difficult for attackers to find and exploit them. The belief that secrecy itself provides security

20
Q

Security by Design

A

Integrating security measures in the initial design. Least privilege, fail safety, use design patterns.