Mod 4 Flashcards

(62 cards)

1
Q

What does it mean to say, “security is an emergent property”?

A

That it must be designed into the system from the beginning

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

Are security tests similar to functional tests?

A

No. Security tests exists to break things, not repair

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

Can security testing be done for the whole system?

A

No, risk assesment must be performed to determine what is worth protecting.

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

Define attack pattern

A

Common set of methods to attack systems in a more abstract form.
(The method used to do an attack)

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

Define attack surface

A

“Where” the external user has access to the system

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

What software life cycle level are bugs found?

A

Implementation

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

What software life cycle level are flaws found?

A

Design

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

What are the 3 tasks of a Security Software Engineer?

A

Create security test plans using static analysis tools
Performing security tests
Performing penetration tests

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

Where in the software development lifecycle do security testing, penetration testing, and security operations take place?

A

Between the Testing and Maintenance phases

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

What’s the most efficient type of standard software testing?

A

Whitebox

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

How does security testing differ from penetration testing?

A

It’s whitebox (meaning source code is available)
Uses risk analysis to build tests
Measures security against risk model

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

Define penetration testing

A

Testing software in deployed environment by attacking it

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

Define fuzz testing

A

A testing methodology in which well formed inputs are randomly changed and used for testing

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

When is fuzz testing useful?

A

When there is no obvious way to divide your input into equivalence classes.

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

If no faults are found during a penetration test, does that mean there are not faults in the system?

A

Not necessarily. It just means there were no faults under the specific conditions of that test.

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

What are the 4 macro steps of penetration testing?

A

Plan
Discover
Attack
Report

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

What are the 5 micro steps of penetration testing?

A

Target acquisition
Inventory
Probe
Penetrate
Host-based assessment

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

When does vulnerability scanning come into penetration testing?

A

Micro steps 1-3, though most would just say step 3

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

What are the 4 categories of penetration tests?

A

Network
Host
Distributed apps
Local apps

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

What are the tools used in network penetration testing? (3)

A

nmap,
ncat,
wireshark

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

Define static analysis

A

analyzing the code without running it

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

What’s the most common tool for static analysis?

A

compilers

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

Is it good to use different compilers for static analysis?

A

Yes because different compilers can give different messages.

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

What types of errors are NOT detected by compilers?

A

syntax

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Name 3 types of analysis
Manual code analysis Static code analysis Dynamic code analysis
26
What type of review involves reviewer(s) walking through each line of code?
Manual code analysis
27
What type of review is conducted without executing the code?
Static code analysis
28
What type of review is conducted while the code is executing?
Dynamic code analysis
29
What are advantages of static code analysis?
doesn't require executing code, sound to describe program properties, easily integrated into SDL, able to find most bugs, faster than manual code analysis
30
What are disadvantages of static code analysis?
not precise enough to describe program properties, high amount of false positives, humans are needed to verify results, cannot be entirely automatic
31
What are advantages of manual code analysis?
can outperform automated analysis tools if done correctly, low amount of false positives
32
What are disadvantages of manual code analysis?
time consuming, typically requires an expert
33
What are advantages of dynamic code analysis?
no false positives, it finds security vulnerabilities
34
What are disadvantages of dynamic code analysis?
code must be able to compile (so you have to build the whole thing), may cause harm to the system being tested
35
Define false negative in terms of analysis
program contains bugs that the tool/process misses
36
Define false positive in terms of analysis
tool/process reports bugs that aren't there
37
Which is more dangerous, false negative or false positive?
false negative. it leads to a false sense of security
38
A tool is sound if...
it produces no false negatives.
39
A tool is unsound if...
it tries to reduce false positives by letting false negatives slip by.
40
Define secure code review
a specialized task with the goal of finding different types of security weaknesses
41
What are the 5 types of peer reviews?
Formal, Over the shoulder, Email pass around, Pair programming, Tool assisted
42
What's the best way to find bugs?
Code reviews
43
List 4 benefits of code reviews
find defects sooner, find defects with less effort than testing, find different defects than testing, educate devs about security bugs
44
List the 4 steps of the secure code review process
Developer interview, Static analysis tools, Manual inspection, Findings report
45
What's the purpose of the developer interview?
to meet with a dev and try to get an understanding of what the code is trying to do
46
What's the purpose of the findings report?
to document the findings and present them to the development team
47
Vulnerabiltiy severity has a rating scale of...
no risk, low risk, moderate risk, risky, very risky, most risky
48
What are the 8 classifications of coding errors?
1. Input Validation and Representation 2. API Abuse: 3. Security Features: 4. Time and State: 5. Error Handling 6. Code Quality 7. Encapsulation 8. Environment
49
Define buffer overflow
app attempts to write beyond the memory space allocated for data
50
Define unvalidated input
user input is not checked to make sure it conforms to the data type the system can handle
51
Define race conditions
the execution order of two different progams may change the output of some variable
52
What's a CWE?
A common weakness enumeration. A specification providing a common language for discussing, finding, and mitigating security vulnerabilities.
53
What's a CVE?
Common Vulnerabilities and Exposure A list of security vulnerabilities and exposures that aim to provide common names for publicaly known problems.
54
What's CAPEC?
Common Attack Pattern Enumeration and Classification Publicly available, community developed list of common attack patterns.
55
When using off the shelf (OTS) software, you only have to validate the functionality you use. (T/F)
True
56
What type of software does NOT require security validation?
Programming tools
57
(T/F) Security is easy to add to a product after all other features are programmed.
False
58
(T/F) Penetration testing should find all vulnerabilities.
False
59
List methods of static analysis, and 1 that's not.
Pair programming, Compiler flags, Desk checking Using a debugger
60
(T/F) Static analysis can use compiled code or source code.
True
61
(T/F) Code vulnerabilities do not depend on the programming language you use; they are universal.
False
62
(T/F) Secure code review findings can be tracked in an issue tracker without the need to write reports to senior management or auditors.
False