Today we’re very excited to present FINOS Security Scanning - a FINOS initiative for driving security best practices across our hosted projects. This helps FINOS project maintainers quickly enable continuous scanning on their hosted codebase, as an additional tool of security options.
Given the wide range of platforms, languages and build systems used by FINOS projects, finding one solution that fits all requirements was not an easy task. Especially considering the incredible amount of libraries available in public library repositories, which can be easily used, embedded, integrated and re-published; this proliferation of artifacts have dramatically influenced software development:
To address these concerns, FINOS Security Scanning focuses on library scanning, with the aim of providing a simple and efficient way to identify and manage Common Vulnerability and Exposures (or CVE). Our goal is to make this solution available to all FINOS projects and embed it in our contribution onboarding process.
The combined proactive/reactive approach is crucial to enforcing security, as it ensures that the code will always be free of CVEs, provided that changes are always submitted via Pull Requests:
Based on the requirements discussed above, we consolidated a list of technical requirements:
The mechanism to ignore false positives (alerts that incorrectly indicate that a vulnerability is present) should allow defining rules to ignore a specific CVE, a file, a library or a block of code. Rules should be defined in files hosted on Git, in order to provide direct access to the entire developer team, responsible for keeping it up to date to avoid getting spammed by useless alerts.
The CI/CD integration is a key requirement when used with GitHub branch protection, to make sure that the main branch can only be updated via Pull Requests and nobody, other than repository Administrators, can merge a Pull Request that introduces vulnerabilities (since the scanning failed). This ensures that no change can be made to the main branch, unless successfully scanned, and that’s why at FINOS we’re reaching out to our project teams to protect their main code branches.
The project landing page (i.e the README.md) should report the status of the security scanning runs (i.e Github Actions badges), in order to help consumers validate the level of scrutiny that the code has been through and decide whether to adopt it or not.
The FINOS Security Scanning is a collection of libraries, GitHub Actions and documentation that allows developers to quickly enable CVE scanning and Static code analysis, in a GitHub hosted code repository, across different languages and build platforms:
For static code analysis we found Semgrep very easy to run locally and integrate with GitHub Actions.
The repository provides documentation to test locally, define rules to ignore warnings/errors and create GitHub Actions for each supported language. Local runs are very useful, allowing developers to play with it, understand how it works, and how to maintain it efficiently.
If you have any questions, feel free to open an issue on GitHub or email help@finos.org. We’d be happy to support you.
Along with Security Scanning at FINOS, we’re fully embracing the OpenSSF Best Practices Badge Program, which helps projects to follow best practices, and measures its adoption. Projects can voluntarily self-certify at no cost, by using the web application to explain how they follow each best practice. Consumers will be able to easily assess the project in terms of security, quality and compliance, which is key for highly regulated industries.
We are supporting our hosted projects to self-certify, in order to move forward towards project activation, which requires an “OpenSSF Passing Badge”. There are other 2 badges, silver and gold, that can be accomplished.
The security tooling landscape is constantly evolving, so it’s important to adapt quickly and take advantage of the best tools available. We want to continuously monitor and integrate with the latest offerings from FINOS Gold Members, Mend (with Renovate), Sonatype (with Lift) and GitHub (with CodeQL and dependabot). In addition to that, we also like to review other new solutions such as, Semgrep Supply Chain.
In parallel, we want to ensure a steady rollout of security scanning across all FINOS projects. Covering more languages and build platforms is important to us, to ensure we are prepared for future contributions - next in line are C# language and mill build tool!
If you’d like to contribute additional documentation or tooling for CVE scanning or static code analysis, feel free to open an issue on GitHub.
Congratulations to the Compliant Financial Infrastructure, FDC3 and Morphir teams, for successfully adopting the FINOS security scanning and getting their OpenSSF badge. Their collaboration, availability and support have been very important to develop this project.
Interested in FINOS open source projects? Click the link below to see how to get involved in the FINOS Community.
FINOS Good First Issues - Looking for a place to contribute? Take a look at good first issues across FINOS projects and get your feet wet in the FINOS community.
State of Open Source in Financial Services Report 2021 - Learn about what is really happening around open source in FSI.
This Week at FINOS Blog - See what is happening at FINOS each week.
FINOS Landscape - See our landscape of FINOS open source and open standard projects.
Community Calendar - Scroll through the calendar to find a meeting to join.
FINOS Slack Channels - The FINOS Slack provides our Community another public channel to discuss work in FINOS and open source in finance more generally.
Project Status Dashboard - See a live snapshot of our community contributors and activity.
Events - Check out our upcoming events or email marketing@finos.org if you'd like to partner with us or have an event idea.
FINOS Virtual "Meetups" Videos & Slides - See replays of our virtual "meetups" based around the FINOS Community and Projects since we can't all be in the same room right now.
FINOS Open Source in Finance Podcasts - Listen and subscribe to the first open source in fintech and banking podcasts for deeper dives on our virtual "meetup" and other topics.