GitHub は認証情報や API トークンなどの PyPI や RubyGems のsecretを公開しているリポジトリを自動的にスキャンすることを発表しました。
これによりRubyやPythonの開発者が作成した何百万ものアプリケーションを保護することが可能になりました。
GitHubによるPyPIとRubyGemsの秘密のスキャン開始
この機能を利用するためには、GitHub Advanced Securityがリポジトリで有効になっていることを確認する必要がありますが、パブリックリポジトリのデフォルト設定で有効になっています。
GitHub.comの公開リポジトリにおいて、この機能は常にオンになっておりコードが公開されないようにプロジェクトの可視性を変更した場合にのみ無効にすることができます」とGitHubは説明したいます。
ユーザー名やパスワードと同様、シークレットやトークンはサービスを利用する際に認証するための重要情報です。
サードパーティのAPIと連携しているアプリケーションは、APIサービスにアクセスするためにコード内にシークレット(プライベートAPIキー)を使用します。
そのため、シークレットが漏洩するとソフトウェア全体に影響を及ぼすという、より大きな攻撃につながる可能性があるためシークレットが漏洩しないように注意する必要があります。
この機能が提供される以前でも、GitHubは誤ってコミットされたnpm、NuGet、Clojarsなどのシークレットをスキャンしていました。
現在GitHub Advanced Securityがサポートしているシークレットの種類は70以上にも上り、npm、PyPI、RubyGems、Nuget、Clojarsなどのオープンソース登録機関やAdobeやOpenAIなどのパッケージ管理以外のサービスのシークレットも含まれています。
秘密が特定されるとどうなるのか?
GitHub は公開リポジトリで公開されているパスワードや API トークン、SSH のプライベートキーなどサポートしているSecretを発見するとレジストリメンテナに通知します。
レジストリメンテナーは、最近追加された PyPI や RubyGems のように公開されている認証情報を失効させ、その理由を開発者にメールで通知します。
GitHubがRubyGemsおよびPyPIと提携している利点としては、Secretが公開されてしまった場合でも開発者の手動対応を待つのではなく、自動で公開された秘密が取り消せることが挙げられます。
これまでも公開された秘密や認証情報を利用して攻撃者は侵入を成功させています。
機密情報を自動スキャンすることで、開発者のインフラを偶発的な漏洩から守りソフトウェア開発のセキュリティを強化することができます。
Comments