OpenWrtはルーター、住宅用ゲートウェイといった組み込みデバイス向けの人気の高いオープンソースのLinuxベースのオペレーティングシステムです。
このOpenWrtで脆弱性対策がされた新しいバージョンが案内されています。
どんな脆弱性なのでしょうか。
- Imagebuilderでのコマンドインジェクション
脆弱性がある状態において、脅威アクターはビルドプロセスに任意のコマンドを挿入できるようになります。
これにより、正当なビルドキーで署名された悪意のあるファームウェアイメージが作成できてしまいます。
そんなことができるのか、という感じがありますが、OpenWrtは、これそのものがオープンソースであるだけでなく、OpenWrtのイメージ作成ツールであるImagebuilderもオープンソースなのです。
このImagebuilderを通常は手元で構築し、それを使って配布用のOpenWrtを作成するのですが、その作成プロセスを変更できてしまうことから始まる問題でした。
変更できてしまうことそのものはソフトウェアの種類の性質上想定された内容なのかもしれませんが、その利用上で十分なサニタイジングが実施されていなかったため、この脆弱性へと繋がりました。 - SHA-256ハッシュ衝突
Imagebuilderでイメージを作成する際に利用されている機構の中でHASHを利用している機能がありました。
これそのものは取り扱うバイナリが正規のものであるかを検証する方法として、よく選ばれるものですので、よいのでしょう。
しかし、この脆弱な状態のImagebuilderではHASHを利用する際に、そのHASHを切り詰めて利用していました。
ソフトウェア内部ではもともとSHA-256が使われていましたので、HASHの長さは64文字のアスキー文字列となっているのですが、これを12文字に切り詰めて利用している状態になっていたのです。
HASHはデータから一定の計算手順に基づいて固定長の値を求める機構です。
ある程度の長さがあってはじめてHASHの衝突が回避できるため、コンピュータの性能の向上やHASHを作成する対象のソフトウェアサイズの拡大に伴って、より長いHASHが利用されるようになってきています。
しかし、利用するHASHの長さを短くしてしまったことで、衝突が起こって別のバイナリを受け入れさせてしまうことができる状態となってしまいました。
Imagebuilderはコンテナの中に作られた機構として提供されていて、一見すると堅牢な構造になっていました。
しかし、これらの2つの問題を組み合わせることで、脅威アクターは意図しないイメージで汚染することができるようになってしまいます。
実際にこの手法が悪用されていたのかについての情報はありませんが、速やかに更新しておくことが良いと思えます。
Security Advisory 2024-12-06-1 – OpenWrt Attended SysUpgrade server: Build artifact poisoning via truncated SHA-256 hash and command injection (CVE-2024-54143)
https://openwrt.org/advisory/2024-12-06
この記事をシェア |
---|