セキュリティー修正のバックポート

バックポートとは、最新バージョンのアップストリームソフトウェアパッケージに含まれるセキュリティー問題を解決するバグ修正を、弊社が提供している以前のバージョンのパッケージに適用することを指しています。

バックポートは、Red Hat のようなベンダーではよく行われており、弊社では最小のリスクで自動アップデートを提供しております。パックポートは、プロプライエタリーソフトウェアに馴染みのある方には新しい概念となるでしょう。

Red Hat がセキュリティー対策にバックポートを採用する理由について、例を挙げて説明します。

Red Hat では Red Hat Enterprise Linux 6 で PHP のバージョン 5.3 を提供しています。PHP 5.3 のアップストリームバージョンは 2014 年 8 月 14 日に EOL (end of life) を迎えました。これは、このバージョンに対してアップストリームによる更新または機能拡張は追加されないことを意味します。ところが 2014 年 10 月 14 日、バッファーオーバーフローの脆弱性 CVE-2014-3670 (影響度は重要な影響と評価される) が PHP のすべてのバージョンで検出されました。リモートの攻撃者はこの脆弱性を利用して、 PHP アプリケーションをクラッシュさせたり、PHP アプリケーションを実行するユーザー権限を使って任意のコードを実行したりする可能性があります。

PHP のバージョン 5.3 はリタイア済みのアップストリームであるため、PHP 5.3 のアップストリームリリースにはこの問題に対する修正が提供されませんでした。そのため、この問題による影響を軽減する唯一の方法は、CVE-2014-3670 に対する修正が提供されている PHP 5.4 へのアップグレードになります。しかしながら、バージョン 5.3 と 5.4 間の下位互換性に関連する問題があることが予想されるため、PHP 5.3 をご使用の Red Hat のお客様は PHP 5.4 に移行できない可能性があり、この移行プロセスには、管理者か開発者による手作業が必要になります。こうした理由により Red Hat は、Red Hat Enterprise Linux 6 に同梱の PHP 5.3 パッケージに対し、この問題の修正を提供 (バックポート) することで、お客様が継続して PHP 5.3 を使用できると同時に CVE-2014-3670 の影響を軽減できるようにしました。

セキュリティー修正をバックポートする際は、以下を行います。

  • 修正部分を特定し、他の変更部分から切り離す
  • その修正により、期待しない副次的な影響が取り込まれないかどうか十分に検証する
  • 弊社が提供している以前のバージョンに、修正を適用する

弊社では、ほとんどの製品に対してバックポートによるセキュリティー対策を行っていますが、注意深く検証した上でパッケージのバージョンアップを行う場合もあります。パッケージのバージョンアップを行う可能性が高いのは、他とのやりとりが不要なパッケージか、Web ブラウザーやインスタントメッセージクライアントなどのエンドユーザーが使用するパッケージになります。

リリース番号に関連するよくある問題点

バックポートを使用することによるお客様の利点は多数ありますが、一方で、分かりにくくなるという欠点もあります。つまり、パッケージのバージョン番号を見ただけでは脆弱性の有無は分かりません。たとえば、「問題を修正するために Apache httpd 2.0.43 にアップグレードしてください」などの、アップストリームのバージョン番号しか考慮されていないインターネットの記事があった場合がこれに該当します。この場合、ベンダーからの更新済みパッケージをインストールしても、お客様が取得することになるのは最新のアップストリームバージョンではなく、古いアップストリームバージョンにバックポートパッチが適用されたものになることがあるため、混乱が生じる可能性があります。

また、セキュリティーのスキャンや監査ツールにはコンポーネントのバージョン情報のみで脆弱性を判断するものがあります。この場合、バックポートでセキュリティー対策していることが判断材料とならないため、正しい結果になりません。

Red Hat Enterprise Linux を発表以来、Red Hat ではセキュリティーアドバイザリーで新しいアップストリームのバージョンへの移行と現行バージョンへのバックポートパッチの適用のどちらの方法で、問題に対策を講じたかについての説明を十分な注意の下に行っています。2000 年 1 月からは、お客様が脆弱性を簡単に相互参照できるようにすべてのセキュリティーアドバイザリーに CVE 名を記載しており、いつどのように問題解決したかをバージョン番号に依存しない形で見つけ出すことができます。

また、バックポートによるセキュリティー対策が行われている場合でも、サードパーティーの脆弱性ツールで脆弱性のステータスの判別に使用できる OVAL 定義 (機械読取り用の報告書) も提供しています。この方法でバックポートで不明な部分が解消され、お客様の最新のセキュリティー修正による安全管理の手間が省けると考えています。