GitHubセキュリティ - GitHub高度なセキュリティ

GitHubセキュリティに関するよくある質問:すべての開発者が知っておくべきこと

GitHub セキュリティは現代の DevOps において重要な役割を果たします。チームがコードのコラボレーション、自動化、 CI/CDまた、機密情報の漏洩、ワークフローの設定ミス、脆弱な依存関係、安全でないマージなど、新たなリスクにも直面します。そのため、GitHub 環境を効果的に保護する方法を理解することが不可欠です。この FAQ では、開発者からよく寄せられる質問にお答えし、GitHub Advanced Security と Xygeni などのツールが、開発のあらゆる段階を保護するのにどのように役立つかを説明します。 pipelineさらに、ブランチ保護、アプリの安全性、安全なGitHub Actionsといったトピックに関する詳細なガイドへのリンクも掲載されているので、必要に応じてさらに深く掘り下げることができます。

GitHubを安全に利用する方法

GitHub Advanced Security を利用するということは、ワークフローのあらゆるステップにセキュリティを組み込むことを意味します。これは単にコードベースを保護するだけでなく、ID、シークレット、自動化、サプライチェーンの依存関係など、あらゆるリスクを軽減することにもつながります。セキュリティを早期に組み込むことで、チームは品質を損なうことなく迅速に開発を進めることができます。

以下のベストプラクティスは、開発者がGitHub上で安全に作業を行うのに役立ちます。

2 要素認証 (XNUMXFA) を有効にする

パスワードが一つ漏洩するだけで、大きな被害が発生する可能性があります。すべてのアカウントで二段階認証を義務付けることで、不正アクセスのリスクを大幅に軽減できます。

避ける commitリポジトリに秘密情報を保存

APIキー、トークン、パスワードなどの機密情報は、決してGitに保存すべきではありません。たとえプライベートリポジトリであっても、開発者が誤って.envファイルや設定ファイルをプッシュしてしまうと、情報が漏洩する可能性があります。GitHub Advanced Securityは漏洩した機密情報をスキャンできますが、Xygeniはマージ前に機密情報を検出し、その使用状況を検証し、必要に応じて自動失効やアラートをトリガーすることで、さらに高度な保護を提供します。

機密ファイルがバージョン管理されないようにするには、.gitignoreを使用してください。

ローカル環境ファイル、認証情報、SSH キー、または機密情報を含む設定ファイルを除外します。これにより、偶発的な情報漏洩の可能性が低減されます。 commit or pull request.

ブランチ保護ルールを設定する

ステータスチェックを必須とし、プルリクエストの承認を徹底し、メインブランチへの直接プッシュをブロックする。これらの制御は、レビューされていないコードや脆弱性のあるコードが本番環境に到達するのを防ぐために不可欠である。

リポジトリの可視性とアクセス権限を定期的に確認する。

リポジトリは、特別な理由がない限り、デフォルトでは非公開にすべきです。共有環境では、開発者には作業に必要な最小限のアクセス権限のみを付与するべきです。

GitHub Actionsのワークフローを監査する

ワークフローはしばしば見落とされがちですが、攻撃対象領域の一部です。サードパーティのアクションは常にピン留めしてください。 commit SHA を使用し、トークンへの不要な書き込み権限を回避し、入力を検証します。Xygeni は、ワークフローファイル全体をスキャンして設定ミス、過剰な権限、または危険なパターンを検出することで、これらの問題を解決します。GitHub と統合されています。 pipeline 安全性の低いワークフローがマージされる前に阻止する。

コード、依存関係、シークレットをスキャンし、 IaC 自動的に

手動レビューだけでは不十分です。GitHub Advanced Security はコードと依存関係のスキャンを提供しますが、ほとんどのチームはより広範なカバレッジを必要としています。Xygeni は、 ソースコード全体にわたるフルスタック分析オープンソースライブラリ、インフラストラクチャ・アズ・コード、 CI/CD 論理。それは pull requests, pipelines、そしてマージ後に、何も見落とされないようにします。

安全な開発手法と継続的かつ自動的なスキャンを組み合わせることで、GitHubをデフォルトで安全な環境に変えることができます。安全性を確保するために開発速度を落とす必要はありません。GitHubのセキュリティ対策を積極的に行うことで、開発者はバグの追跡に費やす時間を減らし、開発に集中できるようになります。

チームが既にGitHub Advanced Securityを使用している場合、Xygeniのようなツールで拡張することで、コードからクラウドまで、ソフトウェア開発ライフサイクル全体にわたる完全な可視性を得ることができます。

次のセクションに進む準備ができたら教えてください。あるいは、これを独立した記事やチュートリアルにしてほしい場合は、その旨をお知らせください。

GitHub Actionsを安全に利用するにはどうすればよいですか? Pipelines

GitHub Actions は、GitHub が提供する最も強力な機能の 1 つです。 CI/CDしかし、その力にはリスクが伴います。ワークフローの設定ミスは leak secret過剰な権限トークン、または信頼できないコードの実行を許可します。 pipelines、次の手順に従います。

  • トークンには最小権限を使用する
    アクションにはデフォルトでGITHUB_TOKENが割り当てられます。アクセス範囲は、ジョブに必要な最小限の範囲に限定してください。個人用アクセストークンは、どうしても必要な場合を除き使用しないでください。
  • SHA によるすべてのサードパーティアクションを固定する
    @main または @latest によるアクションの参照は、サプライチェーン攻撃に対して脆弱になります。常に特定のバージョンに固定してください。 commit.
  • すべての入力を検証し、フォークからのデータをサニタイズする
    公共 pull requests ワークフローをトリガーする可能性があります。これらのワークフローは実行前に必ずレビューし、デプロイメント手順において検証されていない入力値を決して信用しないでください。
  • 機密性の高いワークフローと機密性の低いワークフローを分離する
    外部コントリビューターがインフラストラクチャをデプロイしたり、パッケージを公開したりするワークフローをトリガーすることを許可しないでください。
  • リスクがないかワークフロー定義をスキャンする
    GitHub Advanced Securityは、CIロジックではなくコードに焦点を当てています。Xygeniは、ワークフローの.ymlファイルをスキャンして、安全でないパターン、固定されていないアクション、トークンの過剰使用を検出することで、これを補完します。これにより、自動化プロセス全体でGitHub Securityポリシーを適用できます。

GitHubはデフォルトで基本的なツールを提供します。ワークフローの悪用や権限昇格を防ぐため、セキュリティ意識の高いチームの多くは、継続的なポリシー適用を重ねて導入しています。

Commit GitHubへ

Git commit これは単なるバージョン管理のチェックポイントではありません。機密情報、安全でないコード、またはコンプライアンス違反の変更が侵入する可能性のある入り口でもあります。安全に実行する方法は次のとおりです。

  • ステージングする前に何を行うか確認してください commitティン
    git statusとgit diffを使用して、機密ファイルや認証情報が追跡されていないことを確認してください。
  • 意味のある署名入りの文章を書いてください commit メッセージ
    署名されました commitは、特に規制環境において、著作権の完全性を確保するのに役立ちます。
  •   pre-commit hooks またはCIチェック
    秘密情報や設定ミスを防ぐためのチェックを自動化する commitテッド。
  • .gitignoreを厳密に適用する
    一時ファイル、認証情報、およびローカル設定ファイルは、決してマシンから外部に持ち出すべきではないため、除外してください。

XygeniはGitHubとの連携により、ここで付加価値を提供します。 pull requests (NAIST) と commits. それはあなたのコンテンツをスキャンします commit機密情報、脆弱なコード、設定ミス、安全性の低いオープンソースライブラリなどを特定するためのツールです。これにより、開発者はセキュリティインシデントに発展する前に問題を早期に修正できます。

GitHubでブランチをマージする方法

コードのマージは開発における日常的な手順ですが、適切な管理を行わないと脆弱性を招く可能性があります。マージ時のリスクを軽減するには、以下の点に注意してください。

  •   pull requests 分岐保護ルール付き
    メインブランチへのマージを許可する前に、承認、ステータスチェックの合格、およびコードレビューを必須とする。
  • PRにおけるセキュリティスキャンを自動化する pipeline
    マージ前に、静的コード解析、機密情報の検出、および依存関係のチェックを実行してください。
  • 適切な合併戦略を選択する
    スカッシュ commits はクリーンな履歴の作成に役立ち、古いシステムに誤って認証情報や機密データが引き継がれるのを防ぎます。 commits.
  • 重大なリスクが検出された場合は、マージをブロックします。
    セットアップする pipeline セキュリティスキャンが失敗した場合にビルドを失敗させる。

GitHub Advanced Security ではこれらの保護の一部を有効にできますが、Xygeni のようなツールはマージ ゲートでポリシーを適用します。セキュリティ上の問題がないか PR をスキャンし、安全でないマージをブロックし、 CI/CD ワークフローは貴組織のポリシーに準拠しています。

詳しい手順が必要ですか?
GitHub でスキャンを使用して安全にマージする方法を読んでください。 guardrails

GitHubリポジトリとは何か

GitHubリポジトリは、プロジェクトが存在する場所です。そこにはコードベース、 commit 履歴、ドキュメント、CIワークフロー、設定ファイルなど。公開リポジトリであろうと非公開リポジトリであろうと、リポジトリは機密資産として扱うべきです。

リポジトリを安全に保つ方法は以下のとおりです。

  • プライベートリポジトリを使用する 公共のアクセスが必要な場合を除き
  • 共同作業者のアクセスを制限する 必要なものだけに
  • 秘密情報、マルウェア、 or 誤設定 定期的に
  • デフォルトブランチを保護する ルールとレビュー付き

GitHub Advanced Security は、依存関係の分析やコードスキャンなどの機能を追加します。ただし、リポジトリのライフサイクル全体をカバーしたい場合は、 IaCサードパーティ製パッケージやGitHub Actionsにも対応しています。Xygeniは継続的な監視とフルスタックスキャンを提供します。

GitHub Actionsとは

GitHub Actions は、リポジトリ内のタスクを自動化するのに役立ちます。たとえば、誰かがリポジトリを開いたときにテストを実行できます。 pull requestプッシュ後にアプリをデプロイしたり、セキュリティツールを使用してコードを自動的にスキャンしたりできます。

GitHub Actionsのセキュリティを維持するには:

  • ワークフローをバージョン管理する コードのようにレビューされる
  • 書き込み権限を与えることは避けてください。 明示的に必要とされる場合を除き
  • ピン留め あらゆる 第三者による行為 そのことによって SHA
  • ワークフローを処理する あなたの一部として 攻撃対象

GitHub Advanced Securityはコードをスキャンしますが、ワークフローはスキャンしません。そこでXygeniが役立ちます。Xygeniはすべてのワークフローファイル(.yml)をチェックし、脆弱な設定、安全でないアクション、または過度に広範な権限がないかを確認します。これにより、チームはベストプラクティスに従い、GitHub Actionsを安全に保つことができます。

GitHub Pagesは静的サイトホスティングサービスです。デフォルトでセキュリティが確保されていますが、リスクが全くないわけではありません。以下の点に注意してください。

  • HTTPSとカスタムドメインを使用する 適切な TLS設定
  • 秘密情報をハードコーディングすることは避けてください。 ソースファイルへ
  • JavaScriptライブラリを保持する (NAIST) と フロントエンドの依存関係は最新です
  • Apply コンテンツセキュリティポリシー(CSP) ヘッダーの

GitHub Pages自体は安全ですが、公開するコンテンツによってはリスクが生じる可能性があります。これを管理するために、デプロイ前にスキャンツールを使用して、古いパッケージ、シークレット、既知の脆弱性などを検出することができます。Xygeniは、リポジトリとCIワークフローにおけるこれらのリスクを特定し、本番環境の静的サイトにリスクが及ぶのを防ぎます。

マイクロソフトがGitHubを買収 2018年に設立されたGitHubは、現在マイクロソフトの開発者部門の一部として運営されています。毎日何百万人もの開発者がGitHubを利用しており、コードの作成と共有のための最も人気のあるプラットフォームの一つとなっています。

GitHub Copilotとは?

GitHubコパイロット 自然言語によるプロンプトに基づいてコード候補を生成するAIコーディングアシスタントです。開発者はこれを利用して作業を効率化し、定型コードの自動化を図ります。

ただし、Copilotはアプリケーションのセキュリティ要件をコンテキスト認識しません。そのため、以下のようなメッセージを生成する可能性があります。

  • 安全でない認証ロジック
  • evalやexecなどの関数の安全でない使用
  • 入力検証が不十分
  • 認証チェックをスキップするコード

Copilotを使用する開発者は、自動セキュリティスキャンと併用すべきです。GitHub Advanced Securityはリスクの一部をカバーしますが、XygeniのようなツールはCopilotで生成されたコードに対して詳細な静的解析を実行し、チームが本番環境にマージする前に脆弱性を検出します。

適切な管理を行えば、GitHubは安全です。SA​​ML認証、シークレットスキャン、ブランチ保護などのネイティブ保護機能は、リスクを軽減するのに役立ちます。しかし、GitHubだけでは、開発者が触れるすべてのものを監視することはできません。特に CI/CD またはオープンソースの依存関係。

GitHubのセキュリティを強化するために、チームは以下のことを行うべきです。

  • ID管理を強制する 2FAやSSOのように
  • スキャン の 秘密、脆弱性、 (NAIST) と 誤設定
  • 政策執行を適用する CIワークフローにおいて
  • 継続的に監視する リポジトリとビルド 異常の場合

GitHub Advanced Security は優れた出発点ですが、完全な DevSecOps の可視性には多くの場合、 統合ソリューション コード全体にわたるリスクを関連付けることができる、 pipelines、そしてインフラストラクチャ。Xygeniは、より広い視点からGitHubを補完します。

サードパーティ製のGitHubアプリは安全に使用できるかどうか知りたいですか?
ここで私たちの分析を読んでください

GitHubリポジトリが安全かどうかを確認する方法

GitHubリポジトリを安全に保つには、可視性設定だけにとどまらず、より広い視野で考える必要があります。セキュリティとは、誰がコードにアクセスできるかということだけではありません。コードの内容、コードがどのように流通するかなども含まれます。 CI/CD pipelineそして、その流れを制御するルールは何か。

リポジトリのセキュリティを確認するには、以下の手順に従ってください。

  • 必要に応じてリポジトリを非公開に設定してください
    ビルド構成ファイル、インフラストラクチャファイル、または機密情報を含むプロジェクトはすべて非公開にしてください。
  • アクセス権限は頻繁に確認する
    ユーザーには必要なアクセス権限のみを付与してください。活動していないチームメンバーは削除してください。どのGitHubアプリとOAuthアプリがリポジトリとのやり取りを許可されているかを確認してください。
  • 主要支店を保護する
    ルールを追加する pull request レビュー、ステータスチェックの合格、および強制プッシュのブロック。
  • Dependabotのアラートと自動更新を有効にする
    GitHubが脆弱なパッケージを検出した際に通知し、安全なアップデートを提案するように設定しましょう。
  • プランに含まれていれば、GitHub Advanced Securityを使用してください。
    アクティブなリポジトリ全体で、シークレットスキャンとコードスキャンを有効にします。
  • GitHub Actionsのワークフローを確認してください。
    .yml ファイルは、コードを読むように読みましょう。サードパーティのアクションを固定し、トークンには最小権限を適用し、安全でない入力は避けましょう。

Xygeni はこれを自動的に行うのに役立ちます。すべてのリポジトリをスキャンして、秘密情報、安全でないコード、危険なパッケージ、設定ミスのあるワークフローを検出します。コードをリンクし、 pipelineインフラストラクチャを1つのビューで確認できるため、問題を早期に発見し、迅速に解決できます。

これらのチェックを頻繁に実行してください。適切なツールと賢明な習慣を組み合わせることで、チームの作業速度を落とすことなくGitHubのセキュリティを向上させることができます。

GitHubセキュリティを統合する

Xygeni はこの欠けていたレイヤーを追加します。GitHub のセキュリティを強化するために、あらゆるものをスキャンします。 pull requests GitHub Actionsワークフローとインフラストラクチャ・アズ・コードに対応しています。開発フローを中断することなく、問題を迅速に解決し、コンプライアンスを維持し、リスクを軽減するのに役立ちます。

このFAQは出発点です。さらに詳しく知りたい場合は、以下のガイドをご覧ください。 GitHubアプリの検証 (NAIST) と ブランチを安全にマージする.

GitHubセキュリティや pipeline 設定? Discordで質問してください. 私たちは助けるためにここにいます。

 
sca-tools-ソフトウェア構成分析ツール
ソフトウェアのリスクを優先順位付けし、修復し、保護する
無料アカウントを作成しましょう。
いいえ、クレジットカードは必要ありません。

ソフトウェア開発と配信を安全に

Xygeni製品スイートと共に