Mateusz Pruchniak, Warsaw
In this article, software architect Mateusz Pruchniak presents key practices in software supply chain security that allow organizations to minimize the risk of security gaps and threats related to software delivery.
The software supply chain is the ‘process of delivering a product to the customer’ in the IT domain, referring to the process of designing, building, delivering, and maintaining.
Software supply chain security is a crucial aspect of the contemporary IT world. As technology evolves, an increasing number of organizations and businesses rely on software delivered from various sources, which creates gaps in its security posture.
This article will discuss various aspects of software supply chain security, starting from securing source code to securing deployment processes. I will present software supply chain security practices divided into 5 stages.
The IT world paid significant attention to supply chain security after the high-profile attack on SolarWinds, known as Sunburst. It was one of the most serious cyber incidents and took place in December 2020.
The attack began by compromising the infrastructure of the software provider SolarWinds to inject malicious code into the popular SolarWinds Orion software, responsible for monitoring and managing computer networks.
It was a sophisticated and complex attack that led to security breaches in many critical institutions, including governments, companies, and organizations worldwide. The infected software version was installed for over 18,000 customers.
The insecurity of the software supply chain can lead to serious consequences, such as data breaches, user privacy violations, critical system disruptions, and a negative impact on a company’s reputation. As a result, developing and implementing best practices in security has become an essential element of technology-based business strategies.
The foundation of every software supply chain is its source code. The code repository should be treated as a standard production system and secured in the same manner, considering the principle of least privilege and separation of duties.
Recommended practices:
The insecurity of the software supply chain can lead to serious consequences, such as data breaches, user privacy violations, critical system disruptions, and a negative impact on a company's reputation.
Dependencies on external libraries are an integral part of the software building process. However, they also come with certain challenges, such as managing library versions, ensuring that libraries are secure and up-to-date, and identifying and resolving conflicts between different libraries.
Recommended practices:
Securing the compilation and build processes of software is a fundamental element of ensuring the security and integrity of the final software product. At this stage, the software is compiled or built from source code and external dependencies. Incorrect and insecure configurations can undermine all the efforts made to secure the source code and external dependencies.
Recommended practices:
Security is not the only aspect to consider; legal aspects are also essential. Software often utilizes open-source or commercial libraries, and it's crucial to meticulously verify the licenses of these libraries or other dependencies.
Dependencies on external libraries are an integral part of the software building process. However, they also come with certain challenges, such as managing library versions, ensuring that libraries are secure and up-to-date, and identifying and resolving conflicts between different libraries.
Recommended practices:
Having a secure source of trusted artifacts (meaning that we store trusted and verified software) requires developing a secure deployment pipeline for these artifacts to various environments, including production environments. The deployment pipeline should be designed in a way that enables automatic and controlled deployment of artifacts, while maintaining the highest security standards.
The deployment pipeline should be designed in a way that enables automatic and controlled deployment of artifacts, while maintaining the highest security standards.