Modeling a System Flashcards

1
Q

What is a data flow diagram?

A
  • diagrams that describe the flow of data among components in a system as well as properties of the components and flow
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are sequence diagrams?

A
  • diagrams that describe the interactions of components in an ordered manner.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are sequence diagrams useful in identifying threats?

A
  • They allow a designer to understand the state of the system over time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are process flow diagrams used for?

A
  • They highlight the operational flow through actions among components in a system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are attack trees?

A
  • They depict the steps along a path that an attacker might try as part of reaching their goal to perform actions with nefarious intent
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are fishbone diagrams?

A
  • They show the relationships between an outcome and the root cause(s) that enabled such an effect to occur
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When developing a DFD what are some common annotations used for elements?

A
  • Name of unit
  • Owner
  • If a process what privilege is it running at
  • If it’s a binary object is it expected to be signed?
  • What programming languages are used?
  • For managed/interpreted code what runtime/bytecode processor is used
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is an element in the context of a DFD?

A
  • A shape that represents a process or operating unit within the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a container in the context of a DFD?

A
  • A unit in the system that contains additional elements and flows
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a context layer in a DFD?

A
  • A DFD diagram that represents a high level view of a system and it’s interactions with external entities(e.g., remote systems or users)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Where is a container used in a DFD?

A
  • in a context layer DFD
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is an external entity in the context of a DFD?

A
  • It represents a process or system that is involved in the operation or function of the system but is not in scope for the analysis
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is a data store in the context of a DFD?

A
  • represents where bulk data is stored, a message bus, or a shared memory region
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What are some examples of data represented by a data store in the context of a DFD?

A
  • database
  • file or buffer holding small amounts of security relevant data
  • logfile output
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are some meta data that should be captured for a data store in the context of a DFD?

A
  • Type of storage - file, S3 bucket, service mesh, shared memory region
  • Type and classification of data held - structured/unstructured, data format
  • Sensitivity or value of data
  • Protections on the data store itself
  • Replication - is data replicated to a different data store
  • Backup - is data copied to another place for safety but with reduced security and access controls
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are data flow symbols in the context of a DFD?

A
  • They describe where and how interactions are made among entities.
17
Q

What is the primary purpose of a data flow symbols in the context of a DFD?

A
  • They describe the primary direction of travel of communications that is relevant for the purposes of analysis.
18
Q

What should be conveyed with data flow elements in the context of a DFD?

A
  • Application-level data or control messages that are being passed on an established channel
19
Q

What meta data should data flows be assigned in the context of a DFD?

A
  • Type or nature of channel - IPC, Network
  • Protocols in use - HTTP, gRPC, TCP/IP, HTTPS
  • Data being communicated
  • Order of operations(if useful)
20
Q

What is a “trust boundary” in the context of a DFD?

A
  • Shows objects and entities operating within the boundary that operate at the same trust level
21
Q

What is a “block element” in the context of a DFD?

A
  • An architectural element that selectively alters the data flow on which it is attached
22
Q

What are examples of “block elements” in the context of a DFD?

A
  • a host firewall, another physical device, a logical mechanism as a function of the architecture
23
Q

What meta data is associated with “block elements” in the context of a DFD?

A
  • Type of block - a physical or logical device and whether it’s optional
  • Behavior - what the block does and how it may modify the flow or access to a port or process
24
Q

What is an “Attack Tree”?

A
  • A modeling technique used to understand how a system is vulnerable to attackers influencing a system
25
Q

When is an “Attack Tree” used in modeling a system?

A
  • When performing threat analysis from an attacker-centric perspective
26
Q

What outcome is an “Attack Tree” meant to show?

A
  • A positive outcome for an attacker and a negative outcome for the system owners
27
Q

In order for an “Attack Tree” to provide the correct analysis of impact what is needed?

A
  • A complete knowledge of how something can be compromised
  • Understanding motivation, skills, resources available to different types and groups of attackers
28
Q

What are the first steps in creating a system model?

A
  • Identify the major building blocks in the system
29
Q

What are some examples of major building blocks in a system?

A
  • Applications
  • Servers
  • Databases
  • Datastores
30
Q

When building a system model - After major building blocks are defined what is next?

A
  • Identify the connections to each building block
31
Q

When building a system model - What are examples of connections between databases?

A
  • Clients of a database and the privilege they have
  • Access control to the database
32
Q

When building a system model - What are examples of connections to servers?

A
  • Ports that a server listens on.
  • Protocol used when communicating with the port
33
Q

When building a system model - What are examples of connections between applications?

A
  • Application API/UI
34
Q

When building a system model who should be involved with the exercise?

A
  • Lead Architect
  • Designers
  • Development leads
  • QA lead
35
Q

What properties should a ‘good’ model have?

A
  • Accurate
  • Meaningful
  • Representative
  • Living
36
Q

What are the attributes that support a ‘good’ model being ‘accurate’?

A
  • Its free of inaccurate or misleading information that will result in an imperfect threat analysis
37
Q

What are the attributes that support a ‘good’ model being ‘meaningful’?

A
  • Captures information that points to conditions for potential compromise
  • It creates a representation of the system without recreating it.
  • Provides sufficient data to make inferences and direct judgments on the characteristics of the system
38
Q

What are the attributes that support a ‘good’ model being ‘representative’?

A
  • Should represent the design intentions of the Architect or the realized implementation by the dev teams
39
Q

What are the attributes that support a ‘good’ model being ‘living’?

A
  • It’s updated on a regular basis to ensure accuracy i.e., It should represent ‘what is’ and not ‘what it should be’