CH10 Secure Software Development Flashcards

1
Q

What is SDLC ?

A

SDLC = Software Development Life Cycle

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

What are the seven phases of the software development life cycle ?

A
  1. Planning and Analysis
  2. Software / Systems Design
  3. Implementation
  4. Testing
  5. Integration
  6. Deployment
  7. Maintenance
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is Agile software development ?

A

Performed in time-boxed or small increments to allow more adaptivity to change.
Agile development projects work in either two-week or four-week time period known as sprint.

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

What is DevOps ?

A

Software development and information technology operations.

Software developers and IT operation personal work closely together to speed up the development and deployment of the applications and to get things out to the end user quicker.

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

What is CIA triad ?

A

confidentiality, integrity, and availability

Confidentiality – ensures that only authorized users can access the data. The most common way of ensuring confidentiality is to include the use of encryption to maintain the secrecy of the data being stored.

Integrity – ensuring that the data is not modified or altered without permission. Two main ways that we do this as developers is by utilizing hash algorithms as a method of integrity check for the data or by using journaling and logging functions to create audit trail showing the integrity of the data has not been compromised.

Availability – Ensuring that data is available to authorized users when it is needed. Developers do this by creating redundancy in the overall system design, by ensuring their software code is error-free, or by ensuring that their software can conduct error handling appropriately to prevent crashes.

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

What does Threat modeling do?

A

Threat modeling helps prioritize vulnerability identification and patching

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

What is a concept of Defense in Depth?

A

Layering of security controls is more effective and secure than relying on a single control

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

What are SDLC Principles ?

A

o Developers should always remember confidentiality, integrity, and availability
o Threat modeling helps prioritize vulnerability identification and patching
o Least Privilege
o Defense in Depth
o Never Trust User Input
o Minimize Attack Surface
o Create Secure Defaults
o Authenticity and Integrity
o Fail Securely
o Fix Security Issues
o Rely on Trusted SDKs

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

What is Black-box Testing ?

A

Occurs when a tester is not provided with any information about the system or program prior to conducting the test

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

What is White-box Testing ?

A

Occurs when a tester is provided full details of a system including the source code, diagrams, and user credentials in order to conduct the test

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

What is Gray-box testing ?

A

mixture of black-box and white-box. Tester is given some amount of information about the system and conducts his testing as if he doesn’t have full access to it

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

What is Static Analysis ?

A

Source code of an application is reviewed manually or with automatic tools without running the code

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

What is Dynamic Analysis ?

A

Analysis and testing of a program occurs while it is being executed or run

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

What is Fuzzing ?

A

Injection of randomized data into a software program in an attempt to find system failures, memory leaks, error handling issues, and improper input validation

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

What is Backdoor vulnerabilities ?

A

code placed in computer programs to bypass normal authentication and other security mechanisms.
Backdoors are a poor coding practice and should not be utilized.

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

What is Arbitrary Code Execution ?

A

occurs when an attacker is able to execute or run commands on a victim computer. (Ex: someone start executing code on your computer while you have stepped away)

17
Q

What is Directory Traversal ?

A

method of accessing unauthorized directories by moving through the directory structure on a remote server.

a directory traversal is used as a way to access a file on a web server and sometimes you can even use it to conduct an arbitrary code execution on that server

For the exam: any time you see that there’s a series of ../ in them, it is most likely a directory traversal and it’s being used as part of an exploit

18
Q

What is RCE ?

A

RCE = Remote Code Execution

occurs when the attacker is able to execute or run commands on a remote computer

19
Q

What is Zero Day Exploit?

A

Attack against a vulnerability that is unknown to the original developer or manufacturer

20
Q

What is Buffer Overflow ?

A

Occurs when a process stores data outside the memory range allocated by the developer.

Buffer overflows attempt to put more data into memory than it is designed to hold

21
Q

What is Stack ?

A

reserved area of memory where the program saves the return address when a function call instruction is received.

22
Q

What is Smash the Stack ?

A

occurs when an attacker fills up the buffer with NOP so that the return address may hit a NOP (non-operation instruction) and continue on until it finds the attacker’s code to run.

23
Q

What is ASLR ?

A

ASLR = Address Space Layout Randomization

It is one of the ways to mitigate against a buffer overflow attack.
It is a method used by programmers to randomly arrange the different address spaces used by a program or process to prevent buffer overflow exploits.

24
Q

What is XSS ?

A

XSS = Cross-Site Scripting

Occurs when an attacker embeds malicious scripting commands on a trusted website

When this occurs, the attacker is trying to gain elevated privileges, steal information from the victims cookies, or gain other information stored by the victim’s web browser. It focuses on exploiting the trust between a user’s web browser and website.

To prevent Cross-site scripting (XSS) attack, programmers should use the output encoding of their web applications to prevent codes from being injected into them during delivery, and they should also use proper input validation to prevent the ability for HTML tags to be inserted by users when they’re entering information on a web form.

25
Q

What are 3 types of cross-site scripting attacks ?

A

Stored and Persistent cross-site scripting attack - attempts to get data provided by the attacker to be saved on to the web server by the victim.

Reflected cross-site scripting attack – attempts to have a non-persistent effect activated by a victim clicking a link on the site

Document Object Model (DOM) based attack – attempts to exploit the victim’s web browser. (AKA cross-site scripting attack)

26
Q

What is XSRF ?

A

XSRF - Cross-Site Request Forgery

occurs when an attacker forces a user to execute actions on a web server for which they are already authenticated. It exploits the trust that website has in a user. The attacker is sending a command to the web server through your authenticating session, forging the request to make it look like it came from you. The attacker will not be able to see the web server’s response to his request but he could still use this to transport funds from the victim, change their password, etc.

To prevent Cross-Site Request Forgery (XSRF) programmer should require specialized tokens, encryption, XML file scanning, and cookie verification.

27
Q

What is SQL Injection ?

A

Attack consisting of the insertion or injection of an SQL query via input data from the client to a web application

For the Exam : any time you see a question that shows something like an ‘OR 1=1’ or any other statement that will always return true value, it’s going to be an SQL injection

28
Q

What is Injection attack?

A

Insert of additional information or code through data input from a client to an application. Most common injection attacks happen through SQL, HTML, XML, and LDAP injections

Most common type is an SQL injection

29
Q

What is XML Vulnerabilities ?

A

XML data submitted without encryption or input validation is vulnerable to spoofing, request forgery, and injection of arbitrary code

30
Q

What is XML Bomb (Billion Laughs Attack) ?

A

XML encodes entities that expand to exponential sizes, consuming memory on the host and potentially crashing it

31
Q

What is XXE

A

XXE = XML External Entity

An attack that embeds a request for a local resource

To prevent XML vulnerabilities from being exploited, use proper input validation

32
Q

What is Race Conditions ?

A

A software vulnerability when the resulting outcome from execution processes is directly dependent on the order and timing of certain events, and those events fail to execute in the order and timing intended by the developer

A race condition vulnerability is found where multiple threads are attempting to write a variable or object at the same memory location

Race conditions are difficult to detect and mitigate

Race conditions can also be used against databases and file systems

33
Q

What is Dereferencing ?

A

A software vulnerability that occurs when the code attempts to remove the relationship between a pointer and the thing it points to

34
Q

What is TOCTTOU ?

A

TOCTTOU = Time of Check to Time of Use

The potential vulnerability that occurs when there is a change between when an app checked a resource and when the app used the resource

35
Q

What is Stored and Persistent cross-site scripting attack

A

attempts to get data provided by the attacker to be saved on to the web server by the victim.

36
Q

What is Reflected cross-site scripting attack ?

A

attempts to have a non-persistent effect activated by a victim clicking a link on the site

37
Q

What is Document Object Model (DOM) based attack ?

A

attempts to exploit the victim’s web browser. (AKA cross-site scripting attack)