以下、本発明の実施形態について図面を参照して説明する。
(本発明の一実施形態である通信システム10の概略構成)
図1は、本発明の一実施形態である通信システム10の概略構成を示す図である。通信システム10は、ルータ11と、端末装置12と、機器13,14と、サーバ15と、を含む。
ルータ11は、WAN(Wide Area Network)18に接続されている。また、ルータ11は、LAN(Local Area Network:ローカルエリアネットワーク)19を形成する。LAN19は、有線通信によるLANであってもよいし、無線通信による無線LANであってもよい。ルータ11は、WAN18とLAN19との間で、自身の設定に基づき通信を中継する。
また、ルータ11は、UPnPの機能を有する。UPnPは、LAN19に接続された機器13,14から受信した要求パケットに応じてポート開放を行う機能である。ルータ11におけるUPnPの機能は、例えばUPnPに対応するルータの挙動を定めたUPnP-IGD(Internet Gateway Device)に関する機能を含む。
ポート開放とは、グローバルIPアドレスの特定のポートを、特定のプライベートIPアドレスの特定のポートに固定的に対応付けて転送する設定を行うことであり、「ポートマッピング」や「静的IPマスカレード」などとも呼ばれる。ポート開放の停止は、この設定を削除又は無効にすることである。
端末装置12は、ルータ11を管理するユーザが所持する端末である。例えば、端末装置12は、WAN18に接続可能であり、WAN18に接続されたサーバ15を介して(例えばクラウド経由で)ルータ11との間で通信が可能である。端末装置12は一例としてはスマートフォンである。
サーバ15は、ルータ11と端末装置12との間の通信を中継する。例えば、サーバ15は、端末装置12のネットワーク上の識別子(例えばIPアドレス)を管理しており、ルータ11からの要求に応じて端末装置12に対してプッシュ通知等を行うことができる。プッシュ通知とは、送信側が受信側に対して能動的に行う通知である。
具体的には、サーバ15は、ユーザが端末装置12にインストールしたアプリケーションと通信を行うことにより、個々のアプリケーション特有の識別子(アプリケーションID)を取得する。このアプリケーションは、例えば端末装置12がルータ11に接続した際に、このアプリケーションIDをルータ11に送信する。このアプリケーションIDは、ルータ11の制御部が取得可能な端末装置12の第1識別子の一例である。IPアドレスは、サーバ15が端末装置12との通信に用いる第2識別子の一例である。ルータ11は、アプリケーションIDとともに通知内容(通知の情報)をサーバ15へ送信する。サーバ15は、該当するアプリケーションIDをもつ端末装置12に対して(IPアドレスに基づき)その通知内容を送信する。これにより、プッシュ通知が実現される。
サーバ15は、WAN18に接続された物理的なサーバ装置であってもよいし、WAN18に接続されたハードウェアを用いて実現される仮想サーバ(クラウドサーバ)であってもよい。下記に説明するルータ11と端末装置12との間の通信は、サーバ15を介して行われる。
機器13,14は、LAN19に接続し、ルータ11を介してWAN18との間で通信を行う機器である。例えば、機器13,14のそれぞれは、Webカメラやマイク等の各種センサー機器、テレビや冷蔵庫などのいわゆるスマート家電、NAS(Network Attached Storage)、コンピュータゲーム機、スマートフォン、タブレット端末、パーソナルコンピュータ等、LAN19に接続可能な各種の機器とすることができる。
図1に示した通信システム10において、ルータ11は、LAN19側又はWAN18側からの受信パケットを監視する。そして、ルータ11は、その監視結果が予め定められた条件を満たす場合に、端末装置12を所持するユーザに対して、ルータ11の設定の変更に関するセキュリティ上のリスクの通知を行い、ユーザが設定の変更を承諾した旨の承諾情報を受け付け、その承諾情報の受け付け結果に応じてルータ11の設定の変更を行う。このルータ11による処理の具体例については図4以降で説明する。
(ルータ11の構成例)
図2は、ルータ11の構成例を示す図である。図1に示したルータ11は、例えば図2に示すルータ装置20により構成することができる。
ルータ装置20は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、WAN側通信モジュール24と、LAN側通信モジュール25と、内部ストレージ部27と、を備える。CPU21、ROM22、RAM23、WAN側通信モジュール24、LAN側通信モジュール25及び内部ストレージ部27は、それぞれ共通のバス26により接続されている。
CPU21は、ROM22から読み出されてRAM23に格納されたファームウェア等の制御プログラムを実行することで、ルータ装置20の全体の動作制御を行う。ROM22には、上述のファームウェア等の制御プログラムと各種設定データが記憶されている。RAM23は、ルータ装置20のワークメモリとして動作し、各種制御プログラム及び各種データを一時的に記憶する。
WAN側通信モジュール24は、WAN18にアクセスし、WAN18に接続された他の通信装置との間で通信するモジュールである。WAN側通信モジュール24は、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)に準拠した通信モジュールである。
LAN側通信モジュール25は、LAN19を形成し、LAN19に接続された他の通信装置(例えば機器13,14)との間で通信するモジュールである。LAN側通信モジュール25は、例えばIEEE(Institute of Electrical and Electronics Engineers)802.11規格に準拠した無線通信モジュールであってもよいし、IEEE802.3規格に準拠した有線通信モジュールであってもよいし、これらの両方を含んでもよい。
内部ストレージ部27は、内部ストレージ27aと内部ストレージインタフェース(I/F)27bとを備える。内部ストレージ27aは、例えばフラッシュメモリのような不揮発性半導体メモリ又はハードディスクドライブである。内部ストレージ27aには、ルータ装置20において用いられるアプリケーション制御プログラムや各種データファイルが記憶される。内部ストレージインタフェース27bは、内部ストレージ27aに対するデータの読み出し又は書き込みの指令を受けた場合に、データの読み出し又は書き込みの制御を行う。
監視部20aは、受信パケットを監視する本発明の監視部である。制御部20bは、監視部20aによる監視結果が予め定められた条件を満たす場合に、ユーザに対して通知を行い、ユーザが設定の変更を承諾した旨の承諾情報を受け付け、当該承諾情報の受け付け結果に応じて設定の変更を行う本発明の制御部である。監視部20a及び制御部20bのそれぞれは、例えば、CPU21と、WAN側通信モジュール24及びLAN側通信モジュール25の少なくともいずれかと、により構成される。
(端末装置12の構成例)
図3は、端末装置12の構成例を示す図である。図1に示した端末装置12は、例えば図3に示す端末装置30により構成することができる。
端末装置30は、CPU31と、ROM32と、RAM33と、液晶ドライバ34aと、液晶パネル34bと、通信モジュール35と、操作インタフェース(I/F)36と、内部ストレージ部37と、USB(Universal Serial Bus)コントローラ38aと、USBコネクタ38bと、を備える。
CPU31、ROM32、RAM33、液晶ドライバ34a、通信モジュール35、操作インタフェース36、内部ストレージ部37、及びUSBコントローラ38aは、それぞれ共通のバス39により接続されている。
CPU31は、ROM32から読み出されてRAM33に格納されたファームウェア等の制御プログラムを実行することで、端末装置30の全体の動作制御を行う。ROM32には、ファームウェア等の制御プログラムと各種設定データが記憶されている。RAM33は、端末装置30のワークメモリとして動作し、各種制御プログラム及びデータを一時的に記憶する。
液晶パネル34bは、画像を表示する表示部である。液晶ドライバ34aは、表示画面を構成するデータを受け取ると、液晶パネル34bの表示領域にその表示画面を表示するように、この液晶パネル34bを駆動する。液晶パネル34bは、端末装置30の本体に設けられた内蔵ディスプレイであってもよいし、端末装置30の本体に外付けされた外部ディスプレイであってもよい。
通信モジュール35は、他の通信装置(例えばサーバ15)との間で無線通信又は有線通信を行うモジュールである。例えば、通信モジュール35は、3G、LTE(Long Term Evolution)、4G、5Gなどのセルラ方式の無線通信により移動体通信網を経由してWAN18に接続可能なセルラモジュールなどである。
また、通信モジュール35は、LAN19にアクセスするLAN側通信モジュールを含んでもよい。このLAN側通信モジュールは、例えばIEEE802.11規格に準拠した無線通信モジュールであってもよいし、IEEE802.3規格に準拠した有線通信モジュールであってもよい。
操作インタフェース36は、キーボードやマウスなどの、ユーザが操作を行うためのユーザインタフェースである。また、操作インタフェース36は、液晶パネル34bと一体化されたタッチパネル等であってもよい。
内部ストレージ部37は、内部ストレージ37aと内部ストレージインタフェース(I/F)37bとを備える。内部ストレージ37aは、例えばフラッシュメモリのような不揮発性半導体メモリ又はハードディスクドライブである。内部ストレージ37aには、端末装置30において用いられるアプリケーション制御プログラム、文書ファイル、音ファイル、画像ファイル、又は動画ファイル等の各種ファイルが記憶される。内部ストレージインタフェース37bは、内部ストレージ37aに対するデータの読み出し又は書き込みの指令を受けた場合に、データの読み出し又は書き込みの制御を行う。
なお、内部ストレージ37aは挿脱可能な不揮発性メモリカードであってもよい。この場合、内部ストレージインタフェース37bは、このメモリカードが装着されるメモリカードスロットをさらに備える。
USBコントローラ38aは、各種のUSB規格に沿って、USBコネクタ38bを介して接続されたUSBデバイスとの間でデータを送受信する。
通知部30aは、ユーザに対して通知を行う本発明の通知部である。通知部30aは、例えばCPU31及び液晶パネル34bにより構成される。受付部30bは、通知部30aによる通知の後に、ルータ11の設定の変更を承諾した旨の操作をユーザから受け付ける本発明の受付部である。受付部30bは、例えばCPU31及び操作インタフェース36により構成される。
制御部30cは、受付部30bによる受け付け結果に応じて、ルータ11に対して設定の変更を実行させる本発明の制御部である。制御部30cは、例えばCPU31及び通信モジュール35により構成される。
<実施例1>
実施例1においては、ルータ11が、警告型の危険UPnPブロックを行う例について説明する。警告型の危険UPnPブロックは、危険と判断されるポートについての開放要求があった場合に、その要求をブロック(もしくは一時許可)し、該当ポートの危険性をユーザに通知した上で、該当ポートの開放の許可/拒否を確認するものである。
(実施例1のルータ11による監視制御処理)
図4は、実施例1のルータ11による監視制御処理の一例を示すフローチャートである。ルータ11は、WAN18とLAN19との間で通信の中継を行っているときに、例えば図4に示す処理を実行する。
まず、ルータ11は、UPnP-IGDの機能により、LAN19側の機器(例えば機器13,14)からAddPortMapping要求を受信したか否かを判断し(ステップS41)、AddPortMapping要求を受信するまで待つ(ステップS41:Noのループ)。AddPortMapping要求は、ポート番号を指定して、そのポート番号が示すポートの開放を要求するパケットであり、LAN19側からの受信パケットの一例である。
ステップS41において、AddPortMapping要求を受信すると(ステップS41:Yes)、ルータ11は、そのAddPortMapping要求の送信元のアドレスが、禁止機器リストにあるか否かを判断する(ステップS42)。この送信元のアドレスは、例えば、送信元のIPアドレス及びMAC(Media Access Control)アドレスの少なくともいずれかである。
禁止機器リストは、LAN19に接続された機器のうち、ユーザがUPnPによるポート開放を禁止した機器のリストである。禁止機器リストは、ルータ11のメモリ(例えば図2に示したROM22、RAM23又は内部ストレージ27a)に記憶されていてもよいし、ルータ11からアクセス可能な他の装置に記憶されていてもよい。
ステップS42において、送信元のアドレスが禁止機器リストにある場合(ステップS42:Yes)は、ルータ11は、受信したAddPortMapping要求の送信元に対してエラー応答を返すとともに、そのAddPortMapping要求を破棄し(ステップS43)、ステップS41へ戻る。
ステップS42において、送信元のアドレスが禁止機器リストにない場合(ステップS42:No)は、ルータ11は、受信したAddPortMapping要求の送信元のIPアドレスが、そのAddPortMapping要求に含まれるNewInternalClientの値と一致しているか否かを判断する(ステップS44)。NewInternalClientには、ポート開放対象の機器のローカルIPアドレスが格納されている。
ステップS44において、送信元のアドレスがNewInternalClientと一致していない場合(ステップS44:No)は、ルータ11が受信したAddPortMapping要求の送信元は、自身と異なる機器についてポート開放を要求しており、そのAddPortMapping要求は悪意(不正な目的)に基づく危険なものであるおそれがある。
この場合に、ルータ11は、受信したAddPortMapping要求の送信元のアドレスが許可機器リストにあるか否かを判断する(ステップS45)。この送信元のアドレスは、例えば、送信元のIPアドレス及び送信元のMACアドレスの少なくともいずれかである。許可機器リストは、LAN19に接続された機器のうち、ユーザがUPnPによるポート開放を許可した機器のリストである。許可機器リストは、ルータ11のメモリに記憶されていてもよいし、ルータ11からアクセス可能な他の装置に記憶されていてもよい。
ステップS45において、送信元のアドレスが許可機器リストにない場合(ステップS45:No)は、ルータ11は、受信したAddPortMapping要求によるUPnP要求をブロックするとともに、端末装置12へ、UPnP要求をブロックしたことを通知するプッシュ通知を行い(ステップS46)、ステップS41へ戻る。ステップS46のプッシュ通知において、ルータ11は、例えば、AddPortMapping要求の送信元(すなわちポート開放の要求元)や、ポート開放の危険性を示す情報を端末装置12へ送信する。このプッシュ通知は、設定の変更(ポート開放)に関するセキュリティ上のリスクの通知の一例である。
ステップS44において、送信元のアドレスがNewInternalClientと一致している場合(ステップS44:Yes)は、ルータ11は、受信したAddPortMapping要求により要求されたポート設定が、危険設定リストにあるか否かを判断する(ステップS47)。危険設定リストは、ルータ11のメモリに記憶されていてもよいし、ルータ11からアクセス可能な他の装置に記憶されていてもよい。
例えば、危険設定リストは、危険であることが知られているポート設定のリストである。ポート設定とは、通信を許可する送信元の設定や、開放するポートとプロトコルの組み合わせの設定などである。例えば、通信を許可する送信元の設定のうち危険なものとしては、例えば全ての機器からの通信を許可する設定が挙げられる。このような設定を行うと、世界中の機器からLAN19の機器13,14に対してアクセスが可能な状態となる。
また、開放するポートとプロトコルの組み合わせのうち危険なものとしては、SSH(Secure Shell)ポート(22/TCP)、Telnetポート(23/TCP)、HTTP(Hypertext Transfer Protocol)ポート(80,443)など様々なものが知られている。なお、開放するポートは、AddPortMapping要求に含まれるNewInternalPort(LAN側ポート番号)及びNewExternalPort(WAN側ポート番号)の少なくともいずれかが示すポートである。
また、危険設定リストに含まれるポート設定は、NICT(National Institute of Information and Communications Technology)等の研究開発機関等により報告されるリスト等を用いて適宜更新されてもよい。この更新は、例えばルータ11がWAN18等のネットワークを介して上述の研究開発機関等により報告されるリスト等にアクセスすることによって自動的に行われてもよいし、ユーザ操作によって行われてもよい。また、このリスト等は、リスト情報としてネットワークを通じて提供されてもよいし、ファームウェア等に組み込まれて提供されてもよい。
ステップS47において、ポート設定が危険設定リストにある場合(ステップS47:Yes)は、ルータ11は、ステップS45へ移行する。ポート設定が危険設定リストにない場合(ステップS47:No)は、ルータ11は、受信したAddPortMapping要求に応じたポート開放を行い(ステップS48)、ステップS41へ戻る。
ステップS45において、送信元のアドレスが許可機器リストにある場合(ステップS45:Yes)は、ルータ11は、ステップS48へ移行してポート開放を行う。
(実施例1の端末装置12による承諾確認処理)
図5は、実施例1の端末装置12による承諾確認処理の一例を示すフローチャートである。端末装置12は、ルータ11との間で通信が可能な状態において、例えば図5に示す処理を実行する。
まず、端末装置12は、ルータ11からプッシュ通知があったか否かを判断し(ステップS51)、ルータ11からプッシュ通知があるまで待つ(ステップS51:Noのループ)。ステップS51において、ルータ11からプッシュ通知があると(ステップS51:Yes)、端末装置12は、プッシュ通知においてルータ11から受信した情報に基づいて、ポート開放の要求元や、ポート開放の危険性を表示する(ステップS52)。ステップS52における表示の例については図10において後述する。
また、端末装置12は、表示したポート開放の要求元について、UPnPによるポート開放の許可又は禁止を選択する操作を受け付ける(例えば図10参照)。次に、端末装置12は、ユーザがUPnPによるポート開放の禁止(UPnP禁止)を選択したか否かを判断する(ステップS53)。
ステップS53において、ユーザがUPnP禁止を選択した場合(ステップS53:Yes)は、端末装置12は、禁止機器リスト登録要求をルータ11へ送信し(ステップS54)、ステップS51へ戻る。禁止機器リスト登録要求は、ステップS52において表示されたポート開放の要求元を禁止機器リストに登録することをルータ11に要求するパケットである。
ステップS53において、UPnP禁止を選択していない場合(ステップS53:No)は、端末装置12は、ユーザがUPnPによるポート開放の許可(UPnP許可)を選択したか否かを判断する(ステップS55)。
ステップS55において、ユーザがUPnP許可を選択した場合(ステップS55:Yes)は、端末装置12は、許可機器リスト登録要求をルータ11へ送信し(ステップS56)、ステップS51へ戻る。許可機器リスト登録要求は、ステップS52において表示されたポート開放の要求元を許可機器リストに登録することをルータ11に要求するパケットであり、ユーザが設定の変更を承諾した旨の承諾情報の一例である。
ステップS55において、UPnP許可を選択していない場合(ステップS55:No)は、端末装置12は、ステップS51へ戻る。これにより、ユーザによる明示的な承諾がない場合は、ポート開放の要求元を許可機器リストに登録しないようにし、ポート開放を抑止することができる。
(実施例1のルータ11によるリスト管理処理)
図6は、実施例1のルータ11によるリスト管理処理の一例を示すフローチャートである。ルータ11は、図4に示した処理と並行して、例えば図6に示す処理を実行する。
まず、ルータ11は、端末装置12から禁止機器リスト登録要求を受信したか否かを判断する(ステップS61)。禁止機器リスト登録要求を受信した場合(ステップS61:Yes)は、ルータ11は、禁止機器リスト登録要求の対象の機器に対してルータ11が開放しているポートがあるか否かを判断する(ステップS62)。
ステップS62において、開放しているポートがない場合(ステップS62:No)は、ルータ11は、ステップS64へ移行する。開放しているポートがある場合(ステップS62:Yes)は、ルータ11は、そのポートの開放を停止する(ステップS63)。これにより、ユーザがUPnP禁止を選択した機器について、例えば手動によって過去にポート開放が行われていた場合に、そのポート開放を停止することができる。
次に、ルータ11は、禁止機器リスト登録要求の対象の機器を禁止機器リストに登録し(ステップS64)、ステップS61へ戻る。これにより、その機器から再度AddPortMapping要求があっても、図4に示した処理により、ユーザへの通知を行うことなくそのAddPortMapping要求が破棄される。機器の禁止機器リストへの登録は、例えばその機器のIPアドレス及びMACアドレスの少なくともいずれかを禁止機器リストに追加することにより行われる。
ステップS61において、禁止機器リスト登録要求を受信していない場合(ステップS61:No)は、ルータ11は、端末装置12から許可機器リスト登録要求を受信したか否かを判断する(ステップS65)。許可機器リスト登録要求を受信していない場合(ステップS65:No)は、ルータ11は、ステップS61へ戻る。
ステップS65において、許可機器リスト登録要求を受信した場合(ステップS65:Yes)は、ルータ11は、許可機器リスト登録要求の対象の機器を許可機器リストに登録し(ステップS66)、ステップS61へ戻る。これにより、その機器から再度AddPortMapping要求があると、図4に示した処理により、ユーザへの通知を行うことなく、そのAddPortMapping要求に応じたポート開放が行われる。機器の許可機器リストへの登録は、例えばその機器のIPアドレス及びMACアドレスの少なくともいずれかを許可機器リストに追加することにより行われる。
(実施例1の通信システム10における動作例)
図7は、実施例1の通信システム10における動作例1を示すシーケンス図である。図7に示す例では、機器13に対して、悪意のある第三者により不正なプログラムが仕組まれているものとする。また、機器13は、禁止機器リストにも許可機器リストにも登録されていないものとする。
まず、LAN19に接続された機器13が、上述の不正なプログラムにより、ルータ11のユーザの意図しないポート開放の要求を行うAddPortMapping要求をルータ11へ送信したとする(ステップS71)。
次に、ルータ11が、ステップS71により受信したAddPortMapping要求についての危険性判断を行う(ステップS72)。この危険性判断は、例えば図4に示したステップS42,S44,S45,S47による判断である。図7に示す例では、図4に示したステップS47において、このAddPortMapping要求により要求されたポート設定が危険設定リストにあると判断されたとする。
次に、ルータ11が、機器13は許可機器リストに登録されていないため、図4に示したステップS46により、このAddPortMapping要求によるUPnP要求をブロックするとともに、UPnP要求をブロックしたことを通知するプッシュ通知を端末装置12に対して行う(ステップS73)。
次に、端末装置12が、ステップS73のプッシュ通知に基づいて、機器13の識別子(要求元の機器)や、機器13が要求したポート開放のポート設定が危険なものであること(ポート開放の危険性)を表示する(ステップS74)。
次に、端末装置12が、ステップS74において表示したポート開放の許可又は禁止の選択を受け付ける(ステップS75)。ここでは、ユーザが、ポート開放の禁止(UPnP禁止)を選択したとする。
次に、端末装置12が、機器13についての禁止機器リスト登録要求をルータ11へ送信する(ステップS76)。次に、ルータ11が、機器13を禁止機器リストに登録し(ステップS77)、一連の処理を終了する。これにより、機器13がルータ11に対して再度AddPortMapping要求を送信しても、ユーザへの通知なしにそのAddPortMapping要求が破棄されるようになる。
図8は、実施例1の通信システム10における動作例2を示すシーケンス図である。図8に示す例では、図1に示した機器14が、ルータ11のポート開放を行うことをユーザが意図する機器であるものとする。また、機器14は、禁止機器リストにも許可機器リストにも登録されていないものとする。
まず、LAN19に接続された機器14が、正常なUPnPの動作により、AddPortMapping要求をルータ11へ送信したとする(ステップS81)。
次に、ルータ11が、ステップS81により受信したAddPortMapping要求についての危険性判断を行う(ステップS82)。ステップS82の判断は、図7に示したステップS72の判断と同様である。図8に示す例では、ステップS82において、このAddPortMapping要求により要求されたポート設定が危険設定リストにあると判断されたとする。
次に、機器14はこの時点で許可機器リストに登録されていないため、ルータ11が、図4に示したステップS46により、このAddPortMapping要求によるUPnP要求をブロックするとともに、UPnP要求をブロックしたことを通知するプッシュ通知を端末装置12に対して行う(ステップS83)。
ステップS84,S85は、図7に示したステップS74,S75と同様である。ただし、ステップS85においては、ユーザが、ポート開放の許可(UPnP許可)を選択したとする。
次に、端末装置12が、機器14についての許可機器リスト登録要求をルータ11へ送信する(ステップS86)。次に、ルータ11が、機器14を許可機器リストに登録し(ステップS87)、一連の処理を終了する。これにより、機器14がルータ11に対して再度AddPortMapping要求を送信すると、ユーザへの通知なしに、そのAddPortMapping要求に応じたポート開放が行われるようになる(図9参照)。
図9は、実施例1の通信システム10における動作例3を示すシーケンス図である。図9に示す例では、図8に示した動作例2の後に、機器14が再度AddPortMapping要求をルータ11へ送信する場合について説明する。
まず、機器14が、図8に示したステップS81によりAddPortMapping要求に対してポート開放が行われなかったため、UPnPの動作により、AddPortMapping要求をルータ11へ再度送信したとする(ステップS91)。
次に、ルータ11が、ステップS91により受信したAddPortMapping要求についての危険性判断を行う(ステップS92)。ステップS92の判断は、図7に示したステップS72の判断と同様である。図9に示す例では、図8に示した例におけるAddPortMapping要求が再度送信されており、図8に示した例と同様に、このAddPortMapping要求により要求されたポート設定が危険設定リストにあると判断される。
ただし、この時点で機器14は許可機器リストに登録されているため、ルータ11は、図4に示したステップS48により、このAddPortMapping要求に応じたポート開放を行い(ステップS93)、一連の処理を終了する。これにより、機器14がルータ11を介してWAN18側の機器と通信可能になる。
(実施例1のルータ11からのプッシュ通知に応じた端末装置12による表示)
図10は、実施例1のルータ11からのプッシュ通知に応じた端末装置12による表示の一例を示す図である。図10に示すように、端末装置12は、スマートフォンであり、タッチパネル12aを有する。例えば図5に示したステップS52において、端末装置12は、タッチパネル12aにより画面100を表示する。
画面100は、「セキュリティ上問題のあるポートを開放しようとしています。このポートを開放しますか?」とのメッセージと、AddPortMapping要求の送信元の機器を示す文字列と、AddPortMapping要求により開放が要求されているポートを示す文字列と、を含む。これにより、ユーザは、危険と判断されたポート開放要求があったことと、その要求元と、開放が要求されているポートと、を認識し、それらが自身の意図したものであるか否かを判断することができる。
また、画面100は、禁止ボタン101及び許可ボタン102を含む。禁止ボタン101は、表示したポート開放の要求元について、UPnPによるポート開放の禁止をユーザが選択するためのボタンである。図5に示したステップS53の判断は、例えば禁止ボタン101がユーザによりタッチされたか否かの判断である。
許可ボタン102は、表示したポート開放の要求元について、UPnPによるポート開放の許可をユーザが選択するためのボタンである。図5に示したステップS55の判断は、例えば許可ボタン102がユーザによりタッチされたか否かの判断である。
また、画面100には、表示したポート開放の要求元の機器について、外部からアクセスするためのユーザ名やパスワードが適切に設定されていることの確認をユーザに促すメッセージなどが含まれていてもよい。
また、画面100には、上述の情報に代えて、例えば「機器XXがポートYYを使用し、インターネット上に機器を公開することを要求しています。このポートは適切なアクセス制限を行わない場合、インターネットで悪用される例が多く報告されております。インターネットからの通信が必要な場合は、機器のユーザ名・パスワードを適切なものに設定の上許可されることを強くお勧めします。」のようなメッセージが含まれてもよい。このように、アクセス制限を行わないことによる具体的なリスクをユーザに通知することで、ユーザは、具体的なリスクを認識した上でポート開放を許可するか否かを判断することができる。また、アクセス制限を行わない場合に推奨される対処方法をユーザに通知することにより、ユーザは、リスクのあるポート開放を意図して行う場合も適切な対象を行うことが可能になる。
図4~図10に示したように、実施例1のルータ11は、受信パケットが、予め定められたリスト(危険ポートリスト)に含まれるポートの開放を要求するパケット(AddPortMapping要求)である場合に、ユーザに対して通知を行い、ユーザがそのポートの開放を承諾した旨の承諾情報(許可機器リスト登録要求)を受け付け、その承諾情報の受け付け結果に応じてポート開放を行う。
これにより、危険であると判断されたポート開放のセキュリティ上のリスクを把握したユーザからの承諾があった場合にのみ、そのポート開放を行うことができる。このため、ユーザが意図しない危険なポート開放を抑制することができる。
また、ルータ11は、端末装置12のネットワーク上の識別子を管理するサーバ15を介して端末装置12と通信することにより、ユーザに対する通知を行う。また、ルータ11は、サーバ15を介して端末装置12と通信することにより承諾情報を受け付ける。これにより、端末装置12がIPアドレスを固定的に割り当てられないスマートフォン等であっても、ユーザに対する通知や承諾情報の受け付けを行うことができる。
なお、実施例1において、ルータ11が、端末装置12へのプッシュ通知を行う場合は一旦機器からのUPnP要求をブロックし、端末装置12から許可機器リスト登録要求を受信した場合、その機器から再度AddPortMapping要求があるとポート開放を行う処理について説明したが、このような処理に限らない。例えば、ルータ11は、端末装置12へのプッシュ通知を行う場合は機器からのUPnP要求を保留しておき、端末装置12から許可機器リスト登録要求を受信した時点で、保留していたUPnP要求に基づくポート開放を行うようにしてもよい。
<実施例2>
実施例2においては、ルータ11が、プロアクティブ型の危険UPnPブロックを行う例について説明する。プロアクティブ型の危険UPnPブロックは、危険と判断されるポートについての開放要求があった場合に、そのポートへのアクセスを模倣したパケットをLAN側の該当機器に送信することでセキュリティ上の問題(パスワードや暗号方式等)を検出し、問題がある場合、開放要求のブロックやユーザへの警告等を行うものである。なお、プロアクティブ型とは、自発的に行う行為の類型を意味する。
(実施例2のルータ11による監視制御処理)
図11は、実施例2のルータ11による監視制御処理の一例を示すフローチャートである。ルータ11は、WAN18とLAN19との間で通信の中継を行っているときに、例えば図11に示す処理を実行する。
まず、ルータ11は、UPnP-IGDの機能により、AddPortMapping要求を受信したか否かを判断し(ステップS111)、AddPortMapping要求を受信するまで待つ(ステップS111:Noのループ)。
ステップS111において、AddPortMapping要求を受信すると(ステップS111:Yes)、ルータ11は、受信したAddPortMapping要求により要求されたポート設定が危険設定リストにあるか否かを判断する(ステップS112)。ステップS112の判断は、例えば図4に示したステップS47の判断と同様である。
ステップS112において、ポート設定が危険設定リストにない場合(ステップS112:No)は、ルータ11は、ステップS116へ移行してポート開放を行う。ポート設定が危険設定リストにある場合(ステップS112:Yes)は、ルータ11は、受信したAddPortMapping要求の送信元のアドレスが許可機器リストにあるか否かを判断する(ステップS113)。ステップS113の判断は、例えば図4に示したステップS45の判断と同様である。
ステップS113において、アドレスが許可機器リストにある場合(ステップS113:Yes)は、ルータ11は、ステップS116へ移行してポート開放を行う。アドレスが許可機器リストにない場合(ステップS113:No)は、ルータ11は、受信したAddPortMapping要求によりポート開放を要求している対象の機器のセキュリティチェックを実行する(ステップS114)。
ステップS114におけるセキュリティチェックは、対象の機器による通信の脆弱性の検出である。脆弱性は、セキュリティ上の問題であり、一例としては、ISMS(Information Security Management System:情報セキュリティマネジメントシステム)規格についての概要と基本用語を規定するISO/IEC27000:2009等に定義されているものである。
セキュリティチェックは、例えば、適切なパスワードが設定されているか否かや、適切な暗号化がかかっているか否かなどのチェックである。例えば、ルータ11は、WAN18側の機器から対象の機器へのアクセスを模倣したパケットをLAN側の該当機器へ送信し、該当機器への認証を試行することによりセキュリティチェックを行う。
具体的には、ルータ11は、受信したAddPortMappingにより開放が要求されたポートを用いて対象の機器へアクセスし、予め定められた危険なユーザ名とパスワードの組み合わせ(例えばユーザ名「admin」及びパスワード「password」)を用いて認証を試行する。また、ルータ11は、このような危険なユーザ名とパスワードの複数の組み合わせについて認証を試行してもよい。そして、ルータ11は、認証に成功すると、セキュリティ上の問題(脆弱性)があると判断する。
危険なユーザ名としては、例えば「admin」、「user」等の工場出荷時に設定されているユーザ名が挙げられる。危険なパスワードとしては、例えば「pass」、「0123」等の工場出荷時に設定されているパスワードや、「welcome」等の一般的な単語のみからなるパスワードが挙げられる。
また、危険なパスワードの判定は、特定の文字列との一致判定に限らない。例えば、ルータ11は、文字数が一定数以下のパスワードは危険と判定したり、文字種が特定のパスワード(例えば数字のみからなるパスワード)は危険と判定したり、これらの判定方法を組み合わせて判定したりしてもよい。
また、ルータ11は、受信したAddPortMappingにより開放が要求されたポートによる対象の機器の通信方式が、SSL(Secure Sockets Layer)等の適切な暗号化がなされる通信方式であるか否かを判定することによるセキュリティチェックを行ってもよい。
次に、ルータ11は、ステップS114によるセキュリティチェックの結果に基づいて、対象の機器のセキュリティ上の問題があるか否かを判断する(ステップS115)。セキュリティ上の問題がない場合(ステップS115:No)は、ルータ11は、ステップS116へ移行する。ステップS116の処理は、例えば図4に示したステップS48と同じ処理である。
ステップS115において、セキュリティ上の問題がある場合(ステップS115:Yes)は、ルータ11は、ステップS117へ移行する。ステップS117は、例えば図4に示したステップS46と同じ処理である。ただし、ステップS117のプッシュ通知において、ルータ11は、例えば、セキュリティチェックにより発見されたセキュリティ上の問題や、ポート開放の要求元を示す情報を端末装置12へ送信する。
(実施例2の端末装置12による承諾確認処理)
図12は、実施例2の端末装置12による承諾確認処理の一例を示すフローチャートである。端末装置12は、ルータ11との間で通信が可能な状態において、例えば図12に示す処理を実行する。
まず、端末装置12は、ルータ11からプッシュ通知があったか否かを判断し(ステップS121)、ルータ11からプッシュ通知があるまで待つ(ステップS121:Noのループ)。
ステップS121において、ルータ11からプッシュ通知があると(ステップS121:Yes)、端末装置12は、プッシュ通知においてルータ11から受信した情報に基づいて、セキュリティチェックにより発見されたセキュリティ上の問題や、ポート開放の要求元の機器を表示する(ステップS122)。ステップS122における表示の例については図16において後述する。
次に、端末装置12は、ステップS123へ移行する。ステップS123,S124は、例えば図5に示したステップS55,S56と同様である。
(実施例2のルータ11によるリスト管理処理)
図13は、実施例2のルータ11によるリスト管理処理の一例を示すフローチャートである。ルータ11は、図11に示した処理と並行して、例えば図13に示す処理を実行する。
まず、ルータ11は、端末装置12から許可機器リスト登録要求を受信したか否かを判断し(ステップS131)、許可機器リスト登録要求を受信するまで待つ(ステップS131:Noのループ)。許可機器リスト登録要求を受信した場合(ステップS131:Yes)は、ルータ11は、許可機器リスト登録要求の対象の機器を許可機器リストに登録し(ステップS132)、ステップS131へ戻る。
ステップS132による許可機器リストへの登録は、例えば図6に示したステップS66による許可機器リストへの登録と同様である。これにより、対象の機器から再度AddPortMapping要求があると、図11に示した処理により、ユーザへの通知を行うことなく、そのAddPortMapping要求に応じたポート開放が行われる。
(実施例2の通信システム10における動作例)
図14は、実施例2の通信システム10における動作例1を示すシーケンス図である。図14に示す例では、機器13に対して、悪意のある第三者により不正なプログラムが仕組まれているものとする。また、機器13は、許可機器リストに登録されていないものとする。
ステップS141,S142は、図7に示したステップS71,S72と同様である。ただし、ステップS142の危険性判断は、例えば図11に示したステップS112,S113による判断である。図14に示す例では、図11に示したステップS112において、このAddPortMapping要求により要求されたポート設定が危険設定リストにあると判断されたとする。
次に、ルータ11が、図11に示したステップS114により、このAddPortMapping要求により開放が要求される機器13のセキュリティチェックを行う(ステップS143)。図14に示す例では、ステップS143のセキュリティチェックにおいて機器13にセキュリティ上の問題が発見されたとする。
この場合に、ルータ11は、ステップS141によるUPnP要求をブロックするとともに、UPnP要求をブロックしたことを通知するプッシュ通知を端末装置12に対して行う(ステップS144)。
次に、端末装置12が、ステップS144のプッシュ通知に基づいて、セキュリティチェックにより発見されたセキュリティ上の問題や、機器13の識別子(ポート開放の要求元)を表示する(ステップS145)。
次に、端末装置12が、ステップS145において表示したポート開放の許可の選択を受け付ける(ステップS146)。ここでは、ユーザが、ポート開放の許可の選択をしなかった(選択なし)とする。
この場合、端末装置12は許可機器リスト登録要求をルータ11へ送信しない。これにより、機器13がルータ11に対して再度AddPortMapping要求を送信してUPnP要求を行っても、UPnP要求は再度ブロックされる。また、ユーザは、ステップS145により表示されたセキュリティ上の問題に対して、対象の機器の設定を変更する等の対応を行うことができる。
図15は、実施例2の通信システム10における動作例2を示すシーケンス図である。図15に示す例では、図1に示した機器14が、ルータ11のポート開放を行うことをユーザが意図する機器であるものとする。また、機器14は、許可機器リストに登録されていないものとする。
まず、LAN19に接続された機器14が、正常なUPnPの動作により、AddPortMapping要求をルータ11へ送信したとする(ステップS151)。
ステップS152~S156は、図14に示したステップS142~S146と同様である。すなわち、この場合も、AddPortMapping要求により要求されたポート設定が危険設定リストにあると判断され、機器14にセキュリティ上の問題が発見されたとする。
ただし、ステップS156において、ユーザが、機器14によるポート開放を意図していたため、ポート開放の許可(UPnP許可)を選択したとする。この場合に、端末装置12が、機器14についての許可機器リスト登録要求をルータ11へ送信する(ステップS157)。次に、ルータ11が、機器14を許可機器リストに登録し(ステップS158)、一連の処理を終了する。
これにより、機器14がルータ11に対して再度AddPortMapping要求を送信すると、ユーザへの通知なしに、そのAddPortMapping要求に応じたポート開放が行われるようになる(図16参照)。また、ユーザは、ステップS155により表示されたセキュリティ上の問題に対して、対象の機器の設定を変更する等の対応を行うことができる。
図16は、実施例2の通信システム10における動作例3を示すシーケンス図である。図16に示す例では、図15に示した動作例2の後に、機器14が再度AddPortMapping要求をルータ11へ送信する場合について説明する。
まず、機器14が、正常なUPnPの動作により、AddPortMapping要求をルータ11へ送信したとする(ステップS161)。次に、ルータ11が、ステップS161により受信したAddPortMapping要求についての危険性判断を行う(ステップS162)。
ステップS162の判断は、図14に示したステップS142の判断と同様である。図16に示す例では、図15に示した例におけるAddPortMapping要求が再度送信されており、図15に示した例と同様に、このAddPortMapping要求により要求されたポート設定が危険設定リストにあると判断されたとする。
ただし、この時点で機器14は許可機器リストに登録されているため、ルータ11は、図11に示したステップS116により、このAddPortMapping要求に応じたポート開放を行い(ステップS163)、一連の処理を終了する。
(実施例2のルータ11からのプッシュ通知に応じた端末装置12による表示)
図17は、実施例2のルータ11からのプッシュ通知に応じた端末装置12による表示の一例を示す図である。図17に示すように、端末装置12は、スマートフォンであり、タッチパネル12aを有する。例えば図12に示したステップS122において、端末装置12は、タッチパネル12aにより画面170を表示する。
画面170は、「パスワード、暗号方式に問題のある機器が検出されました。この機器によるポート開放を許可しますか?」とのメッセージと、AddPortMapping要求の送信元の機器を示す文字列、を含む。これにより、ユーザは、セキュリティ上の問題がある機器についての開放要求があったことと、その要求元と、を認識し、その機器のセキュリティ関係の設定を見直すことが可能になる。また、画面170は、セキュリティチェックの結果に応じて、「パスワードが初期値から設定されていません。」とのメッセージ等を含んでもよい。
また、画面170は、許可ボタン102を含む。許可ボタン102は、表示したポート開放の要求元について、UPnPによるポート開放の許可をユーザが選択するためのボタンである。図12に示したステップS123の判断は、例えば許可ボタン102がユーザによりタッチされたか否かの判断である。
また、画面170には、上述の情報に代えて、例えば「機器XXがポートYYを使用し、インターネット上に機器を公開することを要求しています。この機器に設定されている認証情報(ユーザ名・パスワードなど)は攻撃者に容易に推測される可能性があるため、インターネットで悪用される例が多く報告されております。インターネットからの通信が必要な場合は、機器のユーザ名・パスワードを適切なものに設定の上許可されることを強くお勧めします。」のようなメッセージが含まれてもよい。このように、セキュリティチェックにより発見された脆弱性を具体的にユーザに通知することで、ユーザは、具体的な脆弱性を認識した上でポート開放を許可するか否かを判断することができる。また、アクセス制限を行わない場合に、脆弱性を解消するための対処方法をユーザに通知することにより、ユーザは、リスクのあるポート開放を意図して行う場合も、脆弱性を解消する対処を行うことが可能になる。
図11~図17に示したように、実施例2のルータ11は、受信パケットが、予め定められたリスト(危険ポートリスト)に含まれるポートの開放を要求するパケットであり、かつ当該ポートに対応する機器の脆弱性を検出した場合に、ユーザが当該ポートの開放を承諾した旨の承諾情報(許可機器リスト登録要求)を受け付け、当該承諾情報を受け付けた場合に当該ポートを開放する設定を行う。
これにより、危険であると判断されたポート開放について脆弱性がある場合に、そのセキュリティ上のリスクを把握したユーザからの承諾があった場合にのみ、そのポート開放を行うことができる。このため、ユーザが意図しない危険なポート開放を抑制することができる。
ポートに対応する機器の脆弱性の検出は、例えば当該ポートによる当該機器へのアクセスを行うことにより行われる。具体的には、ルータ11は、当該機器に対して、予め定められたユーザ名(識別子)及びパスワードの組み合わせによる認証を試行することにより、脆弱性を検出する。又は、ルータ11は、当該機器に対して、予め定められたユーザ名(識別子)及びパスワードのいずれかによる認証を試行することにより、脆弱性を検出してもよい。又は、ルータ11は、当該機器の通信方式が特定の通信方式であるか否かを判定することにより脆弱性を検出してもよい。又は、ルータ11は、これらの方法を組み合わせて脆弱性を検出してもよい。
なお、実施例2において、ルータ11が、端末装置12へのプッシュ通知を行う場合は一旦機器からのUPnP要求をブロックし、端末装置12から許可機器リスト登録要求を受信した場合、その機器から再度AddPortMapping要求があるとポート開放を行う処理について説明したが、このような処理に限らない。例えば、ルータ11は、端末装置12へのプッシュ通知を行う場合は機器からのUPnP要求を保留しておき、端末装置12から許可機器リスト登録要求を受信した時点で、保留していたUPnP要求に基づくポート開放を行うようにしてもよい。
<実施例3>
実施例3においては、ルータ11が、不使用UPnPポート警告を行う例について説明する。不使用UPnPポート警告は、利用を許可されたポートマップ要求であっても、一定時間以上、データ通信の実績がない等、不要と思われるポートが開放されている場合に、ユーザへ確認を行うものである。
(実施例3のルータ11による監視制御処理)
図18は、実施例3のルータ11による監視制御処理の一例を示すフローチャートである。ルータ11は、WAN18とLAN19との間で通信の中継を行っているときに、例えば図18に示す処理を実行する。
まず、ルータ11は、ルータ11が開放しているポートの一覧情報を取得する(ステップS181)。このポートは、例えば実施例1又は実施例2の方法により開放されたものであってもよいし、他の方法により開放されたものであってもよい。次に、ルータ11は、ステップS181により取得した一覧情報が示す各ポートの最終通信時刻を取得する(ステップS182)。ポートの最終通信時刻とは、ルータ11においてそのポートを利用した通信が最後に行われた時刻であり、例えばルータ11におけるパケットの中継履歴から取得される。
次に、ルータ11は、ステップS181により取得した一覧情報が示す各ポートのうち、ステップS182により取得した最終通信時刻から予め定められた規定時間以上経過したポートがあるか否かを判断する(ステップS183)。この規定時間は、LAN19に接続された機器をユーザが使用している場合に想定される、その機器がルータ11を介して通信を行う最長の時間間隔に基づいて設定され、一例としては30日間である。
ステップS181~S183の処理は、LAN19側又はWAN18側からの受信パケットの監視の一例である。ステップS183において、最終通信時刻から規定時間以上経過したポートがない場合(ステップS183:No)は、ルータ11は、次のポーリング周期まで待機し(ステップS184)、ステップS181へ戻る。
ステップS183において、最終通信時刻から規定時間以上経過したポートがある場合(ステップS183:Yes)、そのポートは、利用を許可されたにも関わらず、長期間使用されていないと判断することができる。この場合に、ルータ11は、端末装置12へプッシュ通知を行い(ステップS185)、ステップS184へ移行する。
ステップS185のプッシュ通知において、ルータ11は、最終通信時刻から規定時間以上経過した対象のポート(長期不使用ポート)と、そのポートの最終通信時刻からの経過時間(無通信時間)と、を示す情報を端末装置12へ送信する。このプッシュ通知は、設定の変更(ポート開放の停止)に関するセキュリティ上のリスクの通知の一例である。すなわち、このプッシュ通知は、ポート開放を停止しないことによるセキュリティ上のリスクの通知である。
なお、ステップS182により取得される最終通信時刻は、ルータ11においてそのポートを利用した、データ送信量が一定量以上の通信が最後に行われた時刻であってもよい。これにより、例えばポートスキャン目的のトラフィックを除外し、対象のポートが最後に実際にデータ通信に使用された時刻を得ることができる。
例えば、一般に、一度のポートスキャンにおいて、TCPセッションを張れるかの確認、TCPセッションを張れた場合はユーザ名・パスワードの入力を受け付けるかの確認が行われる。TCPセッションを張れるかの確認には1回のアクセスで300octet(bytes)程度、ユーザ名・パスワードの入力を受け付けるかの確認には1回のアクセスで1000octet(bytes)程度を要する。このため、これらのoctet(bytes)を上回らないアクセスはポートスキャン目的のトラフィックと見なすことができる。したがって、上述のデータ送信量の一定量は、一例としては2000octet(bytes)程度とすることができる。
(実施例3の端末装置12による承諾確認処理)
図19は、実施例3の端末装置12による承諾確認処理の一例を示すフローチャートである。端末装置12は、ルータ11との間で通信が可能な状態において、例えば図19に示す処理を実行する。
まず、端末装置12は、ルータ11からプッシュ通知があったか否かを判断し(ステップS191)、ルータ11からプッシュ通知があるまで待つ(ステップS191:Noのループ)。
ステップS191において、ルータ11からプッシュ通知があると(ステップS191:Yes)、端末装置12は、そのプッシュ通知においてルータ11から受信した情報に基づいて、最終通信時刻から規定時間以上経過した長期不使用ポートと、その長期不使用ポートの無通信時間と、を表示する(ステップS192)。ステップS192における表示の例については図22において後述する。
また、端末装置12は、表示した長期不使用ポートについて、ポート開放の停止を選択する操作を受け付ける(図22参照)。次に、端末装置12は、ユーザがポート開放の停止を選択したか否かを判断する(ステップS193)。ユーザがポート開放の停止を選択しなかった場合(ステップS193:No)は、端末装置12は、ステップS191へ戻る。
ステップS193において、ユーザがポート開放の停止を選択した場合(ステップS193:Yes)は、端末装置12は、ポート開放停止要求をルータ11へ送信し(ステップS194)、ステップS191へ戻る。ポート開放停止要求は、長期不使用ポートについてポート開放の停止をルータ11に要求するパケットであり、長期不使用ポートを特定可能な情報を含む。ポート開放停止要求は、ユーザが設定の変更(ポート開放の停止)を承諾した旨の承諾情報の一例である。
(実施例3のルータ11によるポート開放停止処理)
図20は、実施例3のルータ11によるポート開放停止処理の一例を示すフローチャートである。ルータ11は、図18に示した処理と並行して、例えば図20に示す処理を実行する。
まず、ルータ11は、端末装置12からポート開放停止要求を受信したか否かを判断し(ステップS201)、ポート開放停止要求を受信するまで待つ(ステップS201:Noのループ)。ポート開放停止要求を受信した場合(ステップS201:Yes)は、ルータ11は、ポート開放停止要求に従って、ポート開放を停止し(ステップS202)、ステップS201へ戻る。
(実施例3の通信システム10における動作例)
図21は、実施例3の通信システム10における動作例を示すシーケンス図である。図21に示す例では、ルータ11において、開放中であるが長期間未使用である長期不使用ポートが存在するものとする。
まず、ルータ11が、各ポートの最終通信時刻に基づいて長期不使用ポートを検出する(ステップS211)。次に、ルータ11が、長期不使用ポートがあることを通知するプッシュ通知を端末装置12に対して行う(ステップS212)。次に、ルータ11が、ステップS212のプッシュ通知に基づいて、長期不使用ポートやその無通信時間を表示する(ステップS213)。
次に、端末装置12が、ステップS213において表示した長期不使用ポートの開放停止の選択を受け付ける(ステップS214)。ここでは、ユーザが、長期不使用ポートの開放停止を選択したとする。
次に、端末装置12が、ポート開放停止要求をルータ11へ送信する(ステップS215)。次に、端末装置12が、ステップS215によって送信されたポート開放停止要求に従ってポート開放を停止し(ステップS216)、一連の処理を終了する。
(実施例3のルータ11からのプッシュ通知に応じた端末装置12による表示)
図22は、実施例3のルータ11からのプッシュ通知に応じた端末装置12による表示の一例を示す図である。図22において、図6に示した部分と同様の部分については同一の符号を付して説明を省略する。例えば図19に示したステップS192において、端末装置12は、タッチパネル12aにより画面220を表示する。
画面220は、「30日間未使用のポートが開放されたままになっています。このポートの開放を停止しますか?」とのメッセージと、長期不使用ポートを示す文字列と、その長期不使用ポートの無通信時間を示す文字列と、を含む。これにより、ユーザは、長期間使用していない長期不使用ポートがあることを認識し、その長期不使用ポートを使用するか否かを判断することができる。
また、画面220は、開放停止ボタン221を含む。開放停止ボタン221は、表示した長期不使用ポートのポート開放の停止をユーザが選択するためのボタンである。図19に示したステップS193の判断は、例えば開放停止ボタン221がユーザによりタッチされたか否かの判断である。
また、画面220には、上述の情報に代えて、例えば「機器XXがポートYYを使用し、インターネット上に機器を公開することを許可しておりますが、ZZ日の間使用実績がありません。不必要な機器・ポートを公開しておくと、将来脆弱性が新たに発見された場合にインターネットで悪用される可能性があります。インターネットからの通信が不要な場合は、許可を取り消すことを強くお勧めします。」のようなメッセージが含まれてもよい。このように、長期間使用されていないポートを開放しておくことによるリスクを具体的にユーザに通知することで、ユーザは、具体的なリスクを認識した上でポート開放を継続するか否かを判断することができる。また、そのポート開放が不要な場合は許可を取り消すべきことをユーザに通知することで、ユーザに対してポート開放の停止の選択をユーザに対して促し、セキュリティを向上させることができる。また、そのポート開放を行った機器をユーザに通知することで、ユーザは、そのポート開放を行った事情や背景を思い出すことができ、ポート開放を継続するか否かを容易に判断することができる。
図18~図22に示したように、実施例3のルータ11は、受信パケットに基づいて、開放中のポートによる通信を予め定められた時間以上検出していない場合にそのポートを長期不使用ポートとして検出し、長期不使用ポートを検出した場合に、ユーザが当該ポートの開放停止を承諾した旨の承諾情報(ポート開放停止要求)を受け付け、当該承諾情報を受け付けた場合に当該ポートの開放停止を行う。
これにより、長期間使用されていない開放中のポートがある場合に、そのポートについてポート開放の停止をユーザが承諾した場合はポート開放を停止することができる。このため、ユーザが意図せずに長期不使用ポートが開放され続けることを抑制することができる。
<実施例4>
実施例4においては、ルータ11が、疑わしき通信のブロックを行う例について説明する。疑わしき通信のブロックは、ユーザの許可を受けて開放したポートであっても、ユーザの許可指定から一定時間経過後、今まで接続したことのないアドレスから接続された場合、一旦通信のブロックを行い、ユーザへの許可を再度確認するものである。
(実施例4のルータ11によるアクセスブロック処理)
図23は、実施例4のルータ11によるアクセスブロック処理の一例を示すフローチャートである。ルータ11は、WAN18とLAN19との間で通信の中継を行っているときに、例えば図23に示す処理を実行する。
まず、ルータ11は、WAN18側からの受信パケットに基づいて、ルータ11が開放中のポートへのアクセスがあったか否かを判断し(ステップS231)、開放中のポートへのアクセスがあるまで待つ(ステップS231:Noのループ)。
ステップS231において、開放中のポートへのアクセスがあると(ステップS231:Yes)、ルータ11は、アクセスがあったポートのポート開放から規定時間以上が経過しているか否かを判断する(ステップS232)。この規定時間は、ポートの開放からそのポートへの正常な最初のアクセスがあるまでの最長の想定時間に基づいて設定され、一例としては1週間である。
ステップS232において、ポート開放から規定時間以上が経過していない場合(ステップS232:No)は、ステップS231におけるアクセスが正常なアクセスであると判断することができる。この場合に、ルータ11は、そのアクセスの送信元アドレスを送信元リストに追加する(ステップS233)。
送信元リストは、WAN18側の機器のうち、安全が確認された送信元のリストである。送信元リストは、ルータ11のメモリに記憶されていてもよいし、ルータ11からアクセス可能な他の装置に記憶されていてもよい。次に、ルータ11は、そのアクセスをLAN19側へ中継し(ステップS234)、ステップS231へ戻る。
ステップS232において、ポート開放から規定時間以上が経過している場合(ステップS232:Yes)は、ルータ11は、ステップS231におけるアクセスの送信元アドレスが送信元リストに含まれているか否かを判断する(ステップS235)。
ステップS235において、送信元アドレスが送信元リストに含まれている場合(ステップS235:Yes)は、ルータ11は、ステップS231におけるアクセスが正常なアクセスであると判断することができる。この場合に、ルータ11は、ステップS234へ移行する。ステップS231,S232,S235の処理は、WAN18側からの受信パケットの監視の一例である。
ステップS235において、送信元アドレスが送信元リストに含まれていない場合(ステップS235:No)は、ステップS231におけるアクセスは、ポート開放の直後の期間にアクセスがなかった機器からのアクセスであり、悪意に基づくアクセスである可能性がある。
この場合に、ルータ11は、そのアクセスをブロックするとともに、アクセスをブロックしたことを通知するプッシュ通知を端末装置12に対して行い(ステップS236)、ステップS231へ戻る。ステップS236のプッシュ通知において、ルータ11は、例えば、ステップS231におけるアクセスがあった対象のポートと、そのアクセスの送信元(例えば送信元アドレス)と、を示す情報を端末装置12へ送信する。このプッシュ通知は、設定の変更(送信元リストへの登録)に関するセキュリティ上のリスクの通知の一例である。
なお、ステップS233において、ルータ11は、ステップS231におけるアクセスのデータ送信量が一定量未満である場合は、そのアクセスの送信元アドレスを送信元リストに追加しないようにしてもよい。これにより、例えばポートスキャン目的のトラフィックがあっただけの機器については送信元リストに登録しないようにすることができる。このデータ送信量の一定量は、上述のように、一例としては2000octet(bytes)程度とすることができる。
(実施例4の端末装置12による承諾確認処理)
図24は、実施例4の端末装置12による承諾確認処理の一例を示すフローチャートである。端末装置12は、ルータ11との間で通信が可能な状態において、例えば図24に示す処理を実行する。
まず、端末装置12は、ルータ11からプッシュ通知があったか否かを判断し(ステップS241)、ルータ11からプッシュ通知があるまで待つ(ステップS241:Noのループ)。ルータ11からプッシュ通知があると(ステップS241:Yes)、端末装置12は、そのプッシュ通知においてルータ11から受信した情報に基づいて、アクセスがあった対象のポートと、そのアクセスの送信元と、を表示する(ステップS242)。ステップS242における表示の例については図28において後述する。
また、端末装置12は、表示した送信元からのアクセスの許可を選択する操作を受け付ける(図28参照)。次に、端末装置12は、ユーザがアクセスの許可を選択したか否かを判断する(ステップS243)。ユーザがアクセスの許可を選択しなかった場合(ステップS243:No)は、端末装置12は、ステップS241へ戻る。
ステップS243において、ユーザがアクセスの許可を選択した場合(ステップS243:Yes)は、端末装置12は、送信元登録要求をルータ11へ送信し(ステップS244)、ステップS241へ戻る。送信元登録要求は、ルータ11に対して、アクセスの送信元の機器の送信元リストへの登録を要求するパケットであり、例えばアクセスの送信元を特定可能な情報を含む。送信元登録要求は、ユーザが設定の変更(送信元リストへの登録)を承諾した旨の承諾情報の一例である。
(実施例4のルータ11による送信元登録処理)
図25は、実施例4のルータ11による送信元登録処理の一例を示すフローチャートである。ルータ11は、図23に示した処理と並行して、例えば図25に示す処理を実行する。
まず、ルータ11は、端末装置12から送信元登録要求を受信したか否かを判断し(ステップS251)、送信元登録要求を受信するまで待つ(ステップS251:Noのループ)。送信元登録要求を受信した場合(ステップS251:Yes)は、ルータ11は、送信元登録要求に従って、アクセスがあった送信元の機器を送信元リストに登録し(ステップS252)、ステップS251へ戻る。
これにより、対象の機器から再度アクセスがあった際に、ユーザへの通知なしに、図23に示したステップS234によってそのアクセスが中継されるようになる。一方で、ルータ11は、対象の機器について送信元登録要求を受信しない場合は、対象の機器から再度アクセスがあった際に、図23に示したステップS236によってそのアクセスがブロックされるようになる。これにより、そのアクセスがあったポートについて、実質的にポート開放が停止された状態となる。
(実施例4の通信システム10における動作例)
図26は、実施例4の通信システム10における動作例1を示すシーケンス図である。図26に示す例では、ユーザが機器14をLAN19に接続してUPnPによるポート開放を行い、その直後に、WAN18側の機器261から機器14に対してユーザの意図するアクセスがあった場合について説明する。このような状況の一例としては、ユーザが機器14としてWebカメラをLAN19に接続し、その直後に、ユーザが機器261としてユーザのスマートフォン等を用いて、WAN18を介してWebカメラへのアクセスを行った状況が挙げられる。
まず、LAN19に接続された機器14が、AddPortMapping要求をルータ11へ送信する(ステップS261)。次に、ルータ11が、ステップS261により送信されたAddPortMapping要求に従ってポート開放を行う(ステップS262)。このポート開放は、例えば実施例1又は実施例2の方法により行われてもよいし、他の方法により行われてもよい。
次に、ステップS262のポート開放から規定時間内に、ルータ11に対して、WAN18側の機器261から機器14へのアクセスがあったとする(ステップS263)。この場合に、ルータ11は、このアクセスを許可するか否かのアクセス許可判断を行う(ステップS264)。ここではこのアクセスがポート開放から規定時間内のものであるため、ルータ11はこのアクセスを許可すると判断する。
次に、ルータ11が、ステップS261のアクセスの送信元である機器261を送信元リストに登録する(ステップS265)。次に、ルータ11が、ステップS261のアクセスを機器14へ中継し(ステップS266)、一連の処理を終了する。
図27は、実施例4の通信システム10における動作例2を示すシーケンス図である。図27に示す例では、図26に示した動作例1の後、図26に示したステップS262のポート開放から規定時間が経過してから、機器261と異なるWAN18側の機器262から機器14に対してユーザの意図しないアクセスがあった場合について説明する。ここでは、機器262はルータ11の送信元リストに登録されていないものとする。
まず、図26に示したステップS262のポート開放から規定時間が経過してから、ルータ11に対して、WAN18側の機器262から機器14へのアクセスがあったとする(ステップS271)。この場合に、ルータ11は、このアクセスを許可するか否かのアクセス許可判断を行う(ステップS272)。
ここではこのアクセスがポート開放から規定時間経過後のものであるため、ルータ11は、機器262からのアクセスを許可しない(不許可)と判断する。この場合に、ルータ11は、機器262からのアクセスをブロックするとともに、アクセスをブロックしたことを通知するプッシュ通知を端末装置12に対して行う(ステップS273)。
次に、端末装置12が、ステップS273のプッシュ通知に基づいて、アクセスがあった対象のポートと、そのアクセスの送信元(機器262)と、を表示する(ステップS274)。また、端末装置12は、表示した送信元からのアクセスの許可の選択を受け付ける(ステップS275)。ここでは、ユーザが、アクセスの許可の選択をしなかった(許可なし)とする。
この場合、端末装置12は送信元登録要求をルータ11へ送信しない。これにより、機器262がルータ11に対して再度、機器14へのアクセスがあっても、そのアクセスは再度ブロックされる。
(実施例4のルータ11からのプッシュ通知に応じた端末装置12による表示)
図28は、実施例4のルータ11からのプッシュ通知に応じた端末装置12による表示の一例を示す図である。図28において、図6に示した部分と同様の部分については同一の符号を付して説明を省略する。例えば図24に示したステップS242において、端末装置12は、タッチパネル12aにより画面280を表示する。
画面280は、「アクセスされたことのないアドレスからのアクセス要求がありました。このアドレスからのアクセスを許可しますか?」とのメッセージと、アクセスがあったポートを示す文字列と、そのアクセスの送信元アドレスを示す文字列と、を含む。これにより、ユーザは、アクセスされたことのない機器からのアクセスがあったことを認識し、その機器からのアクセスを許可するか否かを判断することができる。
また、画面280は、アクセス許可ボタン281を含む。アクセス許可ボタン281は、表示した送信元からのアクセスの許可をユーザが選択するためのボタンである。図24に示したステップS243の判断は、例えばアクセス許可ボタン281がユーザによりタッチされたか否かの判断である。
また、画面280には、上述の情報に代えて、例えば「機器XXがポートYYを使用し、インターネット上に機器を公開することを許可しておりますが、普段のアクセスとは異なる場所からの通信を確認しました。この通信があなたの意図したものである場合は通信を許可してください。そうでない場合はこのメッセージを閉じてください。」のようなメッセージが含まれてもよい。このように、普段のアクセスとは異なる場所(アドレス)からの通信がユーザの意図したものである場合にのみ許可することをユーザに指示する通知を行うことで、ユーザはそのアクセスを許可するか否かを容易に判断することができる。
図23~図28に示したように、実施例4のルータ11は、受信パケットに基づいて、開放中のポートについて、そのポートを開放してから予め定められた時間が経過するまでにそのポートによるアクセスがなかったWAN18側の機器から、そのポートによるアクセスを要求するパケットを受信した場合に、ユーザがその機器の送信元リストへの登録を承諾した旨の承諾情報(送信元登録要求)を受け付け、その承諾情報を受け付けた場合に、その機器の送信元登録要求への登録を行う。
これにより、ポート開放の直後にアクセスがなかった機器からのアクセスについてユーザが承諾した場合にのみ、実質的なポート開放を行うことができる。このため、ユーザが意図しない実質的なポート開放を抑制することができる。
なお、実施例4において、疑わしい通信についてアクセスをブロックする構成について説明したが、疑わしい通信について、ユーザが対応ポートの開放停止を選択できるようにしてもよい。ユーザが対応ポートの開放停止を選択すると、ルータ11は端末装置12へポート開放停止要求を送信し、ルータ11は、そのポート開放停止要求に従って開放停止を行う。
(実施例1~4について)
上述した実施例1~4によれば、UPnP等によるポート管理に関するセキュリティリスクをユーザが容易に把握可能とし、ルータ11に対する適切な設定を行うことが可能になる。
上述した実施例1~4は、組み合わせることも可能である。すなわち、通信システム10において、実施例1の警告型の危険UPnPブロック、実施例2のプロアクティブ型の危険UPnPブロック、実施例3の不使用UPnPポート警告、及び実施例4の疑わしき通信のブロックのうち2つ以上の処理が並行して行われてもよい。
(変形例)
LAN19に接続された機器13,14から受信した要求パケットに応じてポート開放を行うルータ11の機能としてUPnPについて説明したが、この機能はUPnPに限らずこれに類するものであってもよい。
また、AddPortMapping等のパケットに代えて、これに類するものを用いてもよい。例えば、IPv6(Internet Protocol Version 6)のUPnPにおいては、AddPortMappingの代わりにWANIPv6FirewallControl:AddPinhole()のコマンドが用いられる。したがって、IPv6においてはAddPortMappingに変えてこのWANIPv6FirewallControl:AddPinhole()のパケットを用いてもよい。
また、端末装置12がスマートフォンである場合について説明したが、端末装置12は、スマートフォンに限らず、タブレット端末、パーソナルコンピュータ等、ルータ11との間で通信が可能な各種の情報端末とすることができる。
また、端末装置12がサーバ15を介してルータ11との間で通信を行う構成について説明したが、このような構成に限らない。例えば、端末装置12は、サーバ15を介さずに、WAN18を介してルータ11との間で通信を行ってもよい。また、端末装置12は、LAN19に接続することによって、WAN18を介さずにルータ11との間で通信を行ってもよい。
また、端末装置12による各種の通知について、画面表示を用いた通知について説明したが、端末装置12は音声等により各種の通知を行ってもよい。また、端末装置12による各種の選択の受け付けについて、タッチ操作による受け付けについて説明したが、端末装置12は、ボタン操作や音声入力等によりユーザから各種の選択を受け付けてもよい。
ルータ11から端末装置12への各種の通知にプッシュ通知を用いる構成について説明したが、ルータ11は端末装置12への各種の通知に電子メール等を用いてもよい。
(制御プログラムについて)
ルータ装置20のROM22に記憶される制御プログラムや、端末装置30のROM32に記憶される制御プログラムは、これらの制御プログラムをコンピュータが読取可能な一時的でない(non-transitory)記憶媒体に記憶される。このような「コンピュータ読取可能な記憶媒体」は、例えば、CD-ROM(Compact Disc-ROM)等の光学媒体や、USBメモリ又はメモリカード等の磁気記憶媒体等である。また、このような制御プログラムを、ネットワークを介したダウンロードによって提供することもできる。
以上のように本明細書には以下の事項が開示されている。
開示されたルータは、ワイドエリアネットワークとローカルエリアネットワークとの間で設定に基づき通信を中継するルータであって、受信パケットを監視する監視部と、前記監視部による監視結果が予め定められた条件を満たす場合に、ユーザに対して通知を行い、前記ユーザが前記設定の変更を承諾した旨の承諾情報を受け付け、当該承諾情報の受け付け結果に応じて前記設定の変更を行う制御部と、を備えるものである。
開示されたルータは、前記受信パケットが、前記ローカルエリアネットワークからのパケットであるものである。
開示されたルータは、前記ローカルエリアネットワークに接続された機器から受信した要求パケットに応じてポート開放を行う機能を有し、前記設定が、前記機能に関する設定であるものである。
開示されたルータは、前記機能はUPnP(Universal Plug and Play)の機能であるものである。
開示されたルータは、前記通知が、前記設定の変更に関するセキュリティ上のリスクの通知であるものである。
開示されたルータは、前記制御部が、サーバを介して前記ユーザの端末装置と通信することにより前記通知を行うものである。
開示されたルータは、前記制御部が、サーバを介して前記ユーザの端末装置と通信することにより前記承諾を前記ユーザから受け付けるものである。
開示されたルータは、前記サーバが、前記制御部が取得可能な前記ユーザの端末装置の第1識別子と、前記サーバが前記端末装置との通信に用いる前記端末装置の第2識別子と、を管理するサーバであり、前記制御部が、前記第1識別子及び前記通知の情報を前記サーバへ送信することにより、前記サーバを介して前記通知を行うものである。
開示されたルータは、前記条件が、前記受信パケットが、予め定められたリストに含まれるポートの開放を要求するパケットであることであり、前記設定の変更が、当該ポートの開放であるものである。
開示されたルータは、前記制御部が、前記受信パケットが前記リストに含まれるポートの開放を要求するパケットであり、かつ当該ポートに対応する機器の脆弱性を検出した場合に、前記ユーザが当該ポートの開放を承諾した旨の承諾情報を受け付け、当該承諾情報を受け付けた場合に当該ポートを開放する設定を行うものである。
開示されたルータは、前記制御部が、前記ポートによる前記機器へのアクセスを行うことにより前記脆弱性を検出するものである。
開示されたルータは、前記制御部が、前記機器に対して、予め定められた識別子及びパスワードの少なくともいずれかによる認証を試行することにより、前記脆弱性を検出するものである。
開示されたルータは、前記制御部が、前記機器の通信方式が特定の通信方式であるか否かを判定することにより前記脆弱性を検出するものである。
開示されたルータは、前記条件が、前記受信パケットに基づいて、前記設定において開放中のポートによる通信を予め定められた時間以上検出していないことであり、前記設定の変更が、当該ポートの開放停止であるものである。
開示されたルータは、前記条件が、前記設定において開放中のポートについて、当該ポートを開放してから予め定められた時間が経過するまでに当該ポートによるアクセスがなかった、前記ワイドエリアネットワーク側の機器から、当該ポートによるアクセスを要求するパケットを受信したことであり、前記設定の変更が、前記機器からの当該アクセスの許可であるものである。
開示された制御プログラムは、コンピュータを、前記ルータの、前記監視部及び前記制御部として機能させるためのものである。
開示された端末装置は、ワイドエリアネットワークとローカルエリアネットワークとの間で通信を中継するルータと通信可能な端末装置であって、前記ルータによる受信パケットの監視結果が予め定められた条件を満たす場合に、ユーザに対して通知を行う通知部と、前記通知部による前記通知の後に、前記ルータの設定の変更を承諾した旨の操作を前記ユーザから受け付ける受付部と、前記受付部による受け付け結果に応じて、前記ルータに対して前記設定の変更を実行させる制御部と、を備えるものである。
開示された制御プログラムは、コンピュータを、前記端末装置の、前記受付部及び前記制御部として機能させるためのものである。
開示された通信システムは、前記ルータと、前記端末装置と、を含むものである。