正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab SASTの評価

  • プラン: Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

組織で使用する前に、GitLab SASTを評価することを選択できます。評価を計画および実施する際に、次のガイダンスを考慮してください。

重要な概念

GitLab SASTは、チームが共同で記述するのセキュリティを向上させるのに役立つように設計されています。コードをスキャンして結果を表示するために実行する手順は、スキャンされるソースコードリポジトリを中心にしています。

スキャンプロセス

GitLab SASTは、プロジェクトで見つかったプログラミング言語に応じて、使用する適切なスキャンテクノロジーを自動的に選択します。Groovyを除くすべての言語について、GitLab SASTは、コンパイルまたはビルドステップを必要とせずに、ソースを直接スキャンします。これにより、さまざまなプロジェクトでスキャンを簡単に有効にできます。詳細については、サポートされている言語とフレームワークを参照してください。

脆弱性が報告されるタイミング

GitLab SAST アナライザーとそのルールは、開発チームとセキュリティチームのノイズを最小限に抑えるように設計されています。

GitLab Advanced SASTアナライザーが脆弱性をレポートするタイミングの詳細については、脆弱性がレポートされるタイミングを参照してください。

その他のプラットフォーム機能

SASTは、GitLab Ultimateプランの他のセキュリティおよびコンプライアンス機能と統合されています。GitLab SASTを別の製品と比較している場合、その機能の一部がSASTではなく、関連するGitLab機能領域に含まれている場合があります:

テストコードベースを選択

SASTをテストするためのコードベースを選択する場合は、次のことを行う必要があります:

  • 通常の開発作業を妨げることなく、CI/CD設定を安全に変更できるリポジトリでテストします。SASTスキャンはCI/CDパイプラインで実行されるため、CI/CD設定を少し編集してSASTを有効にする必要があります。
    • 既存のリポジトリのフォークまたはコピーを作成してテストできます。これにより、通常の開発を中断することなく、テスト環境をセットアップできます。
  • 組織の一般的なテクノロジースタックに一致するコードベースを使用します。
  • GitLab Advanced SASTがサポートする言語を使用します。GitLab Advanced SASTは、他のアナライザーよりも正確な結果を生成します。

テストプロジェクトにはGitLab Ultimateが必要です。Ultimateプランのみに、次のような機能が含まれています:

  • GitLab高度なSASTによるクロスファイル、クロスファンクションスキャン
  • マージリクエストウィジェット、パイプラインセキュリティレポート、およびスキャン結果を表示してアクションを実行できるようにするデフォルトブランチの脆弱性レポート。

ベンチマークとサンプルプロジェクト

ベンチマークまたは意図的に脆弱なアプリケーションをテストに使用する場合は、これらのアプリケーションが次の点に注意してください:

  • 特定の脆弱性タイプに焦点を当てます。ベンチマークの焦点は、組織が検出と修正を優先する脆弱性タイプとは異なる場合があります。
  • 組織のソフトウェアビルド方法とは異なる特定の方法で特定のテクノロジーを使用します。
  • 結果をレポートする方法で、暗黙のうちに他の基準よりも特定の基準を強調する場合があります。たとえば、ベンチマークが再現率(偽陰性の結果が少ない)のみに基づいてスコアリングする場合、精度(偽陽性の結果が少ない)を優先する場合があります。

エピック15296は、テスト用の特定のプロジェクトを推奨する作業を追跡します。

AIによって生成されたテスト

SASTをテストするために、AIツールを使用して脆弱なを作成しないでください。AIモデルは、実際には悪用できないを返すことがよくあります。

例:

  • AIツールは、多くの場合、パラメータを受け取り、機密性の高いコンテキスト(「シンク」と呼ばれる)で使用する小さな関数を作成しますが、実際にはユーザー入力を受信しません。関数が定数などのプログラム制御された値でのみ呼び出すされる場合、これは安全な設計になる可能性があります。ユーザー入力が最初にサニタイズまたは検証されずにこれらのシンクに流れることが許可されない限り、は脆弱ではありません。
  • AIツールは、誤ってを実行するのを防ぐために、脆弱性の一部をコメントアウトする場合があります。

これらの非現実的な例で脆弱性をレポートすると、実際の世界ので偽陽性の結果が発生します。GitLab SASTは、これらの場合に脆弱性をレポートするように設計されていません。

テストの実施

テストするコードベースを選択したら、テストを実施する準備が整います。次の手順に従うことができます:

  1. SASTを有効にするには、CI/CD設定にSASTを追加するマージリクエスト(MR)を作成します。
  2. MRをリポジトリのデフォルトブランチにマージします。
  3. 脆弱性レポートを開いて、デフォルトブランチで見つかった脆弱性を確認します。
    • GitLab Advanced SASTを使用している場合は、スキャナーフィルターを使用して、そのスキャナーからの結果のみを表示できます。
  4. 脆弱性の結果をレビューします。
    • SQLインジェクションやパストラバーサルなどの、汚染されたユーザー入力を含むGitLab Advanced SASTの脆弱性については、コードフロービューを確認してください。
    • GitLab Duo Enterpriseをお持ちの場合は、脆弱性を説明または解決します。
  5. 新しいが開発されるにつれてスキャンがどのように機能するかを確認するには、アプリケーションを変更し、新しい脆弱性または脆弱性を追加する新しいマージリクエストを作成します。