トップ «前の日記(2023/03/30 (木) ) 最新 次の日記(2023/04/01 (土) )» 編集 RSS feed

HsbtDiary


2023/03/31 (金) [長年日記]

Ruby 3.0 がセキュリティメンテナンスフェーズになったのでいくつか補足

Ruby 3.0 がセキュリティメンテナンスフェーズになったことに合わせて、いくつかサプライチェーン周りで考えておく必要がある事項があるので共有しときます。

Ruby 3.0 は OpenSSL 3.0 対応しないことになった

Bug #18658: Need openssl 3 support for Ubuntu 22.04 (Ruby 2.7.x and 3.0.x) - Ruby master - Ruby Issue Tracking System

に書いたように、Ruby 3.0 には OpenSSL 3.0 に対応した openssl gem はバックポートされないことになりました。つまり、OpenSSL 3.x しか提供されない Ubuntu 22.04 では Ruby 3.0 はビルドできないことになります。ユーザーが取れる選択肢としては

  • Ubuntu のアップグレードの前に Ruby 3.1/3.2 にアップグレードする
  • Ruby 3.1/3.2 にアップグレードした後に Ubuntu 22.04 以降にアップグレードする

というパスになります。RHEL9 や Amazon Linux 2023 でも OpenSSL 3.x しか提供されないので、基本的な方針は同じです。

Ruby 3.0 が対応している OpenSSL 1.1 は 2023/9 で EOL となる

それに加えて悲しい情報ですが、OpenSSL 1.1 のメンテナンスは 2023/9 で終了となることが発表されました。

OpenSSL 1.1.1 End of Life - OpenSSL Blog

Ruby 3.0 のメンテナンスは 2024/4 まで行われる見込みですが、この 2023/9-2024/4 の間に OpenSSL 側に何かしらの脆弱性なり致命的な欠陥が見つかったとしても OpenSSL 1.1 への修正は行われないことを意味します。Ubuntu や RedHat などが過去のバージョンの OS にある OpenSSL 1.1 への修正を行ってくれればよいのですが、かなり不確実な状態です。

Ruby 3.0 ユーザーは上記の期間は OpenSSL 1.1 への修正待ちというベンダの対応を祈るしか無いという状態になるので、ソフトウェアコントローラビリティの確保という観点からRuby 3.1/3.2 へのアップグレードを強く推奨します。なお、Ubuntu LTS ではシステムパッケージが Ruby 3.0 なので、3.1/3.2 へのアップグレードへのリソースがない場合はこちらに切り替えて OS ベンダのアップデートに頼る、という手段も検討してください。

まとめ

なかなか複雑なピタゴラスイッチになっていますが、セキュリティ課題への対応は技術的にもコンプライアンス的にも逃れられない世の中になっているので各自で上に書いたような推奨策のいずれかを採用するなどして頑張りましょう。

snap と all-ruby を更新した

安定版バージョンがすべて更新されたので自分が面倒を見ている snap と all-ruby について、各バージョンを含めたバイナリやイメージを更新しておいた。

毎回手でやっていてなんだこれは、という気持ちになってきたので RubyKaigi 2023 の後にでもこの辺のリリース後の各種更新業を一元管理して自動化するようななにかを作ろう。