Skip to main content

パス クエリを使用したデータ フローの確認

Visual Studio Code で CodeQL クエリを実行すると、プログラムを介してデータのフローを追跡し、潜在的なセキュリティの脆弱性である領域を強調表示できます。

パス クエリについて

パス クエリは、プロパティ @kind path-problem を持つ CodeQL クエリです。 これらの数は、標準の CodeQL ライブラリにあります。

標準の CodeQL パス クエリを実行して、セキュリティの脆弱性を特定し、結果を手動で調べることができます。 CodeQL がデータ フローを追跡する方法の詳細については、CodeQL ドキュメントで「データ フロー分析について」を参照してください。

データ フロー分析と既存のクエリに慣れたら、CodeQL に独自のパス クエリを記述できます。 詳細については、「次のステップ」を参照してください。

ローカルでの VS Code におけるパス クエリの実行

  1. VS Code でパス クエリを開きます。
  2. クエリを開いたウィンドウを右クリックし、[CodeQL: 選択したデータベースに対してクエリを実行する] を選択します。 または、VS Code Command Palette から実行することもできます。
  3. クエリの実行が完了すると、(ドロップダウン メニューの alerts の下にある) [結果] ビューに結果を表示できます。 各クエリ結果には、ソースとシンクの間の情報のフローが示されます。
  4. 結果を展開して、データが従う個々の手順を確認します。
  5. 各ステップをクリックしてソース コード内のステップに移動し、問題をさらに調査します。

次のステップ

大規模にパス クエリを実行する準備ができたら、[バリアント分析リポジトリ] ビューを使用して、GitHub.com で最大 1,000 個のリポジトリに対してクエリを実行できます。 詳しくは、「マルチリポジトリ バリアント分析を使用した大規模な CodeQL クエリの実行」をご覧ください。

独自のパス クエリに対して正しい形式とメタデータを使用する方法については、CodeQL ドキュメントの「パス クエリの作成」を参照してください。 CodeQL のドキュメントには、新しいソースとシンクを定義する方法に関する詳細情報、および分析に合わせて標準の CodeQL ライブラリを拡張する方法のテンプレートと例も含まれています。