【研究者「iOS 27.2.1も未修正」】他のアプリのファイルを読める脆弱性worse_query、Binanceが警告

  • ブックマーク
  • Feedly
  • -
    コピー

【iOS 27.2.1】に更新したiPhoneでも、悪意のあるアプリが他のアプリの保存ファイルを読める脆弱性「worse_query」は未修正だと、公開した研究者が投稿しています。暗号資産取引所のBinanceは11月10日、ウォレットのシードフレーズ(復元用の単語の並び)や秘密鍵、ログイン情報が漏れるおそれがあるとしてiPhone利用者に警告しました。worse_queryを使った攻撃や暗号資産の盗難は、Binanceと研究者のどちらからも報告されていないと11月11日時点で報じられています。

iOSのサンドボックス回避の脆弱性 worse_query

Binanceの警告内容と3つの対策

9to5Macによると、Binanceは11月10日のXへの投稿で、悪意のあるアプリが他のアプリのローカルファイルを読める脆弱性「worse_query」について注意を呼びかけました。Binanceはworse_queryを、Binanceのアプリ固有の問題ではなくiOS側の問題と説明しています。影響を受けるバージョンとしてBinanceが挙げたのは、iOS 26.7.1、iOS 27.0.1、iOS 27.2です。

Binanceが示した対策は次の3つです。

  • サイドロードしたアプリや手動で署名したIPAファイルなど、信頼できない入手元のアプリを削除する
  • iOSとアプリを最新の公式版に更新する
  • 侵害の疑いがある場合は、問題のない別の端末で新しいウォレットを作って資産を移し、ログインセッションをリセットする

9to5Macによると、Binanceの投稿にはXのコミュニティノートが付きました。コミュニティノートは、研究者がworse_queryを未修正のゼロデイ(修正が配信される前に公開された脆弱性)と説明していることと、iOS 27.2.1を含むAppleの最新のセキュリティ更新に修正の記載が見当たらないことを指摘しています。9to5MacはThe Hacker Newsの報道を引用し、worse_queryを使った攻撃や暗号資産の盗難は、Binanceからも研究者からもこれまで報告されていないと伝えています。

worse_queryで読める場所と必要な条件

iOSには「サンドボックス」という仕組みがあり、アプリごとにデータの置き場所を分けて、他のアプリのファイルには手を出せないようにしています。worse_queryはこのサンドボックスを回避する手法で、@0xjohnny氏と@forcequitOS氏が概念実証(実際に動くことを示す見本のコード)をGitHubで公開しました。

GitHubで公開されている説明文の題名は「A sandbox escape for iOS 26.0 – 26.7.2 / 27.2」(iOS 26.0〜26.7.2と27.2向けのサンドボックス回避)です。説明文によると、worse_queryを使うアプリにはApp Groupコンテナ(同じ開発者のアプリどうしでデータを共有する領域)の設定が必要です。アクセスできる場所として、各アプリのデータが置かれている「/var/mobile/Containers/Data/Application/」以下や、App Groupの共有領域「/var/mobile/Containers/Shared/AppGroup/」以下などが挙がっています。説明文には、公開したものは開発者向けの概念実証でそれ単体では役に立たないことと、脱獄とは無関係であることも書かれています。

他のアプリのファイルが読まれるのは、worse_queryを組み込んだアプリがiPhoneに入り、そのアプリの中でworse_queryのコードが実行されたときです。9to5Macによると、worse_queryを使ったアプリは既に他の開発者によって作られていて、脱獄なしで他のアプリのデータを読み、書き換え、削除できるファイル管理アプリも含まれています。

影響するバージョンの食い違い

影響を受けるバージョンの書き方は、公開者とBinanceで違います。GitHubの説明文はiOS 26.0〜26.7.2とiOS 27.2、BinanceはiOS 26.7.1、iOS 27.0.1、iOS 27.2です。iOS 27.0.1はBinanceだけが挙げていて、GitHubの説明文の題名にiOS 27.0〜27.1台は入っていません。

9to5Macが引用した@forcequitOS氏の11月10日のXへの投稿は、worse_queryはiOS 27.2.1とiOS 27.3ベータ1でも修正されていないと述べ、修正されたらGitHubの説明文の対応バージョンを更新するとしています。GitHubの説明文と@forcequitOS氏の投稿を合わせると、公開者側が対象としているのはiOS 26.0〜26.7.2、iOS 27.2、iOS 27.2.1、iOS 27.3ベータ1です。

iOS 27.2.1の修正とworse_queryの対応は確認できず

Appleが11月9日に公開したiOS 27.2.1のセキュリティ情報には9項目の修正が載っていますが、worse_queryに当たると分かる項目も、@0xjohnny氏と@forcequitOS氏の名前も見当たりません。9項目のうちApp Intentsの項目は、アプリが機密性の高いユーザーデータにアクセスできるおそれがある問題の修正で、報告者は別の研究者です。App Intentsの項目とworse_queryが同じ問題かどうかは、Appleのセキュリティ情報、今回参照した9to5Macの記事、GitHubの説明文、@forcequitOS氏の11月10日の投稿を照らし合わせた範囲では未確認です。

Appleは、調査が終わって修正を配信するまでセキュリティ上の問題を公表しない方針を同じページに書いています。セキュリティ情報に記載がない現時点では、Appleがworse_queryを把握しているかどうかは未確認です。iOS 27.2.1で修正された9項目の内容は、当ブログのiOS 27.2.1の配信記事でもお伝えした通りです。

小龍的にはこう思った

読まれるファイルの中にシードフレーズや秘密鍵が入っているかどうかは、ウォレットアプリが鍵をどこに保存しているかで変わりますね。Appleは開発者向けのセキュリティ資料で、鍵やパスワードなどを保管する仕組みとしてKeychain(キーチェーン)を用意しています。GitHubの説明文ではworse_queryでアクセスできる場所としては、アプリのデータディレクトリやApp Groupの共有領域のみを挙げていて、Keychainの中身までアクセスできるかどうかは書かれていません。ウォレットアプリが鍵をデータディレクトリにファイルとして置いている場合、鍵の保存先はGitHubの説明文が挙げた場所と重なります。GitHubの説明文のディレクトリ一覧から言えるのは保存先が重なるところまでで、鍵が実際に読み取られるかどうかはウォレットごとの確認が必要です。

鍵をKeychainに保存しているウォレットの安全性も、今回参照した資料の範囲では未判定です。個別のウォレットが鍵をどう保存しているかは、Appleの資料、GitHubの説明文、Binanceの警告のどれにも載っていないためです。小龍的には、ウォレットの提供元が鍵の保存方法とworse_queryの影響について何を公表するかが、次の判断材料になると見ています。iOS 27.2.1への更新は、worse_queryの扱いとは別に、Appleが公表した9項目の修正を受けるために必要です。

しかし何かと攻撃を受ける側の暗号資産取引所BinanceがAppleのセキュリティ脆弱性に対して指摘をするなんて、ちょっと皮肉っぽいと思いませんか?ちなみにBinanceはほぼ日本居住者に対してはサービスを提供しなくなったので、日本の新しい読者には馴染みがないかもしれませんが、過去には巨大なセキュリティ事故による資産流出を経験しているので、現在も世界中のハッカー(特に北朝鮮)から狙われているので、セキュリティをめちゃくちゃ強化しているのだろうなとは想像できます。暗号資産を沢山お持ちの方はコールドウォレットで保存する方が殆どで、取引所に置いておくということはあまりしていないと思いますが、やはりどんな仕組みでもいつかはハッキングされる可能性があると思って慎重に扱われた方がいいと思います。

記事は以上です。

(記事情報元:9to5Mac、GitHub(worse_query)、Apple)

Visited 2 times, 2 visit(s) today
  • ブックマーク
  • Feedly
  • -
    コピー

この記事を書いた人