ネットワーク機器に使用されている、ユニバーサルプラグアンドプレイ(UPnP)のライブラリに、バッファオーバーフローの脆弱性が複数存在するとして、セキュリティ企業や機関が注意を呼びかけている。該当機器がインターネットに直接接続されている場合には、外部から攻撃を受け、クラッシュや任意のコードが実行されるおそれがある。
UPnPは、ネットワーク上の対応機器どうしが通信し、機器の設定を自動的に行う機能を提供するもの。このUPnPの実装に使われることの多いライブラリのひとつが、今月29日にアップデートされ(libupnp 1.6.18)、バッファオーバーフローを引き起こす深刻な脆弱性が8件、修正されたことが明らかになった。
ライブラリの最新版は、ユーザーが直接利用するものではなく、該当製品を製造しているメーカーがそれぞれの製品に適用した後、機器のファームウェアのアップデートとしてユーザーに提供される。該当製品については、現在確認を進めているところで、JVNやCERTの下記ページに、随時反映される予定だ。
■一般ユーザーへの影響と対策
問題となっている脆弱性は、修正版の提供に伴い公表されたもので、いまのところ悪用した攻撃の情報はないが、以下の条件がすべて揃うと外部から攻撃されるおそれがある。
・脆弱性のある機器を使用している
・その機器がインターネットに直接接続されている
・インターネット側からのUPnPを受け付ける
脆弱性を悪用して機器をクラッシュさせる攻撃は比較的容易だが、コード実行については個々の機器に合わせた攻撃を仕掛けなければならないため、攻撃成功のハードルは非常に高い。脆弱性自体には、深刻な問題を引き起こす可能性があるが、実際に起こる確率を考えると、それほど深刻にとらえる必要はない。
一般の方が使用している機器で、すべての攻撃条件が揃うものは、インターネット回線に直結されるルーターやモバイル製品だ。これらの機器にUPnP対応のものを使用している場合には、念のためインターネット側からのUPnPを受け付けてしまわないかどうかをチェックしていただきたい。
<簡単なチェック方法>
セキュリティ企業のRapid7社が提供する、下記「UPnP Check」のページを利用すると、インターネット回線に直結している機器が、インターネット側からのUPnPを受け付けてしまうかどうかを簡単にチェックできる。このページの「Scan My Router」をクリックし、「Congratulations! Your router did not respond to a UPnP discovery request.」と表示されれば、たとえ脆弱性があっても外部からは攻撃できない。ちなみに、直結した機器で操作した場合にはその機器が、ルーターを介して接続している機器から操作した場合にはルーターが、診断の対象となる。
<UPnP無効化の検討>
インターネット経由のUPnPを受け付けてしまう場合には、脆弱性の有無にかかわらずUPnPの無効化を検討していただきたい。UPnPは、メッセンジャーなどの双方向のコミュニケーションアプリが外部からの通信を待ち受ける際に、ルーターの通信ポートを開くためによく使われている。一般的なWebサイトの閲覧やメールの送受信には不要なので、待ち受けが必要なアプリを使用していない方は、UPnPを無効化しても影響はない。無効にする方法については、各機器のマニュアルを参照していただきたい。
なお、ルーターの内側(LAN側)に接続している機器については、ルーターが外部からの接続を遮断しているので、UPnPの脆弱性を突いた外部からの攻撃は受けない。
(2013/01/31 ネットセキュリティニュース)
【関連URL】
・UPnP Check[英文](Rapid7)
http://upnp-check.rapid7.com/
・Portable SDK for UPnP にバッファオーバーフローの脆弱性(JVN)
http://jvn.jp/cert/JVNVU90348117/
・Portable SDK for UPnP Devices (libupnp) contains multiple buffer overflows in SSDP[英文](CERT)
http://www.kb.cert.org/vuls/id/922681
・Whitepaper: Security Flaws in Universal Plug and Play: Unplug, Don't Play.[英文](Rapid7)
https://community.rapid7.com/docs/DOC-2150