Skip to main content

初めての依存関係の脆弱性の検出と修正

デモ リポジトリで Dependabot とその機能を有効にして、依存関係をセキュリティで保護する方法について説明します。

          **ライブラリ**または**パッケージ**と呼ばれる、あらかじめ記述されているコードのコレクションをプロジェクトで使うことは、一般的な方法です。 これらのコード モジュールを使うと、多くの時間を節約でき、大きな再利用可能コンポーネントをゼロからコーディングすることではなく、作業の新しいクリエイティブな側面に集中できます。 これらは、プロジェクトに追加されるときは**依存関係**と呼ばれます。これは、それに含まれるコードに作業が依存するためです。

依存関係の使用はまったく普通のことですが、依存関係にはコードの脆弱性が含まれる可能性があり、それによってプロジェクトが安全でなくなることがあります。 幸いにも、 Dependabot などのツールは、依存関係の脆弱性を見つけ、それらを修正するためのプル要求を発生させ、将来発生するのを防ぐことができます。 このチュートリアルでは、依存関係をセキュリティで保護するために、 Dependabot とその機能を有効にして使用する方法について説明します。

デモ リポジトリの設定

最初に、依存関係の脆弱性が含まれるデモ プロジェクトをフォークしましょう。 この演習では、プロジェクトの展開は行わないため、セキュリティ リスクはありません

  1.        [
           `new2code/dependabot-demo`
           ](https://github.com/new2code/dependabot-demo) リポジトリに移動します。
    
  2. ページの右上にある [ Fork] をクリックします。
  3. 表示されたページで、[Create fork] をクリックします。

依存関係のセキュリティ機能の有効化

プロジェクトを設定したので、安全でない依存関係の修正プログラムを見つけて作成するように Dependabot を構成しましょう。

  1. リポジトリのナビゲーション バーで、[ Security and quality] をクリックします。
  2. [Dependabot alerts] 行で、[Dependabot alertsを有効にする] をクリックします。
  3. [Dependabot] セクションの [Dependabot alerts] の横にある [ 有効にする] をクリックします。
  4. ポップアップが表示されたら、依存関係グラフの有効化に関する説明を読み、[Enable] をクリックします。
  5.        Dependabotが依存関係の脆弱性を修正するプル要求を自動的に開くには、[Dependabot security updates] の横にある **[有効]** をクリックします。
    

安全でない依存関係の表示

          Dependabot構成したら、どの依存関係に脆弱性が含まれているかを見てみましょう。
  1. リポジトリのナビゲーション バーで、[ Security and quality] をクリックします。
  2. リポジトリの Dependabot alerts を表示するには、サイド ナビゲーションで [ Dependabot] をクリックします。
  3. アラートに関する詳細情報を表示するには、アラートのタイトルをクリックします。 この演習では、[hot-formula-parser におけるコマンド インジェクション] をクリックします。

Dependabot のアラートについて

依存関係においてDependabotがいくつかの脆弱性を特定したので、"ホットフォーミュラパーサーにおけるコマンドインジェクション"警告で提供される情報の詳細を確認しましょう。

修正の概要

アラートのタイトルの下では、閉じられるアラートの数や脆弱性の場所など、この脆弱性の修正の簡単な概要を確認できます。 この場合、hot-formula-parser パッケージをバージョン 3.0.1 にアップグレードすると、Dependabot ファイルで特定された 1 つのjavascript/package-lock.jsonアラートが修正されます。

このセクションでは、脆弱性を修正するためにDependabotプル要求を作成する進行状況も追跡します。 修正プログラムが利用可能になると、プル要求にリンクされている " セキュリティ更新プログラムの確認" というラベルのボタンが表示されます。

Dependabot アラートの修正概要セクションのスクリーンショット。

脆弱性の詳細

修正プログラムの詳細の下に、 Dependabot は次のような脆弱性に関する詳細情報を提供します。

  • 脆弱なパッケージの名前
  • 脆弱性を含むパッケージのバージョン
  • 脆弱性が修正されるパッケージのバージョン
  • 脆弱性の種類と悪用方法の詳細

Dependabot アラートの脆弱性詳細セクションのスクリーンショット。

このアラートでは、parse パッケージ内の hot-formula-parser 関数で、ユーザー入力を実行する前にその安全性が正しくチェックされていないため、攻撃者が悪意のあるコマンドを実行できることがわかります。

ヒント

脆弱性の詳細を完全に理解していない場合は、Copilot チャットに説明を依頼してみてください。

タイムライン

最後に、ページの下部にアラートのタイムラインが表示されます。 タイムラインには現在、アラートを開いたときのタイムスタンプ Dependabot 含まれており、脆弱性を修正すると自動的に更新されます。

Dependabot アラートのタイムラインのスクリーンショット。

依存関係のセキュリティ保護

プロジェクトをすばやく簡単にセキュリティで保護するため、作成された修正プログラムを適用しましょう Dependabot 。

  1. 修正の概要が表示された [アラート] フィールドで、[の**** 表示] をクリックします。

  2. pull request ページで、 Files changed をクリックして、 Dependabotの変更を確認します。 変更を確認したら、 Conversation をクリックして pull request の概要に戻ります。

  3. 修正を適用するには、ページの下部にある [Merge pull request] をクリックしてから、[Confirm merge] をクリックします。

    プル要求がマージされると、リンクされた Dependabot アラートが自動的に閉じられ、修正時間がタイムラインに追加されます。

将来的な依存関係の脆弱性の防止

安全でない依存関係が今後進むのを防ぐために、新しいバージョンがリリースされると、 Dependabot が依存関係を更新するプル要求を自動的に開くことを許可しましょう。

  1. リポジトリのナビゲーション バーで、 Settings をクリックします。
  2. サイドバーの「セキュリティ」セクションで、「 Advanced Security」をクリックします。
  3. [Dependabot version updates] の横にある [ 有効にする] をクリックします。

次のステップ

デモ リポジトリで Dependabot とその機能を試したので、 それらを独自のプロジェクトで有効に して、依存関係の脆弱性を簡単に見つけて修正し、防ぐことができます。