web-dev-qa-db-ja.com

UPnPはまだ安全ではありませんか?

今日の世界では、最新のソフトウェア/ファームウェアに適切に更新された機器で、UPnPはまだ安全ではありませんか、それとも脆弱性は修正されましたか?

21
Daniel

とにかくUPnPが安全でない/されたのはなぜですか?

PnPの悪い名前は、2011年から2013年に見つかった実装の問題に由来します。これは、電子メールが安全ではなく、数年前に複数の電子メールクライアントで一般的な問題が見つかったため無効にする必要があると言っているようなものです。

皆がそう言ったので、私はいつもUPnPを無効にしました。調べたところ、ばかげていることがわかりました。 UPnPが新しいとき、一部のデバイスはインターネットからの構成を許可することが判明しました。誰でもそのポートを開くことができます。それ以来、ルーターベンダーはソフトウェアを修正するために十分な時間を費やしてきました。セキュリティは2011年よりもはるかに大きくなっているため(最初のiPadがリリースされた頃です)、ベンダーはセキュリティの問題にもっと気づいています。古いルーターの場合、そもそも脆弱であった場合、おそらくファームウェアのアップデートがかなり前にリリースされています。

UPnPの目的は何ですか?

UPnPは、IPアドレスが少なすぎることによって生じる問題の解決策です。誰もが自分のものを持つことができるわけではないので、私たちはそれらを共有する必要があります。これを行う方法は、ネットワークアドレス変換(NAT)によるものです。コンシューマールーターは、ローカルネットワーク(たとえば、192.168.x.x)とパブリックIPアドレス(たとえば、278.14.1.48)の間で変換を行います。ファイル共有、通話またはビデオ通話、更新の配布(Windows、Google Play)、匿名ネットワーク、復元力のあるメッシュネットワークなどのピアツーピアアプリケーションはすべて、NATを介して機能できないため、特定のアプリケーションに対してそれを無効にする必要があります(ポート転送)、または回避策(UDP/TCPホールパンチング、STUNなど)を見つけます。 UPnPプロトコルは、アプリケーションがNAT=アプリケーションに対して無効にすることをルーターに通知するために使用するものです。基本的には自動ポート転送です。

UPnPを有効にしないと、ピアツーピア通信を行うことができず、回避策が必要になります。ユーザーから利益を得ることを希望するソフトウェア開発者は、サーバーの実行にこれらの回避策を機能させるためにお金を費やしますが、フリーソフトウェアはそのような贅沢さを持たず、UPnPがないか、ポートを手動で転送しないと機能しません。

では、なぜ他の人が「はい、設計上安全ではない」と言っているのはなぜですか。

(ネタバレ:間違っている)

NATはIPv4に遍在しているため、多くの人々がセキュリティに依存しています。ネットワーク内の個々のホストに到達できないため、外部から脆弱性を悪用することはできず、人々はセキュリティをオフにし始めました彼らはLANの内部で対策を講じています。彼らはセキュリティ更新の実行を怠り、パスワードなしでファイル共有を開きました(nobodyがラップトップをLANの外部に持って行くためですよね?)。今、あなたは必要ファイアウォールなど、ラップトップの外側にあるファイアウォールです。これをUPnPがポートを開くことができるという考えと組み合わせると、以前に投票された回答などの誤った情報を含む回答。

自問してみてください。ポートを開くためにルーターにUPnP要求を送信するものは何ですか。ネットワーク内にある必要があります。たとえば、マルウェアはルーターにそれを開くように指示する可能性があります。酷いもんだ!しかし、ネットワーク上でマルウェアが実行されていて、ラップトップが安全でない場合は、待ってください。はい、そうです。

マルウェアはローカルデバイスに到達するためにUPnPを必要としません:UPnPを実行できるようにするには、マルウェアがすでにデバイス上または内部にある必要がありますネットワークなので、UPnPを使用せずに、それ自体で内部デバイスに到達できます。

または、友人がマルウェアに感染したスマートフォンを持ってくるとどうなりますか?他のデバイスに対してUPnPを実行してそれらを公開するようにルーターに指示する可能性があります。確かにそうですが、マルウェアはすでにネットワーク内にあり、ローカルデバイスに直接到達する可能性があります。

結論

UPnPは、ルーターが古くない場合、またはファームウェアのアップデートをインストールした場合(または最初から脆弱性がなかった場合)でも有効にできます。

ルーターが脆弱であることがわかっている場合(および更新のインストールを拒否した場合、またはベンダーが更新をリリースしなかった場合)でも、ネットワーク内のすべてのデバイスにセキュリティ更新がインストールされていれば問題ありません。とにかくそれを行う必要があります。アクセスするすべてのWebサイトがブラウザーのJavaScriptを介してローカルデバイスを攻撃できるため(特に、ローカルデバイスがブラインドHTTPリクエストを介して悪用される可能性がある場合)、WiFiにアクセスできるすべてのユーザー(パスワードの解読など)を使用します。それらをハックすることもできます。注意:これには、プリンター、IPカメラ、その他の忘れられがちな組み込みコンピューターが含まれます。

19
Luc

はい、UPnPは仕様による安全ではありません。

UPnPは、ファイアウォールのポートを自動的に開くように設計されたプロトコルであり、外部のユーザーが、ファイアウォールによって保護されているローカルマシン上のホストサーバーにアクセスできるようにします。

UPnPは、ドアにロックを取り付け、鍵穴に鍵を置いたようなものです。では、ロックを取り付ける意味は何でしょうか。

これが最初から悪いプロトコルである理由を説明せずに、言うまでもなく、192.168.0.1/192.168.1.1に行くことができず、必要な場合に単純なポートを転送することさえできない「初心者」を支援するためです。

UPnPにより、ファイアウォールは事実上役に立たなくなります。トロイの木馬は、リスニングIRCサーバー、RATサーバー、またはその他の不審なものをセットアップし、ファイアウォールにポートを開くように要求する可能性があります。

UPnPをサポートするルーターを使用している場合は、プロトコルをすぐに無効にします。私はまだUPnPの無効化を許可しないルーターに出くわしていません。そのため、すべてのルーターでそれが可能になるはずです。カスタマー管理が完全に無効になっているISPロックダウンルーターである可能性がありますが、ISPカスタマーサービスにUPnPを無効にするよう依頼できるはずです。

17

私は少し拡大して、セバスチャン・ニールセンが言ったことを明確にすべきだと思います。

UPnPは、ファイアウォールまたはルーターNAT/PATの背後にあるデバイスのオペレーティングシステムと同じくらい安全です。

Linux、BSD、またはunixボックスがルーターの背後にあり、rootを使用してユーザーアクティビティを実行しない標準ユーザーセットアップを使用している場合、UPnPを使用してネットワークを危険にさらす可能性のあるtrojonが実行される可能性があります。低い。

Windowsを実行している場合、またはAndroidデバイスを使用していて、Playストアで検証されていないアプリをダウンロードする場合)は、非常に脆弱です。

ほとんどのルーターには、外部ポートを内部ポートに向けるオプションがあるため、ポートを開く必要があるマシンと通信するようにポートまたはポートの範囲を設定できます。セキュリティ上の理由から、これらのポートはハッカーによるスキャンのターゲットになる可能性が高い一般的なポートであるため、リダイレクトされたポートを0〜1024の範囲で開かないことが賢明です。

5
David Zimmerman

UPnPは、デバイス要求に応じて、ネットワーク内のデバイスから外部の別のデバイスへの接続を開くだけです。したがって、基本的には、その要求のセキュリティが、適切に意図されたソフトウェアまたはマルウェアによって行われたかどうかにかかっています。

UPnPは弱点ではありませんが、デバイスにインストールされているアプリのセキュリティです。ファイアウォール、手動ポート転送、ウイルス対策、アプリストアは、そのための回避策にすぎませんが、実際のソリューションではありません。

実際の解決策は、ソースコードを検査してソ​​フトウェアセンターからインストールし、セキュリティの脆弱性を頻繁に修正するソフトウェアを使用することです。つまり Linux です。

UPNPは設計上安全である、または設計上安全でないと断定的に言うのではなく、実際に促進するもの、つまりローカルネットワーク上のどのホストがuPNPで実行できるかを指定する方が理にかなっています。

NATの状況では、内部のすべてのホストは、単にそのポートにパケットを送信することで、「ポートを開く」ことができます。しかし、そのポートマッピングは、それが宛てられたリモートホストアドレス-それはuPNPがするように「世界」までそのポートを開きません。

したがって、ローカルホストは、選択したリモートホストへの送信と受信の両方の通信を容易にすることができますが、選択する必要があります。ローカルホストはallホストからの通信まで自分自身を開くことができません。

さて、これは、世界中に公開する必要があるサービスを実行している場合に実行したい望ましいことです。たとえば、ウェブ、FTP、メールサーバーなどのサーバーを実行している場合です。しかし、これは特定のピアツーピアアクティビティにも当てはまります。たとえばbittorrentでは、自分がサービスを提供しているとは思わなくても、だれでもあなたに連絡して、ホストしているファイルの一部をダウンロードできるようにする必要があります。

ビジネス環境では、ホストするサービスのルールを具体的に設定します。

ただし、家庭環境では、「ホスティング」はアドホックな方法で考えられることが多く、ホームユーザーは、使用するすべてのものに対してルーターを構成する必要がないため、世界に開かれたポートが必要です。これがuPNPに適しています。

そう:

  • はい、それは、そうでなければ許可されないローカルホストの新しい機能を開きます。これには、anyoneからのポートへの着信接続を受け入れる機能が含まれます。

  • これは、起こり得る脆弱性のベクトルを追加する、または少なくとも拡大するものと考えることができます。ローカルホストで実行されているマルウェアは、uPNPがなくても多くのことができます。 uPNPは小さな能力を追加するだけです。

  • これは、使いやすさとネットワーク通信の制御との間のトレードオフです。多くの人にとって、それは完全に公正なトレードオフであり、他の人にとってはそうではありません。

NAT=は、セキュリティ機能ではなくIPv4の枯渇の副作用にすぎないという主張は、少しターゲットから外れたIMOです。NATでない場合でも、それは良い考えです。ローカルネットワークの境界にファイアウォールを配置し、ファイアウォールの内側から開始されなかった着信トラフィックを拒否します。ただし、設定した特定の場合を除きます。また、IPv6対応デバイスは、必要がない場合でもこのような機能を提供することがよくあります。 NATの場合。各ホストには独自のファイアウォールが必要であり、他のホストも同様に信頼できないものとして扱う必要がありますが、そのように構成できない多くのIP接続(IoT)デバイスが存在します。確かに、賢明な送信ブロックポート25なども便利です。

0
thomasrutter