Safety/Security Flashcards

1
Q

4 causes for a lack of SW safety

A
  • there’s no bug-free code
  • the spec is always incomplete
  • hardware errors can cause weird readings
  • users’ inputs can be locally correct but collectively bad
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

what is a hazard

A

a situation in which something bad MAY (or may not) happen

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

3 ways to address hazards

A
  • avoidance
  • detection and removal
  • limit damage after the fact
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4 hazard management steps

A

1) ID hazards
2) assess the probability and impact
3) analyze the root causes
4) add requirements that will mitigate the hazard(s)

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

3 types of hazards

A
  • intolerable (people die)
  • ALARP (as low as reasonably practicable, bad but not lethal)
  • acceptable (minor damage)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

2 activities that ensure SW safety in the SW process

A
  • ID people in charge of safety

- conduct regular hazard reviews

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

what is static program analysis

A

the use of a tool to check for errors in the code

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

3 types of things checked using a static program analysis tool

A
  • looks for characteristic errors (common programming errors)
  • looks for user-defined error patterns
  • checks assertions at different points in the program
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

3 axioms of security

A
  • confidentiality (keep stuff private)
  • integrity (keep data reliable)
  • availability (able to use through authorized access)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

3 organization security levels

A
  • infrastructure (IT crowd)
  • application (users)
  • operational (management)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

4 types of security threats

A
  • interception (steal some data)
  • interruption (prevent use)
  • modification (get in and change assets)
  • fabrication (falsify private data)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

4 aspects of documented security policy

A
  • lists assets
  • ID protection level of each asset
  • responsibilities of people on each level of security
  • list procedures and technologies
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

4 reasons why security is harder than safety

A
  • there is a hostile environment with deliberate attacks
  • attackers try to mislead about the root causes
  • shut down doesn’t work for security as it does with safety
  • attacks adapt to any precautions taken to stop them
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

9 security requirement considerations according to Firesmith

A

1) ID system before prompting the user to authenticate?
2) how to authenticate users
3) Immune-type requirements. How will you defend yourself
4) Integrity. how to detect viruses/data corruption
5) Intrusion Requirements. How will intrusion be detected?
6) non-repudiation. how can ensure that third-parties have in fact agreed to some terms and conditions
7) how to ensure privacy
8) how to audit the system (make sure it’s secure)
9) maintaining system security over time

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

10 guidelines for security in architectural design

A

1) base decisions on security policy
2) use defense in depth
3) fail securely
4) balance security and usability
5) log user actions
6) use redundancy and diversity
7) have a specific format for inputs and validate them
8) compartmentalize your assets. Secure like assets in the same way
9) design for deployment (make configuration mistakes hard to make)
10) design for recovery (backup auth system)

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

4 types of testing for security holes

A

1) experience-based testing (test your system against common problems)
2) penetration testing (try and break in)
3) tool-based analysis (scans code)
4) formal verification (FMs)