(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
<システム構成>
本発明の実施の形態における通信システム100は、
図1に示すように、通信機器102、管理端末104及びサーバ106を含んで構成される。通信機器102は、LAN等の情報通信網108を介して管理端末104に情報伝達可能に接続される。また、通信機器102は、WAN等の情報通信網110を介してサーバ106に情報伝達可能に接続される。
【0015】
通信機器102は、情報通信網108,110を介して、サーバ106から所定のサービス等を受ける等して機器本体の設定が実現される。また、通信機器102は、情報通信網108を介して、管理端末104から初期設定などの管理を受ける。
【0016】
通信機器102は、
図2に示すように、処理部10、通信部12、記憶部14、タイマー16を含んで構成される。
【0017】
処理部10は、通信機器102を統合的に制御する手段を含む。処理部10は、TTL計測手段10a、TTL設定手段10b、TTL変更手段10c、不正検出手段10d及びアプリケーション手段10eとして機能する。
【0018】
通信部12は、情報通信網108を介して、他の通信機器と通信を行うためのインターフェースである。本実施の形態では、TCP/IPに則って通信を行うためのインターフェースとすることが好適である。例えば、通信部12は、イーサネット(登録商標)等とすることができる。
【0019】
記憶部14は、ROM(Read Only Memory)、RAM(Random Access Memory)等の半導体メモリ等のメモリ装置を含んで構成される。記憶部14は、少なくとも通常ホップ数14a、変更ホップ数14bを記憶する。通常ホップ数14aは、不正な通信が生じていない通常の状態において使用される通信パケットの生存時間(TTL:Time to Live)の値である。本実施の形態では、通常ホップ数14aは、オペレーションシステム(OS)設定のデフォルト値とする。変更ホップ数14bは、通信機器102において不正の通信が検出されたときに使用されるTTLの値である。変更ホップ数14bは、通常ホップ数14aよりも小さい値に設定される。
【0020】
ここで、本発明の実施の形態におけるホップ数とは、IP通信網において、ある機器から他の機器にパケットが転送される際に経由するルータの数に1を加えた数を示す。IPパケットは、パケット生成時にこのホップ数を制限するための値をヘッダに含めることになっている。この値をIPv4ではTTLと呼び、IPv6ではホップリミットと呼ぶ。以後この値のことをTTLと表現する。TTLは、8ビットで表現される。TTLは、IPパケットがルータを通過する毎にその値が1ずつ減らされる。そして、TTLが0となった場合、そのIPパケットはそれより先には中継されないように制御され、送信元の通信機器にはエラーパケットが送信される。
【0021】
TTLの設定値を変更することによって、パケットが送信され得る範囲を制限することができる。例えば、送信元の通信機器が設置された建物内、同一のプロバイダ内、国内等といった大まかな範囲でパケットの送信範囲を制御できる。なお、TTLを0に設定すると、通信機器102内での通信となり、他の通信機器と通信ができない状態となる。
【0022】
TTL計測手段10aは、通信先となる機器までに必要なホップ数の値を計測する手段である。TTL設定手段10bは、TTL計測手段10aによって計測されたホップ数に基づいて定められた通常ホップ数14a及び変更ホップ数14bを記憶部14に記憶させる手段である。TTL変更手段10cは、通信において不正が生じた場合にパケットのTTLを通常ホップ数14aから変更ホップ数14bに変更する手段である。不正検出手段10dは、通信機器102に対して行われる通信機器への不正を検出する手段である。
【0023】
アプリケーション手段10eは、情報通信網108,110を介して、他の通信機器と通信することにより通信機器102の本来の機能を実現する。なお、通信機器102は、アプリケーション手段10eの性質から通信に不正が生じた場合であっても管理端末104等と通信を継続して行う必要があるものとする。
【0024】
タイマー16は、アプリケーション手段10eが機能しない状態の継続時間を計測するために用いられる。タイマー16による計時時間が所定の時間(アプリケーション不動作判定時間)以上となった場合、アプリケーション手段10eによるサービスが提供されていない状態であると判定し、不正検出手段10dを機能させる。
【0025】
管理端末104は、通信機器102に対する初期設定、メンテナンス等の機器の管理を行う。また、管理端末104は、通信機器102に対する通信に不正が生じた際に通信機器102をリセットしたり、通信機器102から情報を取得して管理者に提示したりするような通信不正時における管理も担う。管理端末104は、例えば、タブレットやスマートフォンのような携帯できる端末とすることができる。通信システム100の全体構成を決定する際、管理端末104は、通信機器102と通信する他の通信機器(サーバ106等)よりホップ数が少ない情報通信網108上に配置することが好適である。
図1の例では、管理端末104は、通信機器102と同一のLAN等の情報通信網108上に配置されている。管理端末104は、画面表示やユーザ操作を行うユーザインターフェース手段(図示しない)からの指示を受けて、通信機器102と通信を行い、通信機器102に対する管理を行う。
【0026】
サーバ106は、
図3に示すように、処理部20、通信部22、記憶部24及び計時部26を含んで構成される。
【0027】
処理部20は、サーバ106を統合的に制御する手段を含む。処理部20は、パケット判定手段20a、機器異常検出手段20b、警告出力手段20c及びサービス提供手段20dとして機能する。通信部22は、情報通信網110を介して、他の通信機器と通信を行うためのインターフェースである。本実施の形態では、通信部12と同様に、TCP/IPに則って通信を行うためのインターフェースとすることが好適である。記憶部24は、ROM(Read Only Memory)、RAM(Random Access Memory)等の半導体メモリ等のメモリ装置を含んで構成される。記憶部24は、少なくとも迂回許容ホップ数24a、待機時間24bを記憶する。迂回許容ホップ数24aは、パケットを転送させる際に迂回路として遠回りしてもよいホップ数の余裕を示す値である。待機時間24bは、通信機器102からパケットが届かなくなったときに、その期間が待機時間24b以上となったときに通信が異常であることを判定するための設定値である。計時部26は、パケットの受信間隔を測定するタイマーである。計時部26は、サーバ106において新たなパケットを受信したタイミングでリセットされ、次のパケットを受信するまでの時間の計測を開始する。
【0028】
パケット判定手段20aは、サーバ106がパケットを受信したときに正規のパケットであるか不正なパケットであるかを判定する手段である。機器異常検出手段20bは、通信機器102からの通信が一定時間以上なかった場合に通信の障害と判定する手段である。警告出力手段20cは、不正な通信や機器の異常を検知した場合にユーザに警告を通知する手段である。サービス提供手段20dは、通信を介して通信機器102に対して行われるサービスを提供する手段である。例えば、記憶部24に予め記憶されているアプリケーションプログラムを実行して、通信機器102との通信を介して、ユーザに対してサービスを提供する。ユーザに提供されるサービスの内容は特に限定されない。
【0029】
<通信処理>
図4に示すフローチャートに沿って、通信システム100における処理を以下に説明する。
【0030】
ステップS10では、ホップ数の計測が行われる。通信機器102の処理部10は、TTL計測手段10aとして機能し、通信に不正があり異常が生じた状態においても通信を継続することが必要な通信先へのホップ数を調査する。このような通信先としては、通信機器102を管理する管理端末104がある。
図1では、通信機器102から管理端末104へのホップ数を調査してえられた結果の一例として、「ホップ数 5」を示している。
【0031】
TTL計測手段10aが行うホップ数の調査の方法として以下の例が考えられる。(1)LAN環境やWAN環境においてネットワークの構成が把握できる場合、その構成に基づいて通信機器102から管理端末104までのホップ数を求めることができる。(2)初期設定時に通信機器102から管理端末104までに必要なホップ数を測定する。測定の方法としては、通信機器102から管理端末104へと送信するパケットのTTLを1より増やしていき、管理端末104から受信したことを示す返答があった最小の値をホップ数とする。これは、UNIX(登録商標)におけるtracerouteコマンドに相当する処理である。また、管理端末104からのパケット送信時のTTLがわかっている場合、管理端末104からのパケットを通信機器102において受信したときにTTLを調査し、送信時のTTLから受信時のTTLを減じることでホップ数を求めることができる。
【0032】
ステップS12では、TTL設定手段10bは、得られたホップ数を記憶部14に変更ホップ数14bとして記憶させる。なお、通信機器102から送出されるパケットのTTLの初期値は、アプリケーションからOSを介して設定され、通信が正常である場合には記憶部14に記憶されている通常ホップ数14aとされ、通信に異常がある場合には変更ホップ数14b又はそれに迂回許容ホップ数24aを加えた値とされる。
【0033】
ステップS14では、タイマー16による時間の計測が開始される。ステップS16では、アプリケーション手段10eにより通信機器102の本来の機能を発揮させる処理が行われているか判定される。アプリケーション手段10eでの処理が行われていればステップS20に処理を移行させ、そうでなければステップS18に処理を移行させる。ステップS18では、タイマー16による計測がタイムアップしたか否かが判定される。ステップS14において計測を開始したタイマー16が所定の時間以上となった場合にはステップS20に処理を移行させ、そうでない場合にはステップS16に処理を戻す。
【0034】
ステップS20では、不正検出処理が行われる。通信機器102の処理部10は、不正検出手段10dとして機能し、通信における不正の検出処理が行われる。不正検出手段10dにおいて不正と判定される場合は以下の例が考えられる。
(不正1)通信機器102においてウィルスが検出された場合。このとき、通信機器102にはウィルス検知ソフトを起動しておけばよい。
(不正2)通信機器102において必要な機能の実現のためのプログラム以外のプログラムが起動された場合。このとき、通信機器102には、機能の実現のために必要なプログラムのリストを予め記憶させておき、リストに登録されているプログラム以外のプログラムが起動されたか否かを判断すればよい。
(不正3)通信機器102から通信が必要となる機器以外へ通信が行われた場合。このとき、通信機器102には、通信が必要な機器のアドレスのリストを予め記憶させておき、リストに登録されているアドレス以外へ通信が行われたか否かを判断すればよい。
(不正4)危険と判定された機器へ通信が行われた場合。このとき、通信機器102には、予め危険と判定された機器のアドレスのリストを記憶させておき、リストに登録されているアドレスへ通信が行われたか否かを判断すればよい。
(不正5)通常の通信先となる機器への通信が中止された場合。このとき、異常時に必要な通信先までのホップ数を求めるのと同じ方法を適用して、通常時に通信を行う機器までのホップ数を測定し、その測定値又は測定値に余裕値を加えた値を通常時のTTLとし、このTTLをパケットに設定して通信を行ったときに途中のルータから転送中止の通知を受信したか否かを判断すればよい。転送中止の通知を受信した場合、通常において通信先となる機器以外の通信先へ通信を試みたことを意味し、何らかの想定外のことが通信機器102で起こっていることを示唆する。さらに、余裕値は変動させてもよい。その理由は、ルータによっては転送中止の通知を送信しない設定になっている場合があるが、余裕値を変動させることにより転送中止の通知を行うルータを変化させることができるので、いずれかのルータが通知を行う設定となっていれば転送中止の通知を通信機器102で受信することができるからである。
(不正6)通信機器102においてOSへの強制アクセス制御に対するポリシー違反があった場合。強制アクセス制御とは、プログラムに対して例えばネットワーク通信を使用してよいであるとか、特定のファイルにアクセスしてよい等のポリシーを設定しておき、そのプログラムが稼働中にそのポリシー内で許可された振る舞いのみを許可するというものである。
(不正7)ソフトウェアまたは物理的なスイッチなどで設定モードに移行するようにしておき、モード移行なしで設定の変更がされた場合、または変更の試行が検知された場合。
(不正8)蓋のこじ開けなど通信機器102に対する物理的な攻撃が検知された場合。
【0035】
ステップS22では、不正検出手段10dにおいて不正が検出された場合にはステップS24に処理を移行させ、不正が検出されなかった場合にはステップS14に処理を戻す。
【0036】
ステップS24では、通信で不正が検出されたときのTTLに変更する処理が行われる。通信機器102の処理部10は、TTL変更手段10cとして機能し、これ以降に送出されるパケットのTTLの初期値として変更ホップ数14bを設定する。例えば、
図1において、通信機器102から管理端末104までのホップ数に1を加えた値である変更ホップ数14bがTTLの初期値とされる。これによって、通信機器102からは管理端末104のみにパケットが届くような状態となる。
【0037】
具体的には、OSにおけるパケットに対するTTLの初期値の設定値を書き替える権限が与えられたアプリケーションからTTLの初期値の設定値を通常ホップ数14aから変更ホップ数14bに書き替えるようにすればよい。
【0038】
このステップでの処理以降、通信機器102は必要最小限の管理端末104のみに届くホップ数のパケットのみを送信する状態となり、通信機器102はサーバ106と通信できなくなるので、通信機器102を不正にコントロールしてサーバ106が攻撃されるリスクを低減することができる。例えば、通信機器102がマルウェア等により乗っ取られ、不適切な通信先にパケットが不正に送信されることを防止することができる。
【0039】
同時に、通信機器102と管理端末104との間の通信は維持され、管理端末104による通信機器102の管理は阻害されないので通信不正に対する迅速な対応が可能となる。また、管理機能のほかに不正があったとしても継続したい機能がある場合、その機能を継続して利用することが可能である。
【0040】
ステップS26では、復旧命令を受信したか否かが判定される。通信機器102は、管理端末104から復旧命令を受信した場合にはステップS28に処理を移行させ、そうでない場合にはステップS26を繰り返す。これにより、通信の不正に伴ってTTLを変更ホップ数14bに変更した状態は、通信の不正が除かれて通信機器102が管理端末104から復旧命令を受信するまで継続される。
【0041】
ステップS28では、通信が正常に復旧したときのTTLに変更する処理が行われる。通信機器102の処理部10は、TTL変更手段10cとして機能し、これ以降に送出されるパケットのTTLの初期値を通常ホップ数14aに戻す。これにより、管理端末104のみならず、通常の通信において送信先となるサーバ106等の通信機器に対してパケットを送信することが可能な状態となる。
【0042】
ステップS30では、通信処理を終了するか否かが判定される。通信機器102の処理部10は、通信処理を終了させない場合にはステップS14に処理を戻し、そうでない場合には処理を終了する。
【0043】
一方、サーバ106では、通信に異常や通信機器102への不正が発生していることを検出し、ユーザに警告を通知することができる。以下、
図5に示すフローチャートに沿って、サーバ106において通信の異常及び不正を検出する方法について説明する。なお、サーバ106での通信機器102への不正検出に際し、通信機器102から新たにパケットを受信したタイミングで計時部26をリセットし、時間の計測を繰り返すものとする。
【0044】
ステップS40では、タイムアップ前にパケットが受信されたか否かが判定される。サーバ106の処理部20は、機器異常検出手段20bとして機能し、計時部26による計時時間が待機時間24bを超えたか否かを判定する。待機時間24bは、通信機器102からサーバ106へパケットが定期的に送信される周期以上の値に設定されており、計時部26の計時時間が待機時間24bを超えていれば通信機器102とサーバ106との間の通信に異常が発生したものと考えることができる。そこで、計時部26による計時時間が待機時間24bを超えた場合にはステップS48に処理を移行させ、そうでなければステップS42に処理を移行させる。
【0045】
ステップS42では、受信されたパケットが不正であるか否かが判定される。サーバ106の処理部20は、パケット判定手段20aとして機能し、受信されたパケットのTTLの現在値とTTLの初期値との差を求め、当該差に基づいて正規のパケットか不正なパケットかを判定する。
【0046】
通信機器102からサーバ106の通信に不正がなければ、通信機器102からサーバ106に到達するまでのパケットのホップ数は、可能性のある迂回経路を考慮したとしても、ある程度の範囲に収まる。したがって、サーバ106において受信された通信機器102からのパケットのTTLの現在値とTTLの初期値との差が正常の範囲を超えて大きくなっている場合には通信に不正があると判断することができる。
【0047】
そこで、パケット判定手段20aは、受信されたパケットのTTLの現在値とTTLの初期値との差が迂回許容ホップ数24a以下であれば正規の通信パケットとして判定し、当該差が迂回許容ホップ数24aより大きければ不正な通信パケットとして判定する。
【0048】
ステップS44では、不正なパケットと判断された場合にはステップS46に処理を移行させ、正常なパケットと判断された場合にはステップS40に処理を戻して、次のパケットに対して処理を繰り返す。
【0049】
ステップS46では、通信に不正があったことを示す警告をユーザに通知する。サーバ106の処理部20は、警告出力手段20cとして機能し、不正なパケットが通信されたことをユーザに示す警告を出力する。例えば、ディスプレイに「不正なパケットを受信しました。」等の警告文を表示させる。また、不正と判断されたパケットは破棄してもよい。
【0050】
ステップS48では、通信に異常があったことを示す警告をユーザに通知する。サーバ106の処理部20は、警告出力手段20cとして機能し、通信が異常な状態であることをユーザに示す警告を出力する。例えば、ディスプレイに「通信状態が異常です。」等の警告文を表示させる。
【0051】
以上のように、通信システム100によれば、通信機器102に対する通信において不正が検出された場合、通信機器102から送信されるパケットのTTLを通常値よりも小さい値に設定する。これにより、通信機器102から離れたサーバ106への通信を制限して被害の拡大を防ぐと共に、通信機器102の近くの管理端末104への通信は継続することができる。そして、LAN等の通信機器102から近い情報通信網108を介して管理端末104から通信機器102の復旧作業等を行うことを可能とする。また、通信機器102が不正に乗っ取られたとしても、通信機器102を踏み台にして通信機器102から遠い情報通信網110に接続されたサーバ106等へのDoS攻撃や悪意をもって通信機器102内の情報をサーバ106等へ送信したりすることを防止することができる。
【0052】
<変形例1>
上記実施の形態では、通常ホップ数14aはオペレーションシステム(OS)設定のデフォルト値としたが、TTL計測手段10aによって通信システム100に対して適切なTTL値を求めるものとしてもよい。
【0053】
例えば、通信システム100においてサービスを提供するにおいて通信機器102からのホップ数が最も大きいサーバ106までの通信が確立されていればよいのであれば、通常ホップ数14aをOSが指定する値ではなく、サーバ106にパケットがぎりぎり届く程度のホップ数にする。具体的には、TTL計測手段10aによって通信機器102からサーバ106までのホップ数を計測し、通常ホップ数14aを当該ホップ数又は当該ホップ数に迂回路として許される程度の余裕値(例えば、迂回許容ホップ数24a)を加えた値に設定する。なお、
図1では、通信機器102からサーバ106へのホップ数を計測してえられた結果の一例として、「ホップ数 10」を示している。
【0054】
通常の通信において通信機器102から送出されるパケットのTTLの初期値を通常ホップ数14aに設定することによって、通信機器102からアクセスできる範囲をサーバ106にぎりぎり届く範囲に設定することができる。
【0055】
<変形例2>
上記実施の形態では、通信に対して不正が発生した場合に同一の変更ホップ数14bを適用するものとしたが、不正の種類や程度に応じた複数の変更ホップ数14bの値を記憶させておき、発生した不正の種類や程度に応じてTTLの設定値を変更するようにしてもよい。
【0056】
例えば、ウィルス感染等の被害が広範囲に亘る可能性がある不正が行われた場合、通信機器102から最低限の通信が必要な管理端末104までのアクセスがぎりぎり可能なホップ数をTTLの初期値に設定する。一方、通信機器102において必要な機能の実現のためのプログラム以外のプログラムが起動された場合のように被害が広範囲に亘る可能性が低いと考えられる場合、管理端末104以外の通信機器までのアクセスが可能であるが、通常時よりも少ないホップ数をTTLの初期値に設定するようにしてもよい。
【0057】
また、不正が発生した時点からの経過時間に応じてTTLの初期値を変更するようにしてもよい。例えば、不正が発生した時点ではTTLの初期値を通常ホップ数14aよりは小さいがある程度の広いアクセス範囲が維持されるような値に設定し、不正が発生した時点からの経過時間が大きくなるほどアクセス範囲が狭くなるようにTTLの初期値を小さくするようにしてもよい。