RTOS Zephyr に 25 件の脆弱性(ICMP パケット経由で悪用される脆弱性を含む)

NCCグループの研究者 公開 無料のプロジェクト監査結果 ゼファー, 現像 モノのインターネット (IoT、モノのインターネット) の概念に準拠したデバイスを装備することを目的としたリアルタイム オペレーティング システム (RTOS)。 監査中に判明したのは、 25 件の脆弱性 Zephyr に 1 件、MCUboot に XNUMX 件の脆弱性があります。 Zephyr はインテル企業の参加により開発されています。

合計で、ネットワーク スタックで 6 件、カーネルで 4 件、コマンド シェルで 2 件、システム コール ハンドラーで 5 件、USB サブシステムで 5 件、ファームウェア更新メカニズムで 3 件の脆弱性が確認されました。 9 件の問題が重大と評価され、9 件が高、4 件が中程度、4 件が低、15 件が検討中と評価されています。 重大な問題は IPvXNUMX スタックと MQTT パーサーに影響し、危険な問題は USB 大容量ストレージと USB DFU ドライバーに影響します。 情報公開時点では、最も危険な XNUMX 件の脆弱性に対してのみ修正が準備されており、サービス拒否につながる問題や、追加のカーネル保護メカニズムの欠陥に関連する問題は未修正のままです。

プラットフォームの IPv4 スタックにリモートから悪用可能な脆弱性が確認されており、特定の方法で変更された ICMP パケットを処理するときにメモリ破損が発生します。 もう 6 つの深刻な問題が MQTT プロトコル パーサーで見つかりました。これは適切なヘッダー フィールドの長さのチェックが行われていないことが原因で、リモートでコードが実行される可能性があります。 それほど深刻ではないサービス拒否の問題が、IPvXNUMX スタックと CoAP プロトコルの実装で見つかります。

その他の問題をローカルで悪用して、サービス妨害を引き起こしたり、カーネル レベルでコードを実行したりする可能性があります。 これらの脆弱性のほとんどは、システム コール引数の適切なチェックの欠如に関連しており、カーネル メモリの任意の領域への書き込みや読み取りが行われる可能性があります。 この問題はシステム コール処理コード自体にも及び、負のシステム コール番号を呼び出すと整数オーバーフローが発生します。 また、カーネルは、ASLR 保護 (アドレス空間のランダム化) の実装と、スタック上にカナリア マークを設定するメカニズムに問題があり、これらのメカニズムが無効になることも特定しました。

多くの問題は、USB スタックと個々のドライバーに影響します。 たとえば、攻撃者が制御する USB ホストにデバイスが接続されている場合、USB 大容量ストレージの問題によりバッファ オーバーフローが発生し、カーネル レベルでコードが実行される可能性があります。 USB 経由で新しいファームウェアをロードするためのドライバーである USB DFU の脆弱性により、暗号化を使用せず、デジタル署名を使用したコンポーネントの検証によるセキュア ブート モードをバイパスせずに、変更されたファームウェア イメージをマイクロコントローラーの内部フラッシュにロードできます。 さらに、オープン ブートローダー コードが研究されました MCUブート、良性の脆弱性が XNUMX つ見つかりました。
これは、UART 上で SMP (Simple Management Protocol) プロトコルを使用するときにバッファ オーバーフローを引き起こす可能性があります。

Zephyr では、すべてのプロセスに対してグローバル共有仮想アドレス空間 (SASOS、シングル アドレス空間オペレーティング システム) が XNUMX つだけ提供されることを思い出してください。 アプリケーション固有のコードは、アプリケーション固有のカーネルと結合されて、特定のハードウェアにロードして実行できるモノリシックな実行可能ファイルを形成します。 すべてのシステム リソースはコンパイル時に決定されるため、コード サイズが削減され、パフォーマンスが向上します。 システム イメージには、アプリケーションの実行に必要なカーネル機能のみを含めることができます。

Zephyr の主な利点の中で注目に値するのは、 言及した 安全性を考慮した開発を行っております。 承認された開発のすべての段階で、コードのセキュリティを確認する必須の段階(ファジング テスト、静的分析、侵入テスト、コード レビュー、バックドア実装の分析、脅威モデリング)を通過すること。

出所: オープンネット.ru

コメントを追加します