AIニュース最前線
最新ニュースAI日報Hacker日報週報動画AIツールトレンド企業

AIニュース最前線

世界中のAI最新情報を日本語で毎時更新

最新ニュース日報トレンド企業プレミアムRSS
© 2026 ainew.jp特定商取引法に基づく表記
ニュース一覧元記事を開く
GitHub Changelog·2026年4月22日 01:07·約2分で読める

CodeQLが「models-as-data」形式でサニタイザーとバリデーターをサポート

#静的コード解析#SAST#CodeQL#GitHub#DevSecOps
TL;DR

GitHubの静的解析エンジンCodeQLが、YAMLベースの「models-as-data」形式でカスタムサニタイザーとバリデーターを宣言的に定義できるようになり、複数言語に対応したセキュリティスキャンのカスタマイズハードルが大幅に低下した。

AI深層分析2026年4月22日 01:44
4
重要/ 5段階
深度40%
4
関連度30%
4
実用性20%
4
革新性10%
3

キーポイント

1

YAMLデータ拡張による宣言的定義

従来のカスタムCodeQLクエリ記述に依存せず、YAMLファイルでサニタイザーとバリデーターを宣言的に定義可能になり、運用負荷が軽減された。

2

barrierModelとbarrierGuardModelの導入

特定の脆弱性タイプでの汚染データフローを停止する境界(barrier)と、条件分岐で安全性を確認するガード(barrier guard)を明示的に設定できる新述語が提供された。

3

主要プログラミング言語の網羅的サポート

C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rustの全主要言語で本機能を利用可能であり、マルチテナント環境での標準化が促進される。

4

CodeQLモデルパックとの統合

作成した境界定義をモデルパックとしてパッケージ化・配布でき、チームやプロジェクト全体でセキュリティカスタマイズルールを共有・再利用できる仕組みが整備された。

影響分析・編集コメントを表示

影響分析

本機能は、静的アプリケーションセキュリティテスト(SAST)ツールのカスタマイズ障壁を大きく下げ、開発現場での実装負荷を軽減する。特にGitHub ActionsやCodeQLモデルパックとの連携により、組織横断的なセキュリティポリシーの標準化と自動化が促進され、DevSecOpsパイプラインの成熟度向上に寄与する。

編集コメント

静的解析ツールのカスタマイズが「コード記述」から「データ宣言」へシフトする流れは、AI支援コーディング時代におけるセキュリティ自動化の重要な基盤となる。開発者が専門知識なくセキュリティルールを適用できる環境は、最終的にAIによるコード生成・監査の信頼性向上にも直結する。

CodeQLは、コード内のセキュリティ問題を発見して修正するGitHubコードスキャン(GitHub code scanning)の背後にある静的解析エンジン(static analysis engine)です。C/C++、C#、Go、Java/Kotlin、JavaScript/TypeScript、Python、Ruby、Rustの各言語において、データ拡張(models-as-data)を使用してカスタムのサニタイザーとバリデーターを定義できるようになりました。

What’s new

CodeQLでは、サニタイザーとバリデーターはそれぞれバリア(barriers)とバリアガード(barrier guards)として表現されます。

バリアとバリアガードを使用すると、CodeQLがコード内をどのように汚染データ(tainted data)として追跡するかをカスタマイズできます。バリアは、特定の脆弱性タイプに対して出力がサニタイズ済みとみなされる関数やメソッドを示します(例:クロスサイトスクリプティングを防止するHTMLエスケープ関数)。バリアガードは、データが安全かどうかを示すブール値を返す関数を示し、ガードされた分岐を通る汚染フロー(taint flow)を停止します。

以前は、バリアを定義するにはカスタムのCodeQLコードを書く必要がありました。現在では、2つの新しい拡張可能な述語(extensible predicates)を使用して、YAMLデータ拡張ファイルで宣言的に追加できるようになりました。

barrierModel:指定されたクエリ種別(query kind)に対して、モデル化された要素で汚染フローを停止します。

barrierGuardModel:条件チェックが期待される値を返したときに、汚染フローを停止します。

これらの新しい述語でモデル化されたバリアをCodeQLモデルパック(CodeQL model packs)に追加できます。これにより、カスタムのCodeQLコードを記述することなく、プロジェクト独自のサニタイズおよび検証関数を認識するようにCodeQLの分析を拡張しやすくなります。

Learn more

各言語でのバリアとバリアガードの定義方法に関する詳細と例については、カスタマイズガイドを参照してください。

Customizing library models for C and C++

Customizing library models for C#

Customizing library models for Go

Customizing library models for Java and Kotlin

Customizing library models for JavaScript

Customizing library models for Python

Customizing library models for Ruby

GitHubコードスキャンでCodeQLモデルパックを使用する方法に関する詳細は、CodeQLモデルパックによるCodeQLカバレッジの拡張(Extending CodeQL coverage with CodeQL model packs)を参照してください。

この機能はCodeQL 2.25.2以降で利用可能です。

記事「CodeQL now supports sanitizers and validators in models-as-data」は、The GitHub Blogに最初に掲載されました。

原文を表示

CodeQL is the static analysis engine behind GitHub code scanning, which finds and remediates security issues in your code. You can now define custom sanitizers and validators using data extensions (models-as-data) across C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, and Rust.

What’s new

In CodeQL, sanitizers and validators are represented as barriers and barrier guards respectively.

Barriers and barrier guards let you customize how CodeQL tracks tainted data through your code. A barrier marks a function or method whose output is considered sanitized for a specific vulnerability type (e.g., an HTML-escaping function that prevents cross-site scripting). A barrier guard marks a function that returns a boolean indicating whether data is safe, stopping taint flow through guarded branches.

Previously, defining barriers required writing custom CodeQL code. Now, you can add them declaratively in YAML data extension files using two new extensible predicates:

barrierModel: Stops taint flow at the modeled element for a specified query kind.

barrierGuardModel: Stops taint flow when a conditional check returns an expected value.

You can add barriers modeled with these new predicates to CodeQL model packs. This makes it easier to extend CodeQL’s analysis to recognize your project’s own sanitization and validation functions without writing custom CodeQL.

Learn more

For details and examples on how to define barriers and barrier guards for your language, see the customization guides:

Customizing library models for C and C++

Customizing library models for C#

Customizing library models for Go

Customizing library models for Java and Kotlin

Customizing library models for JavaScript

Customizing library models for Python

Customizing library models for Ruby

For more information about using CodeQL model packs in GitHub code scanning, see Extending CodeQL coverage with CodeQL model packs.

This feature is available starting with CodeQL 2.25.2.

The post CodeQL now supports sanitizers and validators in models-as-data appeared first on The GitHub Blog.

この記事をシェア

関連記事

GitHub Changelog★32026年3月24日 22:25

プルリクエストにおけるCodeQLの高速な増分分析

GitHubが、プルリクエストにおけるCodeQLの静的解析を増分分析化し、C#、Java、JavaScript/TypeScript、Python、Rubyのコードスキャンを高速化した。変更部分のみを分析することでパフォーマンスを向上させている。

GitHub Changelog2026年6月6日 07:32

GPT-5.2 および GPT-5.2-Codex のサポート終了発表

GitHub Copilot は 2026 年 6 月 5 日付で、GPT-5.2 と GPT-5.2-Codex モデルのサポートを終了し、それぞれ GPT-5.5 および GPT-5.3-Codex への移行を推奨している。

GitHub Changelog2026年6月6日 06:30

CodeQL 2.25.6 が Swift 6.3.2 のサポートを追加し C# カバレッジを改善

GitHub はセキュリティスキャンエンジン「CodeQL」のバージョン 2.25.6 をリリースしました。この更新により、Swift 6.3.2 の解析が追加され、C# 14 と .NET 10 の完全サポートが完了し、複数言語での機密データ検出も強化されました。

ニュース一覧に戻る元記事を読む