UPnPは「無効」に設定すべき?という話について調査してみた情報科学屋さんを目指す人のメモ方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。(79)スポンサーリンク「「UPnP(libupnp)に脆弱性・WANから攻撃可能」という話の中身を調査してみた」とう記事を書きました。ここでは、ニュースで騒がれている脆弱性は、「WAN側にUPnPのサービスを公開しなければ防げる」という話になりました。実は今回のニュース以前から、「WAN側にUPnPのサービスを公開していなくてもUPnPを悪用される危険性がある」脆弱性が指摘されていました。「WAN側のUPnPのサービスを公開しないようにする」のは今回のニュースの問題(WANからの攻撃)を防ぐためには有効であっても、そもそも別の脆弱性があるため「UPnPを無効にすべき」、なようなのです。この危険性が公開されたのは2008年1月で丸4年前(そもそも度が高すぎる)。「もしかしたら今は大丈夫かも」という可能性もあるため、追跡調査してみました。さんにご指摘頂きました。ありがとうございます。参考スポンサーリンクUPnPの特徴UPnPには認証機能がないので、「UPnPを有効」にした状態は、簡単に言えば「ルータの設定を書き換え可能」な状態といえます。昨日の記事に書いたように、libupnpの脆弱性が無くても、外部(WAN側)にUPnPのサービスを公開している時点で危険だったわけです。LAN側からならもちろん悪用可能もちろん、内部(LAN側)からなら、どんどん設定を変更できる、ということになります。LAN内のコンピュータは全て信頼することが前提なのです。(引用元)したがって、昨日の記事で言う「WWAN側でUPnPのSSDPメッセージを受け付けなければいい」というのは、あくまで「WANから攻撃されないためには」という話であって、LAN側からの攻撃は当然気を付けなければなりません。それはlibupnpの脆弱性が無かったとしても、です。簡単な例では、不特定多数が使うカフェなどでは確実にUPnPをOFFにすべきでしょう。誰も悪さをする家族が居ない家庭内のUPnPデバイスなら、そのままで大丈夫なのでしょうか。悪意のあるWebサイトにアクセスしてしまったら実は、悪意のあるサイトのFlashを実行してしまうことによってUPnPにアクセスされてしまい、設定を書き換えられてしまう危険性があるのです。端末の利用者(家族など)に悪意が無くても、悪意のあるWebサイトにアクセスするだけで、ルーターの(UPnPで設定可能な)設定項目が書き換えられてしまう脆弱性があるようなのです。どんな問題が起こるの?例えば、DNSを書き換えられてしまう危険性があります(※UPnPのプロトコルを叩けるデバイスだからといって、必ずしもDNSの設定を変更できるとは限らないようです→追記D参照)。Wikipedia)。わかりやすい例だと、銀行のホームページだと思っていたら実は偽物だった、アドレスは間違ってないのに><ということが発生し得ます。WAN側IPアドレスを取得され、ポートマップを書き換えられてしまうと、外部から内部のPCの好きなポートにアクセスできるようになってしまいます(この話は後で出てきます)。LANのコンピュータにポートスキャンすることも可能、というわけです。その他UPnPの仕様的に具体的にできることとして、例のFAQにはこんなことが書かれています。etc.(引用元)UPnPの「プロトコル自体」の問題さて、今回はUPnPのどんな実装の問題なのでしょうか、それとも、ブラウザの問題なのでしょうか。実はどちらでもありません。「「UPnP(libupnp)に脆弱性・WANから攻撃可能」という話の中身を調査してみた」で紹介したRAPID7のホワイトペーパーにも、この脆弱性が触れられていました。protocol」つまり、実装ではなくプロトコル自体の問題なのです。仕様そのもの問題であるから、特に厄介なようなのです(この「プロトコルの問題」こそが先ほど紹介した「認証機能がない」ことです)。書いたFAQにいろいろと質問形式で書かれています。なにかフラッシュの脆弱性を利用しているの?→いいえ。←実質Flashの脆弱性だったようなもの(←詳細は追記Bへ)特定ブラウザの特定バージョンが必要な攻撃なの?→いいえ特定のOSじゃないと攻撃できないの?→いいえ認証画面とかあるでしょ?→UPnPの仕様的にないよFLASHをアンインストールすれば!→FLASH使わない方法も出てきそうだよ(←これについても追記Bへ)とても怖いことが書かれています。実際調べてみると、この問題が明らかになった2008年当時の記事が見つかります。シマンテックでは、同攻撃について解析。その結果、この攻撃手法は強力で、かつ広く知られているとして、影響が非常に大きいと判断。今回、改めて警告した。シマンテックでは、この手法を使った実際の攻撃は確認していないとしながらも、もしこの攻撃が出回るようになったら、深刻な事態を招くだろうと結んでいる。エンタープライズいかにも危険な感じですね。他にも、いろいろな記事が見つかります。UPnPルーターは危険!?(なんだかなぜか最近見慣れてきた)脆弱性情報もあります。有効になっている場合の問題ここまでの情報を読むと、UPnPは危険すぎて無効が必須!である気がしてきます。devices適当に勢いを付ければ「やばい!UPnPがデフォルトでONのルーターが複数あるんだってよ!!」といった具合です。実際に脆弱性情報のページ(US-CERT)には、こんな対策が書かれています(Workaraound・ユーザ向け)。ネットワーク機器のUPnPを無効化するコンピュータのUPnP機能を無効化するFirefoxのNoScriptで脆弱性を避けられるかも(→こんなのあり?そしてFirefox強制)Firewallを使って1900/udpと2869/tcpを塞ぐ(→ノード毎にUPnPを無効化しているに近い。WAN側のポートを閉じるのとはわけが違う)このように、結果としてUPnPの機能を利用しない(無効化する)ことが解決策となっています。先ほど紹介した、脆弱性発覚直後に公開されたの多くのサイトでも、「UPnPの無効化」を第一に掲げていました。結局のところ、2008年1月時点で「UPnPは無効化すべき」状況でした。これをlibupnpのニュースがあった昨日から4年前を振り返ってみれば「UPnPを有効にしておくのは危険!というそもそも論」になるわけです。結論1この後もこのブログエントリは続くのですが、とりあえずここまでの情報を見ただけで、「UPnP自体の仕様の問題だし、FAQにもいろいろ書いてあったし、これは問答無用でUPnPは無効化するべきだ」と結論づけてもよい気がします。その後どうなったのかしかし、もしかしたらひょっとするとこんなに状況が変わらなそうな雰囲気でも、状況が突如改善された「かも」しれないので、調査してみます。9のUpdateにより、対策がされたことが書いてあります(しかしリンクが切れてる。(引用元)ちょっともともとの攻撃について詳しく理解していないので、この対策の効果のほどを説明できないのですが、ろくに他のサイトに書かれていないものの、何かしらの対策になったのは確かだと思います。(Flashによる攻撃はこの変更でふさがれたようです→追記Bへ)しかし、この後紹介しますが、この対策以降もベンダーが対応情報を公開するものの、Flashアップデートの話題に触れないことから、やはり解決になっていない、もしくは、Flashを対策するだけではダメ、という先ほど紹介したFAQの意見が有力なのではないかと想像できます。ルーターベンダーの対策情報この脆弱性の発覚から2カ月から1年弱の間に、複数のルーターベンダーが発表していることが調べると分かってきました(つまり、発覚直後のニュースでは分からない)。対策の結果、どうなのか、見てみます。NATトラバーサル)が意図せず行われる可能性はありますが、設定が変更されることはありません。Security)そもそもUPnPの仕様をフルセットでは実装していない(※追記Aへ)という意外なことが書いてありました。「WAN側IPアドレス・WAN側のインターフェースの状態・ポートマッピングのエントリ・IPマスカレードの有効or無効」が読み取り可能なだけで、設定変更はできないようです。ポートマッピングは設定されてしまう恐れがあるため、デフォルトでUPnPがオフのファームウェアが新しく配布されたようです。先ほど述べたように、やはりこの能力(WAN側IPアドレス取得・ポートマッピング変更)だけでも十分危険であることがわかります。UPnP無効化が推奨です(ポートマップまで変更不能にしてしまうとUPnPとして使いものにならなくなっちゃう?)。※これがきっかけでUPnPがヤマハではデフォルトでOFFになったようですね。↓このTweetがつい昨日のTweetであり、最新の内容であることに注意。UPnPは仕様レベルで遠隔操作される脆弱性が随分前に発見されてて、不使用を推奨してます。2013年1月30日NEC(2008年6月)「ネットワーク機器におけるUPnP機能の脆弱性」にいろいろ書かれており、こちらもヤマハと同様、設定情報が参照される恐れはあるものの、設定の変更はできない、ということになっています。IP38XシリーズにおけるUPnP機能は一部の機能のみ有効であるため、ルータの設定情報などが参照される恐れはありますが、設定の変更を行うことはできません。(引用元)ただ、なぜか「対策済みファームウェア」が配布されており、その効果が書いてないため、よく分かりません。ファームウェアのリンクが、なんとあのヤマハのページになっているのです。仕組みがヤマハに似ている・・・ということで、このページには書いてないものの、実は「ポートマップは変更可能」で「デフォルトでUPnPがオフになるファームウェアを配布」だと思われます。いうか、このページ後半の「意図しないポートマッピングの存在を調べる方法」がまるっきりヤマハのページと同じです。「UPnPの有効化は危険」だと言えるでしょう。値を持つ事により、セキュリティを強化します。(ルータ関連製品におけるUPnP機能のセキュリティー強化のお知らせ)「UPnPの無効化」という対策以外に、「対策FW(=ファームウェア)」を入れて対策してください、ということになっています。UPnPについて詳しくないので、詳しくどういう仕組みだか分かりませんが、セキュリティが強化されているようです。対策FWのアップデートを推奨致します。」とも書いてあるので、やはり困らないのなら「無効化が一番」ということだと思われます(Messengerが使えなくなった!などの混乱を避けるためかと)。Telesis(2008年10月)本脆弱性はUPnPの仕様上の問題です。特定の実装に依存した問題ではありません。第三者からの攻撃を受けるような環境下では、UPnP機能を無効にして下さい。下記製品はUPnP機能をサポートしております。UPnP機能を有効にした場合、当該脆弱性に該当致します。弊社製品の場合、UPnP機能はDefault(初期状態)で無効になっております。第三者からの攻撃を受けるような環境下では、UPnP機能を無効にして下さい。(サポート|セキュリティ・脆弱性について)いろいろ書かれていますが、「デフォルトで無効」「有効にしたら危険」ということのようです(第三者からの攻撃を受けるような環境←Flashを利用した攻撃もこれに含まれるかと)。その他ベンダーとりあえず見つけられたのはこのあたりです。これを見る限り、UPnPを無効化せずに攻撃をシャットアウトするような対策はなく、引き続きUPnPを有効にするのは危険であるといえそうです。最近この話題に触れているサイト最後に、最近この脆弱性に触れたサイトを探してみました。(引用元)やはり厳しそうです。冒頭で紹介したホワイトペーパーですが、ここに特に注意書きもなくこの脆弱性が紹介されていたため、ちょっと未修正度UPです。それはあまり参考にならないとして、このホワイトペーパーには、今回注目した脆弱性以外にも、UPnPの脆弱性発見の歴史が掲載されています。結論2以上のように2008年1月に発覚したFlashを使ったUPnPの脆弱性は、(Flashからの攻撃は防げた可能性があるものの、FAQにあったように仕様自体の問題で実装の脆弱性を突いた攻撃ではないため)未だに注意すべきものであると推測されます。昨日のニュースの話からしたら本当にそもそも論なのですが、「結論1」でも述べたように、やはり「UPnPは無効化した方が良さそう」です。それにしても、「あの脆弱性は今」みたいな感じで詳しい人のの話は公開されないのかなぁ。公開されたとして、「Flashの脆弱性はふさがれていました、以上。大丈夫」、とかだとまたややこしいことになりますが。前の記事の感想に「WAN側にUPnPを公開していなければ大丈夫そう」「大したことじゃなさそう」というのが見受けられましたが、それについては、「今回のニュースで取り上げられたWANから攻撃、というのは防げる。そもそもUPnPをLAN側から攻撃できる脆弱性があり、(調べた範囲では)解決したのかはっきりしていないので、それも含めると大丈夫じゃない可能性がある。本当にUPnPが必要か考えて利用するべきかも。」とコメントしたいと思います。いつも有益な記事、参考にさせてもらってます。ところで、ルータ製品がUPnPの一部の機能のみ実装というのは、IGD機能のみという至極当たり前の話なのかなと感じました。2013年1月31日というリプライをいただきました。用の仕様を実装した」ということを意味しているようです。Forum」に仕様が掲載されています。追記B(「この脆弱性の厄介さについて」の文章と「Flashの対策情報(2008年4月)」の文章からリンク)「UPnPの設定変更をFlashから行うやつって今でも出来んのかという話」に、「Flashの対策情報(2008年4月)」の章で紹介したセキュリティアップデートについて書いてあります。このアップデートで、Flash経由での攻撃は塞がれたようです。他の手段ならどうなのか、ということについても紹介されています。いう穴があるんなら塞いだほうがいいし、UPnPに関してはブラウザで悪意のあるURLを開いただけ、では無理で「もうちょい強い権限を持つアプリケーションからじゃないと変更できない」と考えてよさそうだ。(引用元)とりあえず重要そうなところを引用しましたが、詳細は引用元へどうぞ。追記Cちょっと思い出したので、ついでにひとつ記事を紹介しておきます。Community」こちらはWebブラウザ経由の話ではなく(重要・誤解しないで)、Zlob.Pというトロイの木馬の挙動を紹介しており、途中でUPnPの機能を利用しています。手順が細かく書いてあって、雰囲気がつかめてなんだか勉強になりました。追記DGNUCITIZENのページを参考に、本文中に「例えば、DNSを書き換えられてしまう危険性があります」と記述しました。これは「UPnPのプロトコルを叩ける、ならば、DNSの設定を変更できる」と解釈できます。「ルーターがUPnPに対応しているから、DNS設定が書き換えられてしまう」という文があるとすれば、それは間違い、となります。以下に、「実装次第」という話についての詳細を書いておきます。IGD」というプロファイルが定義されています。中に、サブプロファイルがいくつか定義されており、そのひとつに「LANHostConfigManagement」というプロファイルがあるようです。このプロファイルに、DNSの設定を書き換えられる「SetDNSServer」「DeleteDNSServer」「SetIPRouter」「DeleteIPRouter」などのメソッドが定義されており、これを使うことで、DNSの設定が書き換えられるようです。該当箇所の最後にこのように記述されています。確認しておくに越したことはありません。to)」って感じになると思います。「DNSの設定をUPnPの機能から変更できるのか」は、「このプロファイルを実装しているかどうかという実装次第」のようです(サブプロファイルが定義されていることと、そのサブプロファイルが実装されていることとは別々に考えないといけない)。(引用元)と記述されていました。17:10初めまして。某社製ルーターとセットになっていた安いプランでインターネット接続をしています。貴ブログのこの記事に書かれていた製品でファームウェアアップデート済ですがUPnPは有効になっていました。現在でもプロバイダによってはセット販売されています。周囲の使用状況を見るに、初期パスワード自体はセキュリティ度の高いものが設定されているため初期設定のまま他は設定画面すら見ずに使っている方の方が多そうです。会社側が対策していると書いていても結構対策されていないのでは...と思いました。余談ですが、説明書を分厚くしても読まない人が多いからか如何に簡単に設定するか、だけに重きが置かれていて詳細を確認するためにはネット接続必要、用語を見るにはネット接続必要、で本当にセキュリティというのは個々の勉強と判断なんだなあと思わされる次第です。03:37そもそも、FLASHが本当にUPNPなルータと通信できるかについて検証した形跡が無いんですが。03:40と思ったら追記Bに書いてあった。無効にすべきじゃないじゃん。設定の変更方法などについて、解説記事をよく書いています。自分が困ったことをブログに書けば、次に困る人の参考になって、みんながみんな同じ苦労をせずに済む、というのが原点です。最近の関心は、スマホやパソコンが苦手な人の行動や思考、そしてそんな人を手助けする方法です。