web-dev-qa-db-ja.com

侵害されたカーネルはデバイスを完全に制御しますか?

WiFiファームウェアの最近の脆弱性 攻撃者がカーネルスペースでコードを実行できるようにする のようです。カーネル機能を悪意のあるコードに置き換えます。 Android/Linuxの場合:

  • それにより、攻撃者は電話を完全に制御できますか?たとえば、キーロガーやその他のマルウェアをインストールできますか?
  • 侵害されたデバイスが他のデバイスに対して同じ方法(ワームになる)でOTA攻撃を実行することを許可しますか?
  • これらの懸念は、SELinux、dm-verityなどの他のセキュリティ機能によって緩和されますか?

基本的に、私はパッチが適用されていない電話にとって このOTAの脆弱性 がどれほど重要であるか疑問に思っています。

15
z0r

それにより、攻撃者は電話を完全に制御できますか?たとえば、キーロガーやその他のマルウェアをインストールできますか?

これは可能です。権限チェック(ファイルアクセス、キーボードへのアクセスなど)はカーネル内で行われるため、カーネル内で実行されるコードは、これらのチェックを実行せずに、必要なアクションを直接呼び出すことができます。

侵害されたデバイスが他のデバイスに対して同じ方法(ワームになる)でOTA攻撃を実行することを許可しますか?

別のデバイスを危険にさらすために使用できる操作されたネットワークパケットを作成する機能など、一部のアクションにはカーネルアクセスが必要な場合があります。しかし、これはそのような攻撃に常にカーネルアクセスが必要であることを意味しません。つまり、ルートアクセスで通常十分であり、正確な攻撃によっては、通常のユーザープロセスでも実行できる場合があります。

これらの懸念は、SELinux、dm-verityなどの他のセキュリティ機能によって緩和されますか?

攻撃者がカーネルにアクセスすると、これらの手法は役に立ちません。ただし、攻撃者がカーネルにアクセスできないようにするために役立つ場合があります。しかし、それらが役立つかどうかは、正確な攻撃ベクトルに依存します。たとえば、特定のネットワークパケットによってトリガーされる可能性があるBroadcomネットワークドライバーの最近の脆弱性の場合、これらは役に立ちません。

17
Steffen Ullrich

「カーネルスペース」でコードを実行するということは、コードを ring スペースで実行することを意味します。言い換えれば、それは「完全なコントロールを持っている」という厳密な定義です。

唯一の例外は、ハイパーバイザーを実行している場合です。このような場合、仮想化されたOSのリング0でコードを実行しても、仮想化されたデバイスを完全に制御できます。そのためには、別のエスケープエクスプロイトが必要です。

21
Stephane