Many organizations are moving to 2FA/MFA
Many organizations are moving to 2FA/MFA
Posted Jul 13, 2022 22:56 UTC (Wed) by david.a.wheeler (subscriber, #72896)Parent article: "Critical" projects and volunteer maintainers
Many organizations are encouraging or requiring that at least some OSS projects use 2FA/MFA tokens. I suspect that eventually 2FA/MFA tokens will simply be a requirement for all major forges (like GitHub) and for all major package repositories (like PyPI, npm, and RubyGems).
There's a reason this is happening. Unfortunately, attackers are increasingly focusing on taking over OSS developers' accounts - and they're succeeding. The attackers then change the project's source code and/or deployed packages, potentially resulting in a devastating impacts on OSS users. According to "Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages" account compromise is the second most common supply chain attack (after typosquatting) on OSS packages for dynamic programming languages like JavaScript, Python, and Ruby. Attackers directly focus on account takeover. For example, eslint-scope, a package with millions of weekly downloads in npm, was compromised to steal credentials from developers.
The easy solution, one that counters these attacks in almost all cases, is requiring 2FA/MFA tokens. Nobody wants to add requirements. But users presume that the OSS is being being provided by the OSS developers, not by an attacker who broke into the OSS developer's account via a broken password or SIM swapping.
Here are some of the many organizations supporting OSS that are encouraging or requiring 2FA/MFA tokens (in some cases at least):
- GitHub. GitHub will require all code contributors to use 2FA by the end of 2023
- PyPI (Python). PyPI is giving away 2FA security tokens and will require 2FA for critical projects (which they define as their top 1% of downloads). My understanding is that they'll eventually require it for all projects.
- RubyGems (Ruby). The maintainers of at least the top 100 RubyGems packages have started to see warnings on the RubyGems command-line tool and website if MFA is not enabled on their accounts.
- npm (JavaScript). NPM is making 2FA mandatory to their first cohort, all maintainers of top-100 npm packages by dependents, with a wider roll out planned.
- The Open Source Security Foundation (OpenSSF)'s "Great MFA Distribution Project". This project distributed free MFA tokens to a number of OSS projects in 2021 (those identified as critical).
Nobody is forcing anyone to use these forges and package repositories. I think it's reasonable for them to set some basic requirements as long as they have a good reason, aren't too hard to implement, and don't harshly impede other goals like privacy. I think this meets the bar.
