Ebook CISSP Domain 08 Software Development Security
Ebook CISSP Domain 08 Software Development Security
The systems development life cycle is a system development model used throughout the IT industry.
1.
Prepare a
security Plan
2.
5. Development
Disposal or Acquisition
Systems
Development Life
Cycle (SDLC)
4.
Operation or 3.
maintenance Implementation
Systems Development Life Cycle
Security controls should be included in every phase of the systems development life cycle.
Maintenance
Software Development Models
Cumulative cost
progress
Spiral model
1. Determine 2. Identify and
• In 1988, Barry Boehm developed the spiral objectives resolve risks
model.
• It is a meta-model that incorporates several
software development models.
Review
• It combines the idea of iterative
development with the systematic and
controlled aspects of the waterfall model.
• It includes risk management within software
development.
Release
4. Plan the next 3. Development
iteration and Test
Software Development Models
Rapid-application development
TRADITIONAL
HIGH-LEVEL DETAILED
ANALYSIS CONSTRUCTION TESTING IMPLEMENTATION
DESIGN DESIGN
RAD
DEMONSTRATE
REFINE
PROTOTYPE
BUILD
ANALYSIS AND
TESTING IMPLEMENTATION
QUICK CYCLES
Software Development Models
Extreme programming
Uncertain Confident
Estimates Next Iteration
Estimates
Spike
Software Development Models
Computer-aided
Component-based
Exploratory model software engineering
development
(CASE)
Reuse model
DevOps
DevOps, derived from the terms development and operations, is a software development method
that emphasizes communication, collaboration, and integration between the organization’s software
developers and IT staff.
Features:
• It helps an organization quickly produce
software products and services.
• It ensures the adoption of Quality Assurance
DevOps
to improve Technology Operations’
performance.
Technology Operations
DevOps
Trade secret
Quality
• DevSecOps extends the DevOps workflow to Developme
Assurance
include automated security processes and tools. nt
Trade Secret
The Capability Maturity Model (CMM) is based on the premise that the quality of a software product is
a direct function of the quality of its associated software development and maintenance processes.
The five maturity levels of CMM are:
Focuses on
continuous process
Processes improvement
Processes measured and
characterized for controlled
Processes the organization, Level 5:
characterized for proactive Optimized
Processes projects, often Level 4:
unpredictable, reactive Managed
poorly controlled Level 3:
and reactive Defined
Level 2:
Repeatable
Level 1:
Initial
Measurable
Defined maturity levels across business practices
Actionable
Clear pathways for improving maturity levels
Versatile
Technology, process, and organization agnostic
SDLC: Operation and Maintenance
Schedule and
Perform risk Approve/Reject
implement the
assessment the change
change
Report changes
Document the
Test the change to the
change
management
Integrated Product Team (IPT)
It generates the error message only It continues translating the program until the
Error List Generation
after scanning the whole program. first error is met, in which case it stops.
A software library is a set of precompiled helper functions, objects, or modules that are intended to be
reused during software development.
Software libraries include the following Some of the software library implementation
components: best practices are:
• Standard libraries provided by most • Use libraries only from trusted sources
languages such as Python, C, C++, C#, that are actively maintained and
Java, Ruby etc. widely used by several applications
List of tools:
Integrated development environments, or IDEs, are software platforms that provide programmers and
developers with a comprehensive set of tools for software development in a single product.
• A runtime system refers to the collection of hardware and software resources needed for
program execution on a computer system.
• The low-level services provided by a runtime system include processor interfacing, memory
loading, and digital-to-binary conversion among others.
• The higher-level services include type checking, code generation, debugging, or code
optimization.
For example: Java Runtime Environment (JRE) provides the complete framework for
executing and managing Java programs.
Continuous Integration
Continuous Integration
Shared Acceptance
Build Auto Unit test Auto Auto
repository tests
Continuous Delivery
Continuous Deployment
Security Orchestration, Automation, and Response (SOAR) refers to software solutions and tools that
aggregate inputs from a variety of sources and build automated response to low-level known
security events.
DAST only
• Environment
Total potential security issues configuration issues
SAST only • Patch-level issues
• Hard-coded secrets • Runtime privilege issues
• Code quality issues • Authentication issues
• Issues in dead or • Session management
unused code SAST DAST issues
• Insecure crypto
functions
• Complex injection
DAST and SAST
issues
• SQL injection
• Cross-site scripting
• Buffer overflows
• Path traversal
• Format string issues
Source Code Analysis Tools
• Performed during the early stages of • May create a sense of false security
the SDLC within a development team
Database concepts:
Database
Record File Database management system
(DBMS)
• Lock controls
• ACID: Atomicity, consistency, isolation, and durability
• Discretionary access control (DAC)
• Mandatory access control (MAC)
• View-based access controls
• Grant and revoke access controls
• Metadata controls
• Data contamination controls
• Online transaction processing (OLTP) control
Database: Threats and Vulnerabilities
Data
Views Concurrency Deadlocking
contamination
Improper
Interception of
Denial of service modification of Query attacks
data
data
Time of check or
Unauthorized
Server access time of use (TOC Web security
access
or TOU)
Introduction to Data Warehousing
1 Data warehouse
Data normalization 2
3 Data mining
Data dictionary 4
5 Metadata
The best practices for secure software development are provided by:
ISO/iEC
Software Security and Assurance
Completeness Isolation
Verifiability
Software Security and Assurance
Memory Protection is necessary to protect the memory used by one process from
unauthorized access by another.
Granularity of controls ensures that the security controls are granular enough
to address both program and user.
Kevin read the policy which Hilda Jacobs, General Manager: IT Security, Nutri
Worldwide Inc., had created for improving the software development process.
Per the policy, programmers will write, compile, and carry out initial testing of the
application’s functionality and implementation in the development environment.
• When the application is ready for production, the users and quality assurance
team will carry out functional testing within the testing and quality assurance
environment. When the application
Business Scenario is accepted by the user community, it is
moved into production environment.
Kevin read the policy which Hilda Jacobs, General Manager: IT Security, Nutri
Worldwide Inc., had created for improving the software development process.
Per the policy, programmers will write, compile, and carry out initial testing of the
application’s functionality and implementation in the development environment.
• When the application is ready for production, the users and quality assurance
team will carry out functional testing within the testing and quality assurance
environment. When the application
Business Scenario is accepted by the user community, it is
moved into production environment.
Redundant array of
independent disks (RAID) Maintaining the source code
Contingency planning
Disk mirroring documents
Software Security and Assurance: Software Forensics
Cryptographic techniques
They are used to protect the
protect information by
confidentiality and integrity
transforming the data
of information.
through encryption schemes.
XML SAML
Accreditation Certification
Methods to Assess the Effectiveness of Software Security
System Authorization
System Authorization
System Authorization
System Authorization
Auditing and Logging All mitigations applied should be thoroughly tested and verified
by independent security assessors to ensure that the security
flaw has been mitigated.
Certification and accreditation (C and A) is the process used to evaluate and approve a system for use.
C and A is a two-step process that includes:
• Technical review that assesses the security mechanism and evaluates their effectiveness
• The process may use safeguard evaluation, risk analysis, verification, testing, and auditing
techniques
• The goal is to ensure the system is right for the customer’s purpose
• Certification is often an internal verification and is only trusted within the organization
Accreditation
Certification and accreditation (C and A) is the process used to evaluate and approve a system for use.
C and A is a two-step process that includes:
• Accreditation is the formal declaration by the designated approving authority (DAA) that
an IT system is approved to operate in a particular security mode using a prescribed set
of safeguards at an acceptable level of risk.
• Once the accreditation is performed, management can formally accept the adequacy of
the overall security performance of an evaluated system.
Assess Security Impact of Acquired Software
Assessing the Security Impact of Acquired Software
Acquired software can introduce new vulnerabilities into the system and may
have an impact on the organization’s risk posture.
8
8
Commercial-Off-The-Shelf (COTS)
Free software doesn't mean the software is free of cost. While FOSS is often available free
of charge, its main difference with proprietary software is that it is free, as in freedom.
The freedom to
The freedom to
study how the The freedom to
The freedom to run improve the program
program works and redistribute copies
the program as you and release your
change it so it does so you can help
wish, for any purpose modified versions to
your computing as others
others
you wish
Open-Source
Advocates of open-source software believe that if more users view the source code, they will
eventually find all bugs and suggest how to fix them. Linus's Law states that given enough
eyeballs, all bugs are shallow.
On the other hand, advocates of proprietary systems note that open-source software may
allow hackers to find security vulnerabilities more easily than closed-source software.
Because the code of proprietary software is hidden, it must be more secure.
Open-Source
Many organizations outsource software development projects to third party suppliers, who will:
Application Programming Interface (API) is an interface that enables transfer of data between two or
more applications.
Representational State
Simple Object Access
Transfer (REST):
Protocol (SOAP):
A software architecture
A protocol and standard for
style consisting of
exchanging information
guidelines and best
between web services in a
practices for creating
structured format
scalable web services
Security of Application Programming Interfaces (APIs): Best Practices
Software-defined security (SDS) is a type of security model in which the information security in a
computing environment is implemented, controlled, and managed by a security software.
Information sourcehttps://www.gartner.com/smarterwithgartner/securing-the-next-generation-data-center-with-software-defined-security/
Software-Defined Security: Benefits
Enables automated
provisioning and orchestration
of security controls via policy
The following are the common types of threats and vulnerabilities of Web Application Environments:
Absence of parameter
Replay attack validation
• Passively assessing
To make sure the web application is secure, the following methods need to be followed:
The ten best practices introduced by (ISC)2 can help fulfill the
mission of building hack-resilient software.
This concludes Software Development Security.
Thank you