There once was a time in software development where developers could design, build and then think about their software's security. However in today's highly connected, API-driven application environment, this approach is simply too risky as it exposes the software to vulnerabilities ...
There is no better approach than starting from a clean slate, but in business reality this is not always possible. It's more complex than just merging the two different schools of thought. DevOps and security traditionally have been siloed functions and security is often seen as a policing function by DevOps team members. However, more mature business leaders are trying to bridge the gap between the two functions to achieve business excellence. This theme was evident from our recent survey where 39% of respondents cited that DevOps and development teams care greatly about their cybersecurity posture, showing that the silo between security/IT and development teams is diminishing.
It's important to understand that when every business is relying on digital technologies to make a difference, the only thing that differentiates one business from another is new capabilities/functionalities provided to their customers. The organizations which provide these functionalities first will clearly lead the market and increase value to their businesses. Yes, speed is the obvious common denominator here, but with speed comes various complexities and risk. Businesses that find the right balance between merging both schools of thought, with agile methodology, are getting ahead in the game.
The execution speed required to achieve this new business reality can only be achieved through the adoption of the cloud at various levels. The DevOps teams have already been aggressively leveraging a DevOps integrated fabric for IAAS and PAAS. This maturity in cloud deployment will slowly start moving towards an immutable model of deployment and then toward FAAS (Function-as-a-Service) which will provide a more integrated and robust framework.
With the adoption of these new models, organizations can no longer rely on old techniques and models which were more serial and reactive in their approach. Today, with DevOps leveraging the cloud for agility, security models need to be integrated into the development process and need to be part of mandatory control checks before production release.
Organizations have started realizing that incorporation of security from the design phase will increase the ROI of their DevOps program and will be more successful in creating lasting business value. Relying on a once-per-quarter pen testing-only approach solves only point-in-time issues and, as a result, becomes costlier. Instead, there must be continuous security oversight and integration to fix security flaws before they become a problem and exploited in the wild. The matured and unique combination of DevOps and security is predictive, integrated "DevSecOps."
Here are 3 suggested approaches to enable continuous security and DevOps when leveraging the cloud:
All infrastructure deployment for IAAS, PAAS, FAAS (Function-as a-Service) in software
All the building blocks of cloud infrastructure from IAAS, PAAS to FAAS should be controlled in code by DevOps. The goal here is to make the environment more reliable, predictable and mutable by replacing the whole system in no time if required by simply changing the code. There will be no guess work involved because all the "recipes" will keep the information about the current and past versions intact. This will not only enforce the logic of version controls but will also provide the much-required capability of rollback to a stable version of code when something goes sideways. This whole approach to the infrastructure will simplify the old back-up and restoration operation model.
API driven security architecture and "Say NO to complex access rules"
Instead of point-in-time assessments by using security tools and leveraging monolithic architecture techniques, security should instead be integrated into code development through APIs.
With the current lack of security talent, there is a possibility that the security team will not be able gain full visibility and detailed information into the compute environment if it's not automated and integrated into a robust CI/CD pipeline. All the security tool vendors will have to provide a standard RESTful API integration with good documentation for the DevOps team. The DevOps team should use this method to build integration for continuous assessment and automated remediation once issues/exploits are detected.
Create a well-defined development environment
TEST, TEST and TEST. We cannot emphasize the importance of investing time and energy for setting up your test environment. Even the best of developers make mistakes – and who doesn't, we are human after all – but a solid test environment gives one the ability to fix issues before they get released into production. Apart from the feature, functionality, speed and business logic, we must pay special attention to issues but not be limited to security vulnerabilities, security best practices and industry guidelines from NIST, API exposure, performance etc.
The cloud is ever-changing but along with that comes an ever-changing set of "tools" to secure it. Thanks to DevOps and SecOps, organizations should no longer be left in the dust as it relates to their approach to security. With an agile cloud available to each organization, it's important to use the right set of tools for the job. Thankfully, security and DevOps have a life-long friendship to look forward to, as together, they can heavily help get the job done right.