開発者のアカウントを2要素認証(2FA)で保護

Image of Mike Hanley

GitHubでは、GitHub.com上でソースコードの開発に貢献するすべてのユーザーに対して、2023年の終わりまでに1つ以上の2要素認証(2FA)形式を有効化することを決定しました。

ソフトウェアサプライチェーンのスタート地点は開発者です。そして、開発者のアカウントは頻繁にソーシャルエンジニアリングの攻撃対象になったり、アカウント乗っ取りのターゲットにされます。そのため、こうしたタイプの攻撃から開発者を保護することは、サプライチェーンの安全性を確保するための最初の一手であり最重要事項です。GitHubにはソフトウェア開発者を保護してきた長い歴史があり、不正アクセスを受けた既知のユーザーパスワードを見つけて無効化する堅牢なWebAuthnセキュリティキーのサポートを提供するすべてのnpmパブリッシャーを強化されたログイン検証に登録するなどの取り組みを行ってきました。今回の対応は、GitHubアカウントのセキュリティを強化することでソフトウェア開発のエコシステムをより安全に保護することを目的とした、プラットフォーム全体の取り組みの一環です。このブログは、GitHub.comでソフトウェア開発に貢献するすべてのユーザーに対し、2023年の終わりまでに1つ以上の2要素認証(2FA)形式の有効化をお願いするものです。

GitHub.comでソフトウェアの開発に貢献するすべてのユーザーは、2023年の終わりまでに1つ以上の2要素認証(2FA)形式を有効化するようお願いいたします。

GitHubでは、強力なアカウントセキュリティによって開発者のエクスペリエンスが犠牲になることのないよう尽力しています。私たちは今後も、セキュリティ基準の進化に合わせて、ユーザーを安全に認証する新しい方法(パスワードレス認証など)を積極的に模索していきます。開発者はどこにいても、認証やアカウントリカバリに関するさらに多くのオプションや、アカウント侵害の防止とリカバリーに役立つ機能改善を利用できるようになります。

アカウントのセキュリティと2FAが重要である理由

2021年11月、2FAを有効にしていなかった開発者アカウントへのセキュリティ侵害が原因で発生したnpmパッケージの乗っ取りをきっかけに、GitHubはnpmアカウントのセキュリティに対して新たな投資を行いました。現在はnpmアカウントのセキュリティ向上への取り組みを継続しながら、GitHubを使用している開発者アカウントの保護にも同じように尽力しています。

ほとんどのセキュリティ侵害は、珍しいゼロデイ攻撃によるものではなく、ソーシャルエンジニアリング攻撃、認証情報の盗用または漏えい、被害アカウントやその先のリソースへの広範なアクセス権を攻撃者に提供する手段など、低コストの攻撃が関係しています。侵害されたアカウントは、プライベートコードを盗んだり、そのコードに悪意のある変更をPushすために使用されてしまいます。これにより、侵害されたアカウントに関連付けられている個人や企業だけでなく、攻撃を受けたコードを利用するすべてのユーザーも危険に晒されることになります。結果的に、広範なソフトウェアエコシステムやサプライチェーンの下流に影響を与える可能性は多大になります。

これに対する最善の防御は、パスワードによる基本的な認証を越えた手段を講じることです。GitHubでは既にこの方針を採用して、Git操作とAPIに対するBasic認証を非推奨とし、ユーザー名とパスワードに加えてメールベースのデバイス確認を要求するようにしています。2FAは強力な第二の防衛線であり、実証済みの成功例にもかかわらず、ソフトウェア開発エコシステム全体での2FAの採用率は、まだ低い状態です。現在、1つ以上の2FA形式を使用しているのは、GitHubのアクティブユーザーの約16.5%、npmユーザーの約6.44%に過ぎません。

npmの2FAアップデート

GitHubでは今年2月に、上位100パッケージのすべてのメンテナーを、2FAを必須とするnpmレジストリに登録しました。3月には、すべてのnpmアカウントを強化済みのログイン検証に登録しました。5月31日には、上位500パッケージのすべてのメンテナーに対して2FAを必須にする予定です。最終的には、今年の第3四半期までに、利用するユーザー数が500人を超えていたり、毎週のダウンロード数が100万回に上るメンテナーも対象にする予定です。今後さらに、npmに対して2FAを要求することから得た知識を活用し、その教訓をGitHub.comでの取り組みに応用していきます。

GitHubがすべての開発者にとってのホームであるという唯一無二の立場にあるからこそ、私たちにはソフトウェア開発エコシステム全体のセキュリティ水準を引き上げるチャンスと責任の両方があると信じています。ソフトウェアサプライチェーンの全体的なセキュリティを向上させるために、私たちはプラットフォームと幅広い業界に深く投資していますが、アカウント侵害のリスクへの対処を怠ると、投資価値が根本的に制限されてしまいます。私たちは引き続きこの課題解決に向けて取り組み、一人ひとりの開発者のための安全なプラクティスを通じて、サプライチェーンのセキュリティ向上を促進するよう尽力していきます。

今すぐ始める

個人ユーザー

最近リリースしたiOSおよびAndroidアプリGitHub Mobile上で2FAをご利用いただけます。GitHub Mobile での2FAの設定方法を確認するには、こちらをクリックしてください。GitHub Mobile 2FAを設定するには、その他の形式の2FAを1つ以上有効にする必要があります。詳細については、下をご覧ください。

フィッシングに対抗するWebAuthnセキュリティキーのエクスペリエンスまたはその他のオプションをお探しの場合こちらご確認ください。

セキュリティキーの採用を促進するために、GitHubではYubiKeyなどのセキュリティキーを重要なオープンソースプロジェクトのメンテナーに配布し、セキュリティキーをGitHubショップに入荷しました。SoloKeysTitan Security Keysもご利用いただけます。

GitHub.comの2FAに関するその他のドキュメントは、こちらからご確認ください。npmアカウントに2FAを設定するには、こちらをご確認ください

リカバリーコードの保存と、1つ以上のアカウントリカバリ方法の設定も忘れずに行ってください。

OrganizationとEnterprise

GitHub.comのOrganizationおよびEnterpriseのオーナーは、自分のOrganizationおよびEnterpriseのメンバーに対して2FAを要求することもできます。これらの設定を有効にすると、2FAを使用しないOrganizationおよびEnterpriseのメンバーとオーナーは、そのOrganizationまたはEnterpriseから排除されることに注意してください。

今後について

今後数か月の間に、GitHub.comユーザーに対する将来的な2FA要件について、詳細情報とタイムラインをお伝えする予定です。GitHubは、コードをコミットする、Pull RequestやMergeする、GitHub Actionsを使用する、パッケージを公開するユーザーに対して、2FAを求めることは適切であると強く信じていますが、スムーズで利用しやすい操作性も確保したいとも考えています。アカウントの保護とリカバリーに役立つように設計していく今後の機能改善と新機能にご注目ください。