Rubyパッケージのホスティングサイト「RubyGems」の開発チームは、Rubyパッケージ(gem)を管理するツール「Bundler」に新機能を追加しました。これは最近相次ぐソフトウェアサプライチェーン攻撃から開発者を守ることを目的としており、更新されたばかりのパッケージをインストールするまでに一定の「冷却期間」を設けるというものです。
近年のソフトウェアリポジトリへの攻撃では、開発者の認証情報を窃取し、その開発者が管理するパッケージに悪意のあるコードを埋め込む手口が多く見られます。感染したパッケージをインストールした別の開発者の認証情報も連鎖的に盗まれ、被害が拡大していきます。リポジトリ利用者は、パッケージが改ざんされてから悪意ある変更が発見・除去されるまでのわずかな時間帯に該当パッケージをダウンロードした場合、攻撃の被害を受ける可能性があります。
こうした脅威への対抗策として、RubyGemsチームはBundlerに新しいcooldown引数を追加しました。この引数を指定することで、公開からの経過日数が指定した値に満たないgemを自動的に除外できます。悪意のあるコードを含むパッケージリリースに対する追加の防御層として機能し、インストール前に第三者が問題を発見する時間を確保できます。
冷却期間の仕組みは、各gemの新バージョンに付与されたタイムスタンプを確認するというものです。ソースへの新規追加分は古いバージョンから取得する必要があり、新しく追加されたバージョンは検証が完了するまでインストールが保留されます。
一方、危険なセキュリティ脆弱性を修正するために信頼済みパッケージが緊急リリースされた場合など、待機が得策でない状況では、この遅延をオーバーライドすることも可能です。
この記事はInfoWorldに最初に掲載されました。