2022 FRSecure CISSP Mentor Program - 2022 - Class Eleven
2022 FRSecure CISSP Mentor Program - 2022 - Class Eleven
INTRODUCTION
2022
Class #11 – Domain 7-8
Security Operations & Software Development Security
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 1
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 1
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 2
CISSP® MENTOR PROGRAM – SESSION ELEVEN
GETTING GOING…
Managing Risk!
Studythrough
We’re Tips: Chapters 1, 2, 3, and part way into Chapter
4!
• Study in small amounts frequently (20-30 min)
•• Check-in.
Flash card and practice test apps help
•• How many
Take napshave read
after Chapter
heavy 1, 2(aka
topics & 3?Security Models)
•• Questions?
Write things down, say them out loud
• Use the Slack Channels
• Exercise or get fresh air in between study sessions
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 3
CISSP® MENTOR PROGRAM – SESSION ELEVEN
GETTING GOING…
Great job last week! We’re almost through Domain 7 (Security Operations)
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 4
#MissionBeforeMoney
Security Architecture
Warning! (lots to cover, lots to memorize, long class)
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 5
#MissionBeforeMoney
DAD JOKE
Before we get too deep into this.
How about a dumb dad joke?
HAHAHAHA
Moving on…
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 6
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ELEVEN
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 8
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ELEVEN
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 9
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ELEVEN
Recovery point objective (RPO) - The amount of data loss tolerable when a disaster
occurs, usually expressed as a number of transactions or data points. RPO can also be
expressed using time, like an RPO of no more than one day of data.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 10
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ELEVEN
Differential backups- Capture all data changed since the last full backup, meaning
they run faster and require less storage.
Incremental backups- Capture all data that has changed since the last full or
incremental backup, meaning they capture the smallest amount of data and run the fastest.
When restoring, incremental backups will typically take the longest to restore from, as they
require the last full backup and all incremental backups made since, while differential
backups require only the last full and differential backup.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 11
#MissionBeforeMoney
• We must always balance the cost and speed desired for backup and recovery.
• Length of data retention requirements.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 12
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 13
#MissionBeforeMoney
• Backup media and the data it contains should be tracked in the asset
inventory, with full consideration during risk assessment and mitigation
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 14
#MissionBeforeMoney
• Striping breaks incoming data into smaller pieces that are written across multiple drives
to increase read/write speed.
• Mirroring makes copies of data and writes them across multiple drives, while parity
calculations use a mathematical model to allow striped data to be reconstructed even if
some stripes are lost.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 15
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ELEVEN
RAID 1 - Mirrored array that provides fault tolerance, but no read/write performance benefit.
RAID 5 - Striping with a parity array, which increases read/write performance and provides fault
tolerance.
RAID 0+1 and 1+0 - Nested RAIDs that implement both functions of RAID 0 and 1 in different
orders. 0+1 is a striped array of mirrors, while 1+0 is a mirrored array of stripes. Both combine fault
tolerance with increased performance.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 16
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 17
#MissionBeforeMoney
• The further away a recovery site is, the longer it will take key personnel to reach it in the
event that operations must be moved.
• Organizations with very short RTO and MTD windows, dividing staff, resources, and
processes permanently between multiple sites is an acceptable, but costly, solution
known as a mirror site
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 18
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 19
#MissionBeforeMoney
• Benefit to multiple processing sites is the redundancy built in. The same redundancy
has the drawback of higher costs for rent, personnel, and equipment.
• Any migration to a cloud or outsourced service provider, there are increased risks related
to losing control over data.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 20
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 21
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 22
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 23
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 24
#MissionBeforeMoney
Break time diversions like video games or a nap room can be vital for employees under
stress.
Costs like catering or entertainment associated with disaster operations may even be
covered by cyber insurance as part of recovery costs!
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 25
#MissionBeforeMoney
“one voice” principle is essential to crisis communications and dictates that the
organization should have a unified voice when communicating, especially with outside
stakeholders like press or the public.
This principle should be documented and included as part of training—any personnel who
receive requests from media or other outsiders must refrain from making a statement and
instead refer to the appropriate communications contact.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 26
#MissionBeforeMoney
Methods and paths for communicating with internal stakeholders can include active
methods like a phone tree, which requires a response from each person called, or passive,
like a message posted on a website that employees can access.
The method chosen should account for the criticality of the personnel receiving it and the
information being conveyed.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 27
#MissionBeforeMoney
Law enforcement and response providers like DFIR firms are also key external
stakeholders who will need information and access to perform their jobs related to the
response operations.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 29
#MissionBeforeMoney
• Many variables in restoration that are outside the purview of the security team, but
security practitioners are still critical stakeholders.
• The security function may have critical roles assigned in the DR plan and may need to be
consulted regarding decisions like safeguarding data during relocation to the primary
site.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 30
#MissionBeforeMoney
• The purpose of these trainings is twofold: personnel acquire a trained response that
speeds up reaction times during an emergency, and the exercise provides an
opportunity to identify incorrect weaknesses in the plan.
• More advanced training is required for personnel with specific duties identified in the
BC and DR plans.
• Training and awareness opportunities should be provided on a routine basis to ensure
the knowledge remains current.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 31
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 32
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 33
#MissionBeforeMoney
• Output of DR plan testing should be lessons learned and plan updates, which the CISSP
may be responsible for incorporating into the plan.
• Plans should be in a format that is resistant to disaster. For example, paper copies of
the plan may be distributed, and employees instructed to store them at home, in case a
disruption renders information systems or organization facilities unusable.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 34
#MissionBeforeMoney
• Each participant talks through not only the information presented in the plan, but also
talks through the steps they would perform to execute the procedures, information they
require in the scenario, and issues they foresee.
• Least expensive method of testing, both in terms of time and cost, as well as the
potential for disrupting normal operations.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 35
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 36
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 37
#MissionBeforeMoney
• Parallel tests reduce the impact on primary systems while providing relatively full
coverage for testing recovery capabilities.
• They do incur significant costs and may have operational impacts like slightly delaying
processing or reducing staff productivity as resources are split between daily
operational tasks and the parallel test tasks.
• Due to the breadth of testing, a parallel exercise can find issues that other testing might
miss, such as incorrectly configured alternate sites or incomplete data backup
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 38
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 39
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 40
#MissionBeforeMoney
• A security practitioner is ideally suited to not only craft this exercise scenario, but also to
act as a moderator as they likely have knowledge needed to answer questions during the
simulation.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 41
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 42
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 43
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 44
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 45
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 46
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 47
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 48
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 49
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 50
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 51
#MissionBeforeMoney
Awareness - provide or reinforce basic information to a general audience, often through devices like posters,
notes on a company intranet site, or email notices.
Training - designed to convey specific knowledge needed for performing the job function, such as system
administrators only using privileged accounts for certain tasks to minimize phishing risks. Training is delivered by
an authoritative source and takes many forms including computer-based and instructor-led training.
Education - is the most formal and is focused on explaining theories and their application. It often takes the
form of academic classes, continuing education, or certifications like the CISSP. It demonstrates a deep level of
knowledge for an individual and is suitable for specific roles in the organization like leading and managing the
information security program.
Effectiveness should always be measured -. This may be difficult for general awareness but is
relatively easy for training and education where tests or graded assignments can be used as metrics.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 52
#MissionBeforeMoney
Communications - emergency communications plans need to account for alternate means of getting critical
information to required stakeholders. This includes details of BC or DR plans like alternate work arrangements
and critical health and safety notices like shelter-in-place orders.
BCDR plan execution - Emergencies often necessitate the activation of BCDR plans and contingency
procedures. Crisis communications must include simple, easy-to-follow instructions designed to eliminate
confusion and ambiguity.
Security practitioners may not be directly involved in creating or delivering these messages, but as key
stakeholders in the process, they must ensure vital security information is communicated effectively.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 53
#MissionBeforeMoney
• Security controls to detect duress should focus on preserving the health and safety of
the individual—if an attacker knows that their victim has summoned help, they may take
actions to harm the individual.
• Subtle means of indicating duress, such as entering a special code on an electronic lock
or using a code word or phrase with a coworker, can allow for detection of duress
without increasing the danger faced by the individual.
• Duress code words or phrases should not be immediately recognizable by an outsider.
The phrase might sound ordinary, but not something an individual is likely to say in
normal conversation with a colleague, like, “By the way, my aunt Sylvia says hi!”
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 54
#MissionBeforeMoney
DAD JOKE
Before we get too deep into this.
How about a dumb dad joke?
HAHAHAHA
Moving on…
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 55
#MissionBeforeMoney
Security Engineering Is
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 56
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 57
#MissionBeforeMoney
Development – Activities are conducted to design the system and underlying architecture needed to
meet requirements; then the system is created by developing custom code, purchasing or integrating external
code, or otherwise constructing the system.
Deployment and delivery – The system is placed into the operating environment and made ready
for use, which will include testing to ensure the system is fit for purpose and meets requirements.
Operations and maintenance – Most operations and maintenance activities are outside the
scope of development work, but the SDLC can be iterated as user needs evolve, so crucial processes like change
management may kick off another round of development activities.
Disposal - Activities in this phase are almost entirely the purview of the SLC, but some development may be
required to perform activities such as archiving or transitioning data to a replacement system.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 58
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 59
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 60
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 61
#MissionBeforeMoney
Our highest priority is to satisfy the customer through early and continuous delivery of
valuable software.
Welcome changing requirements, even late in development. Agile processes harness
change for the customer's competitive advantage.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 62
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 63
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 64
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 65
#MissionBeforeMoney
TDD is especially effective for existing systems where modifications or updates must be
implemented with a minimum of complexity, such as implementing code-level security
controls like fixing a buffer overflow or injection vulnerability.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 66
#MissionBeforeMoney
Scrum– The system is placed into the operating environment and made ready for use, which will include
testing to ensure the system is fit for purpose and meets requirements.
Operations and maintenance – Most operations and maintenance activities are outside the
scope of development work, but the SDLC can be iterated as user needs evolve, so crucial processes like change
management may kick off another round of development activities.
Disposal - Activities in this phase are almost entirely the purview of the SLC, but some development may be
required to perform activities such as archiving or transitioning data to a replacement system.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 67
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 68
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 69
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 70
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 71
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 72
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 73
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 74
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 75
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 76
#MissionBeforeMoney
Spiral - Designed to be executed in a repetitive series, and it places a heavy focus on risk assessment, analysis,
and evaluation. Large, complex, and costly projects are a common use for this model, as it emphasizes risk control
over time via repeated evaluation of project risks, costs, and benefits. The process iterates through four phases:
1.Determine objectives, alternatives, and risks
2. Evaluate alternatives and resolve risks
3. Development and testing
4. Plan next phase
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 77
#MissionBeforeMoney
Cleanroom - assumes that flaws cannot be fixed once development is complete. It focuses exclusively on
defect prevention. The ultimate goal is to produce software that meets a defined level of reliability, sometimes
known as zero-defect, with a focus on robust design and implementation rather than testing and remediation.
Usually implemented with another development model such as Waterfall and demands a focus on gathering
statistical data regarding flaws and control measures.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 78
#MissionBeforeMoney
• Business maturity models are often known as capability maturity models and are usually
specific to a particular organizational discipline like software development.
• Provide a baseline to measure the organization's current state of ability, define a desired
goal state, and provide systemic recommendations for improving the capability.
• Process improvement, and in general, an organization is more mature when its processes
are more formal, repeatable, and well-managed rather than chaotic.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 79
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 80
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 81
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 82
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 83
#MissionBeforeMoney
It provides an action plan for assessing the current state, identifying a target state, and
implementing necessary improvements across the SDLC including updates to processes,
people, knowledge, and tools.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 84
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 85
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 86
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 87
#MissionBeforeMoney
The SSG is responsible or accountable for implementing and maturing the organization's chosen SSIs. As with all
maturity models, not every organization must be at the same level, but BSIMM is a useful source of empirically
based guidance for organizations to measure and improve the software security.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 88
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 89
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 90
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 91
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 92
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 93
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 94
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 95
#MissionBeforeMoney
• The CMB is responsible for shepherding the change management process, which, much
like the name of the group, will be unique across different organizations.
• A high-level change management process is outlined here, along with corresponding
security practices recommended at each phase.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 96
#MissionBeforeMoney
Analysis and approval - Once documented, the change is reviewed by the CMB to identify all anticipated
requirements and impacts of the change. This follows a set of documented criteria, which should include
reviewing any security impacts like introducing new risks or adverse effects on existing security controls.
Change development - Once a change is approved, the responsible parties must develop a plan to actually
execute the change, such as scheduling time to perform needed IT tasks, gathering necessary resources, and
purchasing or developing the changed system components. These actions must follow the documented and
approved change request.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 97
#MissionBeforeMoney
Testing - The newly changed system must be tested to ensure the changes are working as expected, existing
functions were not broken, and the security controls are still operating as intended. Depending on the organization
and the magnitude of the change, this testing may include highly formal activities like certification and
accreditation.
Postmortem - There are a number of post-change activities typically required. Documentation of the changes
performed must be completed, as the changed system is the new known state, which will be maintained by
configuration management. Newly implemented features may require user training, and any lessons learned
should be documented for continuous process improvement. This phase may also be called an after-action report,
lessons learned, or retrospective, but the goal of identifying improvement opportunities is the same.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 98
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 99
#MissionBeforeMoney
The goal of IPT is to either assemble or make readily available all resources with a role, skills, or knowledge
relevant to a project, and by assembling these resources, traditional delays or impediments can be removed.
The goal of integrated product and process development (IPPD) is to combine both product and process design
to ensure a product, often an information system, has a holistic set of requirements used to design both systems
and business processes.
IPPD relies on extensive modeling and testing of both system and process prototypes and on the use of IPTs.
These teams combine stakeholders from the user community and developers with the goal of deepening the
understanding of what users need from the system and any technical constraints that need to be overcome.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 100
#MissionBeforeMoney
DAD JOKE
Before we get too deep into this.
How about a dumb dad joke?
HAHAHAHA
Moving on…
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 101
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 102
#MissionBeforeMoney
• Compiled programs can be run only by the system type for which they were compiled and
are often optimized for that specific system type; for example, a program compiled to run
on the Windows OS will not function if you try to run it on macOS or Linux.
• Compiled programs do not expose their source code to the end user, so if code is a
valuable intellectual property asset, a compiled language is the best way to distribute it
while preserving confidentiality. C# and Swift are examples of compiled languages.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 104
#MissionBeforeMoney
• Due to the interpretation process, there is additional operational overhead that makes
interpreted programs slower than a compiled program, though the speed of modern
computing systems makes this a negligible concern in many cases. JavaScript and
Python are examples of interpreted languages.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 105
#MissionBeforeMoney
• Database systems also have languages used to define their data structures, interact with
stored data, and manage the database itself. Structured query language (SQL) is one
example, which includes sublanguages for interacting with a database management
system (DBMS). This includes the data definition language (DDL) for creating databases
and tables, as well as data manipulation language (DML) for performing actions such as
querying or inserting new records. The data control language (DCL) is primarily
concerned with access control for data stored in the database, which makes it critical for
implementing security
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 106
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 107
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 108
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 109
#MissionBeforeMoney
• An object is anything that has a state that can be tracked, like data pending a
mathematical transformation to render it unreadable (the process of encryption). Code
objects are self-contained modules of functions that are “called” to perform their
designated function.
• There are a number of security concepts related to OOP that are important, many of
which relate to the abstraction inherent in viewing data and functions as objects that
communicate in predefined ways.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 110
#MissionBeforeMoney
JavaScript - Provides interactive applications inside a web browser on a client system, often for displaying and
manipulating data on the user's screen. JavaScript may require access to privileged functions on user machines
such as local file access, which is a major security concern since the code comes from an untrusted party across
the internet.
Python - A high-level language that can be used for a variety of uses ranging from small personal programs to
large web applications. As an interpreted language, it can run on a variety of platforms and interact with data in
other applications, such as a local script written by a single user to automate repetitive tasks like cleaning up data
in a spreadsheet, or a distributed web app that communicates with other systems and user browsers via
Application Programming Interface (API) calls.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 112
#MissionBeforeMoney
• Many platforms like operating systems, social media networks, and cloud computing
services include them in what is known as a software development kit (SDK), which
speeds the task of developers building programs that integrate these platform's
capabilities.
• Reuse speeds development, but it also offers increased dependability of software since
these shared functions are likely to be extensively tested and improved by the community
of developers and systems implementing the library.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 113
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 114
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 115
#MissionBeforeMoney
Testing tools - typically include static code analysis and unit testing tools. Static code analysis reviews the
underlying code of a program without actually running the program itself; the goal is to identify problems like
improper coding that could lead to buffer overflow conditions. Data flow analysis may also be performed by these
tools, where possible values that a function could generate are reviewed to ensure they meet expected
parameters.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 116
#MissionBeforeMoney
• As with toolsets, the security of the IDE should be a focus of the security program as well.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 117
#MissionBeforeMoney
*The traditional model of a runtime many people visualize consists of a desktop computer (or laptop) running a standard OS like
macOS or Windows. Trends like Internet of Things (IoT) and edge computing now mean that the collection of hardware and
software needed to perform computing functions is much broader.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 118
#MissionBeforeMoney
• Integrating code more frequently reduces the cost and time required to do large-scale
reconciliation and integration activities like debugging any issues caused by the newly
written or modified code.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 119
#MissionBeforeMoney
• This is often used in software development where a testing environment with manual
testing processes is required, such as systems processing regulated or sensitive data, or
complex systems where automation may not be possible.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 120
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 121
#MissionBeforeMoney
• Each system and step in the pipeline is a chance to implement security controls like
integrity verification, encryption to protect confidentiality, and manual or automated
testing and reviews.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 122
#MissionBeforeMoney
• CI/CD pipeline will likely take advantage of virtualized or cloud computing where these
activities can be automated and orchestrated using definition files. These definition files
specify the required computing resources that need to be provisioned when an
application is deployed, and this practice is called infrastructure as code (IaC).
• Configuration management, testing, and auditing are much easier since definition files
exist.
• A CISSP can achieve a great deal of security impact by implementing small, automated,
and repeatable security checks into this automated pipeline.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 123
#MissionBeforeMoney
• DevOps and security practitioners can identify ways to design an AppSec program using
Agile principles, with the goal of integrating security within a CI/CD pipeline to ensure
security requirements are met without impeding the agility of the organization.
• Automated testing tools can shift the balance of work away from the security team and
break down an important barrier that often leads to issues.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 124
#MissionBeforeMoney
• SOAR is often confused with security information and event management (SIEM), but
SIEM tools simply ingest data to support response activities by correlating data and
generating alerts for human responders.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 125
#MissionBeforeMoney
Orchestration - This is where SIEM and SOAR have some overlap, in that they both
integrate data from disparate systems into a single data set. However, SOAR goes beyond
logs and includes data from security tools like user and entity behavior analytics (UEBA),
IDS/IPS, external threat intelligence services, and domain-specific solutions like email anti-
phishing tools, anti-malware, application security scanners, etc.
Alerts on suspicious activity from a SIEM will be an input to a SOAR platform, relying on the
SIEM's ability to correlate data across networks or systems. The use of APIs is critical for
data ingestion as well as exposing functionality on the target systems to enable automation
of responses.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 126
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 127
#MissionBeforeMoney
Response - SOAR evolves incident response from the legacy model of detecting and
manually responding to a coordinated, automated response in which human expertise,
knowledge, and talent are utilized in the most efficient manner possible.
Information systems can receive and act on data faster than human analysts; even a fully
staffed, 24/7 security operations center (SOC) will exhibit slower response times compared
to an automated system with visibility into and automation abilities across the
infrastructure.
SOAR doesn't seek to completely remove human intervention in incident response. Many of
the platforms include incident response case-management tools, with the aim of
consolidating information needed for decision making and providing automated chains of
actions that can initiated by the responder.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 128
#MissionBeforeMoney
DAD JOKE
Before we get too deep into this.
How about a dumb dad joke?
HAHAHAHA
Moving on…
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 129
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 130
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 131
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 132
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 133
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 134
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 135
#MissionBeforeMoney
Runtime application self-protection (RASP) -Executes alongside the application as it is run; RASP is
also less of a testing tool but is often incorporated into overall application security to complement SAST and
DAST. A RASP security tool integrates with an application and analyzes the program's execution to spot unusual
or unexpected behavior, and then it takes corrective action.
RASP disadvantages - Like any automated reactive technology, false positive RASP hits can lead
to DOS, much like an IPS shutting down unexpected but legitimate traffic. Similar to IAST, as a relatively recent
technology, RASP will suffer from compatibility and a gap in skills to configure and manage the tools.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 136
#MissionBeforeMoney
while a common practice across all domains of information security, requires specific
practices for software security to ensure adequate treatment of software's unique risks.
These include risks to applications and information systems, as well as to software
development tools and the source code itself, both of which are valuable assets.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 137
#MissionBeforeMoney
Most events change the state of the system in some way; for example, a server restarting
means the system is not available for a period of time.
This could be caused by an unexpected power failure or by a new deployment of code that
adds user-demanded functionality.
Keeping track of these changes and providing visibility into which are normal and which are
not is crucial for diagnosing issues and for remediating events that rise to the level of
security incidents.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 138
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 139
#MissionBeforeMoney
Logging – merely the recording of events. In a software system, logs are generated by all system events, like
users signing into an application, and the logs should capture sufficient detail to definitely identify critical
information about the event. This includes what the event was, who/what initiated the action, when it occurred
(often called a timestamp), and other metadata about the event like a criticality level. Some events will be
categorized as incidents if they violate security controls or cause a degradation of the system.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 140
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 141
#MissionBeforeMoney
• SIEM tools ingest log data as a primary input and then perform monitoring activities on
the collected data to look for suspicious or unwanted behavior.
• SIEMs typically perform this monitoring on a continuous and near real-time basis, and
alerts generated are key inputs to the detection phase of incident response procedures.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 142
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 143
#MissionBeforeMoney
• Logging in operational environments provides insight into the activities being performed
by users and processes while a system is in active use.
• Logs are often used for access reviews or audits, as well as investigations of both
operational and security incidents.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 144
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 145
#MissionBeforeMoney
• NIST SP 800-92, “Guide to Computer Security Log Management,” and the OWASP
Logging Cheat Sheet cover basics like policy requirements and best practices for
implementing logging functions.
• Many compliance frameworks mandate certain types of logs or require that logs
generally contain sufficient data to support accountability.
• These compliance frameworks, such as PCI DSS, also provide auditing standards for
assessing the implementation and operating effectiveness of security controls including
logging.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 146
#MissionBeforeMoney
Design phase – During design, alternatives will be evaluated against requirements, such as cloud versus on-
premises hosting for a system. Key activities to be audited include the formal risk assessment and decision
processes utilized to determine which of the proposed solution alternatives adequately meet the stated
requirements, and formal acceptance of the residual risk.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 147
#MissionBeforeMoney
Verification phase – Audits of testing activity are important to verify oversight functions are implemented
and effective. These should include checks for adequately designed test cases or data, coverage of testing,
execution of all required testing, and successfully passing required tests before system deployment.
Operation and maintenance phase - bulk of auditing occurs here. Systems in this phase may also be
subject to more external audits, as many laws and regulations require auditing on live production systems. Many
audit frameworks now incorporate live system audits as well as SDLC auditing, due to the key role that secure
software development plays in overall system security.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 148
#MissionBeforeMoney
• Goals are still the same, chiefly identifying assets to protect, likelihood and impact of
various vulnerabilities and related threats, and the most cost effective ways to manage
the risks.
• Software risks require unique analysis approaches, and the first step is determining
targets for analysis. Aspects of software development environments and practices that
should be considered when performing this risk assessment include the following
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 149
#MissionBeforeMoney
New technology risk - Information systems running standardized commercial software with well-known
configuration and support needs (and with proper support and maintenance) are usually less risky than emerging
technologies.
A lack of knowledge and expertise increases the likelihood of a misconfiguration when deploying systems based
on new or emerging technology, and their novelty can mean security options are not yet available.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 150
#MissionBeforeMoney
Code risks - Software is code, and unintended or malicious changes introduce serious risk to all elements of
security. Improperly handled changes can introduce bugs or flaws rendering a system unavailable, while the
integrity and authenticity of data processed by a system can be compromised by unapproved code changes.
SDLC activities like code reviews, change management, testing, and vulnerability management should all be
designed to detect and correct these risks. Code is also a source of confidentiality risk, as improperly programmed
and configured systems will not implement the desired levels of data confidentiality.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 151
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 152
#MissionBeforeMoney
Some costs to be measured when performing the analysis include direct costs like
software or product purchases, professional services support, and operating costs like
support contracts. Indirect costs may be more difficult to define or measure discretely due
to the commingling of many factors in a development project.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 153
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 154
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 155
#MissionBeforeMoney
• The US Cybersecurity & Infrastructure Security Agency (CISA) maintains a best practices
guide for managing COTS software security: (www.us-
cert.cisa.gov/bsi/articles/bestpractices/legacy-systems/security-considerations-in-
managingcots-software).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 156
#MissionBeforeMoney
Common methods of attack - COTS software is often subject to malicious modification or interference like
remote code execution (RCE) flaws or DOS attacks. The black-box nature of the source code also means the COTS
software may contain unwanted malware or functionality, which the organization is unable to identify through
conventional means like SAST
Standard risk assessment and mitigation strategies - Organizations using COTS software must have
adequate risk management practices adapted to their use cases. This includes compiling an accurate inventory of
COTS software and components and identifying sources of information for vulnerabilities, such as vendor
disclosures, penetration testing, and routine security reviews. Defect prevention strategies during the SDLC are not
an option, so mitigation must focus on corrective and compensating controls such as intrusion detection systems
and network access controls.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 157
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 158
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 159
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 160
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 161
#MissionBeforeMoney
PaaS- Some options are removed from the consumer's control, so compensating processes like reviewing audit
reports and SLAs for software assurance are needed.
SaaS- Offers consumers the fewest options for directly assessing the security of software. However, given the
shared nature of SaaS providers, there are often audit reports and robust control documentation available
regarding the CSP's software development, testing, and hosting security practices.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 162
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 163
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 164
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 165
#MissionBeforeMoney
• This is one of the challenges presented in software security testing: if a source code
weakness is not exploitable, the cost-benefit analysis of fixing the weakness may not
support the effort and resources needed to fix it.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 166
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 167
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 168
#MissionBeforeMoney
Description, Extended Description - Details of the weakness and its effects. The description for CWE-561
is: “The software contains dead code, which can never be executed.” This is code that, when executed, skips over
certain portions or never calls those functions, thereby preventing it from ever being run.
Relationships - Other types of related weaknesses, such as the high-level category of Bad Coding Practices.
Modes of Introduction, Applicable Platforms - This identifies when this weakness may be introduced
to software by SDLC phase, which is useful when designing security controls to deploy in the SDLC. Applicable
Platforms identifies what languages or systems are susceptible. CWE-561 arises during the implementation phase
and impacts all programming languages.
Common Consequences, Demonstrative Examples - These sections are self-explanatory.
Consequences of dead code include the likelihood of unintended program behavior, since the function expected of
the dead code will never be performed. Demonstrative examples help software developers by showing example
code demonstrating the weakness.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 169
#MissionBeforeMoney
Observed Examples - If the weakness has led to an actual exploit, the relevant Common Vulnerabilities and
Exposures (CVE) reference is included. CVEs are discussed in detail in the following section.
Potential Mitigations, Detection Methods - These categories are most useful for security practitioners,
as they provide actionable guidance to detect and mitigate the weaknesses, such as static code analysis to detect
dead code, and mitigation tactics. In the case of CWE561, the mitigation is deceptively simple: remove the dead
code. However, if the dead code had an intended purpose, new code that does not exhibit the same weakness is
required.
Miscellaneous metadata - CWEs contain additional metadata like ordinality, taxonomy, references, and
version history of the weakness.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 170
#MissionBeforeMoney
The Common Weakness Scoring System (CWSS) is an attempt to score weaknesses and
determine a priority for addressing them based on the score.
This can help identify high-risk weaknesses that should be addressed first given limited
time and may also be used to identify low-risk weaknesses that will not be addressed due
to the costs required and small benefit achieved.
The CWSS score comprises an evaluation of several factors, which are organized into three
groups: Base Finding, Attack Surface, and Environmental. Each factor has values to
account for uncertainty inherent in complex software projects, as well as the evolution over
time of how much information is available about a weakness.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 171
#MissionBeforeMoney
Attack Surface - This provides an explanation of the factors needed to exploit the
weakness. Metrics include Required Privilege (RP), Required Privilege Layer (RL), Access
Vector (AV), Authentication Strength (AS), Level of Interaction (IN), and Deployment Scope
(SC).
Environmental - This describes the impact and likelihood of exploiting the weakness.
Metrics include Business Impact (BI), Likelihood of Discovery (DI), Likelihood of Exploit
(EX), External Control Effectiveness (EC), and Prevalence (P).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 172
#MissionBeforeMoney
• CVEs are often tied back to CWEs. For example, the “goto” fail vulnerability
in Apple's macOS and iOS (CVE-2014-1266) resulted from poor coding
practices that lead to code never being executed, which is an example of
the previously discussed CWE-561, Dead Code.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 173
#MissionBeforeMoney
• The CVE ID consists of two key pieces of information: the year in which the vulnerability
was registered on the CVE list and a numeric ID.
• CVE records include a description of the vulnerability with details like impacted software
and versions, any versions that are not impacted, risks related to the vulnerability, and
workarounds or fixes.
• References are also provided, and they often consist of vendor-issued material like
knowledge base articles or patching information, and links to relevant material about the
discovery of the vulnerability.
*The full list of all CVEs reported, which goes back to 1999, is available at cve.mitre.org/index.html.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 174
#MissionBeforeMoney
• The Common Vulnerability Scoring System (CVSS) provides that information, similar to
CWSS. Currently in version 3.1, CVSS provides context related to the impact and severity
of each CVE. They are accessible in the National Vulnerability Database (NVD) maintained by NIST at
nvd.nist.gov/vuln-metrics/cvss.
• CVSS scores measure three categories of information related to each vulnerability, which
are used to calculate three sub-scores that together comprise the overall CVSS score.
• A CVSS vector is also created, which provides a text-based reference to the underlying
vulnerability measurements, such as CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N.
This is made up of the scores on each metric
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 175
#MissionBeforeMoney
Base Score - metrics are related to the exploitability and impact of a particular vulnerability and, once
established, do not typically change.
Exploitability metrics include the Attack Vector (AV), Attack Complexity (AC), Privileges Required (PR), User
Interaction (UI), and Scope (S). Impact metrics cover the standard security triad of Confidentiality (C), Integrity (I),
and Availability (A).
Temporal Score - metrics capture how the risk of a particular vulnerability changes over time, which means
this number also changes over time
Metrics comprising the temporal score include Exploit Code Maturity (E), Remediation Level (RL), and Report
Confidence (RC).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 176
#MissionBeforeMoney
Environmental Score - metrics capture how a particular vulnerability impacts an individual organization. A
highly exploitable, high-impact vulnerability sounds drastic, but if an organization's only system with that
vulnerability is in a secure physical location and not connected to a network, the patching process is not an
emergency that should interrupt all other work. Environmental score metrics modify metrics from the other
categories and are subdivided into three groups
• Exploitability - includes Attack Vector (MAV), Attack Complexity (MAC), Privileges Required (MPR), User
Interaction (MUI), and Scope (MS).
• Impact - measures the specific effect of the vulnerability against the organization's CIA triad, including
Confidentiality Impact (MC), Integrity Impact (MI), and Availability Impact (MA).
• Impact Sub-score Modification - modifies the Base Score impact metrics to tailor them to the
organization's specific CIA requirements, including Confidentiality Requirement (CR), Integrity Requirement (IR),
and Availability Requirement (AR).
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 177
#MissionBeforeMoney
CVSS scores range from 0 to 10, with higher numbers denoting a more critical vulnerability
that should be prioritized for fixing.
A score of 0 is categorized None and is mainly informational. A score between 0.1 and 3.9
is Low severity, between 4.0 and 6.9 is Medium severity, between 7.0 and 8.9 is High
severity, and a score between 9.0 and 10 is Critical.
Security practitioners can monitor the NVD and use the CVSS calculators to determine the
environmental scores of specific vulnerabilities to prioritize remediation activities.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 178
#MissionBeforeMoney
• The Open Web Application Security Project (OWASP) is a community-driven effort that
originally started to share knowledge and develop best practices around web application
development.
• It has since expanded in scope to include other application types, such as mobile apps,
driven mainly by the increased prevalence of applications that rely on system
components or services accessed over the internet and the wide variety of languages
that are used for both web and traditional desktop apps.
• One of OWASP's most visible projects is the Top Ten, which is a compilation of the 10
most commonly seen vulnerabilities in web applications
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 179
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 180
#MissionBeforeMoney
A6:2017-Security Misconfiguration - Misconfigurations are often the biggest category due to the
complexity of modern software environments. Ensuring the correct parameters are set, boxes are checked, and
services are configured is error prone. A web server with unwanted support for outdated Secure Sockets Layer
(SSL) or TLS versions is an example of a misconfiguration.
A7:2017-Cross-Site Scripting (XSS) - XSS exploits the dynamic and remote nature of web applications,
which are designed to accept and execute remote code like JavaScript. An application vulnerable to XSS may load
untrusted or un-sanitized data from a remote source and execute any code it contains, allowing a remote attacker
to perform unwanted actions in the user's browser like redirecting them to malicious sites, reading data, or even
hijacking a user's session with a secure site.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 181
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 182
#MissionBeforeMoney
• These components are often known as free and open-source software (FOSS)
dependencies and bring obvious benefits such as faster development and increased
reliability if well-known components are used. FOSS means that these software
components can be used at no charge, and the code is open for inspection or
modification.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 183
#MissionBeforeMoney
• DevOps and DevSecOps practices can also be utilized to address these flaws, such as
CI/CD pipelines that incorporate automatic checks and incorporate the latest update
dependencies when building an application.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 184
#MissionBeforeMoney
• Features that are accessible through an API are often referred to as being exposed via
API, meaning they can be called using standardized methods such as HTTP requests.
• Representation state transfer or REST APIs expose functions using URLs similar to web
applications and accept commands using common HTTP verbs like GET and POST for
retrieving or sending data to the API.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 185
#MissionBeforeMoney
• There are other forms of APIs as well, including internal software APIs in modern OSs
for access to generic system functions like creating interactive windows in a user
interface, simple object access protocol (SOAP) APIs designed for exchanging
messages between system components, and RPC APIs that are used for executing
functions across nodes in distributed systems.
• Most cloud services are built on an API foundation, with tasks such as cloud environment
administrative, data handling, and services like data storage buckets and machine learning
models exposed to users via URLs, commonly known as API endpoints.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 186
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 187
#MissionBeforeMoney
Basic authentication - utilizes a simple authentication scheme that is part of the HTTP protocol and sends
a username:password string encoded in base64. Since this is not a form of encryption, this form of
authentication method should never be used alone. Stronger authentication methods are preferred, but if basic
authentication must be used, the communication channel requires protection, such as TLS encryption.
Key-based authentication - serves dual purposes. A secret, shared symmetric key is used to encrypt data
being passed. If the recipient can decrypt the data with a secret key associated with a unique identity, then the
sender's identity can be authenticated, and the data is also protected in transit. Many applications with APIs
allow users to log into a secure web application to retrieve the API key needed for encryption and authentication,
providing an out-of-bound channel for key distribution.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 188
#MissionBeforeMoney
Certificate-based authentication - as the name implies, relies on authenticating an identity using digital
certificates. This can be one-way, in which only one party provides a certificate asserting an identity, or mutual
authentication where both parties exchange certificates and validate them. This obviously requires a Public Key
Infrastructure (PKI) in place, meaning this may not be a valid choice for all situations.
Federated and single sign-on - authentication relies on another organization's identity and access
management (IDAM) tools to control access. Technologies like security assertion markup language (SAML) and
Oauth can be used to federate, or combine, IDAM capabilities across organizations. API security can rely on
these federations to delegate access control decisions; rather than the API provider enforcing access controls,
consumers grant permissions to their users and then pass relevant authentication and access control
information via SAML statements or Oauth assertions.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 189
#MissionBeforeMoney
• For example, the ' character has special meaning in SQL and could be an unwanted character in a
name field, but rejecting it would cause common names like O'Brian to be rejected. As a result,
escaping content is considered a better safeguard against injection attacks, while semantic
validation is generally more useful for data integrity.
• The OWASP Input Validation Cheat Sheet provides a comprehensive resource on validation
strategies: cheatsheetseries.owasp.org/cheatsheets/Input_Validation_Cheat_S heet.html.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 191
#MissionBeforeMoney
• APIs must be designed with the same level of rigor applied to user
access management to ensure the functionality exposed cannot be
exploited to attack the system's confidentiality, integrity, or availability.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 192
#MissionBeforeMoney
• The use of standard web protocols is a benefit of REST APIs, as they utilize HTTPS with
little developer effort.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 193
#MissionBeforeMoney
Confidentiality - both symmetric and asymmetric keys can be used, depending on the system requirements.
A key design choice that must be made is when to encrypt data, as it can be encrypted prior to transport or
utilize secure communications channels.
Integrity - Hash functions should be applied whenever the integrity of data being accepted through an API
needs to be validated.
Authenticity - Proving the authenticity of data often relies on proving that the parties in communication are
the legitimate sender and recipient. Strategies such as Hashed Message Authentication Code (HMAC) can be
used to verify that the communications partners are still the intended parties.
Nonrepudiation - Proving the source of data or the identity of a system actor rests on identifying the holder
of keying material.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 194
#MissionBeforeMoney
Access control - Access to encrypted data relies on decrypting it, so by extension, controlling access to the
key controls access to the data.
• In the case of symmetric keys, this involves implementing secure distribution and management mechanisms
for the encryption keys. For asymmetric encryption, it involves the choice of which key is used to encrypt data.
• Using a sender's private key will allow anybody to decrypt the data with the corresponding public key, which
proves authenticity but provides no confidentiality.
• Using a recipient's public key to encrypt data provides confidentiality because only the recipient's private key
can decrypt it, but without proof of the sender's identity since the public key is widely available.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 195
#MissionBeforeMoney
• Events that violate security constraints or indicate operational issues should generate alerts to
invoke processes like incident response to investigate.
• Where possible, log data from multiple sources should be correlated to provide investigators with
a holistic view of the incident, like network device logs showing traffic, application logs showing
API access and use, and even, possibly, external data such as known malicious IP addresses that
can be used to determine whether a security incident is a malicious attack.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 196
#MissionBeforeMoney
• As with all system functionality, APIs must be tested to verify they meet security,
performance, and user requirements.
• All the testing methods and considerations presented in Domain 6 apply to APIs, such
as designing a testing strategy with appropriate depth and coverage as indicated by the
API's risk profile.
• An internal API used to exchange financial data between departments without any
public access should not be scheduled for a pentest before undergoing functional
testing to ensure proper data integrity, since the risk to integrity is greater than the risk
of breaching confidentiality.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 197
#MissionBeforeMoney
• There are a number of API security tools available to design and test APIs.
• The choice of a tool and associated testing strategy should be driven by the
technologies in use, such as SOAP or REST, the sensitivity level of data being handled
by the API, and the features exposed by the API.
• OWASP also has a dedicated API security project, which contains resources such as a
Security Top 10 and planned cheat sheet for API security, available at
owasp.org/wwwproject-api-security.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 198
#MissionBeforeMoney
• Secure coding practices comprise the entirety of actions taken during software and systems
development processes. Nonexistent, disorganized, or poorly understood organizational practices
tend to produce software and systems with flaws or bugs, which in turn become weaknesses and
vulnerabilities.
• Standardized secure coding practices that are well-documented, disseminated to all stakeholders,
and applied effectively throughout the organization can increase the quality of development
projects.
• This leads to software and system development processes that seek to minimize flaws and bugs,
as well as testing and monitoring processes designed to catch and fix vulnerabilities as soon as
possible.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 199
#MissionBeforeMoney
• The OWASP project contains a multitude of resources for secure coding practices. The
Cheat Sheet Series (owasp.org/www-project-cheat-sheets) is an entirely library of
guidance on secure practices, such as the following:
• Implementing authentication and access controls
• Preventing common vulnerabilities and attacks like XSS and injection
• Architectural security for technologies like microservices, REST APIs, and SAML
• Technology-specific security guidance including XML, HTML5, Docker, and
Kubernetes
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 200
#MissionBeforeMoney
• Although primarily written for web and mobile apps, the guidance is broadly applicable to almost
any application and system architecture.
• Each category contains key focus areas for secure coding practices, and these practices can be
used to guide the development and implementation of organization-specific practices tailored to
your unique technology stack, programming languages, and security requirements.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 201
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 202
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 203
#MissionBeforeMoney
• While the documentation should be clear enough for broad consumption, additional
documentation like procedures, guidelines, standards, and checklists must be created to provide
specific guidance to different stakeholders.
• One crucial element of a security culture is the set of principles it is built on, and the foundational
role played by software development means a number of key principles must be considered in
order to create a successful security culture. These principles include the following:
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 204
#MissionBeforeMoney
Secure by design - This principle largely stems from a paradigm shift as the field of software engineering
matured and decisions that led to insecure technologies like DNS and SNMP were examined in light of modern
information security risks. Rather than attempting to retrofit security after deployment, this principle espouses
practices that require the inclusion of security at the outset of a system: in the design phase. Anticipating that
the system will come under attack drives design and implementation decisions that provide inherent security
abilities, rather than relying on more expensive and error-prone compensating controls.
Secure by default - This principle is a collection of best practices for delivering more secure software, such
as the inclusion of layered security controls and conservative default settings designed for security. Many data
breaches share the underlying root cause of improperly secured cloud storage services exposing data to the
public. In a secure by default configuration, those services should be private by default and require extra steps
be taken to turn on public access.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 205
#MissionBeforeMoney
DevSecOps - Although not strictly a security principle, one of the foundational ideas of DevSecOps is to shift
security “to the left” — in other words, to push security activities earlier in the software development lifecycle
rather than developing security strategies only after a system is built and deployed. Implementing DevSecOps in
an organization is, fundamentally, an opportunity to build a culture of security and deliver higher quality software.
Build security in - SAMM and BSIMM were discussed earlier in this chapter and represent a set of practices
and principles that can be used to drive enterprise change to a culture of security. The maturity model supports
this by providing a convenient measure of the organization's current state, metrics to track progress toward a
desired future state, and a set of practices to implement to mature the secure software development capability.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 206
#MissionBeforeMoney
The world of technology is rapidly evolving to software defined replacements for systems that previously
required a combination of physical hardware and software. For example, software-defined networking (SDN)
abstracts physical networking gear and software configurations into purely software-configurable virtual
networks that can be reconfigured with far less effort than their hardware-based equivalents. Cloud services also
make use of software defined infrastructure in the form of virtualization, with common infrastructure elements
such as server and networking hardware replaced by more flexible software only equivalents.
Software-defined security, sometimes abbreviated SDS or SDSec, mirrors this trend to create virtualized,
software-controlled security infrastructure. It extends concepts like virtualized infrastructure configuration via
definition files, as well as leveraging SDN to provide easy reconfiguration of network functions, routes, and
protection mechanisms. Provisioning, monitoring, and management of security functions can be extensively
automated and controlled via software configuration, which replaces previously manual, human-driven
processes. Deploying SDS represents an evolution of security architecture to support more targeted and flexible
controls. It also accounts for new application and system architectures that do away with traditional designs
due to novel services available in cloud computing.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 207
#MissionBeforeMoney
Consider, for example, a legacy application that comprises three tiers: a web server, a business logic server, and
a database server. Each has traditional security tools installed like anti-malware, file integrity monitoring,
IDS/IPS, etc., and is hosted in a data center with traditional perimeter controls like a firewall. A modern
application, by contrast, may comprise a web server delivering a browser based application to users, whose
actions create API calls to a set of microservices for specific tasks like processing data, which in turn involves
API calls to a cloud-hosted database. All of these system elements are also geographically disbursed and
configured for high availability, so user requests may be processed in data centers all over the world with
different hardware and software configurations. There is no traditional perimeter, and the business logic and
database cannot be monitored with traditional tools. The microservices don't exist on a traditional server, and
the cloud-hosted database server is not under the purview of the organization's security program.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 208
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 209
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 210
#MissionBeforeMoney
Dynamic response - Security controls can proactively reduce the likelihood of a risk or reactively reduce the
impact of a risk after it is realized. SDS incorporates and extends automated capabilities from SOAR to enable
faster response times. Restricting the time an attacker has to move laterally from a compromised server to other
hosts reduces their chances of successful malicious activity. Dynamic response leverages the ease of
reconfiguring virtualized software infrastructure to speed up the response, and the use of orchestration and
automation capabilities means intelligence from an incident can be used to automatically deploy proactive
mitigations to other hosts and systems. Tools with these capabilities are often described as self-healing, though
it is important to note that security practitioners must still maintain vigilance and perform some actions
manually.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 211
#MissionBeforeMoney
SESSION 5 - FIN
YOU MADE IT!
Domain 7 & 8 is done WHOOT HECK YA!! YALL!
Domain 8 can be a challenge because it’s so dense.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 212
#MissionBeforeMoney
SESSION 5 - FIN
YOU MADE IT!
Domain 7 & 8 is done WHOOT HECK YA!! YALL!
Domain 8 can be a challenge because it’s so dense.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 213
#MissionBeforeMoney
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 214
#MissionBeforeMoney
CISSP® MENTOR PROGRAM – SESSION ONE
INTRODUCTION
2022
Class #11 – Domain 7-8
Security Operations & Software Development Security
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. 1