Software Analysis and Security Flashcards

(37 cards)

1
Q

What does the V-Model map?

A

Each dev phase maps to testing phase.
Requirement gathering - Acceptance testing
System Analysis - System training
Software Design - Integration testing
Module design - Unit testing
Coding at base of V

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

What method is most suitable for V-model?

A

Waterfall

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

Why do modern (Agile/DevOps) teams test more often than the V-model suggests?

A

They test continuously and iteratively, not only at the end

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

What is an AppSec Program?

A

A set of ongoing related activities with a long-term security goal

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

Name 4 typical activities in a mature AppSec program

A

Threat modelling on every design
Security review of pull requests
Security checks in the pipeline
AppSec team verifies Secure SDLC practices

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

What does SCA stand for and what risks does it manage?

A

Software Composition Analysis – manages security, license compliance and quality risks from third-party/open-source components

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

Static program analysis

A

Performed without executing programs (white-box)

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

Static program analysis: Advantages

A

Knows internals
Scan entire code
Early detection
Allow quick turnaround for fixes in exact locations in the code

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

Static program analysis: Disadvantages

A

Misses runtime issues
Language specific
Must know about implementation details and internals

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

Dynamic program analysis

A

executes the system (black-box)

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

Dynamic program analysis: Advantages

A

No need to know about implementation details or programming
Catches more errors via execution
Monitors data flow, e.g leaks

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

Dynamic program analysis: Disadvantages

A

Must understand software requirements and complexity (to derive good scenarios)
Does not cover all cases

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

Acceptance Testing

A

Test whether implemented feature match requirements

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

Integration Testing

A

Test modules run together

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

Unit Testing

A

Test individual pieces of the code for common defects

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

Fuzzy Testing

A

Invalid/random inputs to simulate attacks

17
Q

Static Application Security Testing (SAST)

A

Analyses source code without running. Looks for flaws compromising security and implements fixes and patches in code.

18
Q

What does SAST detect?

A

User data flow
Dead code
Hardcoded passwords
Data leak on exceptions

19
Q

What is SAST process?

A

Iterates code statically
Checks for issues with built-in checklist
Syntax/convection checks

20
Q

Problem and solution to this software development good practice: ‘write code alongside tests’

A

Problem: Might only test safest path one that will never fail
Solution: Get someone else to write the tests for your code

21
Q

Structure of unit testing

A

Done in isolation - separate test folder. One test per method/scenario

22
Q

What does unit testing require?

A

Modular code (break problems into units)

23
Q

Test Driven Development (TDD)

A

Start with failing tests, code until they pass, which helps improve design

24
Q

Unit Testing: Advantage

A

Find bugs
Supports all languages
Professional
Aids refactoring/integration
Documentation

25
Unit Testing: Disadvantage
Burden to create good tests Requires coding
26
Dynamic Application Security Testing (DAST)
Examines running apps' responses to simulated attacks. Observe stimuli/responses and investigate vulnerabilities
27
SAST vs DAST: Requires
SAST: source code DAST: Running app
28
SAST vs DAST: Stage
SAST: Early SDLC DAST: Late SDLC
29
SAST vs DAST: Fix Cost
SAST: Cheap DAST: Expensive
30
SAST vs DAST: Detects
SAST: Code issues DAST: Runtime/env/config issues
31
SAST vs DAST: Use Case
SAST: All software DAST: Web apps/services
32
Purpose of Fuzzing
Quality Assurance (internal software) System Administration (dependencies) Vulnerability Assessment (break others’)
33
Fuzzing Process
Injects random inputs (fuzz vectors) Monitor crashes Report/fix
34
Fuzz Vectors for Integers
zero, negative, very large
35
Fuzz Vectors for Characters
Escaped Interpretable characters SQL quotes
36
Fuzz Vectors for Binary
Random streams of data
37
What is fuzzing used by threat actors for?
Zero day attacks