DevOps can be defined as a cultural change
in work or a set of technology practices. It focuses on building a quality
code, enabling automated testing based on a culture of continuous improvement
eventually leading to improved stability and throughput and moving new features
to customers quickly. Although DevOps is not a particular set of tools, but
implementing DevOps practices leads to using certain tool sets.
-
The Version control
systems track changes to the files and allow collaboration between teams. This
leads to comparisons and merging of versions and rollbacks of issues.
-
The Configuration
management system automates new systems, enforces consistent application
installation and configuration of system and application across different
classes of servers.
-
The ‘infrastructure as code’ can be versioned and tested, ensuring
that identical configurations are in place. This improves the odds that the
software that was tested fine in the staging system will be fine in the
production system as well.
-
The automated system which
helps to move through the build, deploy, test and release phase in the key
component.
Apart from the efficiency provided by DevOps,
it can also create challenges in the implementation of security control
infrastructures. Deployment through cloud reduces the control over the
visibility of hardware and network layers. Further, it also complicates the
tracking of hardware assets over time. DevOps blurs the limitations of the developers
and operations and their duties are not well segregated.
Security teams need to be engaged early in
the DevOps process in order to ensure continuous deployment. The following
critical controls may be enforced in order to reduce potential security risks.
- Inventory of Authorized and Unauthorized Devices: In DevOps environment, the very idea of ‘devices’ and servers is obscured in layers of deployed containers and virtual machines. Hence, cloud provider portals and APIs can provide verification of automated inventory along with cloud assets as well.
- Inventory of Authorized and Unauthorized Software: The common practices of DevOps limit the servers to an approved list of the installed software. The configuration management tools can also be used to restrict to block software versions with known vulnerabilities.
- Secure configurations for Hardware and Software on Servers: Installing and running only the required softwares, keeping them updated and configured is one of the best ways minimizing attacks. Once the configurations for OS and applications are developed, DevOps greatly simplifies the process of syncing these configurations throughout the system.
- Continuous Assessment of vulnerability and Remediation: Keeping up with new vulnerabilities is a challenge. However, the DevOps environment provides a strong foundation for testing new patches. Deployment related security scans verify that all updates are addressed and reaches all intended targets.
- Security of Application Software: The DevOps automated deployment pipeline performs the code review, static analysis and web application scanning before the new software is deployed in production. Further, security testing such as security related functionality, vulnerability scanning and application security scans can be run in parallel to acceptance testing within the staging environment.
- Controlled use of Administrative privileges: In a DevOps model, the code itself acts as a privileged user. Administrative privileges are used by configuration management that install new software, make configuration changes as per events and alerts. These credential secrets must only be used by orchestration systems and should not be made available to any unauthorized access.
As the DevOps movement matures, security can no longer be considered as an
afterthought, rather the best security practices need to be implemented into
the DevOps evolution. Recently, there has been a considerable development of
tools which help in securing DevOps environment. They range from repository
firewalls, new application scanners, security functional test infrastructures
to new SSH management solutions.
Conclusion
DevOps practices come with both advantages
as well as disadvantages when Critical control based control infrastructure is
implemented. The DevOps team needs to implement security early in the process
to ensure a seamless deployment. The new security tools that is enforced for
DevOps provides a new level of visibility and automation for security control
implementations.

