Linuxは、Windowsの悪名高い脆弱なRNDISプロトコルをダンプしようとしています。
また始まりました。Linuxの開発者たちは、再びLinuxからMicrosoftのリモートネットワークドライバーインターフェイス仕様を取り除こうとしています。なぜそれが複雑なのかをご説明します。
マイクロソフトの独自プロトコル、リモートネットワークドライバーインターフェイス仕様(RNDIS)は、良いアイデアから始まりました。これにより、ハードウェアベンダーはゼロから構築することなく、USBデバイスにネットワーキングサポートを追加できます。しかし、1つの小さな問題がありました。RNDISには話すべきセキュリティがありません。
Linux FoundationのフェローであるGreg Kroah-Hartmanが2022年11月にLinux Kernel Mailing List(LKML)に書いたように、「Microsoft RNDISプロトコルは、設計上、信頼できないホストやデバイスを使用するシステムで不安定で脆弱です。このプロトコルは安全にすることが不可能なため、すべてのRNDISドライバーを無効にして、誰も再び使用できないようにしてください。」
彼は別のメッセージで「このプロトコルは信頼できないデバイスと一緒に使用するために設計されたものではありませんでした。私たちは、システムに接続するUSBデバイスを信頼していたときに、それを作成し、サポートを実装しました。また、私たちのUSBデバイスを接続したシステムも信頼していました。」と付け加えました。
もはやそうではありません。クロア=ハートマンは言いました。「今日では、信頼できないホストやデバイスがあるため、このプロトコルを廃止する時期です。パッチのコメントでも言及したように、Androidは何年も前にそのデバイスでこれを無効にしましたが、機能に影響はありませんでした。」
それは十分単純です。では、なぜ私たちは今日もそれについて話しているのですか?
起こったことは、ユーザーがこれが彼らのネットワークUSBテザリングサポートを妨害することを心配し始めたことです。実際、あなたが思っているよりも多くの人々がUSBセルラー、イーサネット、およびWi-Fiデバイスを介してネットワーク接続をしていたことが分かりました。
セキュリティ?それは何ですか?
Kroah-Hartmanが2023年1月のLKMLメッセージで言ったように、「これを使用するシステムは、常に接続されているデバイスが「信頼できる」と信頼しなければならないと思います。必要なときに「ロックダウン」されたシステムにアクセスするための簡単な方法のようです。」
彼は間違っていません。セキュリティに敏感な企業が施設内にUSB接続デバイスを許可しない理由があり、これはその一つです。
しかし今、Linuxに組み込まれたWindowsセキュリティの脆弱性にうんざりしているKroah-Hartmanは、もう限界だと決めました。彼はLinuxのGitリポジトリ内のすべてのRNDISプロトコルドライバーを無効にしました。
これは、RNDISコードがまだLinuxカーネルに存在する間に、この新しいパッチを使用してLinuxをビルドしようとすると、すべてのRNDISドライバーが壊れ、ビルドできないことを意味します。これは、LinuxからRNDISを削除する一歩手前の状態です。
USB経由でネットワークをサポートするもう一つの方法があります。それがネットワークコントロールモデル(NCM)プロトコルです。このプロトコルの利点は、安全であり、すでにLinuxでサポートされていることです。
ただし、このアプローチはGoogleのLinuxカーネルネットワーキング開発者であるマチェイ・ゼンチコフスキーを心配させています。なぜなら、CDC-ECMはAndroidフォンではあまりサポートされていないからです。彼が知っている限り、USBテザリングのためにRNDISではなくNCMに切り替えた唯一のAndroidフォンは「Google Pixel 6以上」と新しいPixelスマートフォンです。
そして、それは問題です。なぜなら、人々はRNDISドライバーを使ってLinuxラップトップをAndroid電話にUSBテザリングするからです。したがって、ベンチコフスキーによれば、「これにより、*大部分*のAndroid電話からのUSBテザリングが破損します。おそらく、現在製造され販売されているほとんどのものも含まれます。」
それでは、一方にセキュリティの懸念、もう一方に相互運用性の懸念がある中、次に何が起こるのでしょうか?このパッチがLinux 6.7カーネルのマージウィンドウに提出されるのか、次のLinuxのバージョンに組み込まれるのか、引き続き注目してください。
