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 ライブラリを拡張する方法のテンプレートと例も含まれています。