検索
特集

VxWorksの脆弱性「URGENT/11」が浮き彫りにしたTCP/IPスタックの“残念な実装”IoTセキュリティ(2/4 ページ)

20億個以上のデバイスに用いられている、ウインドリバーのRTOS「VxWorks」のTCP/IPスタック「IPnet」で発見された11個の脆弱性「URGENT/11」。URGENT/11を発見したIoTセキュリティベンダーのアーミスのリサーチャーが「Black Hat USA 2019」で講演し、URGENT/11やTCP/IPスタックの実装問題について説明した。

Share
Tweet
LINE
Hatena

IPnetのIPオプション処理の不備に起因する脆弱性

 あらためてURGENT/11の11個の脆弱性を確認しておこう。

  1. IPv4パケットのIPオプションを解析する際にスタックオーバーフローが発生する脆弱性(CVE-2019-12256)
  2. TCPの緊急ポインタが0のとき整数オーバーフローが発生する脆弱性(CVE-2019-12255)
  3. 細工されたTCP-AOオプションによってTCPの緊急ポインタが混乱状態に陥る脆弱性(CVE-2019-12260)
  4. リモートホストに接続するときTCPの緊急ポインタが混乱状態に陥る脆弱性(CVE-2019-12261)
  5. 競合が発生することでTCPの緊急ポインタが混乱状態に陥る脆弱性(CVE-2019-12263)
  6. VxWorksのDHCPクライアント、ipdhcpcでDHCP Offer/ACKの解析時にヒープオーバーフローが発生する脆弱性(CVE-2019-12257)
  7. 無効なTCPオプションヘッダによってTCP接続が切断、DoSを実行可能な脆弱性(CVE-2019-12258)
  8. リバースARPの論理エラーが原因でDoS攻撃またはメモリ枯渇攻撃を実行可能にする脆弱性(CVE-2019-12262)
  9. ipdhcpcによるIPv4割り当ての論理エラーで通信切断などを引き起こすことが可能な脆弱性(CVE-2019-12264)
  10. 細工したDHCP応答パケットでIGMP解析時にNULLデリファレンス(間接参照)が発生、DoS攻撃可能な状態に陥る脆弱性(CVE-2019-12259)
  11. 分割されたIPパケットをリアセンブリする機能についてVxWorksの一部関数が受け付けず、IGMPv3メンバーシップレポート送信時にIGMPデータリークを起こしてしまう脆弱性(CVE-2019-12265)

 特に、IPnetが抱える問題がよく分かるのは、1.のIPのオプションフィールドに関する脆弱性と、2.〜5.のTCPの緊急ポインタフィールドに関する脆弱性だろう。

 1.の脆弱性は、IPv4パケットを処理する際に発生する問題だ。ネットワークでデータを送信するとき、送信元や宛先の情報などはTCPやIPなど各層のヘッダとして付加される。IPヘッダは、宛先に関する情報を担当する。関連情報はフィールドと呼ばれる指定の場所に格納されるが、その他フィールドが用意されていない付加的な機能は、「オプション」フィールドを使用することになっている。経由させたいルーターを指定する「始点経路制御オプション(ソースルーティング)」も、その1つだ。

 もっとも、送信元IPアドレスを詐称した上で不正なルーターを必ず経由するよう標的にパケットを送信、返ってきた情報を悪用する「IPソースルーティング攻撃」が可能であることから、始点経路制御オプションは処理しないといった対策をとるのが一般的だ。それがIPnetでは行われていなかった。

 さらに、パケットを処理する際に何らかのエラーが発生した場合、失敗した旨を伝えるICMPエラーパケットが生成され、送信元に返される。このときオプションフィールドの一部(ソースルーティングなど)がコピーされ、ICMPエラーパケットと一緒に返されるわけだが、IPnetではエラーのあるパケットをフル解析しないうちにICMPエラーパケットをオプションフィールドのコピー付きで返そうとしてしまう。コピーされるオプションが大きすぎても、そのままコピーする。結果、スタックオーバーフローが発生し、任意のコードが実行可能な状態に陥るというわけだ。

エラー発生時に生成されるICMPエラーパケット
エラー発生時に生成されるICMPエラーパケット(クリックで拡大) 出典:アーミス

 アーミス リサーチャーのドール・ズスマン(Dor Zusman)氏は「幸いなことに、通常はパケットを最初に受け取ったルーターが問題ありとして破棄してくれるので、インターネット越しの攻撃は成り立たない」と述べる一方で、「攻撃者がLAN内にいて、しかもブロードキャストパケットでも同様の問題を引き起こすことが可能なことから、パケット1つで複数のVxWorksデバイスを同時に落とすことができる」と言及した。

 その例として、講演では病室の患者の横に配置される生態情報モニターを持参し、実際に攻撃を実行。心拍数を0表示に変えたり、画面を「Black Hat USA 2019」に上書きしたり、コンピュータゲーム「Doom」の画面を表示したりと、ハッキングできることを実演した。複数のデバイスを乗っ取って、例えば「WannaCry」のようなランサムウェアを感染させるといった悪用も可能だ。

VxWorksの脆弱性を突いた攻撃の実演デモの様子VxWorksの脆弱性を突いた攻撃の実演デモの様子 VxWorksの脆弱性を突いた攻撃の実演デモの様子(クリックで拡大)
生態情報モニターへのサイバー攻撃のデモ動画(クリックで再生) 出典:アーミス

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る