Static Code Analysis (SAST)
This product is not supported for your selected
Datadog site. (
).
Code Security は、このサイトでは利用できません。 Code Security は、このサイトでは利用できません。
概要
Static Code Analysis は、Datadog の Static Application Security Testing (SAST) 機能です。SAST は、プログラムを実行することなく本番前のコードを解析するクリアボックス型のソフトウェアテスト手法です。
Static Code Analysis は、ソフトウェア開発ライフサイクル (SDLC) の早い段階でセキュリティ脆弱性や保守性の問題を特定することで、最高品質かつ最も安全なコードのみが本番環境に到達するよう支援します。組織にも次のようなメリットをもたらします。
- アプリケーションが、本番環境にコードが到達する前に SAST スキャンによって新しい脆弱性を検出できるため、時間の経過とともにセキュリティ侵害に対してより強固になります。
- 組織のコード規約を守るための手探り作業を減らし、開発チームが開発速度を大きく損ねることなく、コンプライアンスを満たすコードを出荷できるようにします。
- Static Code Analysis により、組織は時間の経過とともにより可読性の高いコードベースを維持できるため、新たな開発者をより早くオンボードできます。
Static Code Analysis のセットアップ
Static Code Analysis は、以下の言語や技術におけるセキュリティ脆弱性や不適切なコーディング慣行のスキャンをサポートします。
スキャンは、CI/CD パイプライン経由で実行することも、Datadog のホスト型スキャンを使用して直接実行することもできます。
開始するには、Code Security セットアップページに移動するか、「セットアップドキュメント」を参照してください。
開発ライフサイクルにインテグレーションする
ソースコード管理
コードレビュー中、Datadog はプルリクエスト内の関連するコード行にインラインレビューコメントを追加することで、静的コード解析の違反を自動的にフラグ付けできます。これは、GitHub、GitLab、および Azure DevOps リポジトリ (クラウドホスト型) でサポートされています。該当する場合、Datadog はプルリクエスト内で直接適用できる修正案も提供します。
IDE
統合開発環境 (IDE) でファイルを編集しながら、リアルタイムでコードの脆弱性を特定できます。詳細については、各統合機能のドキュメントを参照してください。
結果を検索してフィルターする
Static Code Analysis をセットアップすると、対象リポジトリへのコミットごとにスキャンが実行されます。違反はリポジトリごとに Code Security Repositories ページ にまとめられます。リポジトリをクリックすると、Static Code Analysis からの Code Vulnerabilities および Code Quality 結果を分析できます。
結果を絞り込むには、リストの左側にあるファセットを使用するか、検索を行ってください。結果はサービスまたはチームのファセットでフィルタリングできます。
各行が 1 つの違反を表しています。それぞれの違反は、ページ上部のフィルターで選択された特定のコミットおよびブランチに関連付けられています (デフォルトでは、表示中のリポジトリのデフォルトブランチにおける最新コミットの結果が表示されます)。
違反をクリックすると、違反の範囲と発生場所に関する情報を含むサイドパネルが開きます。
違反の内容は以下のタブに表示されます。
- Details: 違反の説明と、その原因となったコード行。問題のあるコードスニペットを確認するには、ご利用のプロバイダー (GitHub、GitLab、Azure6) に合わせて適切なソースコード統合を設定してください。
- Remediation: 違反を解消するための 1 つ以上の修正案と、その修正オプションが表示されます。
- Event: 違反に関する JSON メタデータです。
誤検知を除外する
一部の SAST 脆弱性については、Bits AI がコンテキストを分析し、それが真の脆弱性か誤検知である可能性が高いかを判断するとともに、その理由を簡潔に説明します。
詳細については、「AI を活用した Static Code Analysis」を参照してください。
構成をカスタマイズする
リポジトリまたは組織全体で、どの Static Code Analysis ルールを設定するかをカスタマイズする場合は、セットアップのドキュメントを参照してください。
Datadog のサービスとチームに検出結果をリンクする
検出結果を Datadog サービスおよびチームにリンクする方法については、「セットアップドキュメント」を参照してください。
提示された修正案を適用する
Datadog Static Code Analysis には、次の 2 種類の修正案が存在します。
- Deterministic Suggested Fix: リンティング問題のような単純な違反に対しては、ルールアナライザがあらかじめ用意したテンプレート修正を自動的に提示します。
- AI-suggested Fix: 複雑な違反の場合、あらかじめ修正案が用意されていないことが一般的です。その代わりに、OpenAI の GPT-4 を使用して修正案を生成する AI-suggested Fix 機能を利用できます。修正案の形式として Text と Unified Diff を選択でき、それぞれ違反を解消するためのプレーンテキストによる手順、あるいはコード変更内容が出力されます。
Datadog から直接脆弱性や品質問題を修正する
GitHub をソースコードマネージャーとして使用している場合、2 つの方法で Datadog から直接 SAST の問題を修正するコード変更をプッシュできます。
プルリクエストを開く
GitHub アプリの Pull Requests 権限が Read & Write に設定されている場合、提案された修正があるすべての静的コード解析 (SAST) の結果でワンクリック修正が有効になります。
脆弱性を修正し、プルリクエストを開くには次の手順に従います。
- Code Security で特定の SAST 結果を表示します。
- 結果のサイドパネルで Fix Violation をクリックします。
- [Open a Pull Request] を選択します。
- プルリクエストタイトルとコミットメッセージを入力します。
- [Create PR] をクリックします。
現在のブランチに直接コミットする
違反が検出されたブランチに直接コミットを行うことで脆弱性を修正できます。
提案修正をコミットするには
- Code Security で特定の SAST 結果を表示します。
- 結果のサイドパネルで Fix Violation をクリックします。
- [Commit to current branch] をクリックします。
Cursor で修正する
SAST の検出結果の修正を Cursor などの AI コーディングエージェントに引き継ぐことができます。
- Code Security で特定の SAST 結果を表示します。
- サイドパネルの [Next Steps > Remediation] セクションで、[Remediate with AI] をクリックします。
- Coding agent タブを選択します。
- Generate your fix directly from Claude Code, Codex, or Cursor で、Fix with Cursor の横にある Open をクリックします。Datadog は、その検出結果に対するカスタマイズされた修正プロンプトを使用して Cursor を開きます。変更をコミットする前に、提案された変更を確認します。
別の AI コーディングエージェントを使用するには、[Copy fix prompt] の横に表示される [Copy] をクリックし、そのプロンプトを選択したエージェントに貼り付けます。
Cursor ディープリンクを処理するには、VS Code および Cursor 用の Datadog 拡張機能をインストールしてください。
誤検知を報告する
特定の違反が誤検知であると思われる場合は、理由を添えて誤検知としてフラグを立てることができます。これにより、レポートが Datadog に直接送信されます。提出された内容は定期的にレビューされ、ルールセットの品質が継続的に向上します。
<!– 参考資料
–>