あらためてURGENT/11の11個の脆弱性を確認しておこう。
特に、IPnetが抱える問題がよく分かるのは、1.のIPのオプションフィールドに関する脆弱性と、2.〜5.のTCPの緊急ポインタフィールドに関する脆弱性だろう。
1.の脆弱性は、IPv4パケットを処理する際に発生する問題だ。ネットワークでデータを送信するとき、送信元や宛先の情報などはTCPやIPなど各層のヘッダとして付加される。IPヘッダは、宛先に関する情報を担当する。関連情報はフィールドと呼ばれる指定の場所に格納されるが、その他フィールドが用意されていない付加的な機能は、「オプション」フィールドを使用することになっている。経由させたいルーターを指定する「始点経路制御オプション(ソースルーティング)」も、その1つだ。
もっとも、送信元IPアドレスを詐称した上で不正なルーターを必ず経由するよう標的にパケットを送信、返ってきた情報を悪用する「IPソースルーティング攻撃」が可能であることから、始点経路制御オプションは処理しないといった対策をとるのが一般的だ。それがIPnetでは行われていなかった。
さらに、パケットを処理する際に何らかのエラーが発生した場合、失敗した旨を伝えるICMPエラーパケットが生成され、送信元に返される。このときオプションフィールドの一部(ソースルーティングなど)がコピーされ、ICMPエラーパケットと一緒に返されるわけだが、IPnetではエラーのあるパケットをフル解析しないうちにICMPエラーパケットをオプションフィールドのコピー付きで返そうとしてしまう。コピーされるオプションが大きすぎても、そのままコピーする。結果、スタックオーバーフローが発生し、任意のコードが実行可能な状態に陥るというわけだ。
アーミス リサーチャーのドール・ズスマン(Dor Zusman)氏は「幸いなことに、通常はパケットを最初に受け取ったルーターが問題ありとして破棄してくれるので、インターネット越しの攻撃は成り立たない」と述べる一方で、「攻撃者がLAN内にいて、しかもブロードキャストパケットでも同様の問題を引き起こすことが可能なことから、パケット1つで複数のVxWorksデバイスを同時に落とすことができる」と言及した。
その例として、講演では病室の患者の横に配置される生態情報モニターを持参し、実際に攻撃を実行。心拍数を0表示に変えたり、画面を「Black Hat USA 2019」に上書きしたり、コンピュータゲーム「Doom」の画面を表示したりと、ハッキングできることを実演した。複数のデバイスを乗っ取って、例えば「WannaCry」のようなランサムウェアを感染させるといった悪用も可能だ。
Copyright © ITmedia, Inc. All Rights Reserved.