CCSP Domain 4 - Secure SDLC Process MindMap

Download FREE Audio Files of all the MindMaps
and a FREE Printable PDF of all the MindMaps

Your information will remain 100% private. Unsubscribe with 1 click.

Transcript

Introduction

Hey, I’m Rob Witcher from Destination Certification, and I’m here to help you pass the CCSP exam. We’re going to review some of the major topics related to secure software development in Domain 4. By the end, you will understand the linkages, which should help you with your studies.

Image of Secure Software Development - Destination Certification

This is the second of seven videos for Domain 4. I have included links to the other MindMap videos in the description below. These MindMaps are just a small part of our complete CCSP MasterClass.

Secure Software Development

Secure software development, as the name implies, is all about how we integrate security into the software development process. It is incredibly important for security to be involved right from the start and throughout the entire system life cycle so that applications provide the required confidentiality, integrity, and availability.

Sadly, security requirements are typically labeled as non-functional requirements, and when a development project is inevitably over budget and behind schedule, what are the first things management cuts? Non-functional requirements. Who needs those anyways?

Bake In Security

When should security become involved in any development project?

Right from the very start and throughout the whole process. This is the concept of baking security in. It is significantly more expensive to try and retrofit and add security later vs. building it in from the start.

System Life Cycle (SLC)

Let’s define the system life cycle, the SLC, which is the overall life of a system from cradle to grave, and it encompasses the software development life cycle–the SDLC. The SLC includes planning, designing, development, testing, operations, maintenance and eventual disposal of the system.

Plan & Management Approval

Starting with defining a plan for a project, what goals and objectives will this project help the organization achieve? What are the high-level cost estimates? You will also need to obtain management approval to proceed with the requirements analysis.

Requirements Analysis

The requirements analysis phase is where business requirements (user needs, the business uses of the system, as well as the type of data to be collected, stored, and processed) are gathered and validated to create a detailed set of requirements.

Software Development Life Cycle (SDLC)

The software development life cycle (SDLC), as the name implies, focuses on the development phases.

Design

The design phase involves translating requirements into a detailed design plan

Development

The development phase is where the coding begins–writing code to create the system. There are many methodologies that have been developed over the years to guide the development process and I’ll cover just a few key ones:

Waterfall

Waterfall begins with a plan, then defining requirements, building, testing and finally releasing.

Cannot go back

The defining characteristic of waterfall is that each of these phases are conducted one after another and you cannot go backwards. Water can only flow downhill. So, if you discover as part of a two-year waterfall project that you missed a requirement, you can’t go back and re-define the requirements. You must proceed through build, test and release, and then include the missed requirement as part of the next waterfall cycle.

Agile

Agile was created to address this problem.

Sprints

Agile follows exactly the same phases as waterfall, but does them in, typically, two-week sprints. Rapidly iterating through plan, define, build, test and release. Waterfall is better suited for projects where no changes are planned, and agile is better for projects where many changes are expected, where organizations want to rapidly iterate ideas and fail fast through rapid sprints.

Scrum Master

Agile includes the role of a scrum master. This person is a facilitator, and I am intentionally emphasizing that word, facilitator. A scrum master has no real authority over the team, they are not project managers, but rather there to act as a coach to the team and facilitate communications with the organization to maximize the productivity of the team.

DevOps

And of course, the latest, and debatably greatest, software development methodology is DevOps. This is what all the cool kids are doing.

Combine Dev, QA & Ops

DevOps, as the name implies, combines development (the Dev part), quality assessment and operations (the Ops part) to significantly shorten the development lifecycle, possibly to the point of releasing new code daily. DevOps includes automated practices such as continuous integration and continuous delivery.

DevOps Security

The DevOps approach can seem contradictory to the practice of having security built into the development process. This is because sacred security practices like segregation of duties between development and operations are intentionally removed. Many other traditional security techniques are too slow to fit into the rapid iterations of DevOps. Therefore, integrating security into DevOps requires strong engagement between developers and security, using secure development frameworks, automating much of the security testing, and only using traditional security testing techniques, such as penetration testing, sparingly.

CI / CD

CI/CD stands for continuous integration, continuous delivery (or continuous deployment–more on that in a moment). CI/CD is an approach that uses a lot of automation to speed up software delivery. Code is automatically committed to a repository, and then building and testing is automatically performed, and even pushing code into production can be automated. 

Image of CI/CD - Destination Certification

You can see here that continuous integration means automating the upload of code to a repository, committing that code, and running it through the build server to compile the code and run a bunch of automated tests.

There are two versions of CD: 

  • Continuous Delivery automates the review/user acceptance testing, but there is still a manual step required to move code into production.
  • Continuous Deployment automates everything including automatically moving code into production after all the testing has passed successfully. 

Testing

It is very important to test throughout the system lifecycle from validating business requirements, reviewing designs, testing units, interfaces, integration and whole software systems during development and operations.

Deployment

Deployment is the final stage of the software development life cycle, and deployment is where a system is moved into production.

Operation

Operations is where the system is being actively used for business purposes. It is in operation.

Disposal

The disposal phase is extremely important and often overlooked. When a system is retired and replaced there needs to be controls in place to ensure data, logic, processes, etc. are migrated to the new system with integrity. Data in the old system is retained as necessary, and if the old system and data are to be deleted, the data may need to be defensibly destroyed, and not just left on a hard drive that is sold on eBay. Hurray for privacy breaches.

“meta-phases” of cloud SDLC

For the final part of this MindMap, the Cloud Security Alliance created three metaphases to describe the software development lifecycle. I’ll be honest, I’ve never come across these in the real world, but I know they are on the exam, so let’s cover them:

Secure Design & Development

Secure design and development is a phase that includes everything from training and developing organization-wide standards to actually writing and testing code.

Secure Deployment

Secure deployment includes security and testing activities when moving code from an isolated development environment into production.

Secure Operations

The third and final meta-phase, secure operations, includes securing and maintaining production applications, including external defenses such as web application firewalls and ongoing vulnerability assessments.

Image of Secure Software Development - Destination Certification

That’s all for our overview of secure software development within Domain 4, covering the most critical concepts you need to know for the exam.

Image of next mindmap - Destination Certification

If you found this video helpful you can hit the thumbs up button and if you want to be notified when we release additional videos in this MindMap series, then please subscribe and hit the bell icon to get notifications.

I will provide links to the other MindMap videos in the description below.

Thanks very much for watching! And all the best in your studies!

Image of masterclass video - Destination Certification

The easiest way to get your CCSP Certification 


Learn more about our CCSP MasterClass