Skip to main content

GitHub セキュリティ機能

GitHubのセキュリティ機能の概要。

GitHubのセキュリティ機能について

GitHubは、リポジトリ内及びOrganizationに渡ってコードとシークレットをセキュアに保つのに役立つ機能があります。 一部の機能は、すべてのプランのリポジトリに使用できます。 その他の機能は、GitHub Advanced Security を使うエンタープライズに使用できます。 GitHub Advanced Security の機能は、GitHub.com 上のすべてのパブリック リポジトリでも有効になります。 詳しくは、「GitHub Advanced Security について」を参照してください。

GitHub Advisory Databaseには、表示、検索、フィルタできる精選されたセキュリティ脆弱性のリストが含まれます。 詳しくは、「GitHub Advisory Database でのセキュリティ アドバイザリの参照」を参照してください。

すべてのリポジトリで使用可能

セキュリティ ポリシー

リポジトリで見つけたセキュリティの脆弱性を、ユーザが内密に報告しやすくします。 詳しくは、「リポジトリへのセキュリティ ポリシーの追加」を参照してください。

セキュリティ アドバイザリ

リポジトリのコードのセキュリティの脆弱性について、非公開で議論して修正します。 その後、セキュリティアドバイザリを公開して、コミュニティに脆弱性を警告し、アップグレードするようコミュニティメンバーに促すことができます。 詳しくは、「リポジトリ セキュリティ アドバイザリについて」を参照してください。

Dependabot alerts およびセキュリティアップデート

セキュリティの脆弱性を含むことを把握している依存関係に関するアラートを表示し、プルリクエストを自動的に生成してこれらの依存関係を更新するかどうかを選択します。 詳細については、「Dependabot アラートについて」および「Dependabot のセキュリティ アップデート」を参照してください。

GitHub によってキュレーションされたデフォルトの Dependabot 自動トリアージ ルール を使用して、大量の誤検知を自動的に除外できます。 Dismiss low impact issues for development-scoped dependencies は、GitHub プリセットルールです。 このルールでは、開発で使用される npm 依存関係で見つかった特定の種類の脆弱性は自動的に無視されます。 このルールは、誤検知を減らし、アラートの疲労を軽減するためにキュレーションされています。 このルールは、公開用 リポジトリに対してデフォルトで有効になっており、プライベート リポジトリに対してオプトインできます。 ただし、GitHub プリセット を変更することはできません。 詳しくは、「GitHub プリセット ルールを使用して Dependabot アラートに優先順位を付ける」を参照してください。

Dependabot によって提供されるさまざまな機能の概要と、開始方法の手順については、「Dependabot クイックスタート ガイド」を参照してください。

Dependabot version updates:

Dependabotを使って、依存関係を最新に保つためのPull Requestを自動的に発行してください。 これは、依存関係の古いバージョンの公開を減らすために役立ちます。 新しいバージョンを使用すると、セキュリティの脆弱性が発見された場合にパッチの適用が容易になり、さらに脆弱性のある依存関係を更新するため Dependabot security updates がプルリクエストを発行することも容易になります。 また、Dependabot version updates をカスタマイズして、リポジトリへの統合を効率化することもできます。 詳しくは、「GitHub Dependabot のバージョンアップデートについて」を参照してください。

依存関係グラフ

依存関係グラフを使うと、自分のリポジトリが依存しているエコシステムやパッケージ、そして自分のリポジトリに依存しているリポジトリやパッケージを調べることができます。

依存関係グラフは、リポジトリの [分析情報] タブにあります。 詳しくは、「依存関係グラフについて」を参照してください。

少なくともリポジトリへの読み取りアクセス権がある場合は、GitHub UI または GitHub REST API を使って、リポジトリの依存関係グラフを SPDX 互換のソフトウェア部品表 (SBOM) としてエクスポートできます。 詳しくは、「リポジトリのソフトウェア部品表のエクスポート」を参照してください。

セキュリティの概要

セキュリティの概要を使用すると、組織の全体的なセキュリティ環境を確認したり、トレンドやその他の分析情報を表示したり、セキュリティ構成を管理したりできます。これにより、組織のセキュリティ状態を簡単に監視し、リスクが最大のリポジトリと組織を特定できます。 詳しくは、「セキュリティの概要について」を参照してください。

無料のパブリック リポジトリで使えます

ユーザーに対するシークレット スキャンニング アラート

ユーザー所有 パブリック リポジトリにチェックインされたトークンまたは資格情報を自動的に検出します。 GitHub によってコードから検出されたシークレットのアラートは、リポジトリの [セキュリティ] タブに表示できます。これにより、侵害されているものとして扱うべきトークンまたは資格情報がわかります。 詳しくは、「シークレット スキャンについて」を参照してください。

ユーザーのプッシュ保護

ユーザーのプッシュ保護は、リポジトリ自体が secret scanning を有効にしているかどうかに関係なく、シークレットを誤ってパブリック リポジトリにコミットしないように自動的に保護します。 ユーザーのプッシュ保護は既定でオンになっていますが、個人用アカウント設定でいつでも機能を無効にすることができます。 詳しくは、「ユーザーのプッシュ保護」を参照してください。

パートナーに対するシークレット スキャンニング アラート

すべてのパブリック リポジトリとパブリック npm パッケージ全体で漏洩したシークレットを自動的に検出します。 GitHub は、シークレットが侵害される可能性があることを関連するサービス プロバイダーに通知します。 サポートされるシークレットとサービス プロバイダーの詳細については、「secret scanning パターン」を参照してください。

GitHub Advanced Security で使用可能

多くの GitHub Advanced Security 機能は、GitHub.com のパブリック リポジトリで無料で利用できます。 GitHub Advanced Security ライセンスを持つエンタープライズ内の組織は、すべてのリポジトリで次の機能を使用できます。 詳しくは、「GitHub Advanced Security について」を参照してください。

GitHub Advanced Security の無料試用については、「GitHub Advanced Security の無料試用版を設定する」を参照してください。

Code scanning

新しいコードまたは変更されたコードのセキュリティの脆弱性とコーディングエラーを自動的に検出します。 潜在的な問題が強調表示され、あわせて詳細情報も確認できるため、デフォルトのブランチにマージする前にコードを修正できます。 詳しくは、「コード スキャンについて」を参照してください。

ユーザーに対するシークレット スキャンニング アラート

リポジトリにチェックインされたトークンまたは資格情報を自動的に検出します。 GitHub によってコードから検出されたシークレットのアラートは、リポジトリの [セキュリティ] タブに表示できます。これにより、侵害されているものとして扱うべきトークンまたは資格情報がわかります。 詳細な情報については、「シークレット スキャンについて」を参照してください。

カスタム自動トリアージ ルール

大規模な Dependabot alerts の管理に役立ちます。 カスタム自動トリアージ ルール を使用すると、無視、スヌーズ、または Dependabot のセキュリティ アップデートをトリガーするアラートを制御できます。 詳細については、「Dependabot アラートについて」および「自動トリアージ ルールをカスタマイズして Dependabot アラートの優先度を設定する」を参照してください。

依存関係の確認

Pull Requestをマージする前に、依存関係に対する変更の影響を詳細に示し、脆弱なバージョンがあればその詳細を確認できます。 詳しくは、「依存関係の確認について」を参照してください。

参考資料