For the complete documentation index, see llms.txt. This page is also available as Markdown.

AutoTriage と AutoFix で依存関係の問題を修正する

このチュートリアルでは、Aikido を設定してコードベース内の脆弱な依存関係をスキャンし、誤検知を自動的にトリアージし、依存関係ファイルにワンクリック修正を適用する方法を説明します。

前提条件

必要なもの:

サンプルリポジトリをAikidoに接続する

このチュートリアルでは、次の公開リポジトリを使用します: Damn Vulnerable Python Web App、人気のある Damn Vulnerable Web Application の派生版で、セキュリティツールのデモに使われます。

まず、 フォーク その DVPWA リポジトリをGitHubの名前空間にフォークして、作業用の個人コピーを用意します。その後、Aikidoのワークスペースにログインし、 リポジトリ > リポジトリを管理をクリックします。 リポジトリを追加。求められたら、GitHubにリポジトリ選択の権限を付与し、フォークした DVPWA リポジトリを選択します。

Aikido にリダイレクトされ、どのリポジトリをスキャンするか尋ねられたら、DVPWA リポジトリを選択します。次に、 次へ、詳細。すると、ワークスペースのフィードに移動します。

初期の検出結果と誤検知を分析する

フィードには、リポジトリに対するスキャン結果の概要が表示されます。既定のフィルターが Aikido refined の検出結果であることに注目してください。フィルター選択にカーソルを合わせると、Aikido がどのように誤検知を減らしたかを示すファネルチャートが表示されます。これは意図的に悪用しやすい脆弱性を多数含むデモアプリなので、トリアージ後もその多くが残ります。ただし、Aikido は通常のコードベースでは、誤検知のノイズを90%以上削減することがよくあります。

右上隅で、次の表示のタイルを選択します: 1件の自動無視。すると、 無視済み セクションに移動します。

問題名(pyyaml)、種類(Python パッケージ)、深刻度(重大)、および無視した理由に注目してください。これはかなり古いパッケージに対する重大な脆弱性ですが、Aikido はその関数がコードベース内のどこでも使用されていない(宣言されているだけ)と示唆しています。

問題をクリックすると、詳細を表示するドロワーが開きます。宣言されているパッケージのバージョン 3.13 には、サブ問題としてマークされた 2 つの重大な CVE が影響しています。

公式の修正はバージョン 5.4 へのアップグレードですが、Aikido はこの問題を無視しても安全と判断しています。次の項目をクリックします: 影響を受ける関数は未使用 サブ問題の一つの下にあるダウングレードメッセージ。これにより、Aikido が 到達可能性分析 を行い、そのパッケージがコード内のどこでも使用されていないと判断したことが確認できます。

到達可能性は、Aikido がセキュリティ問題の関連性と影響を評価する方法の中核です。 詳細はこちら Aikido の到達可能性エンジンについて。

問題の詳細に戻り、次をクリックします: 到達可能性分析を表示。フローチャートは、影響を受けるバージョンの pyyaml, が requirements.txt で宣言されているにもかかわらず、コード内のどこでも使用されておらず、それに依存する関数も存在しないことを示しています。

対照例として、Aikido refined のメインの問題フィードに戻ります。重大な脆弱性を持つ aiohttp パッケージをクリックします。問題の詳細には多数の CVE が表示されます。CVE-2024-23334 については、次をクリックします: 到達可能性分析を表示。ここでは、aiohttp に依存する 2 つの異なるパッケージが、コードベース内の 2 つの異なるファイルで使用されていることが分かります。

問題の詳細に戻り、次をクリックします: 引き上げ CVE-2024-23334 のメッセージ。Aikido が深刻度を引き上げた理由は 2 つあります。(1) 攻撃コードが GitHub に存在し、見つけやすいこと、(2) その脆弱性が現実世界で現在進行形で悪用されていることです。

AutoFix を使ってセキュリティ問題を解決する

Aikido AutoFix は、最先端の LLM を活用して、セキュリティ問題に対するワンクリック修正をインラインまたはプルリクエスト経由で提供するエージェントです。 詳細はこちら AutoFix について。

引き続き aiohttp 問題の詳細ドロワーで、〜の横に どう修正すればよいですか?AutoFix。すると AutoFix ページに移動します。ここで Aikido は、requirements.txt の aiohttp のバージョンを 3.5.3 から 3.12.14 に引き上げることを提案します。

新しいプルリクエストで修正を適用するには、ステータス列の横にあるケバブメニューを開き、次をクリックします: PR を作成 (注:Aikido にリポジトリへの書き込みアクセス権を付与するよう求められる場合があります。これは、Aikido があなたに代わってプルリクエストを作成するために必要です。)

すべてのパッケージまたは特定のパッケージのどちらに修正を適用するか求められた場合は、 すべてのパッケージを選択します。PR の作成が進むと、Aikido がダイアログウィンドウを開きます。完了したら、次をクリックします: PR を表示.

その後、GitHub リポジトリ(dvpwa のフォーク)内のオープンな PR に移動します。Aikido は、この変更によって解決される脆弱性について詳細な説明を記入しています。次の項目もクリックできます: 変更されたファイル タブを開いて、requirements.txt 内で引き上げられたパッケージバージョンを確認します

この時点で、プルリクエストを閉じるか、破棄するかを選べます(将来のテストのために脆弱性を残しておきたい場合)。

やりました!このチュートリアルでは、次のことを行いました:

  • リポジトリを Aikido に接続し、最初のセキュリティスキャンを実行した

  • コードベース内での深刻度と露出状況に基づいて脆弱性を自動トリアージした

  • AutoFix を使って脆弱な依存関係への修正を提案し、適用した

最終更新

役に立ちましたか?