Magento公式サイトのDevBlogにおいて、近々リリースされる2.3.3以降において、セキュリティパッチの提供が行われることがアナウンスされました。

Introducing the New Security-only Patch Release

Magento1系におけるアップデートとセキュリティパッチ

Magentoはバージョン1系では以下のようなバージョン番号の採番規則を設けており、この採番規則は現在も守られています。

1・・・プラットフォームバージョン

9・・・メジャーバージョン

4・・・マイナーバージョン

1・・・セキュリティバージョン

主に新機能はメジャーバージョンで投入されることが多く、機能改良や不具合修正はマイナーバージョンで行われてきました。
また、セキュリティFixは現在も継続しているセキュリティパッチと同時に提供され、メジャーバージョンやマイナーバージョンアップをしなくても一定範囲のセキュリティ対応が取れる形になっていました。

反面、利用者がなかなか古いバージョンからアップデートしようとしないため、現在でも1.5系や1.6系といった非常に古いバージョンに対するセキュリティパッチが提供され続けており、開発チームの負荷になっているとも言われています。

Magento2系におけるアップデートとセキュリティパッチ

2015年にリリースされたMagento2系ではバージョン番号の採番規則が変更になり、以下のような現在使われている3桁の数字からなる管理になりました。

2・・・プラットフォームバージョン

3・・・メジャーバージョン

2・・・マイナーバージョン

セキュリティバージョンがなくなったことにより、マイナーバージョンで不具合修正とセキュリティ修正が同時にリリースされることになりました。
(これまでのリリース履歴では、相当に知名度の高い場合に限りパッチリリースが行われてきましたが、それは例外措置とされており、通常はバージョンアップが推奨されています。)

四半期ごとに行われるアップデート

現在のMagentoの新バージョンリリースは、概ね四半期ごとになっています。
前回のリリースは2019年6月末でしたから、もうそろそろアップデートがおこなわれる時期になってきています。

ただ、このアップデートには以下のものが含まれています。

  • 新機能の追加
  • 既存機能の改良
  • 不具合の改修
  • セキュリティFix

多くのMagento2系ユーザーを悩ませているのがこの1回のアップデートに含まれている内容です。
セキュリティFixだけを適用したくとも、その他の修正が非常に多岐にわたっているために切り離すことが難しく、しかもその他の修正による仕様変更が既存サイトに致命的な影響を及ぼすことも珍しくありません。
テストの自動化を整備したとしても、なかなか全てを確認することは難しのが実情です。
しかもアップデートは四半期ごとにおこなわれるため、サイトの改良中にアップデートが来てしまうと、その検証作業に手を取られてしまうという悪循環にハマってしまいます。

そういうわけで、コミュニティ側からは通常のアップデートとセキュリティパッチを分けて提供してほしいという声が以前から存在し、それに応える形で次回のリリースからMagento2系でもセキュリティパッチがリリースされることになりました。

新しいリリースサイクルとは

DevBlogに掲載されているイメージは以下のようになっています。

セキュリティパッチとリリース

四半期ごとのリリースサイクルは変更なし

図を見ていただければわかるかと思いますが、リリースサイクル自体はこれまでと変更なく、四半期ごととなっています。
Magento2の初期バージョンではリリースサイクルが若干不安定なこともありましたが、現在は概ね四半期ごとになっているため、計画も立てやすいかと思います。

2.3.3からはセキュリティ修正のみのバージョンがスタート

そして、2.3.3からはセキュリティ修正だけのバージョンが新たに導入されます。
これはセキュリティパッチという形ではなく、セキュリティ修正を行った派生バージョンという位置づけです。
新機能や不具合改修は入っておらず、各バージョンのセキュリティ修正のみが適用されたものなので、影響範囲は従来より少なくなっています。

このセキュリティ修正のみが行われたバージョンには

2.3.2-p1

というように「p1」のようなパッチバージョンが付与されます。

セキュリティ修正バージョンを含めた今後のアップデートシナリオ

DevBlogでは以下のようなシナリオを例として紹介しています。

例1 – 完全アップグレード:

  • 2019年第3四半期に、2.3.2ベースのサイトを2.3.3にアップデート。
  • 2020年第1四半期に、2.3.3ベースのサイトを2.3.4にアップデート。

例2 – すぐにセキュリティ対応を行い、後日アップデート:

  • 2019年第3四半期に、2.3.2ベースのサイトを2.3.2-p1にアップデート。
  • 2020年第1四半期に、2.3.2-p1から2.3.4にアップデート。

 

例3 – すぐにセキュリティ対応を行い、アップデートが必要であれば実施:

  • 2019年第3四半期に、2.3.2ベースのサイトを2.3.2-p1にアップデート。
  • 2019年第3四半期から2020年第1四半期の間に、2.3.2-p1から2.3.3へその他の修正を取り込むべくアップデート。
  • 2020年第1四半期に2.3.3から2.3.4または2.3.3-p1へアップデート(カスタマイズやスケジュールなどを考慮して決定)。(注1)

 

例4 – セキュリティアップデートだけを実施:

  • 2019年第3四半期に、2.3.2ベースのサイトを2.3.2-p1にアップデート。
  • 2020年第1四半期に2.3.2-p1ベースのサイトを2.3.3-p1にアップデート。(注2)

注1:この間に更に追加のアップデートが必要になるかもしれません。
注2:Magento開発チームはセキュリティリリースからセキュリティリリースへのアップデートができるように最大限努力はしますが、セキュリティパッチと同等の検証作業は確約できないかもしれません。

まとめ

Magento2系のアップデートは、メジャーバージョンのメンテナンス期限とともに利用者の大きな悩みどころになっています。
今回のセキュリティリリースに関する発表は、相次ぐECサイトのセキュリティ事故を防ぐ意味でも重要で、四半期ごとのアップデート作業をかなり軽減してくれる可能性があります。

次のMagento2系のリリースは10月に予定されています。
2.2系および2.3系をお使いの方はそろそろスケジュール調整に入られることをおすすめします。