Managing open source components in the software supply chain
Getty Images/iStockphoto
Open source components are an essential part of today's software applications, but they can come at a critical cost: security.
Modern software applications comprise components from many different sources, including open source software (OSS). This can add advantages to the software development life cycle, such as increased development speed, reduced development costs and increased scalability.
But using components from diverse sources also broadens an application's attack surface, increasing the number of entry points attackers can use to gain access to applications and sensitive data. DevOps teams must ensure the security of their software supply chain by enacting proactive measures to mitigate attacks.
A software supply chain comprises all people, processes, tools, code libraries and underlying IT infrastructures used to create a software application. It includes all aspects of the software development life cycle (SDLC), such as code building, testing, deployment and post-launch maintenance.
Many of the components that make up a project's software supply chain are open source. For instance, design automation company Synopsys published a report in February 2023 that inspected the results of more than 1,700 audits of commercial codebases. The report found that at least one open source component is present in 96% of applications. Almost all commercial applications incorporate an open source component.
A software supply chain attack happens when attackers infiltrate a vendor's software to plant malicious code that infects clients using that software. Infiltration can happen at any point during the SDLC, and many devastating cyberattacks use the software supply chain. Recent supply chain attacks include the SolarWinds attack and the Log4j vulnerability.
Basic software supply chain security requires checking on its vulnerable areas:
OSS components are increasingly popular for software development projects. IT providers utilize and support the creation of open source projects, such as the following:
In addition to powering major applications, OSS components provide numerous benefits. They are free to use, even when developing commercial apps. OSS components are also customizable because the code is open -- developers can extend functionality to include more features.
OSS can reduce development time. The OSS library holds components for nearly any functionality users may want to incorporate into their application. This gives developers more time for other areas of development. Open source projects are also often developed following a specific standard, which results in different open source components interoperating without hassle.
Lastly, open source projects can have robust code quality and security. They are often developed by many contributors, which ensures ample testing of the software component. Any developer can also inspect OSS components for security vulnerabilities, making them more secure than proprietary code that developers can't inspect for security issues.
Despite the numerous OSS benefits, attackers can still infiltrate open source components. The most common method of attack is abusing OSS aspects of the software supply chain for malicious purposes, which can happen in different ways:
To manage security of the open source components in software supply chains, DevOps teams should consider these best practices:
Follow secure coding practices when developing applications and ask software vendors to as well. Such coding practices include the following:
Teams also must ensure that the software supply chain environment is secure throughout development. Best practices include the following: