AndroidおよびiOSのInstagramアプリに存在するMozjpeg実装に係る脆弱性について
CheckPointより、 AndroidおよびiOSのInstagramアプリに存在するRCE脆弱性の内容が公開されました。
当該脆弱性については、2020年2月10日にFacebookよりリリースされたパッチにて修正済みです。
以前にも、Instagramの脆弱性はご紹介しましたが、この時はパスワードリセットの仕組みに問題があり、アカウント乗っ取りができてしまうというものでした。
今回公開されたRCE脆弱性は半年前に修正済みでもありますし、悪用の事実も確認されていないとのことなので、緊急度は高くないですが、法人も含め多くの人が使うアプリなので簡単にまとめてみます。
目次
脆弱性の概要
- Instagramが使用するサードパーティのライブラリMozjpegの実装方法に脆弱性
- 画像のサイズが約4.3GB(232)以上の場合に整数オーバーフローが発生する
- 画像サイズ = width(横) × height(縦) × output_components(主にRGBの要素)
- 整数オーバーフローを起因として、ヒープバッファオーバーフローが引き起こされる
- 結果、攻撃者はInstagram上で任意のコード実行が可能になる
- 2020年2月10日にFacebookよりリリースされたパッチにて修正済み
Mozjpegとは
- 2014年3月5日に、「mozjpeg」プロジェクトとして、Mozillaが発表
- JPEGファイルの圧縮に定評のある、画像エンコーダー
- 画像を圧縮しファイルサイズ減らすことで帯域への負荷を減らす
- クライアント側でWeb画像をより速く読み込むことができる
攻撃シナリオ
- 攻撃者は電子メールやWhatsAppなどのSNS、その他のオンラインストレージを介して画像を被害者に送信するだけ
- 被害者が画像を選択し、Instagramアプリを開くと成功
- 攻撃者は端末へのアクセスが可能になる
- Instagramのアプリに対して許可している操作
- 連絡先
- 端末のストレージ
- 画像や動画ファイルをはじめとしたさまざまなファイル
- 位置情報
- 端末のカメラ
- Instagramのアプリに対して許可している操作
- もちろんInstagramの操作も可能
- ダイレクトメッセージの閲覧
- 画像や動画の投稿や削除
- 一度、攻撃が成功すると、アプリを削除して再インストールしない限り、被害者の端末上でクラッシュを続ける
まとめ
内容自体の重要度も考慮しつつですが、今回は、端的にまとめてみました。
CheckPointのブログ記事にも記載がありますが、今やどのアプリケーションにおいても、サードパーティ製のツールを組み込んでいるといっても過言ではありません。
今回は、Instagram側での実装方法に問題があったため、脆弱性を生み出してしまっていましたが、ツール自体に脆弱性が含まれている可能性も大いにあります。
まずは、日々の情報収集や脆弱性の種類を把握しつつ、ひょっとしたら。。というくらいの感覚で、他のアプリケーションにも類似の脆弱性があるのではないかと疑ってみるのが大事なのかなと思います。
つい先日のドコモ口座不正送金の件も、そうですよね。
単一の物事に対し、良い、悪い。と決めるのではなく、もう一歩踏み込んで考えて、同じ失敗を繰り返さないようにすること。
少し話は逸れますが、コロナ禍における諸々の対策についても、こういった心構えで向き合えるといいのかなと思ってます。