パス クエリについて
パス クエリは、プロパティ @kind path-problem
を持つ CodeQL クエリです。 これらの数は、標準の CodeQL ライブラリにあります。
標準の CodeQL パス クエリを実行して、セキュリティの脆弱性を特定し、結果を手動で調べることができます。 CodeQL がデータ フローを追跡する方法の詳細については、CodeQL ドキュメントで「データ フロー分析について」を参照してください。
データ フロー分析と既存のクエリに慣れたら、CodeQL に独自のパス クエリを記述できます。 詳細については、「次のステップ」を参照してください。
ローカルでの VS Code におけるパス クエリの実行
- VS Code でパス クエリを開きます。
- クエリを開いたウィンドウを右クリックし、[CodeQL: 選択したデータベースに対してクエリを実行する] を選択します。 または、VS Code Command Palette から実行することもできます。
- クエリの実行が完了すると、(ドロップダウン メニューの
alerts
の下にある) [結果] ビューに結果を表示できます。 各クエリ結果には、ソースとシンクの間の情報のフローが示されます。 - 結果を展開して、データが従う個々の手順を確認します。
- 各ステップをクリックしてソース コード内のステップに移動し、問題をさらに調査します。
次のステップ
大規模にパス クエリを実行する準備ができたら、[バリアント分析リポジトリ] ビューを使用して、GitHub.com で最大 1,000 個のリポジトリに対してクエリを実行できます。 詳しくは、「マルチリポジトリ バリアント分析を使用した大規模な CodeQL クエリの実行」をご覧ください。
独自のパス クエリに対して正しい形式とメタデータを使用する方法については、CodeQL ドキュメントの「パス クエリの作成」を参照してください。 CodeQL のドキュメントには、新しいソースとシンクを定義する方法に関する詳細情報、および分析に合わせて標準の CodeQL ライブラリを拡張する方法のテンプレートと例も含まれています。