Supply chain attacks can inject security vulnerabilities into tools and libraries and code, which can then be installed far and wide. GitHub recognises this, and its role in protecting its 83 million global developers - one million in Australia, and has announced mandatory two-factor authentication.
GitHub has a long history of protecting developers through efforts including seeking and invalidating known-compromised user passwords, offering robust WebAuthn security key support, and enrolling all npm publishers in enhanced login verification.
GitHub is committed to making sure that strong account security doesn’t come at the expense of a great experience for developers, and the target of the end of 2023 allows the company time to optimise for this. Developers everywhere can expect more options for secure authentication and account recovery, along with improvements that help prevent and recover from account compromise.
GitHub has already found, from its work in November 2021 to combat npm package takeovers, that 2FA has made a big difference, and the company is equally committed to securing the accounts of all GitHub developers.
The company finds most security breaches are not the result of exotic zero-day attacks, but rather involve lower-cost attacks like social engineering, credential theft or leakage, and other avenues that provide attackers with a broad range of access to victim accounts and the resources they have access to.
It's a serious problem. Compromised accounts can be used to steal private code or push malicious changes to that code. This places not only the individuals and organisations associated with the compromised accounts at risk but also any users of the affected code. The potential for downstream impact on the broader software ecosystem and supply chain, as a result, is substantial.
Hence, moving beyond basic password-based authentication is essential. Yet, while 2FA has been demonstrated to be successful, 2FA adoption across the software ecosystem is low. Only 16.5% of active GitHub users and 6.44% of npm users use one or more forms of 2FA.
GitHub has already enrolled all maintainers of the top 100 packages on the npm registry to mandatory 2FA, and in March enrolled all npm accounts in enhanced login verification.
On May 31 GitHub will be enrolling all maintainers of the top 500 packages in mandatory 2FA. The final cohort will be maintainers of all high-impact packages, those with more than 500 dependents or one million weekly downloads, whom GitHub plans to enrol in the third quarter of this year. It will leverage what it learned from requiring 2FA on npm and apply those lessons to these further efforts.
2FA for GitHub Mobile is already available on iOS and Android, though to configure it you will need to have at least one other form of 2FA enabled.
Meanwhile, organisation and enterprise GitHub users can also require 2FA for members of their organisations or enterprises. Be careful as this will remove any members and owners who do not use 2FA when the settings are enabled - thus you need to get your people enrolled in 2FA before turning on mandatory 2FA.
More information on securing your GitHub account with 2FA is available here.