Nov 24, 2021
Paul-Arthur
Jonville
Security needs to evolve to keep up with the rest of their organizations. DevOps and SecOps took the companies one step forward, but DevSecOps automation can take them even further.
Developers can no longer build a product and "throw it over the wall" to operations. Security needs to be considered throughout the whole development process. Concerns about safety at the core are growing among organizations, as shown in the graph below.
Already, to accelerate application development and ease maintenance of existing deployments, DevOps (amalgamating development and operations) promotes shorter, more controllable iterations by adopting best practices, automation, and new tools.
DevOps doesn't involve a technology per se. It's a way to integrate testing along the development pipeline to 'shift left.' In DevOps, Developers aim to continuously integrate and deploy (CI/CD) code to the cloud to ensure flawless app updates.
In the same way, SecOps (Security and Operations) is the seamless collaboration between Security and Operations to mitigate risk effectively. SecOps teams assume joint responsibility and ownership for any security concerns, incorporating security into the entire operations cycle.
DevSecOps (Development, Security, and Operations) is the new trend. Indeed, more and more people realize there's no bridge between development and security. Everyone, including developers and operations, must understand that security is not an external concern but their responsibility. To that extent, adopting DevSecOps means:
Infusing security directly in your code;
Evolving your SOC;
Getting Started with DevSecOps;
DevSecOps automation is key.
Modern companies need to infuse security directly into their code
Security needs to shift left
As we said, you cannot think about security after your product is delivered. Today, security has to be a central part of any Software development life cycle (SDLC).
Even if adopting a DevOps model shortened the SDLC, organizations constantly face increased demand for faster and more secure deliveries. However, still siloed from development teams, security is having more and more trouble keeping up with the pace. Moreover, products tend to complexify. Security reviews cannot come in the final stage of development or once the product is deployed. An attacker should discover vulnerabilities deep in your code, and your teams would then have to find them and patch them directly in your code, which is laborious and time-consuming, as shown below, according to the Ponemon Institute study.
Security assessment as it is today can result in bottleneck effects. That's why more and more organizations are adopting a new model to integrate security practices into the already existing DevOps processes. In such models, Development, Operations, and Security work together. The goals are shared, and silos are broken.
In other words, the goal is to bridge the gap DevOps created between Ops, Dev, and Security. The idea is to add security to the benefits of the DevOps model: more agile and faster delivery processes.
We need to move accountability left in the whole pipeline. This mindset shift empowers individuals to address potential vulnerabilities as they appear instead of waiting for the final testing stage.
The Why of DevSecOps
DevSecOps is a model rapidly gaining traction in secure development. According to DevSecOps, you must replace your older and reactive security model. Usually, developers build a system, then thoroughly test it for vulnerabilities, deploy it, and finally correct it as vulnerabilities surface with third-party programs.
By being proactive and deploying security practices and tools in the earliest stages of the development life cycle, DevSecOps is changing how security is thought of in the SDLC. According to DevSecOps, you embed security in your code throughout all your development phases. Here, you build the software to be as close as possible to secure theoretically.
In other words, DevSecOps' philosophy is about integrating security practices within the DevOps process. It involves creating a 'Security as Code' culture with permanent collaboration between all the teams acting on the pipeline. DevSecOps, like DevOps, aims to develop solutions for complex software development processes while being agile.
We could say that DevSecOps is a natural answer to the tendency to bottlenecks on older security models. Pressure for rapid delivery forces companies to find ways to stick to the rhythm. In doing so, the goal is to bridge gaps between teams while ensuring fast and safe delivery. You're breaking silos with increased communication and shared responsibility for security tasks during all phases of the delivery process.
However, a true DevSecOps is more complicated to achieve than DevOps. Why? You need to fulfill two opposing goals at first sight: speeding up the delivery process on the one hand and ensuring the code's security and vulnerability-free on the other. You have to merge these two goals. In this model, critical security issues are dealt with as they appear, quickly patched on the go by teams.
Such a proactive approach fundamentally differs from existing ones, mainly relying on reactive and more extended strategies. Security testing is completed in iterations on code packages to avoid slowing down delivery. In the end, such incorporation is more or less the same as assembling bubbled packages together, strengthening the overall product while not impeding the speed of the life cycle.
How DevSecOps is changing the SOC
The Security Operations Center (SOC) is still widely isolated from other fields in many organizations. A (tautological) usual layout would be like this: Developers create systems, IT operations operate them, and security teams secure them. Your security analysts and development and operations teams work in separate organizational units. Consequently, communication between them tends to be reduced to the bare minimum.
In previous articles, we saw that the future of SOC has to evolve. The 'darkroom' isolated from the rest of the company has to go. We learned that the threat landscape is growing too rapidly and qualitatively to be tackled by isolated teams. Collaboration, both external and internal, is critical. In the graphs above, we showed that hacks directly in the apps are feared because of the tedious task required to remediate them. As we said, one way to answer this fear is to shift left.
That's why we believe a future SOC must favor collaboration between development and security teams. Strengthening the SOC ranks with Devs could help address the shortage of security professionals, besides bringing a Site Reliability Engineering (SRE) touch that will be developed in a future article on this website.
Eventually, a next-generation SOC has to adopt DevOps practices and adapt them to its field of work. Automation and machine learning need to come and enrich its tasks. Why? Thanks to these techniques, a SOC can allocate its resources better and enhance its decision-making via Artificial Intelligence (AI) that uses machine learning models with much less need and supervision from human analysts. These people will concentrate on threat hunting, root cause analysis, and mitigation of advanced attacks.
To that end, you have to rethink how the SOC works and the tools and processes they use. Help yourself with appropriate tools to favor collaboration. We've learned that in DevSecOps, cohesion, and sharing are essential. To that end, you need a tool to enable these back-and-forth communications between your different teams. Security orchestration, automation, and response (SOAR) are essential at Mindflow. Real-time data sharing and streamlined processes around a unified no-code language are the solutions you can implement to achieve your transition to DevSecOps.
Getting started with DevSecOps
Your company needs to shift culturally and technically to adopt a DevSecOps approach. Viewing security teams as an asset rather than a liability is critical. This helps prevent slowdowns rather than hamper agility. Below, let's look at the SDLC phases engineered with DevSecOps.
Planning: In the first phase, developers and security experts gather to consider which common risks might require attention during the development life cycle and prepare for them.
Analysis and Requirements: In the second phase, DevSecOps must decide on the technology, frameworks, and languages used. Experts consider which vulnerabilities can threaten the security of the chosen development tools to make appropriate security choices throughout design and development.
Design and Architecture: At this stage of development, teams should follow the design guidelines to address the risks considered and analyzed during the first two stages. By tackling vulnerabilities early, you can avoid the most predictable ones in the development stage, thus gaining speed. Threat modeling and architecture risk analysis will make development more straightforward and secure.
Development: During this phase, teams must use secure coding standards. While performing their code review to ensure the project has the planned features and functions, automated tools can intervene to check for any security vulnerabilities in the code. Doing this as it is done in DevOps models enables faster testing and smoother cycles.
Testing: Teams will test the full product once all the previous stages are completed. As in the early phases, tests must use automated tools developed by DevSecOps to speed up the processes and avoid human errors as much as possible.
Remember that DevSecOps equals continuous testing throughout the life cycle. The best way to ensure the safety of your products is by testing them early and often. As such, your products will show the best native security on their release. This means that teams should start testing in the earliest stages of development, chunk by chunk, and piece together already tested parts as the product is built. This way, final tests will gain time and efficacy.
Monitoring: Of course, actual deployment always brings real-time operating particularities that cannot be deciphered during the development life cycle, even though your teams might have been thorough during this SDLC. Still, thanks to the collaboration between Operations, Development, and Security, your teams have better and more in-depth knowledge of the product. As communication was enabled during the development cycle, your teams will be more prone to ask for help or advice.
In any case, security practices need to be followed after deployment and implementation throughout software maintenance. Products must be continuously updated according to the DevSecOps model to ensure security from new vulnerabilities.
DevSecOps automation is fundamental for adoption.
For an integrated DevSecOps process to prosper, you must incorporate security at all stages. In a proper DevSecOps environment, you perform testing throughout the development cycle. Doing so using a manual approach risks dramatically slowing down the whole process. That's why teams must increase their efficiencies through automation and streamlined analysis.
Indeed, one of the most time-consuming aspects of outdated delivery models was testing and correcting code before shifting it to the final deployment phase via processes like code analysis. To save time, DevSecOps leverages tools to automate most of this process all along the pipeline, performing repetitive tests, reporting outcomes, and giving feedback almost instantaneously.
Ultimately, shifting left in security is about finding ways to ease the infusion of security throughout the pipeline. For this to succeed, you need to deploy automated testing phases during the SDLC. You choose automation because it allows you to test portions of code at machine-time speed without slowing down the whole process.