Catch-up! 週刊 GitHub updates(2024年4月8日-14日)
GitHub Changelog for Apr 8 - 14, 2024
こんにちは、@dz_ こと、岩永かづみです。
先週のGitHub Changelogの週刊キャッチアップをお届けします。
GitHub Mobileにおける、コードレビュー機能の改良
皆さまからのフィードバックに真摯に耳を傾け、多くの方が直面している共通の課題の1つがレビューであり、GitHub Mobileでプルリクエストレビューを送信することでした。このことを強く明確な要望と捉え、今日(2024年4月9日)、プルリクエストの承認がこれまでより簡単になることをお知らせいたします。
最新の更新で、外出先からのコードレビューを始めやすく、継続しやすく、送信しやすくなります。
いまや、電車に乗っていようが、コーヒーを手に持っていようが、単にデスクから離れているだけでも、苦労なしにプロジェクトに貢献でき、プロジェクトの推進を続けられます。
GitHub Mobileは、Apple App StoreやGoogle Play Storeからダウンロードや更新をご対応ください。
CodeQLにおいて、C#向けの脅威モデル設定が利用可能に(beta)
CodeQLのcode scanning analysisに最も関連性の高いセキュリティ脆弱性を検知する機能を追加するために、CodeQLのC#向けの脅威モデル設定(beta)を利用できます。
CodeQLの標準の脅威モデルは、広く汎用的なコードベースに対して機能します。これは、リモートソースからのデータ(たとえばHTTPリクエストのような)によって汚染されることを想定しています。以前、Java向けのCodeQL脅威モデル設定をリリースし、セキュリティチームや開発者がコードからより多くの潜在的なセキュリティ脆弱性を見つけて修正できるように、選択的にデータのローカルソース(たとえば、ロ―カルファイルやコマンドラインの引数、環境変数、データベースなど)が脅威であると印をつけられるようになりました。C#向けのCodeQLの脅威モデル設定が利用できるようになり、C#で書かれたコードに対するcode scanning分析において、同じように脅威となりうるローカルソースの検出を有効化できるようになりました。
C#またはJavaのコードに対してcode scanningのdefault setupを実行しているリポジトリの場合、Code security and analysis設定のCode scanning default setupの下のEdit configurationを選択してください。そこで、脅威モデルをRemote and local sourcesに変更できます。詳しくは、ドキュメントのデフォルトのセットアップに汚染されたデータのローカル ソースを含むをご参照ください。
C#またはJavaのコードに対してcode scanningのadvanced setupを実行しているリポジトリの場合、code scanningのワークフローファイルを編集してCodeQLの脅威モデルをカスタマイズできます。詳細は、ドキュメントのCodeQL モデル パックを使用した CodeQL カバレッジの拡張をご参照ください。コマンドラインやサードパーティのCI/CDツールでCodeQL CLIを実行している場合、code scanning分析を実行するときに--threat-model
を指定できます。詳細は、CodeQL CLIのドキュメントをご参照ください。
この更新の一部として、デフォルトのC#向けのcode scanningスイートに含まれるいくつかのクエリを変更し、ローカルまたはリモートの脅威モデル設定を選べるようにしました。その結果、リモートソースに対するデフォルトの脅威モデルを利用していると、わずかにアラートが減っているように見えるかもしれません。影響を受けるクエリについての詳細は、changelog for CodeQL 2.17.0をご参照ください。
code scanningのdefault setupにおけるCodeQLの脅威モデル設定(beta)は、GitHub.com上のJavaやC#を含むリポジトリで利用可能です。C#向けの脅威モデル設定の構成に関するサポートは、GitHub Enterprise Server(GHES) 3.14で利用可能予定です。GHES 3.12以前のユーザーは、code scanningで利用しているCodeQLのバージョンをアップグレードしてください。
GitHubホステッドランナーのイメージの廃止のお知らせ: Docker Compose v1
Docker Compose v1は2023年7月に廃止されました。GitHubホステッドランナーでCompose v1を利用しているユーザーは、Compose v2への移行をお勧めします。GitHubのサポートポリシーに従い、2024年7月9日にこのツールをGitHubが管理するランナーイメージから取り除きます。
破壊的な変更を避けるために、利用者はdocker-compose
ではなくdocker compose
を利用するようActionsのワークフローファイルを更新する必要があります。7月9日以降、ワークフローは以前の記法を使っていると失敗するようになります。利用者は移行手順を確認し、必要なすべての変更を対応しているか確認されることをお勧めします。
GitHubが管理するイメージの詳細については、runner-imagesリポジトリをご参照ください。
CodeQL 2.17.0: Java 22、Swift 5.10、TS 5.4、C# 12のサポート
CodeQLはGitHub code scanningを強化する静的解析エンジンです。CodeQLのバージョン 2.17.0
がリリースされ、GitHub.comでcode scanningをお使いのみなさまに展開されます。
このリリースの重要な変更は以下の通りです:
- C# 12と.NET 8の完全サポート(マイナーな残っていた不具合は修正済み)
- Java 22のサポート
- Swift 5.10のサポート
- TypeScript 5.4のサポート
- C#クエリのマイナーな変更が行われ、最近リリースされた脅威モデル設定の機能(beta)が利用できるようになりました
- Goの依存関係の取得を改善(最大27%速くなりました)
-
3つの新しいクエリが追加され、そのうち2つはコミュニティによる貢献です。
- 無効な型へのキャストを検出する
cpp/type-confusion
- 極端なサイズの値によるスライスメモリ割り当てを検出する
go/uncontrolled-allocation-size
- 安全でないURLの構造による情報漏洩を防ぐ
java/unvalidated-url-forward
- 無効な型へのキャストを検出する
変更の完全なリストは、バージョン 2.17.0のチェンジログをご参照ください。すべての新しい機能はGitHub Enterprise Server(GHES) 3.13にも含まれる予定です。GHES 3.12以前の利用者は、CodeQLのバージョンをアップグレードしてください。
GitHubのネイティブIP許可リストがEMUのユーザー ネームスペースまで拡大(Private beta)
Enterprise Managed Users(EMUs)を利用したGitHub Enterprise Cloudのエンタープライズ オーナーは、ユーザー ネームスペースを対象としたGitHubのネイティブのIP許可リストの構成について、private betaの導入に参加できます。この機能は、Enterprise managed userのネームスペースへのアクセスを所有するエンタープライズのIP許可リストに制限します。ウェブUIやGitプロトコル、APIからのアクセスはすべてIP許可リストによってフィルタされます。パーソナル アクセス トークンやappトークン、SSHキーを含むすべてのクレデンシャルがこのポリシーの対象になります。
このprivate betaに登録し、所有するエンタープライズで利用するには、GitHubのアカウント マネージャーに依頼するか、セールス チームにお問い合わせください。
Secret scanningにおいて、Google Cloud PlatformとSlackの検出と検証を変更
GitHub secret scanningは、Google Cloud Platform(GCP)のアカウントのクレデンシャルとSlackのwebhookに対する有効性チェックをサポートしました。この改善には、GCPのアカウントのクレデンシャルの検出およびアラート発報の方法の変更も含まれています。
変更点
Slackのwebhookに対するSecret scanningアラートは、以前サポートされたSlack APIトークンに加え、有効性チェックをサポートしました。
さらに、secret scanningは、GCPサービスアカウントにおける、完全一致したプライベートキーやプライベートキーID、証明書URLなどの完全なクレデンシャルオブジェクトに対するアラートもサポートします。これらのアラートは正常性チェックもサポートします。これらの変更の一部として、GCPのプライベートキーIDに対するアラートを受け取ることはなくなりました。
有効性チェックについて
有効性チェックは、漏洩したクレデンシャルがアクティブで悪用されうる状態にあるかを示します。リポジトリで有効性チェックを有効にしていれば、GitHubは自動的にサポートしているトークンタイプに対するアラートにおいて有効性チェックを行います。
有効性チェックは、Enterprise CloudのGitHub Advanced Securityを利用してるリポジトリで利用できます。Enterpriseレベル、Organizationレベルまたはリポジトリレベルで、"Code security and analysis"設定ページから"automatically verify if a secret is valid by sending it to the relevant partner"のオプションにチェックすることにより、この機能を有効化できます。
フィードバックの共有
secret scanningに関する60分のフィードバックセッションを申込みいただくと、その時間に対して保証があります。(報酬が出るようです)
詳細は、secret scanningやサポートされているシークレットをご参照ください。
Discussion