Domain 8. Software Development Security Flashcards

(65 cards)

1
Q

It not only focuses on the development life cycle of applications and how security needs to be involved right from the start and throughout the development phases of applications and systems, but also during the entire life of the applications, including the operations phases and decommissioning and disposal phases. In other words, security needs to be involved during an application’s entire life cycle, not just the development phase.

A

Software Development Security

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

Complete each phase of development, before flowing—waterfalling—down to the next phase, until the process is complete. This model does not allow a previous phase to be revisited.

A

Waterfall

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

A logical programming approach that is said to be foundational to object-oriented programming. Structured programming places heavy emphasis on structured control flow and aims to improve clarity, quality, and development time.

A

Structured Programming Development

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

Divide the development process into multiple, rapid iterations of defining, developing, and deploying, with heavy customer interaction throughout the process.

A

Agile

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

A version of the Agile methodology that is designed to allow large organizations with many teams to collaborate and effectively deliver software.

A

Scaled Agile Framework

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

A risk-driven development process that follows an iterative model while also including elements of waterfall. The spiral model follows defined phases to completion and then repeats the process; this model resembles a spiral when mapped to paper.

A

Spiral Method

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

Development process intended to produce software with a certifiable level of reliability by focusing on defect prevention.

A

Cleanroom

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

Is a set of best practices that focus on building key capabilities and benchmarking them to drive business performance. It essentially helps an organization to understand how mature their processes are, what they do well and what they need to improve.

A

Capability Maturity Model Integration (CMMI)

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

The Six CMMI Maturity Levels:

A

Maturity Level 0: Incomplete

Maturity Level 1: Initial

Maturity Level 2: Managed

Maturity Level 3: Defined

Maturity Level 4: Quantitatively Managed

Maturity Level 5: Optimizing

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

The Six CMMI Maturity Levels (Level 0: Incomplete):

A

This phase is unknown and ad hoc, indicating that work may not be getting completed.

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

The Six CMMI Maturity Levels (Level 1: Initial):

A

This is a reactive and unpredictable stage. It indicates that work is getting finished, but often coming in over budget and late.

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

The Six CMMI Maturity Levels (Level 2: managed):

A

This stage indicates that projects are managed and planned. The tasks are performed, key metrics are taken, and the project is controlled.

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

The Six CMMI Maturity Levels (Level 3: defined):

A

In this phase, the organization is being proactive as opposed to reactive. There are standards across the organization that guide programs, portfolios and projects.

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

The Six CMMI Maturity Levels (Level 4: Quantitatively managed):

A

This is a controlled and measured stage. It indicates that an organization is driven by data, using it to measure performance improvement objectives. These objectives meet the needs of stakeholders and are predictable.

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

The Six CMMI Maturity Levels (Level 5: optimizing):

A

This phase is flexible and stable. The organization is focused on continually improving and it is able to pivot when change and opportunity present themselves. The stability of the organization allows it to innovate and be agile.

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

To be the prime maturity model for software assurance that provides an effective and measurable way for all types of organizations to analyze and improve their software security posture. And supports the complete software life cycle, including development and acquisition, and is technology and process agnostic. It is intentionally built to be evolutive and risk-driven in nature.

A

OWASP’s Software Assurance Maturity Model (SAMM)

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

SAMM three maturity levels:

A

Level 1: Initial Implementation

Level 2: Structured Realization

Level 3: Optimized Operation

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

Looks at software assurance from the high-level perspective of five business functions:

  1. Governance
  2. Design
  3. Implementation
  4. Verification
  5. Operations
A

SAMM

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

Refer to hyper focused testing of new application code/features by pushing out the changes to a small subset of users versus pushing out to all users.

A

Canary Testing and Deployments

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

Is a software application that serves as an umbrella for purposes of software development. It’s essentially a one-stop shop that provides the tools programmers need to perform their development tasks. Typical __ include the following:

Code editor, compiler, debugger, automation tools.

A

Integrated Development Environment (IDE)

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

Refers to the time when code is being executed on a computer.

A

Runtime

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

Focuses on quick preliminary testing after a change is made to identify any simple failures of the most important existing functionality that worked before the change was made.

A

Smoke testing

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

Involves automating many of the steps for committing code to a repository, as well as automating much of the testing. This allows code changes to be frequently integrated into the shared source code and ensures that a bunch of testing gets done easily.

A

CI/CD Process

“Continuous Integration”

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

Also involves automating the integration and testing of code changes, but it also includes delivery, automating the release of these validated changes into the repository.

A

CI/CD Process

“Continuous delivery”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Takes things a step further and automatically releases the code changes into production so that they can be used by customers. With continuous deployment, code changes can be automatically put into production without further human intervention, as long as it passes through all of the testing and there are no issues. If there is an error in any of these steps, the changes will get sent back to the developer.
CI/CD Process "Continuous Deployment"
26
Focuses on managing changes in software and is part of the overall configuration/change management. Like other configuration/change management activities, __ best practices include baseline establishment and revision control, build and process management, and the facilitation of strong teamwork among the software development team.
Software Configuration Management (SCM)
27
Most notable benefits of SCM:
1. Process to systematically manage, organize, and control the changes in the documents, codes, and so on during the SDLC 2. Part of overall configuration management/change management 3. Increased productivity while minimizing mistakes
28
A storage location for software and application source code
Code repositories
29
The ability of an object—a piece of code—to inherit characteristics of previously created objects.
Inheritance
30
The idea that an object—a piece of code—can be placed inside another. Other objects can be called by doing this, and objects can be protected by encapsulating or wrapping them in other objects.
Encapsulation
31
Like a polymorphic virus that can change its behavior to avoid detection, __ in programming refers to code that can change based upon requirements. Think of it as “smart code” that can understand the environment and respond accordingly to meet the needs presented by objects in the environment.
Polymorphism
32
Refers to something being instantiated into multiple separate or independent instances.
Polyinstantiation
33
Types of Obfuscation:
1. Lexical Obfuscation: modifies the look of the code (changing comments, removing debugging information, and changing the format of the code). Easiest but weakest form of obfuscation. 2. Data Obfuscation: Modifies the data structure 3. Control Flow Obfuscation: Modifies the flow of control through the code (reordering statements, methods, loops, and creating irrelevant conditional statements).
34
Single row of a two-dimensional table within a relational database.
Tuple
35
Single column of a two-dimensional table within a relational database.
Attribute
36
The intersection of a row (tuple) and a column (attribute) is a single __ of data.
Field
37
One or more columns whose values uniquely identify a tuple (row) within a relational database. For example, AuthorID in the authors table.
Primary Key
38
One or more columns whose values in a table refer to the primary key in another table. AuthorID would be the primary key in the authors table. Any books in the books table by an author would have a __ referring to the author in the authors table.
Foreign Key
39
Ability for multiple processes to access or change shared data at the same time.
Concurrency
40
Prevent data corruption when multiple users try to write to the database simultaneously. A record can be locked.
Lock Controls
41
Relates to how information and transactions in an relational database management systems (RDBMS) environment should be treated.
ACID (atomicity, consistency, isolation, durability)
42
ACID:
A (Atomicity): All changes take effect or None at all C (Consistency): Consistent with the Rules I (Isolation): Transactions are Invisible to other users until complete D (Durability): Completed changes will not be Lost
43
Is data about other data
Metadata
44
Software Assurance Phases for Acquisition:
1. Planning/requirements 2. Contracting 3. Acceptance 4. Monitoring and Follow-on
45
Takes place when application input information exceeds the storage space—the buffer—allocated to store that information. __ conditions are not uncommon and typically can only be fixed through application of a software patch.
Buffer Overflows
45
Unintentional communications path that has the opportunity of disclosing confidential or sensitive information. Two types of covert channels exist: timing and storage.
Covert Channels
46
The ability to overwrite storage where secure and sensitive information has been written or stored. Most applications don’t have the ability to overwrite storage where sensitive information has been written, which can lead to this information being available or viewable by other applications.
Memory/Object Reuse
47
Is code that is downloaded to a system and then run on the system. This may happen because of clicking a link on a webpage or in an email. Once the link is clicked, the code downloads to the machine and runs locally, and therefore it is referred to as “mobile” code. If the code is malicious, serious harm could follow. A protective measure is to test the code in a sandbox environment first.
Executable Mobile Code
48
Refers to time-of-check time-of-use, and it may also be referred to as “race condition.” This occurs when a time gap exists between when a value is checked/enforced and when the value is used. This gap leaves room for malicious activity to occur.
TOCTOU
49
Are intentionally put in place by developers so they can quickly access an application to perform legitimate work. They’re sometimes also referred to as maintenance hooks.
Backdoors/Trapdoors
50
Input that does not meet certain criteria or rules. Data or input validation functionality should exist in applications and check data before it is accepted. In fact, inadequate input validation is one of the leading causes of attacks on web applications, and it routinely shows up in OWASP’s Top 10 vulnerabilities list.
Malformed Input
51
Is a term that politely refers to normal users having access to powerful programming and similar tools. A perfect example of this is giving users access to SQL query tools, so they can perform their own queries against the contents of a database instead of relying on somebody to do the work for them. As a result, these users often have access to very functional and powerful tools without commensurate security skills to protect their activities. Policies, security awareness, training, and education can help alleviate and bridge this gap.
Citizen Developers
52
Is a common problem with application and happens when information sent to a storage buffer exceeds the capacity of the buffer.
Buffer overflow
53
Can be used to protect against buffer overflows.
Address space layout randomization (ASLR)
54
Another way to protect against buffer overflows.
Parameter/bounds checking
55
Provide a way for applications to communicate with each other; act as translators.
Application Programming Interfaces (APIs)
56
Two of the most common APIs are:
Representational State Transfer (REST): - NEWER - more flexible and lighter weight alternative to SOAP - HTTP based - Easy to learn and use - Fast in processing - Output can take several forms, including CSV, JSON, RSS, and XML Simple Object Access Protocol (SOAP): - OLDER, originally developed by Microsoft - more rigid and standardized - XML-based - Extensible through use of WS standards - Strong error handling
57
Indicate the level of relatedness between units of a code base
Coupling
58
Indicate the level of relatedness between the code that makes up a unit of code
Cohesion
59
Meaning units of code can stand alone and are not dependent on other units of code to function.
Low coupling
60
Meaning the code that makes up a unit of software is highly related.
High Cohesion
61
Refers to something being instantiated into multiple separate or independent instances and can be used to prevent unauthorized inference.
Polyinstantiation
62
Testing method that analyzes source code
Static Application Security Testing (SAST)
63
Examines an application while it’s running
Dynamic Application Security Testing (DAST)
64
Combines elements of both SAST and DAST (testing performed as the application is running (DAST) with access to code (SAST))
Interactive Application Security Testing (IAST)