Open Source Software Security
Open Source Software (OSS) is everywhere whether it is operating systems, productivity tools, code libraries, or configuration and administrator tools. Open source is now an integral part of software development in organizations. It helps organizations save developers time and cost of the software development. With Agile and DevOps practices, we can't imagine any software without using open-source software. OSS does provide lots of cutting-edge software capabilities, which are very difficult to build from scratch. In fact, the majority of commercial software is either based on the existing open-source software or using other open-source software. e.g. Google Chrome and Microsoft Edge are based on the open-source Chromium browser.
Security Advantages
Apart from saving cost and time, the biggest advantage of OSS is the opportunity to fix it yourself. You don't have to wait for the vendor to come up with the fix or put these items in their roadmap. Engineering teams can simply check out the code, fix the issue, and publish it for the community. The same is true for the security vulnerability of the software. Teams can fix these themselves.
Another advantage of OSS is it goes through many eyes during the development process and even after the development process. Which gives high chances of catching or detecting the vulnerability. But at the same time developer might get complacent for the same reason, which might introduce some defects or vulnerabilities in the code.
Security Risks
Open-source software comes with its own set of risks. As per the Synopsys 2021 OSSRA report, 98% of codebases in the survey were using open source software and 84% of the codebases have at least 1 vulnerability. There are lots of defects reported for the open-source software, and there is no way to know all the users of specific software. It is almost impossible to notify people in case of any security vulnerability is detected or fixed.
if you flip the situation and ask the question yourself- does the organization know which all open source software is being used in the organization? Used software included the transitive dependencies as well. Which further complicates the problem. For most of the organization, it would be very difficult to answer.
If the organization doesn't have visibility into what open source software is being used along with a different version of the software. It is impossible to patch the software when a new vulnerability is detected or fixed.
Some examples where open source software vulnerabilities were the root cause of the incidents or data breaches
How to Guard against Open Source Software Vulnerabilities
Visibility
"If you can not see it you can not protect it" is the mantra for cybersecurity. It is important to have an inventory or open-source software used in the organization, that can help to identify the impact in case of a new vulnerability is disclosed for an open-source project, and help to apply the patches quickly at the right places to fix the vulnerability.
Generally, this task is more difficult than expected, following are the few challenges
Recommended by LinkedIn
Generally, there are tools available that can scan through the code repositories and deployed software to build inventories along with the vulnerabilities. These tools can be integrated into the CICD pipelines to scan for vulnerabilities in the applications before deployment.
Followings are vulnerability databases available where teams can find more details about the vulnerabilities and how to fix them.
Protect against Vulnerabilities
Patching Strategy
"If we can not protect vulnerability releasing into software release, how quickly we can fix these." Organization needs to have a strong patching strategy of Operating System Patches, container patches, application patches, and open-source software. Organizations should be able to roll out the patches as quickly as possible across the organization.
A good patching strategy also requires a vulnerability prioritization strategy, i.e. which vulnerabilities need to be fixed first. This will depend on a combination of the following factors
Summary
It is impossible to think of software development without open source software, as it enables the team to deliver quickly and in a cost-efficient way. At the same time, a proper risk management program should be established for open source software used in organizations to protect from threat actors taking advantage of known vulnerabilities.
References and Further Reading