(57)【要約】【課題】種種の不正な通信に対応しつつ、消費電力を低減する。【解決手段】本発明の一態様の通信中継装置は、第１通信装置より送信される通信フレーム内の複数の要素を順次記憶及び出力する、動作単位の要素数と動作速度の組み合わせが異なる複数のバッファ部と、バッファ部ごとに設けられ、バッファ部の要素数に対応する要素と当該バッファ部の通過条件とを比較する複数の比較部と、複数の要素を順に伝送し、いずれかの比較部において要素数に対応する要素が上記通過条件を満たさない場合、通信フレーム内の第１領域に対応する要素を変更する変更部と、その変更部から伝送される複数の要素を順に第２通信装置へ送信する送信部と、を備える。【選択図】図２
2020031342.tif 000002
【特許請求の範囲】
【請求項１】
第１通信装置より送信される通信フレーム内の複数の要素を順に受信する受信部と、
前記受信部が受信した前記通信フレーム内の複数の要素を順次記憶及び出力する、動作単位の要素数と動作速度の組み合わせが異なる複数のバッファ部と、
前記バッファ部ごとに設けられ、前記バッファ部の要素数に対応する要素と前記バッファ部の通過条件とを比較する複数の比較部と、
前記複数の要素を順に伝送し、いずれかの前記比較部において前記要素数に対応する要素が前記通過条件を満たさない場合、前記通信フレーム内の第１領域に対応する要素を変更する変更部と、
前記変更部から伝送される前記複数の要素を順に第２通信装置へ送信する送信部と、を備える
通信中継装置。
【請求項２】
前記複数のバッファ部における各々の前記動作単位の要素数と前記動作速度の積が同一又は実質的に同一の値である
請求項１に記載の通信中継装置。
【請求項３】
複数の前記バッファ部のうち、少なくとも１つのバッファ部の前記要素数が１であり、かつ、少なくとも１つのバッファ部の前記要素数が２以上である
請求項２に記載の通信中継装置。
【請求項４】
複数の前記バッファ部のうち前記要素数のより大きいバッファ部が、前記受信部から入力された前記通信フレーム内の複数の要素を順に前記変更部に出力する
請求項２に記載の通信中継装置。
【請求項５】
前記バッファ部の各々は、シフトレジスタで構成される
請求項２に記載の通信中継装置。
【請求項６】
前記通信フレーム内の前記第１領域に対応する要素は、誤り検査符号である
請求項２に記載の通信中継装置。
【請求項７】
前記通過条件は、複数の要素から構成された不正な通信ではないことを表す第２のパターンに合致することであり、いずれかの前記比較部において、前記要素数に対応する要素が前記第２のパターンと合致しない場合には、前記変更部は、前記通信フレーム内の前記第１領域に対応する要素を変更する
請求項１乃至６のいずれか一項に記載の通信中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置に関する。
【背景技術】
【０００２】
プラントや組み立て装置等の設備を制御する制御システムは、安全かつ安定な動作を維持する必要がある。一方、制御装置に対してその動作を阻害したり誤った動作を行わせる意図で、制御システムネットワークを介して不正な内容のデータが送られる場合がある。対策として、このような不正な通信を遮断する能力を具備したファイアウォールやＩＰＳ（Intrusion Protection System）等を介して防御対象の装置を制御システムネットワークに接続する方法が知られている。
【０００３】
特許文献１には、「受信した通信フレームの特徴を示す特徴値を決定し、特徴値が条件を満たすか否かを判定する判定部と、受信される複数の要素を順に伝達し、特徴値が条件を満たさないと判定された場合、伝達される複数の要素の一部を変更する変更部」を備える通信中継装置が開示されている。この通信中継装置は、バッファを用いて不正な通信を検出する構成を有し、不正な通信を受信した場合に通信フレームの複数の要素の一部を変更して順に外部装置へ送信することで、少ない遅延時間で不正な通信の検出を実現する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１１９３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の通信中継装置は、通信フレームの中継による遅延を抑えることができる一方で、その内部のバッファは入力される通信フレームの通信速度（例えば１００Ｍｂｐｓのネットワークであれば１００ＭＨｚ）で動作するように作られている。そのため、後述するように中継処理の消費電力等に関しては必ずしも最適化された構成ではなかった。
【０００６】
上記の状況から、種種の不正な通信に対応しつつ、消費電力を低減できる通信中継装置が要望されていた。
【課題を解決するための手段】
【０００７】
本発明の一態様の通信中継装置は、第１通信装置より送信される通信フレーム内の複数の要素を順に受信する受信部と、その受信部が受信した通信フレーム内の複数の要素を順次記憶及び出力する、動作単位の要素数と動作速度の組み合わせが異なる複数のバッファ部と、バッファ部ごとに設けられ、バッファ部の要素数に対応する要素と当該バッファ部の通過条件とを比較する複数の比較部と、を備える。また、通信中継装置は、複数の要素を順に伝送し、いずれかの比較部において要素数に対応する要素が上記通過条件を満たさない場合、通信フレーム内の第１領域に対応する要素を変更する変更部と、その変更部から伝送される複数の要素を順に第２通信装置へ送信する送信部と、を備える。
【発明の効果】
【０００８】
本発明の少なくとも一態様によれば、種種の不正な通信に対応しつつ、消費電力を低減することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態に係る通信中継装置を含む制御システム全体の構成例を示す図である。
【図２】本発明の第１の実施形態に係る通信中継装置の内部構成例を示すブロック図である。
【図３】通信フレームのフォーマットの例を示す図である。
【図４】本発明の第２の実施形態に係る通信中継装置の概略構成例を示すブロック図である。
【図５】通信中継装置が備えるコンピューターのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態の例について、添付図面を参照して説明する。本明細書及び添付図面において実質的に同一の機能又は構成を有する構成要素については、同一の符号を付して重複する説明を省略する。
【００１１】
＜第１の実施形態＞
［制御システム全体の構成］
まず、第１の実施形態に係る通信中継装置を含む制御システム全体の構成について説明する。図１は、第１の実施形態に係る通信中継装置１を含む制御システム全体の構成例を示す図である。
【００１２】
図１に示すように、制御システムは一例として、ファイアウォール２１と、端末装置２２と、生産管理サーバ２３と、ＨＭＩ（Human Machine Interface）装置２４と、監視制御サーバ２５と、通信中継装置１と、制御装置２６及び制御対象設備２７から構成される。これらは相互に通信可能に接続されて階層状のネットワークを形成している。
【００１３】
制御対象設備２７は、制御装置２６に接続されている。制御装置２６は更に、通信中継装置１に接続されている。通信中継装置１は更に、制御システムネットワーク３を介して、監視制御サーバ２５に接続されている。監視制御サーバ２５は更に、制御系情報ネットワーク３３を介して、ＨＭＩ装置２４及び生産管理サーバ２３に接続されている。生産管理サーバ２３は更に、情報系ネットワーク３２を介して、端末装置２２及びファイアウォール２１に接続されている。ファイアウォール２１は更に、インターネットなどの外部ネットワーク３１に接続されている。
【００１４】
ファイアウォール２１は、情報系ネットワーク３２と外部ネットワーク３１との間の通信を中継すると共に、外部ネットワーク３１から情報系ネットワーク３２への不正アクセスを防ぐ。
【００１５】
生産管理サーバ２３は、プラントの生産目標や生産個数指示などの計画値を決定し、計画値を監視制御サーバ２５へ送信する。端末装置２２は、情報系ネットワーク３２を介して生産管理サーバ２３にアクセスすることにより、生産管理サーバ２３へ計画値に関する情報を入力し、生産管理サーバ２３から出力される実績などの情報を表示する。これにより、端末装置２２の管理者は、制御システムの実績を監視することができる。
【００１６】
監視制御サーバ２５は、生産管理サーバ２３から受信した計画値に基づいて、制御対象設備２７の指令値を決定し、制御システムネットワーク３及び通信中継装置１を介して、制御装置２６へ指令値を送信する。ＨＭＩ装置２４は、制御系情報ネットワーク３３を介して監視制御サーバ２５にアクセスすることにより、監視制御サーバ２５へ指令値に関する情報を入力し、監視制御サーバ２５から出力される状態などの情報を表示する。これにより、ＨＭＩ装置２４の管理者は、制御対象設備２７の状態を監視することができる。
【００１７】
制御装置２６は、監視制御サーバ２５から受信した指令値に基づいて、制御対象設備２７を制御する。制御対象設備２７は、スイッチ、バルブ、及びセンサなどである。指令値は例えば、スイッチやバルブの開閉や開度などである。状態は例えば、センサにより計測される圧力、温度、回転数などである。
【００１８】
［不正な通信の種別と検出方法の違い］
通信中継装置１は、単なる通信の中継の機能を持つのみではなく、制御システムネットワーク３から送信される不正な通信を検出及び遮断する能力を持つ。不正な通信の種別は多岐にわたるが、その適切な検出方法の観点から、通信内容は大きく分けて２種類に分けられる。一つ目は、通信の宛先アドレスやポート番号等、オクテット（８ビット）単位等の決まったビット長毎で区切られた領域に特徴的なパターンを有するものである。二つ目は、マルウェアを含む通信など、バイナリ形式であるため決まったビット列の区切りを持たず、任意の位置のビット列に特徴的なパターンを有するものである。前者と後者は、前者を検出するためには例えば８ビットずつのパターンの照合をかければ十分であるのに対し、後者を検出するためには通信フレームの内容に対して１ビットずつパターンの照合を行う必要があるという違いがある。
【００１９】
［通信中継装置の構成］
次に、通信中継装置１の詳細について述べる。図２は、通信中継装置１の内部構成例を示すブロック図である。
【００２０】
通信中継装置１は、制御システムネットワーク３を通じて第１通信装置２に接続されている上流通信ポート１１と、保護対象の第２通信装置４に接続されている下流通信ポート１６とを具備する。通信中継装置１が下流通信ポート１６を複数個具備し、通信中継装置１に複数の第２通信装置４を接続できるようにしてもよい。第１通信装置２は、例えば監視制御サーバ２５である。第２通信装置４は、例えば制御装置２６である。通信中継装置１はさらに、多ビット幅バッファ１２１と、多ビット幅特徴値比較部１３１と、単ビット幅バッファ１２２と、単ビット幅特徴値比較部１３２と、置換部１５と、特徴値設定インターフェース１７、及び特徴値定義部１８から構成される。
【００２１】
上流通信ポート１１（受信部の一例）は、制御システムネットワーク３を介して第１通信装置２から入力された通信フレームを示す信号を受信し、受信した信号をデータ列（中継データ列）に変換して順次出力するように構成されている。このデータ列は、連続する複数の要素を含む。要素は例えばビットである。データ列は、２種類のバッファ、すなわち多ビット幅バッファ１２１と単ビット幅バッファ１２２にそれぞれ入力される。
【００２２】
本実施形態では、制御システムネットワーク３上の通信フレームや上流通信ポート１１から出力されるデータ列はＩＥＥＥ８０２．３形式に基づいているが、これらは他の任意の通信規格に基づくものであってもよい。制御システムネットワーク３の伝送媒体は、電気に加えて光、電波、あるいはそれらの任意の組み合わせであってもよい。上流通信ポート１１は、ＮＩＣ（Network  Interface  Card）であってもよい。
【００２３】
多ビット幅バッファ１２１（バッファ部の一例）は、上流通信ポート１１が受信した通信フレーム内の複数のビットを順次記憶及び出力する。例えば、多ビット幅バッファ１２１は、要素数として８ビットのビット幅（シフト動作単位のビット数）と有限の長さ（図２ではシフト段数が３段）を持つシフトレジスタから構成される。ビット幅は、シフトレジスタのシフト動作単位のビット数である。８ビット幅かつ３段のシフトレジスタは、入力端から連続して入力されるデータ列を１段あたり８ビット格納し、駆動クロック信号に従って８ビット単位で次段（図中右）にシフトさせ、入力された順に出力端から置換部１５へ出力する動作を行う。このような多ビット幅バッファ１２１を備えることにより、データ列内の各ビットは、通信中継装置１で受信されてから一定時間で送信される。後述するように、この多ビット幅バッファ１２１を利用し、通信フレームに対して８ビットずつマッチングパターンの照合が行われる。
【００２４】
単ビット幅バッファ１２２（バッファ部の一例）も同様に、上流通信ポート１１が受信した通信フレーム内の複数のビットを順次記憶及び出力する。例えば、単ビット幅バッファ１２２は、要素数として１ビットのビット幅と有限の長さ（図２ではシフト段数が１２段）を持つシフトレジスタから構成される。１ビット幅かつ１２段のシフトレジスタは、入力端から連続して入力されるデータ列を１段あたり１ビット格納し、駆動クロック信号に従って１ビット単位で次段（図中右）にシフトさせ、入力された順に出力端から出力（破棄）する動作を行う。後述するように、この単ビット幅バッファ１２２を利用し、通信フレームに対して１ビットずつマッチングパターンの照合が行われる。
【００２５】
これらの動作により、各バッファが受信したデータ列は、各バッファの動作単位のビット数（ビット幅）と動作速度（動作周波数）の積に比例した一定期間、各バッファに保持されることになる。つまり、多ビット幅バッファ１２１と単ビット幅バッファ１２２は、ビット幅と動作速度の組み合わせが異なるが、各々のビット幅と動作速度の積は同一又は実質的に同一となるように構成される。
【００２６】
例えば、上流通信ポート１１に入力される信号の帯域（通信速度）が１００Ｍｂｐｓ(Mega bit per second)であるとき、８ビット幅の多ビット幅バッファ１２１におけるシフト動作の速度は１２．５ＭＨｚ、単ビット幅バッファ１２２におけるシフト動作の速度は１００ＭＨｚとなる。このシフト動作の速度の違いが、後述する消費電力の違いを生み出す。なお、これらのバッファはシフトレジスタのほか、デュアルポートメモリやＦＩＦＯバッファなどの技術を用いて構成されていてもよい。
【００２７】
［特徴値比較部］
次に、多ビット幅特徴値比較部１３１と単ビット幅特徴値比較部１３２の動作について説明する。多ビット幅特徴値比較部１３１と単ビット幅特徴値比較部１３２は、バッファごとに設けられ、それぞれバッファのビット幅に対応するビット列と各バッファ部の通過条件とを比較する処理を行う。
【００２８】
多ビット幅特徴値比較部１３１は内部に、多ビット幅マッチングパターン１４１を記憶する素子を有する。また、単ビット幅特徴値比較部１３２は内部に、単ビット幅マッチングパターン１４２を記憶する素子を有する。
【００２９】
多ビット幅特徴値比較部１３１は、例えば多ビット幅バッファ１２１の２段目に保持されたデータ列を多ビット幅マッチングパターン１４１と照合し、両者が合致する場合には置換部１５に対して合致信号を出力する。多ビット幅特徴値比較部１３１は、８ビットずつデータ列をシフトさせる多ビット幅バッファ１２１を利用し、通信フレームに対して８ビットずつマッチングパターンの照合を行う。
【００３０】
同様に、単ビット幅特徴値比較部１３２は、例えば単ビット幅バッファ１２２の３段目から１０段目に保持されたデータ列を単ビット幅マッチングパターン１４２と照合し、両者が合致する場合には置換部１５に対して合致信号を出力する。単ビット幅特徴値比較部１３２は、１ビットずつデータ列をシフトさせる単ビット幅バッファ１２２を利用し、通信フレームに対して１ビットずつマッチングパターンの照合を行う。
【００３１】
置換部１５（変更部の一例）は、多ビット幅バッファ１２１から出力されるデータ列を受信し、下流通信ポート１６へ伝送するとともに、各特徴値比較部１３１，１３２の比較結果に応じて、伝送するデータ列の一部の要素を指示された値に書き換える。置換部１５の動作の詳細については後述する。
【００３２】
下流通信ポート１６（送信部の一例）は、置換部１５から伝送されるデータ列を、再び外部装置への通信又はネットワークに適する信号に変換し、第２通信装置４へ送信する。本実施形態では、上流通信ポート１１と同様に、伝送されるデータ列や上流通信ポート１１から出力されるデータ列はＩＥＥＥ８０２．３形式に基づくとするが、任意の通信規格を用いてもよい。下流通信ポート１６は、ＮＩＣであってもよい。
【００３３】
［通信フレームの詳細と置換部の動作］
本実施形態において、制御システムネットワーク３上の通信フレームはＩＥＥＥ８０２．３形式に基づくものを例としている。ここで、ＩＥＥＥ８０２．３形式に基づく通信フレームについて、図３を用いて説明する。
【００３４】
（通信フレーム）
図３は、通信フレームのフォーマットの例を示す。ＩＥＥＥ８０２．３形式に基づく通信フレームは、プリアンブル部と、ヘッダ部と、ペイロード部、及びＦＣＳ（Frame Check Sequence）部の各フィールド（領域）を含む。プリアンブル部の末尾はＳＦＤ（Start Frame Delimiter）であり、ヘッダの開始を示す。上流通信ポート１１は、受信した信号からＳＦＤを検出したとき、受信タイミングを示すフレーム開始信号を出力する。フレーム開始信号は、置換部１５が通信フレーム内のＦＣＳ部の情報を変更するタイミング（通信フレーム内の位置）の基準となる。上流通信ポート１１は、フレーム開始信号を置換部１５に直接供給してもよいし、各特徴値比較部１３１，１３２を介して置換部１５に供給してもよい。
【００３５】
ヘッダ部は、宛先アドレス、送信元アドレス及びタイプ／長さのサブフィールドを含み、パケットを正しく宛先に送り届けるために用いられる。ペイロード部は、送信されるデータの中身（本体）である。ＦＣＳ部（第１領域の一例）は、ＩＥＥＥ８０２．３フレームに伝送誤りがあるかどうかを受信装置にて検査するための誤り検査符号が格納される、誤り検出のための領域である。ＦＣＳ値は、ヘッダ部及びペイロード部の内容からＣＲＣ（Cycric Redundancy Check）演算により算出され、例えば３２ビットである。
【００３６】
上流通信ポート１１は、通信フレームからＳＦＤを検出することによりヘッダの開始タイミングを認識する。置換部１５は、タイプ／長さを検出することにより、ペイロードの長さを認識し、ＦＣＳ部のタイミング（通信フレーム内の位置）を認識する。なお、上流通信ポート１１又は各特徴値比較部１３１，１３２が、タイプ／長さを検出する処理を行ってもよい。
【００３７】
上記通信フレームを受け取った装置は、その通信フレームに含まれるＦＣＳ値を検算し、期待される値と合致しない場合は当該通信フレームを破棄する。この仕組みにより、不正な通信やノイズ等により通信フレームの内容が変化した場合に、その正しくない値を制御等に用いてしまうことを防ぐことができる。
【００３８】
［置換部］
上記内容を踏まえて、置換部１５の動作を説明する。置換部１５は、多ビット幅バッファ１２１から出力される８ビットのデータ列を順に受信し、通常時にはそれをそのまま下流通信ポート１６へ順に伝送する。ただし、いずれかの特徴値比較部１３１，１３２において所定ビット幅のデータ列が通過条件を満たさない場合には、置換部１５は、通信フレーム内のＦＣＳ部の情報を変更する。すなわち、置換部１５は、多ビット幅特徴値比較部１３１と単ビット幅特徴値比較部１３２のいずれかから合致信号を受信した場合（以下、「特徴値合致時」と記す）、当該通信フレームにおけるＦＣＳ部の値を反転させたり無効な値に書き換えたりする。無効な値とは、例えば０である。ＦＣＳ部以外のフィールドについては、入力された値をそのまま出力する。
【００３９】
第２通信装置４では、通信中継装置１の下流通信ポート１６を通じて当該通信フレームを受信し、ヘッダ部及びペイロード部の内容からＦＣＳを検算する。このとき、特徴値合致時においては、ＦＣＳ部の値が無効な値に書き換えられているため、受信したＦＣＳ値と検算したＦＣＳ値が異なり通信フレームは破棄される。この動作により、第２通信装置４が制御装置２６であった場合、不正な通信フレームにより制御装置２６がマルウェアに感染したり不正なポート経由での通信により異常な動作を起こしたりするような影響を防ぐことができる。したがって、通信フレームが制御装置２６にとって有害なものであった場合でも、制御装置２６の制御能力を損なうことを防止できる。
【００４０】
通信フレームにおいて、置換部１５による書き換え対象は、ペイロード部内の特定の領域のデータ等、ＦＣＳ部以外の部分であってもよい。なお、通信フレームの形式がＩＥＥＥ８０２．３以外である場合も、当該通信フレームの誤り検出用符号が保持されたフィールドや、当該通信フレームの形式上特定の値が設定されることを期待されているフィールドなどを、書き換え対象とすることで、ＦＣＳと同様の効果が期待できる。
【００４１】
通信フレームにおいて、書き換え対象のビット列は、マッチングパターンとの照合が行われるビット列より後に位置することが好ましい。これにより、照合対象のビット列が各バッファを通過した後に、書き換え対象のビット列を書き換えることができる。なお、ＦＣＳ部の情報を変更する方法として、置換部１５が所定の加算値を出力し、ＦＣＳ部にその加算値を加えてもよい。
【００４２】
［特徴値の設定及び更新］
次に、特徴値設定インターフェース１７及び特徴値定義部１８の動作について説明する。
特徴値設定インターフェース１７は、パーソナルコンピューターなどの外部装置からの通信により遮断すべき通信内容に関する特徴値の情報を受け取り、その特徴値の情報を特徴値定義部１８へ書き込むように構成されている。
【００４３】
特徴値定義部１８は、ＲＡＭ等の記憶素子から構成され、その特徴値の情報を多ビット幅マッチングパターン１４１及び単ビット幅マッチングパターン１４２へ転写する機能を持つ。この動作により、通信中継装置１で遮断すべき通信内容についての設定（マッチングパターン）を更新することができ、最新の脅威に対応させることができる。
【００４４】
なお、特徴値設定インターフェース１７の具体的な実装はシリアルポート等の独立した形式でもよいし、上流通信ポート１１と一体化され、制御システムネットワーク３を経由して特徴値を更新する構成であってもよい。
【００４５】
［第１の実施形態の効果］
このように構成された第１の実施形態は、単一のビット幅のみでバッファ及び特徴値比較部を構成した場合と比べ、マッチングパターンの粒度（比較処理の単位）に応じて各バッファ及び特徴値比較部の動作速度（動作周波数）を最適化することができる。例えば、バイナリ形式のシグネチャ（マルウェアに特徴的なパターン）検知では１ビットごとの照合が必要である。これに対し、ポート番号等の多ビット単位で通信フレーム上の出現位置が特定できるパターン（例えばワード）の検知においては、当該多ビット単位での照合でよく、不正な通信を検出するための好適な実装形式が異なる。それゆえ、第１の実施形態は、種種の不正な通信に対応しつつ、消費電力を低減することができる。
【００４６】
例えば、入力される信号が１００Ｍｂｐｓであるとき、従来の方式ではすべてのバッファ及び特徴値比較部を１００ＭＨｚで動かす必要がある。これに対し、本実施形態の通信中継装置１では、前述したように、単ビット幅バッファ１２２及び単ビット幅特徴値比較部１３２に対しては１００ＭＨｚで動作させる必要があるが、８ビット幅に対応した多ビット幅バッファ１２１及び多ビット幅特徴値比較部１３１は、その１／８の１２．５ＭＨｚの動作周波数で済む。例えば、通信フレームの照合ビット位置が４や８の倍数である場合は、多ビット幅バッファ１２１及び多ビット幅特徴値比較部１３１で照合する。
【００４７】
一般的に回路の消費電力は動作周波数に比例することから、１／８の動作周波数の回路を含む場合、すべての回路を１００ＭＨｚで動作させるのに比べて消費電力を低減することができる。消費電力の低減は、放熱構造の簡易化などにつながるため、通信中継装置１の低コスト化にも寄与する。すなわち、多ビット幅バッファ１２１を設けることで、単ビット幅バッファ１２２よりも動作周波数を落とせるため、消費電力が小さく、また回路規模が小さい低コストの通信中継装置を実現できる。
【００４８】
ある通信フレームに対し判定すべきマッチングパターンが１０パターンあり、そのうち８ビット幅マッチングパターンが５パターン、１ビット幅マッチングパターンが５パターンであるとする。従来は、８ビット幅と１ビット幅を含む１０パターンの判定を、単ビット幅バッファ１２２及び単ビット幅特徴値比較部１３２で全て行うため、消費電力が増大していた。しかし、本実施形態では、８ビット幅対応の多ビット幅バッファ１２１及び多ビット幅特徴値比較部１３１で５個の８ビット幅マッチングパターンの比較処理を行い、１ビット幅対応の単ビット幅バッファ１２２及び単ビット幅特徴値比較部１３２で残りの５個の１ビット幅マッチングパターンの比較処理を行う。このように、判定すべきマッチングパターンのビット幅に応じて、比較処理を行うバッファ及び特徴値比較部を最適化することで、消費電力を大幅に削減することが可能になる。
【００４９】
また、本実施形態では、単ビット幅バッファ１２２側は、比較結果を単ビット幅特徴値比較部１３２から置換部１５に通知するのみであり、多ビット幅バッファ１２１が上流通信ポート１１から入力された通信フレーム内のデータ列を順に置換部１５に出力する。このように、通信フレームのビット列の中継にビット幅のより大きい多ビット幅バッファ１２１を用いることで、単ビット幅バッファ１２２を用いる場合と比較して、ビット列の中継に掛かる消費電力を低減できる。
【００５０】
また、本実施形態によれば、既存の制御システムに後付けで、少なくとも消費電力が小さいセキュリティ対策能力を付与することが可能である。それゆえ、既存プラントの延命や改良に伴うセキュリティ対策の需要に応えることができる。
【００５１】
第２通信装置４が制御装置２６である場合、通信フレームの特徴値を算出して判定する機能を、制御装置２６に追加して、制御装置２６の限られた処理能力を用いて実現することは困難である。本実施形態の通信中継装置１を制御装置２６の外部に追加することにより、制御装置２６を変更することなく、また制御装置２６の負荷を増加させることなく、制御装置２６への攻撃を防ぐことができる。
【００５２】
制御装置２６への攻撃を意図する者は、攻撃対象の制御装置２６における設計上ないし実装上の不備（脆弱性）を継続的に探し、それらを悪用した新たな攻撃手法を適用してくる恐れがある。長期にわたり稼働することが求められるインフラなどの制御システムでは、その稼働期間内において、新たな攻撃手法への防御策を継続して追加できることが望ましい。制御システムの稼働中に制御装置２６を停止させることは困難であるため、制御装置２６のプログラムの改修や、パッチ（修正プログラム）の適用などは困難である。本実施形態によれば、通信中継装置１に特徴値抽出ルールおよび通過条件を設定することにより、制御システムの動作を停止させることなく、新たな攻撃手法に対応することができる。
【００５３】
ところで、ストアアンドフォワード方式を用いる中継装置は、通信フレームのすべてを受信して格納し、通信フレームを通過させるか廃棄するかを判定し、通過させると判定された通信フレームのみを送信する。すなわち、この中継装置は、判定が完了するまで、通信フレームの送信を開始しない。したがって、通信フレームの長さなどによって中継の遅延時間は変動する。
【００５４】
一方、通信中継装置１は、通信フレームの各ビットを受信して各バッファに入力し、各バッファを通過させ、通過中の部分データにより通信フレームが正常か否かを判定し、異常であれば通信フレームの一部のビットを書き換え、受信した順に各ビットを送信する。すなわち、通信中継装置１は、連続して受信する複数の通信フレームを、通信フレームの長さや通信フレームの判定結果に関わらず、一定の遅延時間で第２通信装置４へ中継する。制御システムにおいては、短い周期で通信フレームが送信されるため、中継の遅延時間が一定であることが好ましい。
【００５５】
更に通信フレームが各バッファを通過する間にデータ列の一部を算出し、所定の通過条件と比較することで当該通信フレームの中継の有効／無効を判定することができる。判定の結果、当該通信フレームの中継が無効と判定された場合には、下流通信ポート１６により当該通信フレームの先頭の送出が開始されていても、当該通信フレームの末尾のＦＣＳ部を書き換えることで、第２通信装置４にて当該通信フレームの受信を無効とし、破棄することができる。これにより、中継の遅延時間を増大させることなく通信フレームを遮断することができる。
【００５６】
＜第１の実施形態の変形例＞
第１の実施形態では記述を簡略にするために、適用される特徴値（ビット列のパターン）が多ビット幅及び単ビット幅でそれぞれ１つずつの場合を示したが、これらは複数の異なる特徴量をそれぞれのビット幅で適用できるようにしてもよい。一般的に、遮断すべき不正なパターンは多様化の一途をたどっており、多様なパターンに対応できるようにしておく必要がある。
【００５７】
また、本実施形態では、多ビット幅バッファと多ビット幅特徴値比較部を１組、並びに、単ビット幅バッファ及び単ビット幅特徴値比較部を１組設けた場合を示したが、この例に限らない。多ビット幅対応の回路と単ビット幅対応の回路をそれぞれ複数組備えてもよい。本発明では、複数組のバッファ及び特徴値比較部のうち、少なくとも１組のバッファ及び特徴値比較部のビット幅が１であり、かつ、少なくとも１組のバッファ及び特徴値比較部のビット幅が２以上であればよい。例えば、多ビット幅バッファ１２１に４ビット幅バッファを利用した場合、単ビット幅バッファと比較して消費電力が約１／４に低減するとともに、４ビット幅の標準のＭＩＩ（media-independent interface）インターフェースと互換性を有するので変換回路が不要になる。４ビット幅対応の構成の場合は、動作周波数は２５ＭＨｚとなる。
【００５８】
また、本実施形態では、保持している特徴値のいずれかに合致したときに当該特徴値を含む通信フレームを遮断する、いわゆるブラックリスト方式について説明したが、この例に限らない。通信中継装置１は、いわゆるホワイトリスト方式、すなわち、保持している特徴値のすべてに合致した場合にのみ当該特徴値を含む通信フレームを通過させ、それ以外はすべて遮断する方式で実装されていてもよい。
【００５９】
ブラックリスト方式の場合、通過条件は、複数の要素から構成された不正な通信を表すマッチングパターン（第１のパターン）に合致しないことである。特徴値比較部は、通信パターン内に第１のパターンと合致するデータ列が存在した場合に、合致信号を出力する。そして、置換部１５は、いずれかの特徴値比較部から合致信号を受信すると、通信フレーム内のＦＣＳ部の値を書き換える。このような構成とした場合、ブラックリスト方式で照合するのが適当な通信フレームに対して良好な照合を行うことができる。
【００６０】
ホワイトリスト方式の場合、通過条件は、複数の要素から構成された不正な通信ではないことを表すマッチングパターン（第２のパターン）に合致することである。特徴値比較部は、通信パターン内の照合対象のすべてのデータ列が第２のパターンと合致するかいなかを判定し、判定結果を置換部１５に通知する。そして、置換部１５は、いずれかの特徴値比較部において、第２のパターンと合致しないデータ列が存在したと判定された場合には、置換部１５は、通信フレーム内のＦＣＳ部の値を書き換える。このような構成とした場合、ホワイトリスト方式で照合するのが適当な通信フレームに対して良好な照合を行うことができる。
【００６１】
なお、制御システムネットワーク３においては、同じ形式や同じ長さの通信フレームが一定周期で送信されるという特徴がある。このような場合の通信フレームは、例えば、ペイロード中の固定長の値だけが変わるものや、スイッチのＯＮまたはＯＦＦを示すものである。このような場合、通過条件は通信フレームの受信時刻を用いてもよい。連続する二つの通信フレームのフレーム受信時刻の差であるフレーム受信間隔を特徴値とした場合、通過条件は、フレーム受信間隔が所定の時間範囲内にあることである。上述した各変形例は、第２の実施形態にも適用可能である。
【００６２】
＜第２の実施形態＞
第１の実施形態では、制御システムネットワーク３から到来する不正な通信から第２通信装置４を保護することができる。しかし、実際には、第２通信装置４が制御システムネットワーク３以外の経路でマルウェア感染等の攻撃を受け、第２通信装置４から制御システムネットワーク３に向かって不正な通信を送出するケースも考えられる。例えば、制御システムネットワーク３の内部からの不正な通信として、制御装置２６に装着されたＵＳＢメモリを介して制御システムネットワーク３に不正な通信が送信されることも考えられる。このような場合への対策として、通信の伝送方向を双方向に拡張し、第１の実施形態と逆向きに不正な通信が伝搬することを防止することが求められる。第２の実施形態では、第１の実施形態とは逆向きに不正な通信が伝搬することを防止する通信中継装置について説明する。
【００６３】
図４は、第２の実施形態に係る通信中継装置１Ａの概略構成例を示すブロック図である。通信中継装置１Ａは、第１中継部４０ａ及び第２中継部４０ｂの２つの中継部を含む。制御システムネットワーク３から第２通信装置４へ伝送される通信フレームの経路（便宜的に「下り」という）と、逆に第２通信装置４から制御システムネットワーク３へ伝送される通信フレームの経路（便宜的に「上り」という）とに、それぞれ第１中継部４０ａ及び第２中継部４０ｂが挿入されている。第１中継部４０ａは下り方向の通信フレームを中継し、第２中継部４０ｂは上り方向の通信フレームを中継する。第１中継部４０ａ及び第２中継部４０ｂのそれぞれは、第１の実施形態で述べた通信中継装置１と同様の構成を有する。
【００６４】
第１実施形態と同様、第１通信装置２から下り方向に伝送される通信フレームのうち、第１中継部４０ａによりＦＣＳフィールドの値を無効値に置換された通信フレームは、第２通信装置４により廃棄される。同様に、第２通信装置４から上り方向に伝送される通信フレームのうち、第２中継部４０ｂによりＦＣＳフィールドの値を無効値に置換された通信フレームは、例えば宛先が第１通信装置２であった場合、第１通信装置２により廃棄される。これにより、下り方向、すなわち制御システムネットワーク３から到来する不正な通信から第２通信装置４を保護する機能に加え、上り方向、すなわち第２通信装置４から送出される不正な通信から制御システムネットワーク３に接続された機器を保護する機能を実現することができる。
【００６５】
このとき、第１中継部４０ａ及び第２中継部４０ｂは、それぞれに異なるマッチングパターンを設定することができる。すなわち、多ビット幅マッチングパターン１４１を、第１中継部４０ａと第２中継部４０ｂで異なるパターンにしてもよい。同様に、単ビット幅マッチングパターン１４２を、第１中継部４０ａと第２中継部４０ｂで異なるパターンにしてもよい。これにより、上り経路と下り経路で異なるマッチングパターン（通過条件）を定義することができる。この場合、上り経路と下り経路のそれぞれにおける脅威の傾向に応じて柔軟な対策を講じることができる。
【００６６】
なお、第１中継部４０ａ内の上流通信ポート１１と第２中継部４０ｂ内の下流通信ポート１６とが一つの通信ポートであってもよく、第２中継部４０ｂ内の上流通信ポート１１と第１中継部４０ａ内の下流通信ポート１６とが一つの通信ポートであってもよい。また、第１中継部４０ａと第２中継部４０ｂが互いに異なる筺体に設けられていてもよい。
【００６７】
また、第１中継部４０ａと第２中継部４０ｂで、特徴値設定インターフェース１７及び特徴値定義部１８（それぞれ図２参照）を共通としてもよい。すなわち、第１中継部４０ａと第２中継部４０ｂは、特徴値設定インターフェース１７及び特徴値定義部１８を備えない。管理者は、通信中継装置１Ａの特徴値設定インターフェース１７及び特徴値定義部１８を介して特徴値（多ビット幅マッチングパターン、単ビット幅マッチングパターン）を、第１中継部４０ａと第２中継部４０ｂに個別に又は一斉に設定する。通信中継装置１Ａにおいて、下り経路と上り経路とに共通の特徴値を用いることにより、下り経路と上り経路とに異なる特徴値を用いる場合に比べて、特徴値の設定の工数を削減できる。
【００６８】
上述した第１及び第２の実施形態に係る通信中継装置１，１Ａの動作は、ハードウェアによって行われてもよく、ソフトウェアによって行われてもよい。図５は、ソフトウェアによって行われる場合に、通信中継装置１，１Ａが備えるコンピューター５０のハードウェア構成例のブロック図を示す。通信中継装置１Ａの第１中継部４０ａ及び第２中継部４０ｂのコンピューター５０のハードウェア構成は、通信中継装置１と同様の構成とすることができる。
【００６９】
コンピューター５０は、ＣＰＵ（Central Processing Unit）５１、ＲＯＭ（Read Only Memory）５２、ＲＡＭ（Random Access Memory）５３、不揮発性ストレージ５５、第１通信インターフェース５６、及び第２通信インターフェース５７を備える。通信中継装置１内の各部は、システムバス５４を介して相互にデータの送受信が可能に接続されている。
【００７０】
ＣＰＵ５１、ＲＯＭ５２、及びＲＡＭ５３は制御部を構成する。この制御部は、通信中継装置１全体又は通信中継装置１Ａ内の各部の動作を制御する。ＣＰＵ５１は、上述した各実施形態に係る各機能を実現するソフトウェアのプログラムコードをＲＯＭ５２から読み出して実行し、各部の制御や各種の演算を行う。なお、ＣＰＵ５１に代えて、ＭＰＵ（Micro Processing Unit）等の他の演算処理装置を用いてもよい。
【００７１】
ＲＯＭ５２は、不揮発性メモリ（記録媒体）の一例として用いられ、ＲＯＭ５２にはＣＰＵ５１が動作するために必要なプログラムやデータ等が記憶される。ＲＡＭ５３は、揮発性メモリの一例として用いられ、ＲＡＭ５３にはＣＰＵ５１による演算処理の途中に発生した変数やパラメータ等が一時的に記憶される。
【００７２】
不揮発性ストレージ５５は、記録媒体の一例であり、ＣＰＵ５１が実行するプログラムやＯＳ（Operating System）等のプログラム、テーブル、ファイル等の情報を記憶することが可能である。不揮発性ストレージ５５には、例えば半導体メモリやハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、又は磁気や光を利用することができる。なお、プログラムは、ローカルエリアネットワーク（ＬＡＮ）、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供されてもよい。
【００７３】
第１通信インターフェース５６には、例えばＮＩＣやモデム等が用いられ、端子が接続されたＬＡＮ等のネットワーク又は専用線等を介して、外部装置との間で各種のデータを送受信することが可能に構成されている。例えば、第１通信インターフェース５６は、上流通信ポート１１に相当する。
【００７４】
第２通信インターフェース５７には、例えばＮＩＣやモデム等が用いられ、端子が接続されたＬＡＮ等のネットワーク又は専用線等を介して、外部装置との間で各種のデータを送受信することが可能に構成されている。例えば、第２通信インターフェース５７は、下流通信ポート１６に相当する。
【００７５】
なお、コンピューター５０に、表示部及び操作部を設け、監視員が表示部に表示された内容を確認して操作部を通じて必要な情報を入力できるように構成してもよい。表示部は、例えば液晶ディスプレイモニタであり、ＧＵＩ画面やＣＰＵ５１で行われた処理の結果等を表示する。操作部には、例えば、マウスやタッチパネル等のポインティングデバイス、キーボードなどが用いられる。監視員は、操作部に所定の操作を行い、指示を入力することが可能である。操作部は、監視員の操作に応じた入力信号を生成してＣＰＵ５１へ供給する。
【００７６】
さらに、本発明は上述した各実施形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、その他種々の応用例、変形例を取り得ることは勿論である。
【００７７】
例えば、上述した実施形態例は本発明を分かりやすく説明するために通信中継装置の構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成要素を備えるものに限定されない。また、ある実施形態例の構成の一部を他の実施形態例の構成要素に置き換えることは可能である。また、ある実施形態例の構成に他の実施形態例の構成要素を加えることも可能である。また、各実施形態例の構成の一部について、他の構成要素の追加、削除、置換をすることも可能である。
【００７８】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、ある処理部により実施される処理が、１つのハードウェアにより実現されてもよいし、複数のハードウェアによる分散処理により実現されてもよい。
【００７９】
また、上述した実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成要素が相互に接続されていると考えてもよい。
【符号の説明】
【００８０】
１，１Ａ…通信中継装置、  ２…第１通信装置、  ３…制御システムネットワーク、  ４…第２通信装置、  １１…上流通信ポート、  １５…置換部、  １６…下流通信ポート、  １８…特徴値定義部、  ４０ａ…第１中継部、  ４０ｂ…第２中継部、  １２１…多ビット幅バッファ、  １２２…単ビット幅バッファ、  １３１…多ビット幅特徴値比較部、  １３２…単ビット幅特徴値比較部、  １４１…多ビット幅マッチングパターン、  １４２…単ビット幅マッチングパターン
【図１】
2020031342.tif 000003
【図２】
2020031342.tif 000004
【図３】
2020031342.tif 000005
【図４】
2020031342.tif 000006
【図５】
2020031342.tif 000007