コード分析

Join the Preview!

Code Analysis is in Preview.

Code Analysis は サイトでは使用できません。

概要

Datadog Software Composition Analysis は、ソフトウェア開発ライフサイクル (SDLC) 全体を通じて脆弱性を含むライブラリを検出できます。Code Analysisはリポジトリを直接スキャンして得られた結果を要約します。リポジトリや実行時に検出されたすべての脆弱性を一括で確認するには、詳細について Application Security を参照してください。

Code Analysis はリポジトリをスキャンし、セキュリティ脆弱性とコード品質の問題を検出します。これは、独自のコードを対象とした Static Analysis と、コードベースに含まれるオープンソース依存関係を対象とした Software Composition Analysis (SCA) の 2 つの機能で構成されています。

Static Analysis
保守性の問題、バグ、パフォーマンスの問題、セキュリティの脆弱性について、開発ライフサイクルの早い段階で特注コードをスキャンし、問題が本番環境に到達するのを未然に防ぐとともに、可能な場合は、ユーザーに影響が及ぶ前にエンジニアリングチームがこれらの問題に対処できるよう、修正案を提供します。
Software Composition Analysis
リポジトリにインポートされているオープンソースライブラリをスキャンし、既知のセキュリティ脆弱性、ライセンスリスク、サポート終了 (EOL) ライブラリを検出します。

リポジトリに Code Analysis をセットアップする

Code Analysis Repositories ページ+ Add a Repository をクリックし、Datadog で直接スキャンを実行するか、CI パイプラインでスキャンを実行するかを選択します。

Datadog がホストするスキャンは、Software Composition Analysis (SCA) と GitHub リポジトリでのみサポートされます。Static Analysis を有効にする、または別の CI プロバイダーを使用する場合は、CI パイプラインでスキャンを実行してください。

With Datadog-hosted scans, your code is scanned within Datadog’s infrastructure as opposed to within your CI pipeline. Datadog reads your code, runs the static analyzer to perform Static Analysis and/or Software Composition Analysis, and uploads the results.

Using Datadog-hosted scans eliminates the need for you to configure a CI pipeline so you can use Code Analysis.

GitHub リポジトリで Software Composition Analysis を有効にするには、対象の GitHub アカウントで Select Repositories をクリックし、Enable Software Composition Analysis (SCA) のトグルをクリックしてすべてのリポジトリで有効にします。GitHub アカウントが一覧に表示されない場合は、まず新しい GitHub アプリを作成します。

GitHub アカウントのすべてのリポジトリで Software Composition Analysis を有効にする

オプションで、特定の GitHub リポジトリごとにトグルをクリックして SCA を有効にすることもできます。

GitHub リポジトリで Software Composition Analysis を有効にする

Datadog を通して直接スキャンを実行したくない場合は、実行したいスキャン (Static AnalysisSoftware Composition Analysis) を選択し、それに応じて CI パイプラインプロバイダーを構成することができます。

CI/CD プロバイダーの構成

Static Analysis と SCA スキャンを実行するように CI/CD プロバイダーを構成するには、次のドキュメントを参照してください。

GitHub インテグレーションのセットアップ

Datadog の Static Analysis 結果の一部として問題のあるコードスニペットを表示するには、GitHub インテグレーションタイルを使用してソースコードインテグレーションをセットアップすることで、GitHub アプリを構成することができます。

Code Analysis ビューから GitHub へのリンク

詳細については、ソースコードインテグレーションのドキュメントを参照してください。

Static Analysis インテグレーション

Static Analysis を使用すると、VS CodeIntelliJ & PyCharm などの IDE で直接、または GitHub 上のプルリクエストで書いたコードに対して、不適切なコーディングプラクティスやセキュリティの脆弱性に関する自動化されたフィードバックを受け取ることができます。

Visual Studio Code での Static Analysis 結果

リポジトリの検索と管理

Code Analysis を構成した後、Code Analysis ページで各リポジトリの Static Analysis と SCA のスキャン結果の要約を見ることができます。デフォルトで、要約された結果はリポジトリのデフォルトブランチの最新のスキャンされたコミットに対して示され、これにより、トリアージして修正したい各リポジトリの既存の問題がすべて表示されていることを確認できます。

Code Analysis ページに表示される、コードとライブラリのスキャン結果を含むリポジトリ一覧

リストからリポジトリを選択すると、そのリポジトリで検出された違反を検索し、管理することができます。デフォルトでは、リポジトリのデフォルトブランチ上で最新にスキャンされたコミットに対する結果が表示されますが、ページ上部でブランチやコミットを変更することが可能です。また、結果はサービスやチームのファセットでフィルタリングできます。Datadog のサービスやチームにどのように結果が関連付けられているかの詳細は、Code Analysis の概要を参照してください。

選択したブランチやコミットにかかわらず、すべての結果は以下のビューに整理されます。

Datadog Shopist サービスとリポジトリの Code Analysis ページにあるコードの脆弱性

Code Vulnerabilities ビューで、Static Analysis によって検出されたコードセキュリティリスクを特定し、対処します。

Datadog Shopist サービスとリポジトリの Code Analysis ページにあるコード品質の脆弱性

Code Quality ビューで、Static Analysis によって検出された不適切なコーディングプラクティスを特定し、対処します。

Datadog Shopist サービスとリポジトリの Code Analysis ページにあるライブラリの脆弱性

Library Vulnerabilities ビューで、SCA によって検出された脆弱なオープンソースライブラリを特定し、対処します。

Datadog Shopist サービスとリポジトリの Code Analysis ページにあるライブラリのリスト

Library Catalog ビューで、コードベースにインポートされた SCA によって検出されたライブラリの完全なリストを管理します。

その他の参考資料