web-dev-qa-db-ja.com

ラップトップのWWANカードのセキュリティ

私のラップトップ用のWWANカード(このような here など)を購入することを考えています。USBテザリングよりも使いやすいからです。ただし、PCIe経由で接続されているようなカードに付随するセキュリティリスクが心配です。

カードで実行されているモデムファームウェアにセキュリティの脆弱性がある場合はどうなりますか?攻撃者が行う可能性のある最大のダメージはどれくらいですか?カードはホストシステムのメモリにアクセスできますか?

編集:私はLinuxを使用していますが、データシートによると、カードはWindows 10以外のすべてのシステムでUSB 3.0を使用しますが、PCIe/M.2スロットにはまだ差し込まれています。

4
jnsp

現代の複雑なPCIeデバイスは、リモートでの悪用を可能にする脆弱性を含むことが判明している および である大きなファームウェアを実行します。カードの脆弱性により、リモートの攻撃者がカード上で任意のコードを完全に実行し、ファームウェアの動作を変更する可能性があります。それでは、攻撃者がWWANカードに脆弱性を発見し、カード自体に対するコード実行権限を獲得したと想定しましょう。これで何ができますか?

DMA攻撃

PCIeデバイスが存在する場合、オペレーティングシステムはそれを構成し、通常 バスマスターイネーブルビット を設定します。これは、デバイスが任意のDMAを実行できるようにする機能です。リクエスト(任意のメモリ位置の読み取りと書き込み)。オペレーティングシステムには、最新のプロセッサが使用されている場合にこれを防ぐ方法があります。プロセッサのIOMMUは、異常な場所へのDMA要求をフィルタリングすることができます。 IOMMUが適切にサポートされて有効になっている場合、オペレーティングシステムカーネルは、DMAが許可される小さな隔離領域を設定します。 PCIeデバイスとカーネルは、その専用領域でデータを渡すことによって通信します。デバイスが他の場所に書き込もうとすると、IOMMUはそれをブロックします。

幸いにも、これを軽減することはかなり簡単です。あなたがしなければならないすべてはIOMMUが有効にされ、施行するように設定されていることを確認することです。これには、BIOSに DMAR変換テーブル が含まれている必要があります。これはACPIのコンポーネントで、IOMMUにどのデバイスのどのメモリ領域をDMA専用にするかを通知します。一部のシステム、特に特定のラップトップでは、DMARテーブルが破損し、保護を有効にできない場合があります。このため、一部のLinuxディストリビューションでは、デフォルトでIOMMUが無効になっています。 intel_iommu=onまたはAMD_iommu=forceブートパラメータを設定して有効にする必要があります。

カーネルドライバーの悪用

IOMMUが存在し、有効になっている場合、デバイスとカーネルは、DMAの書き込みと読み取りが許可されている専用のメモリ領域を使用してのみ通信できます。デバイスはデータ構造をカーネルに渡し、次に interrupt または関連する [〜#〜]を発行して、データを処理するようカーネルに指示しますmsi [〜#〜] 。このシグナルが発生すると、カーネルは割り込みハンドラを呼び出して、指定されたDMAバッファでデータを処理します。これには、この処理段階自体にバグがあるというリスクが伴います。カーネル内のコードは、最も特権のある保護リングであるリング0で実行されるため、 そのコードの脆弱性 は悲惨な場合があります。悪意のあるデータをDMAバッファーに入れて割り込みを発生させることにより脆弱性が引き起こされる可能性がある場合、IOMMUでさえ保護することができません。

カーネルドライバーのバグから保護するのはより困難です。使用する特定のWWANドライバーによって提供される攻撃対象領域を理解する必要があります。これには、カーネルソースコードを掘り下げる必要があります。ほとんどの場合、これは価値があるよりも厄介です。それができない場合は、Xenなどのハイパーバイザーを使用してカーネルドライバーを仮想化できる可能性があります。これは、 Qubes OS によって使用される手法であり、各ハードウェアコンポーネントにハイパーバイザーベースの強力な分離を提供するオペレーティングシステムです。それが使用するような分離手法の場合、カーネルドライバーの脆弱性の影響は、ネットワークの分離に使用されるVMを危うくするものに限定されます。

ネットワーク乱用

WWANデバイスは当然、NICとして動作し、パケットをネットワークに送受信します。脆弱なNICで見過ごされがちな問題は、これを侵害した攻撃者がネットワーク上の特権的な位置にいるという事実です。着信パケットまたは発信パケットを自由に変更でき、中間者攻撃を簡単に実行できます。単純な攻撃の方法は、ダウンロードしたアップデートまたは実行可能ファイルを悪意のあるバージョンに置き換えることです。メモリへの特権アクセスがなくても、侵害されたNICは大きな損害を与える可能性があります。

この脅威から保護するには、ルーターなどのネットワーク上の特権的な位置にいる他のMITM攻撃者から保護するのと同じ脅威モデルが必要です。たとえば、ローカルハードウェアファイアウォールで認証されたエンドツーエンドの暗号化は、MITM攻撃を実行しようとする侵害されたNICによって引き起こされる可能性のある損害を大幅に軽減するのに十分です。これにより、NICが実行できる最も悪意のあるアクションは、パフォーマンスの低下またはサービスの拒否です。

3
forest

ファームウェアは他の軽くテストされたソフトウェアよりも安全ではないため、モデムファームウェアにはほぼ確実に脆弱性があります。

カードが悪用された場合、カードはDMA=攻撃に従事できる可能性が非常に高く、このようなランダムカードが悪用される確率とLinux対応のマルウェアはどちらも比較的小さいように見えますあなたは国民国家の攻撃者の注意を引く。

この論文 は言う

PCI Expressペリフェラルは、DMAリクエストを介して、カーネルメモリ領域でも、プロセッサを制御することなく、他のペリフェラルメモリおよびメインRAMにアクセスできます。これにより、この脅威を軽減するために、IntelはIOMMUハードウェアコンポーネントを統合して、PCI Expressメッセージをフィルタリングしました。

そして、パフォーマンスについての競合があることを説明します。 IOMMUの構成が堅牢にテストされていない可能性があります。

3
Adam Shostack