Domain 8. Software Development Security Flashcards
(65 cards)
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.
Software Development Security
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.
Waterfall
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.
Structured Programming Development
Divide the development process into multiple, rapid iterations of defining, developing, and deploying, with heavy customer interaction throughout the process.
Agile
A version of the Agile methodology that is designed to allow large organizations with many teams to collaborate and effectively deliver software.
Scaled Agile Framework
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.
Spiral Method
Development process intended to produce software with a certifiable level of reliability by focusing on defect prevention.
Cleanroom
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.
Capability Maturity Model Integration (CMMI)
The Six CMMI Maturity Levels:
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
The Six CMMI Maturity Levels (Level 0: Incomplete):
This phase is unknown and ad hoc, indicating that work may not be getting completed.
The Six CMMI Maturity Levels (Level 1: Initial):
This is a reactive and unpredictable stage. It indicates that work is getting finished, but often coming in over budget and late.
The Six CMMI Maturity Levels (Level 2: managed):
This stage indicates that projects are managed and planned. The tasks are performed, key metrics are taken, and the project is controlled.
The Six CMMI Maturity Levels (Level 3: defined):
In this phase, the organization is being proactive as opposed to reactive. There are standards across the organization that guide programs, portfolios and projects.
The Six CMMI Maturity Levels (Level 4: Quantitatively managed):
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.
The Six CMMI Maturity Levels (Level 5: optimizing):
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.
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.
OWASP’s Software Assurance Maturity Model (SAMM)
SAMM three maturity levels:
Level 1: Initial Implementation
Level 2: Structured Realization
Level 3: Optimized Operation
Looks at software assurance from the high-level perspective of five business functions:
- Governance
- Design
- Implementation
- Verification
- Operations
SAMM
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.
Canary Testing and Deployments
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.
Integrated Development Environment (IDE)
Refers to the time when code is being executed on a computer.
Runtime
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.
Smoke testing
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.
CI/CD Process
“Continuous Integration”
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.
CI/CD Process
“Continuous delivery”