Micro Focus is now part of OpenText. Learn more >

You are here

You are here

How to team up security and engineering on software delivery

Kumar Chivukula Chief Technology Officer and Co-founder, Opsera

It has been observed that every company is now a software company. As such, more stakeholders are involved in the software delivery process; everyone is responsible for both code and data security.

This evolution means the chief information security officer's team needs to partner with other stakeholders in the company to implement overall guidelines, standards, and best practices built on the principles of security by design. Using standard best practices that drive software's security and quality helps the entire IT organization avoid any known issues and challenges along the way.

With collaboration between the security and software engineering teams, you gain hardened security guardrails to ensure that both teams are following the policies as part of their own processes. This makes it easier for the entire organization to pass software audits and complete security posture assessments. Customers also have the comfort of knowing that the company is following the proper security guidelines and that their data is secure.

Software delivery management, therefore, is a combination of the CISO team's policies and the engineering practices of DevOps/IT Ops. It must take into account the company's needs as it transitions applications to the cloud.

These best practices will help security and IT leaders address challenges and ultimately allow high-performing teams to bake security standards into software delivery.

Examine your transition to the cloud

In the past, engineering teams developed software-based management tools inside the data center and deployed them directly onto production servers. But when organizations move applications to the cloud, it's hard to control the underlying hardware, software, security tools, and techniques across each step in the software delivery lifecycle.

In other words, it's easy to migrate to the cloud, but it's hard to secure the software delivery management process. To facilitate this successfully, you have to think in terms of security by design.

IT leadership should not be thinking about security after the fact. Too many organizations try to "lift and shift" the workloads from on-premises environments to the cloud, in essence keeping the old security process and controls in place. By doing this, they are not able to leverage cloud-native security tools or technologies effectively.

For example, when a project is beginning, security approvals are needed. A centralized security team must be involved at each step so they know what is being delivered and to avoid any surprises toward the end of the deployment lifecycle.

The second security aspect of software delivery management is the need to determine the correct stage for security by design to come into play. This is where engineering teams start opting for security best practices during the initial build process and leveraging techniques such as static code analysis.

Why security by design is key

The five things that help companies improve their security posture in software delivery management are:

  • Static code analysis
  • Dynamic code analysis
  • Container security management
  • A vault for managing secrets, passwords, certificates, and keys
  • Visibility into software delivery management

Static code analysis

Static code analysis is important to better understand the vulnerabilities, the quality of the software built, and the security vulnerabilities inside the software—and at a rapid pace. Catching issues early helps remediate them so that engineering teams avoid deploying buggy code into production.

The desired outcome for any IT leader is to eliminate the known issues and vulnerabilities at the beginning of the software delivery management process.

Dynamic code analysis

Dynamic code analysis will help you identify the vulnerabilities as part of runtime execution. Dynamic code analysis is a form of black-box vulnerability scanning that allows developers and the DevOps team to scan running applications and identify the vulnerabilities. Dynamic code analysis can reduce mean time to identification for production incidents and increase your overall security posture.

Container security management

Many organizations are shifting from VMs to containers in the cloud. When migrating to container technology, security engineering needs to include container scans as part of the software delivery management process.

Your security team needs to partner with the software engineering and DevOps teams to establish benchmarks and the baseline for container security vulnerability management. They also need to make sure that all container images are scanned on a regular basis and that the scan results do not deviate from the baseline.

In addition, incorporating the approval gates in the CI/CD process will help security teams enforce the policies and automate all the prescribed software delivery management security steps.

This crucial process can eliminate bugs, known vulnerabilities, and surprises from each deployment, thereby improving the quality of the software and the security posture.

A vault for managing secrets, passwords, certs, and keys

In the past, engineering teams wrote scripts and embed passwords, keys, and certificates to deploy and build software. This approach does not work for cloud deployments and is not a good practice for hard-coding the sensitive data into the scripts. It exposes sensitive data, which can lead to breaches, and it makes it cumbersome to manage configurations across multiple scripts and deployments.

By automating this process, software delivery management teams can keep these security aspects inside the vault. Decoupling and storing the sensitive data in the vault will significantly improve the ways to protect sensitive security data and also control how people can access this data by using a role-based access model.

As a best practice, all the secrets, passwords, and certificates should be stored in the vault, which then can be cross-referenced against the security measures through every step. This helps teams avoid hard-coding of the passwords, which also protects the code from malicious activity.

Visibility into software delivery management

With current software delivery management platforms, information is distributed throughout multiple tools and stages across CI/CD pipelines. It is challenging for companies to bring the information together, normalize the data, and put together a unified view. This lack of visibility and unified insights into the software delivery management process is going to increase your security risk and impact productivity and operations significantly.

Better visibility and predictive capabilities help organizations understand the bottlenecks, delays, and security risks, allowing them to make intelligent business and technical decisions. In addition, the DevOps and engineering teams can proactively address the issues and avoid last-minute surprises with the end-to-end software delivery process.

3 things you should do right now

At a minimum, IT organizations should incorporate static code analysis and container vulnerability management and use vaults to store sensitive configuration data.

Security leaders need to empower engineering teams by making these integrations easier and orchestrating the security policies for automated CI/CD pipelines. In turn, this helps engineering organizations include guardrails and provides the ability to move the code seamlessly from one stage to another.

The goal is to improve the security processes through validation and make sure that teams deliver software to the highest quality and security standards. All of this will make it easy for the CISO to have confidence that proper steps have been taken to collaborate between security and engineering teams early and often.

Keep learning

Read more articles about: SecurityInformation Security