Catch-up! 週刊 GitHub updates(2024年7月15日-21日)
GitHub Changelog for July 15 - 21, 2024
こんにちは、@dz_ こと、大平かづみです。
GitHub Changelogの週刊キャッチアップをお届けします。
監査ログ ストリーミングがGitHub REST APIで構成できるように(private beta)
GitHub Enterprise Cloud(GHEC)のEnterpriseの管理者は、private betaに参加することで、監査ログ ストリーミングをREST APIで構成できるようになります。このprivate betaでは、新しいAPIエンドポイントにアクセスする権限が与えられ、次の監査ログ ストリーミングに対する操作ができます:
- GETエンドポイント: Enterpriseの監査ログ ストリーミング構成を取得する
- ストリーム キー エンドポイント: audit streaming keyを利用者に提供する。このキーは重要で、API実行によりそれらを送信する前に利用者のシークレットを暗号化している
- POSTエンドポイント: 新しい監査ログ ストリーミング構成を作成する
- PUTエンドポイント: 監査ログ ストリーミング構成を更新する
- DELETEエンドポイント: 既存の監査ログ ストリーミング構成を削除する
これらの新しいREST APIエンドポイントを導入することにより、Enterpriseの管理者がプログラマブルに、エンタープライズレベルの監査ログ ストリームを作成、更新、削除、一覧化できます。監査ログ ストリーミング構成をプログラマブルに更新できることにより、ユーザーは監査ログ ストリーミングのシークレットの交換などのタスクを自動化できます。
これらの新しい監査ログ ストリーミング エンドポイントは、監査ログ ストリーミング サービスの可用性を保つため、1時間につき15のAPIリクエストのレート制限が課されます。当面の間、これらのエンドポイントは、admin:enterprise
スコープのパーソナル アクセス トークン(PAT)のクラシックか、OAuthトークンでのみ利用可能です。
private betaへの参加に興味があるEnterpriseの管理者は、GitHubのアカウント マネージャに依頼するかセールス チームに連絡して、Enterpriseに対してこの機能を有効化してください。Enterpriseの管理者は、community discussionにて、これらのAPIエンドポイントに関しての手順を参照でき、フィードバックを共有できます。
廃止のお知らせ - npm Hooks APIエンドポイント
本日(2024年7月16日)より、nom hooksのサービスを廃止し、現在のhooksサブスクリプションも含め、機能しなくなります。この廃止は、npm hooks APIエンドポイントやCLIのnpm hook
コマンドも含みます。ユーザーはAPIエンドポイントが廃止メッセージを返すことをご留意ください。npm CLIは、npmレジストリを利用して新しいhooksを追加できなくなります。
npm hooksサービスは2016年にBetaとして公開され、ユーザーはそのエンドポイントを利用して、npmパッケージやオーナー、スコープの変更の通知を受け取れました。このサービスは一般公開には至りませんでした。GitHubは、他の既存サービスの維持における高品質な水準を含む、npmプラットフォームへの継続的な投資を優先し、このhooksサービスを廃止します。
履歴に対するCodeQLアラートにおけるAIによって強化された自動修正のpublic beta公開
すべてのGitHub Advanced Securityの利用者に対し、Code scanningのデフォルト ブランチにおけるアラートに対する自動修正が、public betaとして利用可能になりました。これらの機能により、開発者は既存のアラートを対応する時間や労力を減らせ、コードベースのうちの脆弱性の数を減らせます。
GitHub Copilotにより強化され、code scanningはすべてのCodeQLがサポートする言語に対しアラートに対する修正を生成します。
Code scanningの自動修正により、リポジトリのmainやデフォルト ブランチにおいて検出されたアラートに対する修正を生成することで、セキュリティの負債を減らせます。自動修正が有効化されたアラート画面で、「Generate fix」ボタンを選択すると、コードの提案と共に提案された修正に対する自然言語の説明が得られます。その修正のプルリクエストを作成することでその提案を受け入れ、プルリクエストのフローの中で編集もできます。これらのコードの提案は必要な複数ファイルへの変更を含んでおり、自動修正は依存関係を追加したり変更したりもします。
Code scanningの自動修正は、すべてのGitHub Advanced Securityの利用者が所有するプライベートリポジトリで自動的に有効化されます。
Code scanningの自動修正はリポジトリまたはOrganizationで構成できます。また、Enterpriseの「Policies for Code security and analysis」から、Enterpriseに対するCode scanningのCodeQLに対する自動修正を許可します。
アラートに対する修正の生成は、アラートに内容と場所に基づきます。いくつかのケースでは、提案されたコードの変更がシンタックステストや安全性のフィルタに失敗する場合、Code scanningはアラートに対する修正の提案を表示しません。
既存のアラートに対する自動修正は、Copilotライセンスを必要としません。詳しくは、Code scanningの自動修正をご参照ください。
Code scanningの自動修正に対してフィードバックがありましたら、ぜひこちらでご共有ください。
Secret scanningのAI生成によるカスタム パターンの一般公開
Secret scanningで、GitHub Copilotによるカスタム パターンをより簡単に定義できるようになります。
本日(2024年7月16日)の一般公開で、AIによる恩恵を得て、カスタム パターンを正規表現の有識者の力を借りることなく生成できるようになります。
変更点
カスタム パターンの定義は、より簡潔に効率的になります。正規表現の有識者に頼ることなく、AIによる恩恵を得て、テキスト入力からパターンを生成できます。
secret scanningでは、カスタム パターンを利用して独自のカスタム検出器を作成できます。正規表現で表記するこれらのカスタム パターンは、書くのが大変です。Secret scanningは、今回、ユーザーによる入力に合う正規表現を生成するために、GitHub Copilotによって支えられたパターン生成器をサポートします。
正規表現生成を利用するには?
カスタム パターンを定義するとき、「generate with AI」を選択することで、正規表現 生成器を立ち上げられます。
このモデルは、ユーザーがレビューできるように、3つの正規表現を返却します。提案された正規表現を選択すると、その正規表現に対して、AIにより生成された自然言語の説明を得られます。その入力はユーザーがレビューする必要があり、Organizationやリポジトリに渡り試験的に実行して、結果のパフォーマンスを注意深く検証してください。
誰が正規表現生成を利用できるか?
GitHub Enterprise CloudでGitHub Advanced Securityをお使いの方は、本日より正規表現生成をご利用いただけます。カスタム パターンを定義できるユーザーが、正規表現生成も利用できます(例えば、リポジトリやOrganization、Enterpriseの管理者)。正規表現生成を利用するにあたり、GitHub Copilotのライセンスは不要です。
詳しくは、AI を使用した正規表現の生成についてやシークレット スキャンのカスタム パターンの定義をご参照ください。
コード セキュリティ構成UIにおける構成の適用が失敗した場合のリポジトリのフィルタ
Organizationの所有者やセキュリティ管理者は、コード セキュリティ構成の設定画面において、リポジトリのテーブルを構成の適用が失敗したという理由によりフィルタできるようになりました。
これは、一度に多くのリポジトリにコード セキュリティ構成の適用を試みたとき、いくつか失敗してしまった場合に有用です。また、この失敗理由がリポジトリ名と共に一覧に含まれるようになりました。
検索バーでfailure-reason:
を用いてフィルタでき、次のオプションの1つを指定します:
-
actions_disabled
- Code scanningにおけるdefault setupの展開を試みたが、対象のリポジトリが有効なActionsを持ち得なかった場合 -
code_scanning
- Code scanningにおけるdefault setupの展開を試みたが、対象のリポジトリがすでにadvanced setupで構成されていた場合 -
enterprise_policy
- EnterpriseレベルでOrganizationに対してGitHub Advanced Securityが有効にされていない場合 -
not_enough_licenses
- advanced securityを対象のリポジトリで有効にしようとするとシート数が最大に達してしまう場合 -
not_purchased
- GitHub Advanced Security機能の構成を展開しようとしたが、GitHub Advanced Securityが契約されていない場合 -
unknown
- 予期せぬ何かが発生した場合
詳細は、コード セキュリティ構成や構成REST APIをご参照ください。また、ぜひフィードバックをご共有ください。
Secret scanningで、AIによる一般的なパスワードの検出(public beta)
Secret scanningでAIを用いて一般的なパスワードを検出できるようになりました。パスワードはカスタム パターンでも見つけるのが難しいが、AIによって強化された検出により、漏洩した場合にセキュリティ侵害を引き起こしうる構造化されていないクレデンシャルに対する精度が向上します。
git管理下のファイル内にパスワードが見つかると、通常のアラートとは分離されたタブにsecret scanningアラートが作成されます。GitHub Issuesやプルリクエストのようなgitで管理していないファイル内のパスワードは検出されず、プッシュ保護にも含まれません。パスワード検出はCopilot APIによって支えられ、GitHub Advanced Securityライセンスが適用されたすべてのリポジトリで利用可能です。一般的なシークレットの検出を有効化にはCopilotのライセンスは不要です。
パスワードの検出を利用し始めるには、リポジトリレベルのcode security and analysis設定か、Organizationレベルのcode securityのグローバル設定で「Use AI detection to find additional secrets」を選択します。
- secret scanning を使用してシークレットをセキュリティで保護する
- 一般的なシークレットの検出について
- ぜひ専用のフィードバック リポジトリのディスカッションにご参加ください
コード セキュリティ構成APIに有効性チェック、強制適用、削除が追加
REST APIがOrganizationに対する次のコード セキュリティ構成の動作をサポートしました:
- リポジトリから構成を外す
- 構成を強制適用する
- 構成のsecret scanningに対して有効性チェックを有効化する
APIはGitHub Enterprise CLoudで利用可能で、GitHub Enterprise Serverでは3.15.0から利用可能になる予定です。詳細は、大規模なセキュリティ機能の有効化について、REST APIをご参照いただき、ぜひフィードバックをご共有ください。
監査ログにおいてコード セキュリティ構成をサポート
GitHub Enterprise Cloudの利用者は、監査ログ イベントでコード セキュリティ構成のデータを参照できるようになります。
コード セキュリティ構成は、セキュリティ設定のコレクションを定義し、することにより、GitHubのセキュリティ製品の大規模な展開を簡潔にし、それらの設定をグループ単位でリポジトリに適用しやすくします。構成は、code scanningやsecret scanning、Dependabotなどの重要な機能の設定の変更を支援します。
監査ログにおける構成データの追加によって、OrganizationやEnterpriseの管理者がなぜ特定のリポジトリの設定が変更されたのかを簡単に可視化できるようになります。
監査ログ イベントは次を含みます:
- リポジトリに適用された構成の名前
- いつ構成の適用が失敗したか
- いつ構成がリポジトリから取り除かれたか
- いつ構成が作成、更新、削除されたか
- いつ新しいリポジトリに対する既定の構成が変更されたか
コード セキュリティ構成はGitHub.comでpublic betaで利用可能であり、GitHub Enterprise Serverでは3.15から利用可能になる予定です。詳細は、コード セキュリティ構成をご参照いただき、ぜひフィードバックをご共有ください。
Discussion