Domain 8 - Software Development Security Flashcards
System Development Life Cycle (SDLC)
Project initiation
Functional analysis and planning
System design specifications
Acceptance testing and implementation
System Life Cycle (SLC) (extends beyond SDLC)
Operations and maintenance
Revisions/ Disposal
Project initiation
Feasibility, cost, risk analysis, Management approval, basic security objectives
Functional analysis and planning
Define need, requirements, review proposed security controls
System design specifications
Develop detailed design specs, Review support documentation, Examine security controls
Software development
Programmers develop code. Unit testing Check modules. Prototyping, Verification, Validation
Acceptance testing and implementation
Separation of duties, security testing, data validation, bounds checking, certification, accreditation , part of release control
Operations and maintenance
release into production. Certification/accreditation
Revisions/ Disposal
remove. Sanitation and destruction of unneeded data
Change Management Process
Together, change and configuration management techniques form an important part of the software engineer’s arsenal and protect the organization from development-related security issues. The change management process has three basic components:
Three basic components of the Change Management Process
Request Control
Change Control
Release Control
Request Control
provides an organized framework within which users can request modifications, managers can conduct cost/ benefit analysis, and developers can prioritize tasks.
Change Control
provides an organized framework within which multiple developers can create and test a solution prior to rolling it out into a production environment. Change control includes conforming to quality control restrictions, developing tools for update or change deployment, properly documenting any coded changes, and rest
Release Control
Once the changes are finalized, they must be approved for release through the release control procedure.
Configuration Management Process
This process is used to control the version( s) of software used throughout an organization and formally track and control changes
Configuration Identification
administrators document the configuration of covered software products throughout the organization.
Configuration Control
ensures that changes to software versions are made in accordance with the change control and configuration management policies. Updates can be made only from authorized distributions in accordance with those policies.
Configuration Status Accounting
Formalized procedures are used to keep track of all authorized changes that take place.
Configuration Audit
periodic configuration audit should be conducted to ensure that the actual production environment is consistent with the accounting records and that no unauthorized configuration changes have taken place.
SDLC
Conceptual definition Functional requirements definition Control specifications development Design review Code review System test review Maintenance and change management
Software Capability Maturity model (CMM)
Quality of software is a direct function of quality of development and maintenance
Defined by Carnegie Mellon University SEI (Software Engineering Institute)
Describes procedures, principles, and practices that underlie software development process maturity 1-2 REACTIVE, 3-5 PROACTIVE
List the 5 steps of the Software Capability Maturity model (CMM).
- initiating – competent people, informal processes, adhoc, absence of formal process
- repeatable – project management processes, basic lifecycle management processes
- defined – engineering processes, presence of basic lifecycle management processes and reuse of code, use of requirements management, software project planning, quality assurance, configuration management practices
- managed – product and process improvement, quantitatively controlled
- Optimizing – continuous process improvement
Works with an IDEAL model.
Initiate begin effort, Diagnose perform assessment, Establish an action plan, Action implement improvements, Leverage reassesses and continuously improve
Project Management Tools
Gantt Chart
PERT
Gantt Chart
a type of bar chart that shows the interrelationships over time between projects and schedules. It provides a graphical illustration of a schedule that helps to plan, coordinate, and track specific tasks in a project. WBS a subpart
PERT
Program Evaluation Review Technique is a projectscheduling tool used to judge the size of a software product in development and calculate the standard deviation (SD) for risk assessment. PERT relates the estimated lowest possible size, the most likely size, and the highest possible size of each component. PERT is used to direct improvements to project management and software coding in order to produce more efficient software.