web-dev-qa-db-ja.com

iOSアプリの不良バージョン(WhatsAppなど)がデバイス全体をクラッシュまたはテイクオーバーにさらす可能性がある方法

WhatsAppのiOS版のアプリにも影響を与えるセキュリティの脆弱性に関する最近の目立つニュースがたくさんありました。脆弱性は、攻撃者がデバイスをクラッシュするリスク(例: original report from Google Project Zeroで言及)またはスマートフォンの制御を引き継ぐ(例:heise.deで言及)リスクを伴うと説明されています こちらはドイツ語 ;翻訳はGoogle Translate提供 こちら )。推奨される対策は、iOSアプリを少なくともバージョン2.18.93にアップグレードすることです。明らかにiOS自体へのアップデートは必要ありません。

これは(iOS自体ではなく)アプリのバグとして説明されているので、疑問に思われます。アプリ(正当なものかどうかにかかわらず)が最初にクラッシュしたり、iOSデバイスを乗っ取ったりするにはどうすればよいですか。 FWIKには、アプリにこのような機能を付与するSDK呼び出しはありません。実際、レポートではヒープの破損について言及しています。しかし、単一のアプリ内のヒープの破損が、システム全体にそのような混乱をどのように引き起こすのでしょうか?アプリのヒープがオペレーティングシステムが所有するメモリと独特の方法でオーバーラップし、アプリの(欠陥のあるバージョン)が悪意のあるコードをそこに挿入する可能性がある場合がこれに当てはまります。しかし、この場合、私はこれが(アプリだけでなく)iOSのバグとして扱われることを期待しますが、ここではそうではありません。

ここで何が起こっているのでしょうか?欠陥のあるバージョンのアプリ(WhatsAppなど)がiOSデバイスをクラッシュさせたり、アプリ全体を乗っ取ったりすることはありますか?

[〜#〜] update [〜#〜]この記事 は、関係する2人のGoogleエンジニアの名前について言及しています。彼らのTwitterハンドルは@natashenkaおよび@taviso。おそらく、Twitterアカウントを持っている誰かが彼らに連絡を取り、この質問に注意を引くことができるでしょう。

10
rookie099

ここでおそらく起こっている可能性があるのは、WhatsAppアプリ、iOS、Androidなどの両方で使用される可能性があるライブラリにバグがあったことです。これにより、iOSとAndroidどうやらルートレベルで。おそらく、このような場合に何が起こったかは、GoogleがOSベンダーに通知し、OSベンダーがアップストリームライブラリのメンテナーに通知し、次に何を通知するのでしょうか?

例としてこれをより具体的にするために、iOS 12のSettingsからの抜粋を次に示します。 General | About | Legal

enter image description here

そして、これが Cisco/libsrtp のGitHubプロジェクトからのテキストです(_srtp_protect_も元のレポートに記載されています)。

  • srtp_protect()関数は、rtpパケットを保持するバッファーに、認証タグをそのパケットの最後に書き込むことができる十分なストレージが割り当てられていることを前提としています。この仮定が有効でない場合、メモリ破損が発生します。

プロジェクトは少なくともいくらかアクティブです(7日前の最後のコミット)が、その issue#322 は2017年7月以降明らかに開いています。私は経験豊富なホワイトハット(またはブラックハット)ではありませんが、現在の見積もりでは、すべての成分がすでに公開されているため、このような(理論的な)例をこのコンテキストで投稿するのは公正です。おそらく、そのようなものをグーグル(しゃれたことは意図されていません)するだけで、Google Zeroエンジニアとしての資格を得ることができます:)

[〜#〜] update [〜#〜]価値のあるものについては、 Sonatype OSS Index (オープンソースの依存関係を特定し、既知の公開されている脆弱性があるかどうかを判断する開発者は現在、libsrtpの脆弱性をリストしていません。

1
rookie099