Section 10: Secure Software Development Flashcards

1
Q

SDLC

A

Organized process of developing a secure application throughout the life the project

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

What are the seven phases of the SDLC?

A

Planning and Analysis

Software/Systems Design (no coding, yet)

Implementation (coding is developed and basic debugging and testing)

Testing (check the code)

Integration

Deployment (application moved into the production environment)

Maintenance (bug fixing, patches, updates; version control, integration management)

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

Agile Development

A

Software development is performed in time-boxed or small increments to allow more adaptivity to change

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

DevOps

A

Software development and information technology operations

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

How do you implement integrity?

A

Hash algorithms, journaling

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

Threat modeling

A

helps prioritize vulnerability identification and patching

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

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

Minimize attack surface

A

Reduce the amount of code used by a program eliminate unneeded functionality, and require authentication prior to running additional plugins.

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

Create Secure Defaults

A

Ensure default installation is secure and require an admin to lessen the default

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

Authenticity and Integrity

A

Use digital signatures! That’s what this means

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

Fail Securely

A

If the application fails, can it be exploited?

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

Fix Security Issues

A

If a vulnerability is identified, then it should be quickly addressed

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

Rely on trusted SDKs

A

must come from trusted sources to ensure no malicious code is being added. If you’re reusing somebody’s code, make sure that you trust it.

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

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
15
Q

White-box testing

A

Occurs when a tester is provided full details of a system including the source code

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

Gray box

A

mixture of both. Might be given user level credentials, but not admin.

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

Structured Exception Handling (SEH)

A

Provides control over what the application should do when faced with a runtime or syntax error

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

Input Validation

A

Applications verify that information received from a user matches a specific format or range of values

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

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
20
Q

Dynamic Analysis

A

Analysis and testing while the program is being utilized

21
Q

Fuzzing

A

Infection of randomized data into a software program in an attempt to find system failures, memory leaks, etc.

22
Q

Backdoors

A

Code placed in computer programs to bypass normal authentication and other security mechanisms (should not be utilized)

23
Q

Directory Traversal

A

Method of accessing unauthorized directories by moving through the directory structure on a remote server. (messing with the URL path to get to something else with ../)

24
Q

Arbitrary Code Execution

A

Occurs when an attacker is able to execute or run commands on a victim computer

25
Q

Remote Code Execution

A

Occurs when they execute the commands on the computer remotely

26
Q

Zero Day

A

Attack against a vulnerability that is unknown to the original developer

27
Q

Buffer Overflow

A

Occurs when a process stores data outside the memory range allocated by the developer (just remember it’s an attempt to put more data into memory that it is designed to hold)

28
Q

Buffer

A

Temporary storage area for a program (glass that holds water)

29
Q

Stack

A

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

30
Q

Smash the stack

A

Occurs when a attacker fills up the buffer with NOP so that the return address may hit a NOP and continue on until it finds the attacker’s code to run

31
Q

Address Space Layout Randomization

A

Method used by programmers to randomly arrange the different address spaces used by a program or process to prevent buffer overflow exploits

32
Q

XSS

A

Cross Site Scripting - Occurs when an attacker embeds malicious scripting commands on a trusted website (stored/persistent; reflected; DOM based) (think about exploiting something from a web browser and website)

33
Q

XSRF

A

cross site request forgery - Occurs when an attacker forces a user to execute actions on a web server for which they are already authenticated (if you’ve already logged into the website, then you can get compromised by someone doing stuff through your already authenticated session)

34
Q

How do you prevent XRSF?

A

Tokens, encryption, XML File Scanning, and cookie verification

35
Q

SQL Injection

A

Attack consisting of the insertion or injection of an SQL query via input data from the client to a web application (OR 1=1 is always going to refer to an SQL Injection on the exam!)

36
Q

Injection Attack

A

Insertion of additional information or code through data input from a client to an application

37
Q

XML uses

A

for authentication, etc. data submission

38
Q

XML Bomb

A

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

39
Q

XML External Entity (XXE)

A

An attack that embeds a request for a local resource

40
Q

Best way to prevent XML attacks?

A

Input validation! Same with a SQL Injection. Anything with XML in the question, it is talking about an XML vulnerability

41
Q

Race Condition

A

Computer is trying to race itself, you’re both trying to do something at the same time and getting there before you. Multiple threats writing at the same time. (get there before the antivirus takes hold) (can also be used against databases and file systems)

42
Q

Dereferencing

A

A software vulnerability where we’re breaking apart the pointer and what it’s pointing to

43
Q

Time of Check to Time of Use

A

Not checking when checking out of the cart. Do a final check when you try to pay (is it still in stock?)

44
Q

Prevent time of check

A

Develop apps to not process things sequentially if possible

implement a locking mechanism to provide app with exclusive access

45
Q

Where do vulnerabilities arise?

A

Most of the time, from bad coding

46
Q

Insecure Components

A

Any code that is used or invoked outside the main program development process

47
Q

Insufficient Logging and Monitoring

A

Any program that does not properly record or log detailed enough information (

48
Q

Weak or default configuration

A

Any program that uses ineffective credentials or configurations, or one in which the defaults have not been changed for security