(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】バックドア検知装置、バックドア検知方法、及びプログラム
(51)【国際特許分類】
G06F 21/56 20130101AFI20240918BHJP
【FI】
G06F21/56 360
(21)【出願番号】P 2023555943
(86)(22)【出願日】2021-10-27
(86)【国際出願番号】 JP2021039605
(87)【国際公開番号】W WO2023073822
(87)【国際公開日】2023-05-04
【審査請求日】2024-04-10
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】鑪 講平
【審査官】岸野 徹
(56)【参考文献】
【文献】米国特許第8990944(US,B1)
【文献】国際公開第2021/028989(WO,A1)
【文献】佐々木 貴之,バックドア検査結果に基づくネットワークアクセス制御の提案,2020年 暗号と情報セキュリティシンポジウム予稿集 [online],2020年01月21日,pp.1-6
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得する正規フロー取得手段と、
実運用環境下において、前記ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得する運用フロー取得手段と、
前記取得された前記正規入出力フロー情報と前記運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定するバックドア判定手段と、
前記バックドア判定手段による前記判定の結果を出力する出力手段と、を備える、バックドア検知装置。
【請求項2】
前記バックドア判定手段は、前記取得された前記運用入出力フロー情報のうち、前記取得された前記正規入出力フロー情報にはない入出力フローが所定以上存在する場合、バックドアであると判定する、請求項1に記載のバックドア検知装置。
【請求項3】
前記運用フロー取得手段は、過去の所定の時点における運用入出力フロー情報を更に取得し、
前記バックドア判定手段は、前記取得された前記運用入出力フロー情報のうち、前記取得された前記正規入出力フロー情報にはない入出力フローが存在し、且つ、過去の所定の時点における運用入出力フロー情報と比較して、前記正規入出力フロー情報にはない入出力フローが多い場合、バックドアであると判定する、請求項1に記載のバックドア検知装置。
【請求項4】
前記運用フロー取得手段は、前記ファームウェアのうち、データの入出力に関連するフローを含む箇所のみ実行して観測された入出力フローを前記運用入出力フロー情報として取得する、請求項1~3のいずれか一項に記載のバックドア検知装置。
【請求項5】
前記バックドアと判定された入出力フローを特定する、バックドア特定手段を更に備え、
前記出力手段は、前記バックドアと判定された入出力フロー情報を更に出力する、請求項1~4のいずれか一項に記載のバックドア検知装置。
【請求項6】
前記特定された前記入出力フローを実行させないように制御する、制御手段を更に備える、請求項5に記載のバックドア検知装置。
【請求項7】
コンピュータが、
テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得し、
実運用環境下において、前記ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得し、
前記取得された前記正規入出力フロー情報と前記運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定し、
前記判定された結果を出力する、バックドア検知方法。
【請求項8】
テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得し、
実運用環境下において、前記ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得し、
前記取得された前記正規入出力フロー情報と前記運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定し、
前記判定された結果を出力する、ことをコンピュータに実行させるプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、バックドア検知装置、バックドア検知方法、及び記録媒体に関する。
【背景技術】
【0002】
外部からデバイスを調達した際におけるサプライチェーン・リスク対策の一つとして、バックドア等のプログラム内の不正機能の検出するための技術がある。
【0003】
例えば、特許文献1には、監視対象とする特定の関数がアプリケーションプログラムにより呼び出されるまでの関数間の正常な呼び出し関係と、監視対象とする特定の関数を呼び出すイベントに応じて特定の関数がアプリケーションプログラムにより呼び出されるまでの関数間の呼び出し関係とを比較する異常検知装置が開示されている。この異常検知装置は、上記の関係を比較した結果、呼び出し関係が一致しない場合には、イベントに伴う関数の呼び出し動作を異常な動作として検知する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、バックドアを利用した不正アクセスでは、攻撃者だけが知る情報をトリガとして、システムに重大な影響を与える入出力フローを実行する場合が多い。上述した特許文献1に記載された発明では、正常な呼び出し関係にバックドアによる不正機能が含まれている可能性がある。
【0006】
本開示の目的の一例は、バックドアの検出率を高めることが可能なバックドア検知装置を提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様におけるバックドア検知装置は、テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得する正規フロー取得手段と、実運用環境下において、ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得する運用フロー取得手段と、取得された正規入出力フロー情報と運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定するバックドア判定手段と、バックドア判定手段による判定の結果を出力する出力手段と、を備える。
【0008】
本開示の一態様におけるバックドア検知方法は、テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得し、実運用環境下において、ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得し、取得された正規入出力フロー情報と運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定し、判定の結果を出力する。
【0009】
本開示の一態様における記録媒体は、テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得し、実運用環境下において、ファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得し、取得された正規入出力フロー情報と運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定し、判定の結果を出力することをコンピュータに実行させるプログラムを格納する。
【発明の効果】
【0010】
本開示による効果の一例は、バックドアの検出率を高めることが可能なバックドア検知装置を提供できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、第一の実施形態におけるバックドア検知装置の構成を示すブロック図である。
【
図2】
図2は、第一の実施形態におけるバックドア検知装置をコンピュータ装置とその周辺装置で実現したハードウェア構成を示す図である。
【
図3】
図3は、第一の実施形態における正規入出力フロー情報を説明するための図である。
【
図4】
図4は、第一の実施形態における運用入出力フロー情報を説明するための図である。
【
図5】
図5は、第一の実施形態におけるバックドア検知を示すフローチャートである。
【
図6】
図6は、第二の実施形態におけるバックドア検知装置の構成を示すブロック図である。
【
図7】
図7は、第二の実施形態におけるバックドア検知の動作を示すフローチャートである。
【発明を実施するための形態】
【0012】
次に、実施形態について図面を参照して詳細に説明する。
【0013】
[第一の実施形態]
第一の実施形態におけるバックドア検知装置100は、例えば、外部の事業者から提供されたデバイスを自身のシステムに組み込む際、提供されたデバイスのファームウェア内にバックドア等の不正機能が含まれていないかを検知するための装置である。
【0014】
図1は、第一の実施形態におけるバックドア検知装置100の構成を示すブロック図である。
図1を参照すると、バックドア検知装置100は、正規フロー取得部101、運用フロー取得部102、バックドア判定部103及び出力部104を備える。以下、本実施形態の必須構成であるバックドア検知装置100について詳しく説明する。
【0015】
図2は、本開示の第一の実施形態におけるバックドア検知装置100を、プロセッサを含むコンピュータ装置500で実現したハードウェア構成の一例を示す図である。
図2に示されるように、バックドア検知装置100は、CPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503等のメモリ、プログラム504を格納するハードディスク等の記憶装置505、ネットワーク接続用の通信I/F(Interface)508、データの入出力を行う入出力インターフェース511を含む。第一の実施形態において、正規フロー取得部101及び運用フロー取得部102が取得するファームウェアの入出力フロー情報は、入出力インターフェース511を介してバックドア検知装置100に入力される。
【0016】
CPU501は、オペレーティングシステムを動作させて本発明の第一の実施の形態に係るバックドア検知装置100の全体を制御する。また、CPU501は、例えばドライブ装置507などに装着された記録媒体506からメモリにプログラムやデータを読み出す。また、CPU501は、第一の実施の形態における正規フロー取得部101、運用フロー取得部102、バックドア判定部103、出力部104及びこれらの一部として機能し、プログラムに基づいて後述する
図6に示すフローチャートにおける処理または命令を実行する。
【0017】
記録媒体506は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、または半導体メモリ等である。記憶装置の一部の記録媒体は、不揮発性記憶装置であり、そこにプログラムを記録する。また、プログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
【0018】
入力装置509は、例えば、マウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置509は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネルでもよい。出力装置510は、例えばディスプレイで実現され、出力を確認するために用いられる。
【0019】
以上のように、
図1に示す第一の実施形態は、
図2に示されるコンピュータ・ハードウェアによって実現される。ただし、
図1のバックドア検知装置100が備える各部の実現手段は、以上説明した構成に限定されない。またバックドア検知装置100は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。たとえば、入力装置509及び出力装置510は、コンピュータ装置500とネットワークを経由して接続されていてもよい。また、
図1に示す第一の実施形態におけるバックドア検知装置100は、クラウドコンピューティング等で構成することもできる。
【0020】
図1において、正規フロー取得部101は、テスト環境下において、監視対象となる機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む正規入出力フロー情報を取得する手段である。正規入出力フロー情報とは、攻撃者からの介入がなく、ファームウェアの正規の動作に関連すると想定される入出力フローの情報である。テスト環境下とは、機器の納入後運用前にファームウェアの機能をテストする環境である。本実施形態においてテスト環境とは、例えば、外部ネットワークから遮断されており、外部からの入力が介在しない環境である。正規フロー取得部101は、例えば、データの入出力に関連するフローを含む箇所のみファームウェアを実行する。入出力に関連する入出力フローとは、ファームウェアにより実行されたフローのうち、データの入出力に関連するフローである。正規フロー取得部101は、テスト環境下でファームウェアの起動を監視する。正規フロー取得部101は、例えば、ファームウェアの起動を検知すると、ファームウェアの実行中に観測された入出力フロー情報を取得する。入出力フロー情報の取得は、従来のプログラム解析を行うソフトウェア等によって行うことができる。
【0021】
図3は、第一の実施形態における正規入出力フロー情報を説明するための図である。
図3の例では、入出力フロー「コマンド入力→ソケット通信→ファイル出力」、及び入出力フロー「コマンド入力→ソケット通信→画面出力」が観測されている。正規フロー取得部101は、観測された入出力フロー情報をバックドア判定部103に出力する。また、正規フロー取得部101は、他の事業者が作成した正規入出力フロー情報を含むファイルを取得して、バックドア判定部103に出力しても構わない。
【0022】
運用フロー取得部102は、実運用環境下において、監視対象の機器のファームウェアを実行して観測された入出力に関連する入出力フローを含む運用入出力フロー情報を取得する手段である。運用入出力フロー情報とは、攻撃者からの介入の可能性があり、バックドアに関わるフローが含まれ得る入出力フローの情報である。実運用環境下とは、実際のシステムに機器を組み込んだ際の環境である。本実施形態において実運用環境とは、例えば、外部ネットワークとの通信が可能であり、外部からの入力が介在し、攻撃者からの入力が介在しうる環境である。具体的には、例えば、外部サーバへのデータ出力や外部データへの書込みが可能となる環境である。運用フロー取得部102は、データの入出力に関連するフローを含む箇所のみファームウェアを実行する。運用フロー取得部102は、実運用環境下でファームウェアの起動を監視する。運用フロー取得部102は、例えば、ファームウェアの起動を検知すると、ファームウェアの実行中に観測された入出力フロー情報を取得する。入出力フロー情報の取得は、従来のプログラム解析を行うソフトウェア等によって行うことができる。
【0023】
図4は、第一の実施形態における運用入出力フロー情報を説明するための図である。
図4の例では、入出力フロー「コマンド入力→ソケット通信→ファイル出力」、及び入出力フロー「コマンド入力→ソケット通信→画面出力」の他に、テスト環境では観測されなかった、「パスワード読出→ログ出力」という入出力フローが観測されている。運用フロー取得部102は、このようして取得した運用入出力フロー情報をバックドア判定部103に出力する。
【0024】
バックドア判定部103は、取得された正規入出力フロー情報と運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定する手段である。バックドア判定部103は、正規フロー取得部101から正規入出力フロー情報及び運用フロー取得部102から運用入出力フロー情報が入力されると、入出力フロー同士を対比して、運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フローが存在すれば、バックドアが存在すると判定する。
図4の例では、運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フロー「パスワード読出→ログ出力」が存在するため、バックドア判定部103は、バックドアが存在すると判定する。
【0025】
また、バックドア判定部103は、運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フローが所定以上存在すれば、バックドアが存在すると判定してもよい。所定以上とは、運用入出力フロー情報に正規入出力フロー情報と異なる入出力フローが複数(例えば、2フロー)以上ある場合である。バックドア判定部103は、秘匿性が高いデータに関する入出力であれば異なる入出力フローが1回でも存在すれば、バックドアが存在すると判定しても構わない。
【0026】
出力部104は、バックドア判定部103によって評価された結果を出力する手段である。出力部104は、バックドア判定部103でバックドアが存在すると判定されると、アラート信号を出力する。出力部104は、バックドア検知装置100の出力装置510によりアラートを表示してもよいし音声で提示してもよい。
【0027】
以上のように構成されたバックドア検知装置100の動作について、
図5のフローチャートを参照して説明する。
【0028】
図5は、第一の実施形態におけるバックドア検知装置100の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサによるプログラム制御に基づいて、実行されてもよい。
【0029】
図5に示すように、まず正規フロー取得部101は、テスト環境下において、ファームウェアを実行して観測された正規入出力フロー情報を取得する(ステップS101)。次に、運用フロー取得部102は、実運用環境下において、ファームウェアを実行して観測された運用入出力フロー情報を取得する(ステップS102)。次に、取得された運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フローがあれば、バックドアが存在すると判定する(ステップS103;YES)。一方、バックドア判定部103は、取得された運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フローがなければ、バックドアが存在しないと判定し(ステップS103;NO)、一定間隔で一連のフローを繰り返す。最後に、出力部104は、バックドア判定部103によってバックドアが存在する判定されると、アラート信号を出力する(ステップS104)。以上で、バックドア検知装置100は、バックドア検知の動作を終了する。
【0030】
本実施形態におけるバックドア検知装置100は、バックドア判定部103は、取得された正規入出力フロー情報と運用入出力フロー情報との対比に基づいてバックドアが存在するか否かを判定する。本実施形態における正規フロー取得部101により取得された正規入出力フロー情報は、外部からの入力が介在しないテスト環境下で観測されたフロー情報である。また、運用フロー取得部102により取得された運用入出力フロー情報は、外部からの入力が介在された実環境下で観測された手段である。よって、正規入出力フロー情報と運用入出力フロー情報とを対比することで、例えば、運用入出力フロー情報に含まれる攻撃者だけが知る外部からの入力をトリガとしたバックドアを検知することができる。よって、バックドアの検出率を高めることが可能である。
【0031】
[第二の実施形態]
次に、本開示の第二の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。本開示の各実施形態における各構成要素は、
図2に示すコンピュータ装置と同様に、その機能をハードウェア的に実現することはもちろん、プログラム制御に基づくコンピュータ装置、ファームウェアで実現することができる。
【0032】
図6は、本開示の第二の実施形態に係るバックドア検知装置110の構成を示すブロック図である。
図6を参照して、第一の実施形態に係るバックドア検知装置100と異なる部分を中心に、第二の実施形態に係るバックドア検知装置110を説明する。第二の実施形態に係るバックドア検知装置110は、正規フロー取得部111、運用フロー取得部112、バックドア判定部113、バックドア特定部114、出力部115及び制御部116を備える。本実施形態における正規フロー取得部111、運用フロー取得部112、バックドア判定部113の構成及び機能は、第一の実施形態の正規フロー取得部101、運用フロー取得部102、バックドア判定部103と同様のため、ここでは割愛する。
【0033】
バックドア特定部114は、バックドア判定部113によりバックドアが存在すると判定されると、バックドアと判定された入出力フローを特定する。バックドア特定部114は、正規入出力フロー情報と運用入出力フロー情報とを対比し、運用入出力フロー情報に含まれる入出力フローのうち、正規入出力フロー情報にはない入出力フローをバックドアであると特定する。
【0034】
図4に戻って、第二の実施形態におけるバックドアと特定された入出力フローを説明する。
図4の例では、正規入出力フロー情報と運用入出力フロー情報とを対比すると、「コマンド入力」で分岐するフローの一方の入出力フロー「パスワード読出→ログ出力」が、正規入出力フロー情報には存在しない。よって、バックドア判定部113は、入出力フロー「パスワード読出→ログ出力」について、バックドアを含む入出力フローであると特定する。入出力フロー「パスワード読出→ログ出力」は、パスワードファイルの読み出しログを出力するもので、情報漏洩の面でシステムに重大な影響を与える入出力フローである。バックドアを含む入出力フローの他の例としては、「攻撃者だけが知る情報を入力(ソケット通信)→権限の昇格→シェルプログラムの実行」といったシステムへの不正侵入が挙げられる。この入出力フローのうち、権限の昇格やシェルプログラムの実行は、プログラム実行画面を観測することにより検出が可能である。バックドア特定部114は、特定した入出力フロー情報を出力部115及び制御部116に出力する。
【0035】
出力部115は、アラートと共に、バックドア特定部114により特定された入出力フロー情報を出力装置510等に出力する。
【0036】
制御部116は、バックドア特定部114により特定された入出力フローを実行させないように制御する。制御部116は、バックドア特定部114からバックドアと特定された入出力フロー情報が入力されると、例えば、特定された入出力フローを実行させないようにプログラムコードを更新する。
【0037】
以上のように構成された情報処理システム11の動作について、
図7のフローチャートを参照して説明する。
【0038】
図7は、第二の実施形態におけるバックドア検知装置110の動作の概要を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサによるプログラム制御に基づいて、実行されてもよい。なお、第二の実施形態におけるステップS201~S203は、第一の実施形態におけるステップS101~S103におけるフロート同様のため、説明を割愛する。
【0039】
図7に示すように、バックドア判定部113により、バックドアが存在すると判定されると(ステップS203;YES)、バックドア特定部114はバックドアを含むと判定された入出力フローを特定する(ステップS204)。次いで、出力部115は、特定された入出力フロー情報を出力する(ステップS205)。最後に、制御部116は、バックドア特定部114により特定された入出力フローを実行させないように制御する(ステップS206)。以上で、バックドア検知装置110は、バックドア検知の動作を終了する。
【0040】
本開示の第二の実施形態では、出力部115がバックドア特定部114により特定された入出力フロー情報を出力装置510等に出力する。これにより、ファームウェアの解析者がバックドアの組み込まれている箇所をより詳細に解析することができる。また、本開示の第二の実施形態では、制御部116は、バックドア特定部114により特定された入出力フローを実行させないように制御する。これにより、バックドアによる被害が広がらないようすることができる。
【0041】
以上、各実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
【0042】
例えば、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【0043】
第一の実施形態において、バックドア判定部103は、運用入出力フロー情報のうち、正規入出力フロー情報にはない入出力フローが存在する場合、バックドアが存在すると判定した。しかし、バックドア判定部103は、運用入出力フロー情報のうち、取得された正規入出力フロー情報にはない入出力フローが存在し、且つ、過去の所定の時点における運用入出力フロー情報と比較して、正規入出力フロー情報にはない入出力フローが多い場合、バックドアがあると判定してもよい。この場合、運用フロー取得部102は、過去の所定の時点における運用入出力フロー情報を記憶装置505に格納しておき、バックドア検知が実行された際に、記憶装置505から過去の所定の時点における運用入出力フローを取得する。これにより、バックドア判定部103は、過去の運用入出力フロー情報と比べて不正機能の伝播性が確認された時点でバックドアが存在すると判定する。よって、出力部104によってアラート信号が頻繁に出力されることを抑えることができる。
【符号の説明】
【0044】
100、110 バックドア検知装置
101、111 正規フロー取得部
102、112 運用フロー取得部
103、113 バックドア判定部
104、115 出力部
114 バックドア特定部
116 制御部