Cisco Talos は先日、Microsoft 社の Azure Sphere に 7 件の脆弱性を発見しました。Azure Sphere とは、IoT アプリケーションのセキュリティを念頭に置いて設計された、クラウド接続 SoC プラットフォームです。Azure Sphere プラットフォームを支えるのインフラは Microsoft 社の Azure Sphere クラウドです。これはセキュリティの更新、アプリケーションの展開、デバイス整合性の定期的な検証などを担っています。Azure Sphere の SoC 内部は、異なる役割を持つ複数の ARM コアで構成されています。
Talos は Azure Sphere で、連鎖する可能性がある 2 件の脆弱性を発見しました。悪意のあるアプリケーションを攻撃者が起動できる場合、/mnt/config パーティション内の任意の場所に任意コードを書き込まれ、昇格権限を取得される危険性があります。2 件の脆弱性は McAfee Advanced Threat Research のチームによっても発見されています。
また、A7 コア内の制限された Linux ユーザランドで任意のシェルコードを実行できる 2 件の脆弱性も発見しました。Linux ユーザランドには、署名済みコードのみがデバイスで実行されるよう監視する役目があります(ROP ガジェットの場合を除く)。Talos はさらに、カーネルメッセージのリングバッファを読み取ることで機密データにアクセスできる脆弱性、Pluton リングバッファのリソース枯渇に起因するサービス拒否の脆弱性、および Azure Sphere AZSPIO ソケットのカーネルドライバに起因するメモリ破損の脆弱性も発見しました。
Cisco Talos は情報開示方針に従って Microsoft 社と協力し、今回の脆弱性が解決されたこと、および影響を受けた利用者向けにアップデートが提供されていることを確認しています。ただし、Microsoft 社はこれらの脆弱性に CVE を割り当てることを拒否しています。
脆弱性の詳細
Microsoft Azure Sphere のカーネルメッセージのリングバッファに起因する、情報漏えいの脆弱性(TALOS-2020-1089)
Microsoft Azure Sphere 20.05 のカーネルメッセージの循環バッファ関数には、情報漏えいの脆弱性が存在します。権限のないユーザがカーネルメッセージのリングバッファにアクセスできるため、カーネルおよびユーザランドのメモリアドレスなどの機密情報が漏えいする可能性があります。脆弱性のエクスプロイト手口としては、klogctl を介したリングバッファへのアクセスなどが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の Normal World コード実行機能(ptrace API)に起因する、未署名コード実行の脆弱性(TALOS-2020-1090)
Microsoft Azure Sphere 20.05 の Normal World の署名付きコード実行機能には、任意コード実行の脆弱性が存在します。細工されたシェルコードにより、プロセスの書き込み不可のメモリが書き込み可能になる可能性があります。脆弱性のエクスプロイト手口としては、ptrace API を使用するシェルコードの実行などが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の Normal World コード実行機能(/proc/self/mem)に起因する、未署名コード実行の脆弱性(TALOS-2020-1093)
Microsoft Azure Sphere 20.05 の Normal World の署名付きコード実行機能には、任意コード実行の脆弱性が存在します。細工されたシェルコードにより、プロセスの書き込み不可のメモリが書き込み可能になります。脆弱性のエクスプロイト手口としては、/proc/self/mem を介してプログラムを実行時に変更する特定のシェルコードなどが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の非同期 ioctl 関数に起因する、サービス拒否の脆弱性(TALOS-2020-1117)
Microsoft Azure Sphere 20.05 の非同期 ioctl 関数にはサービス拒否の脆弱性が存在します。細工された ioctl 呼び出しシーケンスにより、サービス拒否が引き起こされる可能性があります。脆弱性のエクスプロイト手口としては、特定のシェルコードが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の AF_AZSPIO ソケットに起因する、メモリ破損の脆弱性(TALOS-2020-1118)
Microsoft Azure Sphere 20.05 の AF_AZSPIO socket 関数にはメモリ破損の脆弱性が存在します。一連のソケット操作により、カーネルでダブルフリーおよび境界外の読み取りが発生します。脆弱性のエクスプロイト手口としては、特定のシェルコードが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の ASXipFS inode TYPE 関数に起因する、権限昇格の脆弱性(TALOS-2020-1131)
Microsoft Azure Sphere 20.06 の ASXipFS で使用される inode TYPE 関数には、権限昇格の脆弱性が存在します。細工されたイメージパッケージにより、任意のデバイスにアクセスされる危険性があります。脆弱性のエクスプロイト手口としては、悪意のあるイメージパッケージの書き込みなどが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
Microsoft Azure Sphere の mtd 文字デバイスドライバに起因する、権限昇格の脆弱性(TALOS-2020-1132)
Microsoft Azure Sphere 20.06 の mtd 文字デバイスドライバには、任意ファイルをフラッシュに書き込まれる脆弱性が存在します。細工された ioctl によってファイルのアクセス制限がバイパスされ、権限のないユーザがフラッシュに書き込める可能性があります。脆弱性のエクスプロイト手口としては、MEMWRITE ioctl の発行などが考えられます。
詳細については、こちらから脆弱性アドバイザリ全文をお読みください。
脆弱性が確認されたバージョン
Talos では、Microsoft Azure Sphere バージョン 20.05 がこれらの脆弱性の影響を受けることをテストし、確認しています。
カバレッジ
脆弱性のエクスプロイトは、以下の SNORTⓇ ルールで検出できます。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、Firepower Management Center または Snort.org を参照してください。
Snort ルール:54501 〜 53504
本稿は 2020 年 7 月 31 日に Talos Group のブログに投稿された「Vulnerability Spotlight: Microsoft issues security update for Azure Sphere」の抄訳です。