暗号化キーのローテーションのトラブルシューティング:CVE-2024-34102

この記事は、CVE-2024-34102 でこの 記事に説明されている手順に既に従っているマーチャントが、暗号化キーのローテーションをトラブルシューティングできるようにすることを目的としています。

上記の記事の手順に既に従っていて、暗号化キーの回転に問題がある場合は、潜在的な問題を解決するための分離されたパッチがあります。

CVE-2024-34102 を防ぐために、前述の手順とまとめを説明し、以下のトラブルシューティングを追加するために、このフローチャートを利用することもできます。

CVE-2024-34102 保護フロー・チャート.jpg {modal="regular"}

新しいコマンドを実行するための分離パッチの適用方法

ファイルを解凍し、サポートナレッジベースで Adobe提供の Composer パッチの適用方法を参照して手順を確認します。

環境変数を使用しない新しい暗号化キーの追加

アプリケーションのデフォルトの動作では、暗号化キーが app/etc/env.php ファイルに保存されます。

ドキュメントで概説されている 手順では、Admin インターフェイスを使用してそのファイル内でこのキーを変更する方法を説明します。

この節で示す手順と分離パッチを使用すると、そのファイルの値を簡単に変更でき、Admin インターフェイスを通じて発生する可能性のある問題を回避できます。

ただし、暗号化キーを管理する最も簡単で安全な方法は、環境変数を使用することです。 既に環境変数を使用している場合、または環境変数を使用してこのキーを管理することに関心がある場合は、それらの手順について説明する別の節を参照してください。

影響を受ける製品とバージョン

Adobe Commerce on Cloud、Adobe Commerce オンプレミスおよびMagento Open Source:

  • 2.4.7-p1 以前
  • 2.4.6-p6 以前
  • 2.4.5-p8 以前
  • 2.4.4-p9 以前

暗号化キーのローテーションの詳細をトラブルシューティングするための分離パッチ

Adobe CommerceまたはMagento Open Sourceのバージョンに応じて、次のパッチを添付して使用します。

バージョン 2.4.7、2.4.7-p1 の場合:

バージョン 2.4.6、2.4.6-p1、2.4.6-p2、2.4.6-p3、2.4.6-p4、2.4.6-p5、2.4.6-p6:

バージョン 2.4.5、2.4.5-p1、2.4.5-p2、2.4.5-p3、2.4.5-p4、2.4.5-p5、2.4.5-p6、2.4.5-p7、2.4.5-p8:

バージョン 2.4.4、2.4.4-p1、2.4.4-p2、2.4.4-p3、2.4.4-p4、2.4.4-p5、2.4.4-p6、2.4.4-p7、2.4.4-p8、2.4.4-p9:

分離パッチをインストールしたら、新しい CLI コマンドを使用してアクティブな暗号化キーを変更します。

NOTE
この新しい CLI コマンドは、実行時にクリーンなキャッシュをトリガーします。
  1. この新しいコマンドは、更新するキーの app/etc/env.php ファイルを含む環境で実行する必要があります。

  2. 新しいコマンドが存在することを確認します。

    code language-none
    bin/magento list | grep encryption:key:change
    

    次の出力が表示されます。

    code language-none
    encryption:key:change Change the encryption key inside the env.php file.
    
  3. 暗号化キーを変更します。

    code language-none
    bin/magento encryption:key:change
    
  4. 実稼動システムでこのコマンドを実行した場合は、それ以上のアクションは必要ありません。
    これを開発システム上で実行した場合、通常は機密性の高い設定をデプロイする場合と同様に この変更を実稼動システムに取り込む 必要があります)。

分離パッチを使用する代わりに、環境変数を使用して暗号化キーを更新します

上記の節の代わりに、これらの手順を使用すると、現在デフォルトの app/etc/env.php を使用している場合でも、既存の暗号化データを保持しながら新しい暗号化キーを追加できます。
この節は、Cloud 上のAdobe Commerceおよび Cloud Starter を対象としますが、Adobe Commerce オンプレミスも対象となります ただし、変数の正確な手順と場所はインフラストラクチャによって異なります。

現在の値を収集

  • 環境変数を使用して既にキーを管理している場合は、 複数の場所が考えられますが、ドキュメントに説明されているように、CRYPT_KEY 変数である可能性が最も高くなります。
  • 変数を使用していない場合、暗号化キーは crypt/key のデータキー内の app/etc/env.php にあります。

どちらの場合も、複数行の値であり、複数のランダムなデータ行を含むことができます。

2.4.7x バージョンに新しい値を生成

暗号化キーは 32 バイトのランダムデータで、base64 でエンコードされ、base64 がプレフィックスされます。
新しいキーを生成するには:

  1. 任意のツールを使用して、base64 でエンコードされた 32 ランダムバイトのデータを生成します。 例えば、OpenSSL CLI を使用すると、openssl rand -base64 32 を実行できますが、信頼できる暗号化されたランダム生成ツールを使用できます。

  2. その値の前に base64 を付けます。 例えば、openssl コマンドの出力が ABC123 の場合、値は base64ABC123 になります。

  3. 生成された値を、上記で収集した既存の値に追加します。 例えば、既存の値が base64HelloWorld の場合、新しい値は次のようになります。

    code language-none
    base64HelloWorld
    base64ABC123
    

2.4.6x 以前のバージョンの新しい値を生成する

2.4.6x 以前のバージョンの暗号化キーは、hex エンコードされた形式の 16 バイトのランダムデータです。
新しいキーを生成するには:

  1. 任意のツールを使用して、16 ランダムバイトのデータを生成します。 例えば、OpenSSL CLI を使用すると、openssl rand -hex 16 を実行できますが、信頼できる暗号化されたランダム生成ツールを使用できます。

  2. 生成された値を、上記で収集した既存の値に追加します。 例えば、既存の値が abc123 で、前の手順からのランダムな値が 456def の場合、新しい値は次のようになります。

    code language-none
    abc123
    456def
    

新しい環境変数の追加

Cloud Console または magento-cloud CLI を使用して、env:MAGENTO_DC_CRYPT__KEY 環境変数をこの新しい値に設定します。

NOTE
変数を 機密 としてマークする場合は、この値の外部バックアップを保存することをお勧めします。このバックアップがすべてのインターフェイスで非表示になり、アプリケーションにのみ表示されるからです。

変数を保存すると、再デプロイメントが自動的にトリガーされ、値が適用されます。

セキュリティの更新

Adobe Commerceで利用できる関連するセキュリティアップデート:

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a