GitHub Advanced Security とは

完了済み

GitHub には、コードの品質の向上と維持に役立つ多くの機能があります。 これらの機能の一部は、依存関係グラフや Dependabot アラートなど、すべてのプランに含まれています。 他のユーザーはパブリック リポジトリに制限付きの機能を提供しますが、プライベート リポジトリの高度な機能には、GitHub Code Security と GitHub Secret Protection が必要です。

このユニットでは、高度なセキュリティGitHubの詳細を学習し、高度なセキュリティ機能を備えたプロジェクトがどのように見えるかを確認します。

GitHub Advanced Security の概要

GitHub高度なセキュリティ機能は、次の 2 つの主要な製品を通じて提供されるようになりました。

  • GitHub Code Security (脆弱性の検出と修復)
  • GitHub シークレット保護 (シークレットの検出と防止)

これらの製品を組み合わせることで、元の GitHub Advanced Security 機能セットを超える広範なセキュリティ プラットフォームが提供されます。

機能の可用性

次の表は、リポジトリの種類と製品にわたるGitHubセキュリティ機能の可用性をまとめたものです。

特徴 パブリック リポジトリ プライベート リポジトリ GitHub Code Security GitHub シークレット保護
コード スキャン (CodeQL) イエス いいえ イエス いいえ
Copilot の自動修正 あり (制限付き) いいえ イエス いいえ
依存関係の確認 イエス いいえ イエス いいえ
Dependabot アラート イエス イエス イエス いいえ
Dependabot 自動優先順位設定ルール いいえ いいえ イエス いいえ
セキュリティ キャンペーン いいえ いいえ イエス いいえ
セキュリティの概要 いいえ いいえ イエス いいえ
シークレット スキャン はい (基本) いいえ いいえ イエス
プッシュプロテクション いいえ いいえ いいえ イエス
カスタム シークレット パターン いいえ いいえ いいえ イエス

前の表に示すように、コード スキャン、基本的なシークレット スキャン、依存関係の確認、Dependabot アラートなど、多くの主要なセキュリティ機能は、GitHub.com のパブリック リポジトリで既定で使用できます。 プライベート リポジトリと内部リポジトリの高度な機能には、GitHub Code Security または GitHub Secret Protection が有効になっているエンタープライズ クラウドまたはGitHub チームGitHub必要があります。

GitHub Code Security と GitHub Secret Protection は、プライベート リポジトリと内部リポジトリに対して次の強化された機能を提供します。

  • コード スキャン (CodeQL):脆弱性とコーディング エラーを自動的に検出し、Copilot自動修正 (有効な場合) を通じて AI 支援の修正をサポートします。
  • シークレット スキャン: コード内で公開されているシークレットを検出し、プッシュ保護を使用してリークをブロックし、カスタム シークレット パターンをサポートし、強化されたアラートと修復ワークフローを提供します。
  • 依存関係の確認: 依存関係の変更の影響を示し、プル要求がマージされる前に脆弱なバージョンを強調表示します。
  • セキュリティの概要: セキュリティ体制、リスク、リポジトリ レベルのアラートを組織全体で可視化します。
  • セキュリティ キャンペーン: 組織がリポジトリ間で複数のセキュリティ アラートをグループ化、優先順位付け、体系的に修復し、チームが脆弱性を迅速かつ大規模に削減できるようにします。

重要事項

GitHubは、1 つの GitHub Advanced Security バンドルから、次のモジュール式プラットフォームに進化しました。

  • GitHub コードセキュリティ
  • GitHub シークレット保護

その他の重要な点は次のとおりです。

  • パブリック リポジトリは、無料のセキュリティ機能の強力なベースラインを引き続き受け取ります。
  • 高度な機能は、防止 (プッシュ保護など)、自動化、AI 支援による修復に焦点を当てています。

ソフトウェア開発ライフサイクルにおける GitHub Advanced Security

高度なセキュリティ機能GitHubソフトウェア開発ライフサイクルにどのような違いがありますか? まず、基本的なセキュリティ シナリオを見てみましょう。

従来のセキュリティ アプローチにおけるソフトウェア開発ライフサイクルのさまざまな段階を示す図。

この例では、従来の セキュリティをゲート アプローチとして 示しています。このアプローチでは、品質保証フェーズ中に 1 つ以上のセキュリティ テストが行われます。 このシナリオでは、多くの場合、セキュリティがソフトウェアの配信を遅らせるボトルネックになります。 多くの組織では、セキュリティを左にシフトすることで、この課題に対処しています。

次に、GitHub Advanced Security と同じソフトウェア開発ライフサイクルを見てみましょう。

GitHub Advanced Security を使用したソフトウェア開発ライフサイクルのさまざまな段階を表す図。

このシナリオでは、プロジェクトのセットアップ中に構成されたセキュリティ ポリシーによって、最初からセキュリティが統合されます。 開発者は、開発プロセス全体でセキュリティ に関するフィードバックを受け取ります。

  • コード スキャン: すべてのコミットとマージで脆弱性とコーディング エラーをスキャンします。
  • シークレット スキャン: すべてのコミットとマージをスキャンして、トークンや秘密キーなどの誤ってコミットされたシークレットを探します。
  • 依存関係の確認: 依存関係の変更を監視し、すべてのプル要求中に既知の脆弱性のデータベースとマニフェスト ファイルを比較することで、プロジェクトのセキュリティへの影響を評価します。

さらに、 セキュリティの概要 は、組織のセキュリティ体制の概要を管理者に提供します。 このビューは、注意または修復が必要なリポジトリを識別するのに役立ちます。

開発ライフサイクル全体にわたってセキュリティ チェックが行われるため、潜在的な問題が特定され、以前に対処されます。 このアプローチにより、品質保証中のボトルネックが軽減され、ソフトウェアがリリースされる前の技術的負債が最小限に抑えられます。