無数のルータや「モノのインターネット(IoT)」用デバイスが、乗っ取りのリスクにさらされている可能性がある。スタックバッファオーバーフローを引き起こすセキュリティ上の不具合が存在するためだ。
SEC ConsultのVulnerability Labに所属する研究者のStefan Viehbock氏によると、この「CVE-2015-3036」という脆弱性があると、非認証の攻撃者がローカルネットワーク上でカーネルスタックバッファオーバーフローを引き起こすことが可能になり、これによって、サービス妨害(DoS)攻撃が行われたり、リモートコード実行が許可されたりする。さらに一部のルータ設定では、リモート攻撃が可能な場合もある。
SEC Consultのセキュリティアドバイザリによると、この脆弱性は「入力の妥当性の確認が不十分」なためにリモートからの悪用が可能であり、その場合には、過度に長いコンピュータ名を使うことで、「コンピュータ名」のカーネルスタックバッファをオーバーフローさせられるとしている。
そうなると、メモリ破損が発生し、そこからリモートコード実行につながる場合がある。Viehbock氏は次のように書いている。
「AESキーが静的であり、カーネルドライバだけでなく、『Windows』と『OS X』向けのクライアントソフトウェアにも使われていることから、認証が全く無意味になっている。接続開始の一環として、クライアントは自らのコンピュータ名を送信している」
「64文字よりも長い名前を指定することにより、そのコンピュータ名をソケットから受け取った時点で、スタックバッファがオーバーフローする。いともたやすく、90年代によく見られた、スタックバッファオーバーフローという脆弱性が再び起こる。サーバコードは全てカーネルモードで稼働されているので、これは『珍しい』リモートのカーネルスタックバッファオーバーフローである」
KCodesで開発されたNetUSBは、市販されている一般向けのルータの多くで使用されており、USB over IP機能を提供するために使われている。プリンタやフラッシュドライバといったUSBデバイスがLinuxベースのシステムに接続されていると、この技術を介して、TCPポート20005でのネットワークアクセスが許可される場合がある。
ルータやアクセスポイント、USB over IP専用機器は、このプロプライエタリソフトウェアを使用していることが多い。
Viehbock氏は、NetUSB機能は、テストを受けたデバイス全てで有効化されており、USBデバイスが接続されていない場合でも、サーバは依然として稼働したとしている。
TP-Link、D-Link、TRENDnet、NETGEAR、ZyXELのルータがこの影響を受けている対象として挙げられており、脆弱性の存在がファームウェアの最新バージョンで確認されている。TP-Linkは既に、同社のルータ製品の一部についてパッチをリリースしており、他社は5月末までにリリースを予定している。このほか、Allnet、IOGEAR、LevelOne、Western Digital、PCIなど多数の企業によるルータが影響を受けるとされている。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。