(57)【要約】      （修正有）【課題】多種多様なデバイスの監視を行うことができるセキュアエレメント、コンピュータプログラム、デバイス、サーバ及びデバイス監視方法を提供する。【解決手段】セキュアエレメント５０は、デバイス本体１０で実行されるＯＳ２１のシステムコール２１２に関する情報を取得する取得部５１と、取得部５１で取得したシステムコール２１２に関する情報を、秘匿通信路６１を介してサーバ２００へ送信する送信部５２とを備える。サーバ２００は、複数のデバイス１００それぞれからＯＳ２１のシステムコール２１２に関する情報を受信する受信部と、該受信部で受信したシステムコール２１２に関する情報に基づいてデバイス毎のシステムコール履歴情報を記憶する履歴情報記憶部と、所定の条件を記憶する記憶部と、前記システムコール履歴情報が前記所定の条件を充足するか否かに応じて、デバイス１００に係る所定の事象の有無を監視する監視部とを備える。【選択図】図１
2019028670.tif 000002
【特許請求の範囲】
【請求項１】
デバイス本体で実行されるＯＳのシステムコールに関する情報を取得する取得部と、
前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部と
を備えるセキュアエレメント。
【請求項２】
前記ＯＳは、通常実行環境で実行される汎用ＯＳを含む請求項１に記載のセキュアエレメント。
【請求項３】
前記ＯＳは、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを含む請求項１又は請求項２に記載のセキュアエレメント。
【請求項４】
前記セキュアエレメントは、耐タンパ性を有する請求項１から請求項３のいずれか一項に記載のセキュアエレメント。
【請求項５】
コンピュータに、ＯＳのシステムコールに関する情報を転送させるためのコンピュータプログラムであって、
コンピュータを、
デバイス本体で実行されるＯＳのシステムコールに関する情報を受信する処理と、
受信したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する処理と
を実行させるコンピュータプログラム。
【請求項６】
請求項１から請求項４のいずれか一項に記載のセキュアエレメントと、ＯＳの実行環境を有するデバイス本体とを備えるデバイス。
【請求項７】
通常実行環境で実行される汎用ＯＳ及び前記通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを有するデバイスであって、
前記トラステッドＯＳは、
前記汎用ＯＳのシステムコールに関する情報を取得する取得部と、
前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部と
を備えるデバイス。
【請求項８】
複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信する受信部と、
該受信部で受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を記憶する履歴情報記憶部と
を備えるサーバ。
【請求項９】
所定の条件を記憶する記憶部と、
前記履歴情報記憶部に記憶した任意のデバイスのシステムコール履歴情報が前記所定の条件を充足するか否かに応じて、前記デバイスに係る所定の事象の有無を監視する監視部と
を備える請求項８に記載のサーバ。
【請求項１０】
前記所定の条件は、
システムコール履歴情報が予め定められた不正パターンと一致することであり、
前記監視部は、
前記デバイスに係る不正動作の有無を監視する請求項９に記載のサーバ。
【請求項１１】
前記不正パターンを更新する更新部を備える請求項１０に記載のサーバ。
【請求項１２】
計時部を備え、
前記所定の条件は、
前記システムコールが実行された時点と前記計時部で計時した時点との時間差が所定時間以上であり、
前記監視部は、
前記デバイスに係る故障の有無を監視する請求項９から請求項１１のいずれか一項に記載のサーバ。
【請求項１３】
複数のデバイスを監視するサーバによるデバイス監視方法であって、
前記複数のデバイスそれぞれは、
デバイス本体で実行されるＯＳのシステムコールに関する情報を取得し、
取得したシステムコールに関する情報を、秘匿通信路を介して前記サーバへ送信し、
前記サーバは、
前記複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信し、
受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を履歴情報記憶部に記憶し、
前記履歴情報記憶部に記憶したシステムコール履歴情報に基づいて、任意のデバイスに係る所定の事象の有無を監視するデバイス監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアエレメント、コンピュータプログラム、デバイス、サーバ及びデバイス監視方法に関する。
【背景技術】
【０００２】
ネットワーク技術の進展に伴って、ネットワークに接続されるシステムへのセキュリティ脅威に対抗すべくセキュリティを強化することが重要になっている。近年では、システムの中枢であるサーバではなく末端の処理装置を標的とする攻撃も増加しており、攻撃対象が広がりつつある。
【０００３】
特許文献１には、決済処理に用いる端末処理装置において、アプリケーションの実行時に使用されるＡＰＩの読み出し順序の履歴を蓄積し、ＡＰＩの読み出し順序を監視し、呼び出し順序の正当性を判断して、疑義のある取引等の処理を抑止してセキュリティを確保する決済処理装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６０２５１２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＩｏＴ（Internet of Things）では、多種多様なデバイスがネットワークに接続されることで新たな付加価値を生み出している。このようなＩｏＴデバイスは、特許文献１に記載の決済処理に用いる端末処理装置のように種類が限定されているデバイスと異なり、多種多様なＯＳ及びハードウェアが搭載されているので、例えば、アプリケーションが実行するシステムコールの種類及び制御対象となるハードウェアがデバイス毎に異なる。このため、個々のデバイスで実施される処理を監視して判断するには、デバイス毎に処理順序を定義した上でデバイスに組み込む必要があり、現実的ではない。
【０００６】
本発明は、斯かる事情に鑑みてなされたものであり、デバイスの監視を行うことができるセキュアエレメント、コンピュータプログラム、デバイス、サーバ及びデバイス監視方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施の形態に係るセキュアエレメントは、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得する取得部と、前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部とを備える。
【０００８】
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ＯＳのシステムコールに関する情報を転送させるためのコンピュータプログラムであって、コンピュータを、デバイス本体で実行されるＯＳのシステムコールに関する情報を受信する処理と、受信したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する処理とを実行させる。
【０００９】
本発明の実施の形態に係るデバイスは、本発明の実施の形態に係るセキュアエレメントと、ＯＳの実行環境を有するデバイス本体とを備える。
【００１０】
本発明の実施の形態に係るデバイスは、通常実行環境で実行される汎用ＯＳ及び前記通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを有するデバイスであって、前記トラステッドＯＳは、前記汎用ＯＳのシステムコールに関する情報を取得する取得部と、前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部とを備える。
【００１１】
本発明の実施の形態に係るサーバは、複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信する受信部と、該受信部で受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を記憶する履歴情報記憶部とを備える。
【００１２】
本発明の実施の形態に係るデバイス監視方法は、複数のデバイスを監視するサーバによるデバイス監視方法であって、前記複数のデバイスそれぞれは、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得し、取得したシステムコールに関する情報を、秘匿通信路を介して前記サーバへ送信し、前記サーバは、前記複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信し、受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を履歴情報記憶部に記憶し、前記履歴情報記憶部に記憶したシステムコール履歴情報に基づいて、任意のデバイスに係る所定の事象の有無を監視する。
【発明の効果】
【００１３】
本発明によれば、デバイスのセキュリティ上の安全性を高めることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態のデバイス監視システムの構成の一例を示すブロック図である。
【図２】本実施の形態のサーバの構成の一例を示すブロック図である。
【図３】本実施の形態のＴＥＥによるリッチＯＳのシステムコール実行情報の通知動作の一例を示す説明図である。
【図４】本実施の形態のセキュアエレメントによるリッチＯＳのシステムコール実行情報の通知動作の一例を示す説明図である。
【図５】本実施の形態のセキュアエレメントによるトラステッドＯＳのシステムコール実行情報の通知動作の一例を示す説明図である。
【図６】本実施の形態のサーバによるデバイスの故障検知動作の一例を示す説明図である。
【図７】本実施の形態のサーバによるデバイスのセキュリティチェック動作の一例を示す説明図である。
【図８】本実施の形態のサーバによる不正パターンの更新動作の一例を示す説明図である。
【図９】本実施の形態のトラステッドＯＳによるシステムコール実行情報の処理手順の一例を示すフローチャートである。
【図１０】本実施の形態のセキュアエレメントによるシステムコール実行情報の処理手順の一例を示すフローチャートである。
【図１１】本実施の形態のサーバによるデバイスの監視の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。図１は本実施の形態のデバイス監視システムの構成の一例を示すブロック図である。本実施の形態のデバイス監視システムは、セキュアエレメント５０が組み込まれたデバイス１００、及びサーバ２００などを備える。デバイス１００は、「モノのインターネット」（ＩｏＴ）でいうところの「モノ」に該当するデバイス（ＩｏＴデバイス、電子デバイスとも称する）を含む。デバイス１００とサーバ２００とは、イーサーネット、Ｗｉｆｉ、３Ｇ回線などの一般的なネットワーク回線７０を介して接続される。
【００１６】
デバイス１００は、セキュアエレメント５０の他に、デバイス本体１０を備える。デバイス本体１０とセキュアエレメント５０との間は、Ｉ２Ｃ（Inter-Integrated Circuit）、ＳＰＩ（Serial Peripheral Interface）等の通信路４５で物理的に接続されている。なお、セキュアエレメント５０は、ＵＩＣＣ（Universal Integrated Circuit Card）のように着脱可能な構成とすることもできる。
【００１７】
デバイス本体１０の大部分は、単一のＳｏＣ（System on a Chip）で構成され、一個の半導体チップ上にシステムの動作に必要な機能（例えば、ＣＰＵ４１、不図示のメモリなどを含む）の多く、あるいは全ての機能を一体化して実装している。
【００１８】
デバイス本体１０は、例えば、ＴｒｕｓｔＺｏｎｅ（登録商標）と称される技術を用いることによって、ソフトウェア（ＯＳ、アプリケーションなど）の実行環境をＲＥＥ（Rich Execution Environment）２０（通常実行環境、ノーマルワールドとも称する）と、ＴＥＥ（Trusted Execution Environment）３０（トラステッド実行環境、セキュアワールドとも称する）との二つに分けている。ＲＥＥ２０とＴＥＥ３０との間では、メモリ空間、入出力装置などが分離されている。
【００１９】
ＲＥＥ２０は、広く一般的に利用されているＯＳの実行環境であり、ＴＥＥ３０へのアクセスが制限される以外、特段の機能制約がない実行環境である。
【００２０】
ＴＥＥ３０は、セキュリティ機能を隔離する目的で、同一のＳｏＣ上でＲＥＥ２０とは別に提供される独立した実行環境である。ＴＥＥ３０は、ＲＥＥ２０からのアクセスが制限されており、実行可能な機能も限定されている。なお、ＴＥＥ３０の如くＴＥＥという称呼は、ＲＥＥ２０と分離され、セキュリティ上より安全な実行環境であれば、どのような称呼の実行環境であってもよい。
【００２１】
セキュリティ上保護すべきソフトウェア及びデータをＴＥＥ３０に配置するとともに、ＲＥＥ２０及びデバイス１００の外部からのアクセスを制限することによって、デバイス１００のセキュリティを確保することができる。なお、ＴＥＥは、ＴｒｕｓｔＺｏｎｅの設計思想に基づく仕様を表す用語としても用いられる。
【００２２】
上述のように、ＲＥＥ２０からＴＥＥ実行環境３０にはアクセスできないように制限されるので、ＲＥＥ２０からはＴＥＥ３０の存在を認識することはできない。ＲＥＥ２０からＴＥＥ３０で実行する処理を呼び出すためには、例えば、不図示のセキュアモニタなどを経由しなければならない。
【００２３】
ＲＥＥ２０では、汎用ＯＳとしてのリッチＯＳ２１、クライアントアプリケーション２２などを実行することができる。
【００２４】
リッチＯＳ２１は、ＲＥＥ２０においてＯＳの機能を果たすソフトウェアである。リッチＯＳ２１は、クライアントアプリケーション２２からの要求に応じ、デバイス１００に接続されたハードウェア（入出力装置）の制御等を含む各種ＯＳ機能を提供する。リッチＯＳ２１は、後述のトラステッドアプリケーション３２を利用するためのインタフェースとして機能することもできる。リッチＯＳ２１は、システムコール呼出検知処理部２１１の機能を備える。
【００２５】
クライアントアプリケーション２２は、リッチＯＳ２１上で動作するアプリケーションである。なお、図１では、便宜上、一つのクライアントアプリケーション２２を図示しているが、クライアントアプリケーション２２の数は複数でもよい。
【００２６】
システムコール２１２は、クライアントアプリケーション２２にＯＳ機能を提供するためのインタフェースである。システムコール２１２は、例えば、socket、bind、listen、connect、close等があるが、これらに限定されるものではない。
【００２７】
システムコール機能実装２１３は、システムコール２１２で提供する機能そのものを実装したプログラムである。システムコール機能実装２１３は、例えば、socket機能、bind機能、listen機能、connect機能、close機能等があるが、これらに限定されるものではない。
【００２８】
システムコール呼出検知処理部２１１は、システムコールのインタフェースと機能実装との間に介在し、システムコールが呼び出されたことを検知しつつ、呼び出されたシステムコール名及び引数（システムコール実行情報）をセキュアエレメント５０又はＴＥＥ３０（両者をセキュリティコンポーネントとも称する）に通知する。
【００２９】
ＴＥＥ３０では、トラステッドＯＳ３１、トラステッドアプリケーション３２、ＲＥＥシステムコールトラステッドアプリケーション３３などを実行することができる。
【００３０】
トラステッドＯＳ３１は、ＴＥＥ３０においてＯＳの機能を果たすソフトウェアである。トラステッドＯＳ３１は、トラステッドアプリケーション３２からの要求に応じて、セキュリティ機能を中心としたＯＳ機能を提供する。また、トラステッドＯＳ３１は、ＲＥＥ２０とＴＥＥ３０との通信（例えば、ＲＥＥ２０からの機能実行要求又はデータの授受など）を行うためのインタフェース機能を有し、ＲＥＥ２０（クライアントアプリケーション２３）とトラステッドアプリケーション３２との間の通信路としても機能する。トラステッドＯＳ３１は、トラステッドＯＳシステムコール呼出検知処理部３１１、秘匿通信路通信処理部３１４の機能を備える。
【００３１】
トラステッドアプリケーション３２は、トラステッドＯＳ３１上で動作するアプリケーションである。トラステッドアプリケーション３２は、セキュリティ上の保護が必要な機能（例えば、鍵管理、暗号演算など）を実装することができる。なお、図１では、便宜上、一つのトラステッドアプリケーション３２を図示しているが、トラステッドアプリケーション３２の数は複数でもよい。
【００３２】
トラステッドＯＳシステムコール３１２は、トラステッドアプリケーション３２にＯＳ機能を提供するためのインタフェースである。トラステッドＯＳシステムコール３１２は、例えば、TEE_CipherUpdate、TEE_WriteObjectData、TEE_ReadObjectData等があるが、これらに限定されるものではない。
【００３３】
トラステッドＯＳシステムコール機能実装３１３は、トラステッドＯＳシステムコール３１２で提供する機能そのものを実装したプログラムである。トラステッドＯＳシステムコール機能は、例えば、TEE_CipherUpdate機能、TEE_WriteObjectData機能、TEE_ReadObjectData機能等があるが、これらに限定されるものではない。
【００３４】
トラステッドＯＳシステムコール呼出検知処理部３１１は、トラステッドＯＳシステムコールのインタフェースと機能実装との間に介在し、トラステッドＯＳシステムコール３１２が呼び出されたことを検知しつつ、呼び出されたトラステッドＯＳシステムコール名及び引数（システムコール実行情報）をセキュアエレメント５０に通知する。
【００３５】
秘匿通信路通信処理部３１４は、トラステッドＯＳ３１内に具備した秘匿通信路通信処理を行うモジュールである。秘匿通信路通信処理には、例えば、ＴＥＥ  Socket  ＡＰＩのようなＴＬＳ通信可能なＡＰＩモジュールなどが含まれる。
【００３６】
秘匿通信路通信処理部３１４は、送信部としての機能を有し、ＴＥＥ３０とサーバ２００との間で独立した秘匿通信路６２を開設する。
【００３７】
ＲＥＥシステムコールトラステッドアプリケーション３３は、取得部としての機能を有し、リッチＯＳ２１のシステムコールに関する情報を取得する。すなわち、ＲＥＥシステムコールトラステッドアプリケーション３３は、リッチＯＳ２１から通知されたシステムコール実行情報を受け取る。なお、本実施の形態では、システムコール実行情報をシステムコールに関する情報とも称する。
【００３８】
ネットワーク通信部４２は、デバイス１００をネットワークに接続する機能を有し、ネットワーク上のサービスサーバ（不図示）との間で情報の送受信を行うことができる。ネットワーク通信部４２は、不図示のセンサ類で検出した情報をサービスサーバ（不図示）送信することができる。
【００３９】
セキュアエレメント５０は、システムコール情報受信処理部５１、秘匿通信路通信処理部５２などを備える。
【００４０】
セキュアエレメント５０は、耐タンパ性を有する。セキュアエレメント５０の機能（例えば、システムコール情報受信処理部５１、秘匿通信路通信処理部５２）をハードウェアのモジュールで実現する場合、耐タンパ性を有するためには、セキュアエレメント５０を１チップ化にしてもよく、あるいは、モジュール表面をコーティングしてもよい。また、セキュアエレメント５０の機能をソフトウェアのモジュールで実現する場合、耐タンパ性を有するためには、実行コードを暗号化し、実行時に必要な部分だけをメモリ上で復号するようにすればよい。
【００４１】
システムコール情報受信処理部５１は、取得部としての機能を有し、デバイス本体１０で実行されるＯＳのシステムコール実行情報を取得する。システムコール実行情報は、システムコールの実行内容であり、例えば、システムコール名及び引数などを含む。
【００４２】
秘匿通信路通信処理部５２は、送信部としての機能を有し、セキュアエレメント５０とサーバ２００との間で独立した秘匿通信路６１を開設する。秘匿通信路６１は、例えば、ＨＴＴＰＳ（ＨＴＴＰ  Over  ＴＬＳ）とすることができるが、これに限定されない。秘匿通信路通信処理部５２は、ＴＬＳの暗号化及び復号、ＨＴＴＰ（Hypertext Transfer Protocol）メッセージの解釈などの処理を行う。
【００４３】
秘匿通信路通信処理部５２は、システムコール情報受信処理部５１で取得したシステムコール実行情報を、秘匿通信路６１を介してサーバ２００へ送信する。
【００４４】
サーバ２００は、システムコール実行情報に基づいて、デバイス本体１０（デバイス１００）においてアプリケーションが実行する処理の正当性を判定することができるサーバとすることができる。
【００４５】
上述の構成により、セキュアエレメント５０は、システムコール実行情報をサーバ２００へ転送するので、デバイス１００個々の不正な処理順序を定義した情報を夫々のデバイス１００に組み込む必要がなく、サーバ２００側でデバイス１００を監視することができる。また、デバイス１００のセキュリティ上の安全性を高めることができる。また、セキュアエレメント５０は、秘匿通信路６１を使ってシステムコール実行情報を転送するので、システムコール実行情報が不正に改ざんされることを防止することができ、また、システムコール実行情報の送信がブロックされることも防止することができる。
【００４６】
また、セキュアエレメント５０を耐タンパ性にすることによって、システムコール実行情報を取得してから送信するまでの間、当該システムコール実行情報を物理的に保護することができる。
【００４７】
図２は本実施の形態のサーバ２００の構成の一例を示すブロック図である。サーバ２００は、受信処理部２０１、デバイス管理ＤＢ更新処理部２０２、デバイス管理ＤＢ２０３、故障検出処理部２０４、計時部２０５、セキュリティチェック処理部２０６などを備える。なお、図２の例では、デバイス１００ａ〜１００ｄの数に対応して４つの受信処理部２０１及びデバイス管理ＤＢ更新処理部２０２を具備する構成であるが、４つの受信処理部２０１及びデバイス管理ＤＢ更新処理部２０２は一つに纏めることもできる。また、図２の例では、便宜上、デバイス１００の数を４つとしているが、デバイス１００の数は図２の例に限定されない。
【００４８】
受信処理部２０１は、受信部としての機能を有し、秘匿通信路６１、６２を経由してデバイス１００それぞれからＯＳのシステムコール実行情報を受信する。
【００４９】
デバイス管理ＤＢ更新処理部２０２は、受信処理部２０１で受信したシステムコール実行情報をデバイス１００毎にデバイス管理ＤＢ２０３に記憶（更新）する。
【００５０】
デバイス管理ＤＢ２０３は、履歴情報記憶部としての機能を有し、デバイス１００夫々のシステムコール実行履歴（システムコール履歴情報）を、システムコールが実行された時点（実行時刻）とともに保持するデータベースである。
【００５１】
デバイス管理ＤＢ２０３は、システムコールの実行内容を実行順序に配置した情報を記憶するので、サーバ２００は、夫々のデバイス１００について、システムコールの実行順に実行内容を把握することができ、デバイス１００の動作の正当性を判定することができる。
【００５２】
故障検出処理部２０４は、監視部としての機能を有し、デバイス１００の故障の有無を監視する。より具体的には、故障検出処理部２０４は、計時部２０５が計時する現在時刻及び故障検知ポリシー（所定の条件）に基づき、デバイス管理ＤＢ２０３内のシステムコール実行履歴を検索して、故障検知ポリシーに合致するシステムコール実行履歴を発見した場合、当該システムコール実行履歴に対応するデバイス１００を故障（所定の事象）と判定する。
【００５３】
セキュリティチェック処理部２０６は、監視部としての機能を有し、デバイス１００の不正動作の有無を監視する。より具体的には、セキュリティチェック処理部２０６は、不正パターン（所定の条件）に基づき、デバイス管理ＤＢ２０３内のシステムコール実行履歴を検索して、不正パターンに合致するシステムコール実行履歴を発見した場合、当該システムコール実行履歴に対応するデバイス１００にセキュリティ上の問題が発生している（所定の事象）と判定する。
【００５４】
上述のように、故障検出処理部２０４又はセキュリティチェック処理部２０６は、デバイス管理ＤＢ２０３に記憶した任意のデバイスのシステムコール履歴情報が、所定の条件を充足するか否かに応じて、デバイス１００に係る所定の事象の有無を監視する。所定の事象は、例えば、デバイス１００の動作が正当でない状態（セキュリティ上の問題がある状態）、あるいはデバイス１００の故障状態などを含めることができる。これにより、デバイス１００にセキュリティ上の問題があるか否か、デバイス１００が故障しているか否か等を監視することができる。
【００５５】
次に、本実施の形態のデバイス監視システムの動作について説明する。以下では、リッチＯＳ２１のシステムコール実行情報をＴＥＥ３０がサーバ２００へ通知する動作、リッチＯＳ２１のシステムコール実行情報をセキュアエレメント５０がサーバ２００へ通知する動作、トラステッドＯＳ３１のシステムコール実行情報をセキュアエレメント５０がサーバ２００へ通知する動作、デバイス１００の故障検知動作、デバイス１００のセキュリティチェック動作、不正パターンの更新動作について説明する。
【００５６】
図３は本実施の形態のＴＥＥ３０によるリッチＯＳ２１のシステムコール実行情報の通知動作の一例を示す説明図である。以下、符号Ｐ１〜Ｐ６で示す処理について説明する。
【００５７】
Ｐ１（システムコール実行）：ＲＥＥ２０上のクライアントアプリケーション２２が、リッチＯＳ２１のシステムコールを実行する。
【００５８】
Ｐ２（システムコール呼び出し検知と実行指示）：リッチＯＳ２１は、システムコールが実行されると、システムコールが実行されたこと、及びシステムコール実行内容（システムコール名及び引数）をシステムコール呼出検知処理部２１１に通知する。同時に、リッチＯＳ２１は、システムコール機能実装２１３に対してシステムコールの機能を実行するよう指示する。
【００５９】
Ｐ３（システムコール機能実行）：システムコール機能実装２１３は、実行指示を受けると、システムコールの機能を実行し、実行結果をクライアントアプリケーション２２に返す。
【００６０】
Ｐ４（トラステッドアプリケーション３２に通知）：システムコール呼出検知処理部２１１は、システムコール実行情報をＴＥＥ３０上のＲＥＥシステムコールトラステッドアプリケーション３３に通知する。
【００６１】
Ｐ５（秘匿通信路６２経由での送信依頼）：ＲＥＥシステムコールトラステッドアプリケーション３３は、トラステッドＯＳ３１内の秘匿通信路通信処理部３１４に対し、秘匿通信路６２経由でシステムコール実行情報をサーバ２００へ送信するよう依頼する。
【００６２】
Ｐ６（サーバ２００へ送信）：秘匿通信路通信処理部３１４は、サーバ２００との間で秘匿通信路を確立していない場合、デバイス１００が有する物理的な通信経路（例えば、イーサネット（登録商標）、Ｗｉｆｉ等）の上で新たに秘匿通信路６２（例えば、ＨＴＴＰＳ：ＨＴＴＰ  Over  ＴＬＳ）を確立した上で、秘匿通信路６２を経由してシステムコール実行情報を送信する。
【００６３】
上述の構成により、リッチＯＳ２１から独立したＴＥＥ３０（トラステッドＯＳ３１）（コンポーネント）は、システムコール実行情報をサーバ２００へ転送するので、デバイス１００個々の不正な処理順序を定義した情報を夫々のデバイス１００に組み込む必要がなく、サーバ２００側でデバイス１００を監視することができ、デバイス１００のセキュリティ上の安全性を高めることができる。また、ＴＥＥ３０（トラステッドＯＳ３１）は、秘匿通信路６２を使ってシステムコール実行情報を転送するので、システムコール実行情報が不正に改ざんされることを防止することができ、また、システムコール実行情報の送信がブロックされることも防止することができる。
【００６４】
図４は本実施の形態のセキュアエレメント５０によるリッチＯＳ２１のシステムコール実行情報の通知動作の一例を示す説明図である。以下、符号Ｐ１１〜Ｐ１６で示す処理について説明する。
【００６５】
Ｐ１１（システムコール実行）：ＲＥＥ２０上のクライアントアプリケーション２２が、リッチＯＳ２１のシステムコールを実行する。
【００６６】
Ｐ１２（システムコール呼び出し検知と実行指示）：リッチＯＳ２１は、システムコールが実行されると、システムコールが実行されたこと、及びシステムコール実行内容（システムコール名及び引数）をシステムコール呼出検知処理部２１１に通知する。同時に、リッチＯＳ２１は、システムコール機能実装２１３に対してシステムコールの機能を実行するよう指示する。
【００６７】
Ｐ１３（システムコール機能実行）：システムコール機能実装２１３は、実行指示を受けると、システムコールの機能を実行し、実行結果をクライアントアプリケーション２２に返す。
【００６８】
Ｐ１４（セキュアエレメント５０に通知）：システムコール呼出検知処理部２１１は、システムコール実行情報をセキュアエレメント５０内のシステムコール情報受信処理部５１に通知する。
【００６９】
Ｐ１５（秘匿通信路６２経由での送信依頼）：システムコール情報受信処理部５１は、セキュアエレメント５０内の秘匿通信路通信処理部５２に対し、秘匿通信路６１経由でシステムコール実行情報をサーバ２００へ送信するよう依頼する。
【００７０】
Ｐ１６（サーバ２００へ送信）：秘匿通信路通信処理部５２は、サーバ２００との間で秘匿通信路を確立していない場合、デバイス１００が有する物理的な通信経路（例えば、イーサネット、Ｗｉｆｉ等）の上で新たに秘匿通信路６１（例えば、ＨＴＴＰＳ：ＨＴＴＰ  Over  ＴＬＳ）を確立した上で、秘匿通信路６１を経由してシステムコール実行情報を送信する。セキュアエレメント５０が自ら物理的な通信手段（ＬＡＮ又はＷｉｆｉなど）を有する場合、秘匿通信路確立を独力で行うこともできるが、通信手段を有さない場合、デバイス１００の物理的な通信手段を介してもよい。
【００７１】
これにより、リッチＯＳ２１上で動作するクライアントアプリケーション２２が行う処理に基づいてデバイス１００（デバイス本体１０）の動作の正当性を判定することができる。
【００７２】
図５は本実施の形態のセキュアエレメント５０によるトラステッドＯＳ３１のシステムコール実行情報の通知動作の一例を示す説明図である。以下、符号Ｐ２１〜Ｐ２６で示す処理について説明する。
【００７３】
Ｐ２１（システムコール実行）：ＴＥＥ３０上のトラステッドアプリケーション３２が、トラステッドＯＳ３１のシステムコールを実行する。
【００７４】
Ｐ２２（システムコール呼び出し検知と実行指示）：トラステッドＯＳ３１は、システムコールが実行されると、システムコールが実行されたこと、及びシステムコール実行内容（システムコール名及び引数）をトラステッドＯＳシステムコール呼出検知処理部３１１に通知する。同時に、トラステッドＯＳ３１は、トラステッドＯＳシステムコール機能実装３１３に対してシステムコールの機能を実行するよう指示する。
【００７５】
Ｐ２３（システムコール機能実行）：トラステッドＯＳシステムコール機能実装３１３は、実行指示を受けると、システムコールの機能を実行し、実行結果をトラステッドアプリケーション３２に返す。
【００７６】
Ｐ２４（セキュアエレメント５０に通知）：トラステッドＯＳシステムコール呼出検知処理部３１１は、システムコール実行情報をセキュアエレメント５０内のシステムコール情報受信処理部５１に通知する。
【００７７】
Ｐ２５（秘匿通信路６１経由での送信依頼）：システムコール情報受信処理部５１は、セキュアエレメント５０内の秘匿通信路通信処理部５２に対し、秘匿通信路６１経由でシステムコール実行情報をサーバ２００へ送信するよう依頼する。
【００７８】
Ｐ２６（サーバ２００へ送信）：秘匿通信路通信処理部５２は、サーバ２００との間で秘匿通信路を確立していない場合、デバイス１００が有する物理的な通信経路（例えば、イーサネット、Ｗｉｆｉ等）の上で新たに秘匿通信路６１（例えば、ＨＴＴＰＳ：ＨＴＴＰ  Over  ＴＬＳ）を確立した上で、秘匿通信路６１を経由してシステムコール実行情報を送信する。セキュアエレメント５０が自ら物理的な通信手段（ＬＡＮ又はＷｉｆｉなど）を有する場合、秘匿通信路確立を独力で行うこともできるが、通信手段を有さない場合、デバイス１００の物理的な通信手段を介してもよい。
【００７９】
これにより、トラステッドＯＳ３１上で動作するトラステッドアプリケーション３２が行う処理に基づいてデバイス１００（デバイス本体１０）の動作の正当性を判定することができる。
【００８０】
上述のように、セキュアエレメント５０及びＴＥＥ３０をセキュアコンポーネントと称すると、デバイス１００は、ハードウェア的に独立した複数のセキュアコンポーネントを有し、一方のセキュアコンポーネント上で動作するＯＳ（すなわち、トラステッドＯＳ３１）のシステムコール実行時にシステムコール実行情報を取得し、取得したシステムコール実行情報を他のセキュアコンポーネント（セキュアエレメント５０）に通知する。当該他のセキュアコンポーネントは、自身の秘匿通信路経由でシステムコール実行情報をサーバ２００へ送信することができる。
【００８１】
図６は本実施の形態のサーバ２００によるデバイス１００の故障検知動作の一例を示す説明図である。デバイス１００の故障検知動作は、サーバ２００の計時部２０５が計時する現在時刻を元にデバイス管理ＤＢ２０３を所要の故障検出タイミングに検索し、デバイス１００毎に、所定の条件としてのポリシー（故障検出のためのポリシー）に合致するシステムコール実行履歴が存在するか否かを判定する。
【００８２】
図６の例では、故障検出のためのポリシーを、「時刻が２４時間以内の値でない場合、故障と判断する」としている。なお、ポリシーの内容は図６の例に限定されるものではなく、デバイス１００の種類、設置場所、使用形態等に応じて適宜設定することができる。
【００８３】
サーバ２００の現在時刻は、２０１６年１２月９日１１：００である。デバイス１００ａのシステムコール実行履歴によると、システムコールが実行された時刻は、２０１６年１２月９日１１：０２近辺であり、ポリシーには合致しない。デバイス１００ｂ、１００ｄについても同様である。
【００８４】
一方、デバイス１００ｃのシステムコール実行履歴によると、システムコールが実行された時刻は、２０１６年１２月７日１１：０２近辺であり、現在時刻とは、約４８時間の差があり、ポリシーには合致する。これにより、デバイス１００ｃからのシステムコールの通知が２４時間を超えて遮断していることが検知され、デバイス１００ｃの状況を把握することができなくなっていることを認識することができる。
【００８５】
なお、デバイス管理ＤＢ２０３内の時刻は、サーバ２００側の時刻と比較可能な時刻情報であればよく、例えば、デバイス１００が実際にシステムコールを実行した時刻でもよく、サーバ２００がシステムコール実行情報を受信した時刻でもよく、あるいは、サーバ２００がシステムコール実行情報をデバイス管理ＤＢ２０３に書き込んだ時刻でもよい。
【００８６】
図７は本実施の形態のサーバ２００によるデバイス１００のセキュリティチェック動作の一例を示す説明図である。デバイス１００のセキュリティチェック動作は、サーバ２００が保持する所定の条件としての不正パターンを元にデバイス管理ＤＢ２０３を所要のセキュリティチェックタイミングに検索し、デバイス１００毎に不正パターンに合致したシステムコール実行履歴が存在するか否かを判定する。
【００８７】
図７の例では、不正パターン１を「write (socket,”Security Attack”)」としている。当該不正パターンは、socketに対し、”Security Attack”をwriteしている処理を示す。なお、不正パターン内容は図７の例に限定されるものではなく、デバイス１００の種類、設置場所、使用形態等に応じて適宜設定することができる。
【００８８】
デバイス１００ｂ、１００ｃのシステムコール実行履歴には、不正パターンと合致するシステムコールは実行されていない。
【００８９】
一方、デバイス１００ａのシステムコール実行履歴には、時刻２０１６年１２月９日１１：０２：０５において、不正パターンと合致するシステムコールが実行されていることが分かる。また、同様に、デバイス１００ｄのシステムコール実行履歴には、時刻２０１６年１２月９日１１：０１：０７において、不正パターンと合致するシステムコールが実行されていることが分かる。このことから、デバイス１００ａ及び１００ｄが不正な振る舞いをしていることを検知することができ、デバイス１００ａ及び１００ｄにセキュリティ上の問題が発生していることを認識することができる。
【００９０】
上述の不正パターンを適宜定義することにより、攻撃者の日々変化する攻撃手法に対応することができ、未知のセキュリティ攻撃を検知可能とすることができる。
【００９１】
図８は本実施の形態のサーバ２００による不正パターンの更新動作の一例を示す説明図である。更新部２０７は、不正パターンを更新する。図８に示すように、デバイス１００の管理者が、新たなセキュリティ攻撃として、例えば、１９２．１６８．０．２５４というＩＰアドレスを不正に指定させ、不正な場所に情報を書き込ませることで情報漏洩させるという攻撃を認識したとする。管理者は、当該攻撃を不正なパターンとして、不正パターン２を追加することで不正パターンを更新する。
【００９２】
デバイス１００ｂのシステムコール実行履歴には、時刻２０１６年１２月９日１１：０２：０５、１１：０２：０７において、不正パターン２と合致するシステムコールが実行されていることが分かる。このことから、新たに追加した不正パターン２により、デバイス１００ｂに対してセキュリティ攻撃が行われたことを既存のデバイス管理ＤＢ２０３から検出し、認識することができる。これにより、従来にはなかった新たなセキュリティ攻撃を検知可能とすることができる。
【００９３】
図９は本実施の形態のトラステッドＯＳ３１によるシステムコール実行情報の処理手順の一例を示すフローチャートである。ＴＥＥ３０におけるトラステッドＯＳ３１は、クライアントアプリケーション２２がリッチＯＳ２１のシステムコールを実行したか否かを判定し（Ｓ１１）、システムコールを実行していない場合（Ｓ１１でＮＯ）、ステップＳ１１の処理を続ける。
【００９４】
リッチＯＳ２１のシステムコールを実行した場合（Ｓ１１でＹＥＳ）、トラステッドＯＳ３１は、システムコールの実行内容（例えば、システムコール名及び引数）を取得し（Ｓ１２）、取得したシステムコールの実行内容を秘匿通信路６２経由でサーバ２００へ送信し（Ｓ１３）、処理を終了する。
【００９５】
図１０は本実施の形態のセキュアエレメント５０によるシステムコール実行情報の処理手順の一例を示すフローチャートである。セキュアエレメント５０は、クライアントアプリケーション２２がリッチＯＳ２１のシステムコールを実行したか否かを判定し（Ｓ２１）、リッチＯＳ２１のシステムコールを実行していない場合（Ｓ２１でＮＯ）、トラステッドアプリケーション３２がトラステッドＯＳ３１のシステムコールを実行したか否かを判定する（Ｓ２２）。
【００９６】
トラステッドＯＳ３１のシステムコールを実行していない場合（Ｓ２２でＮＯ）、セキュアエレメント５０は、ステップＳ２１以降の処理を続ける。リッチＯＳ２１のシステムコールを実行した場合（Ｓ２１でＹＥＳ）、あるいは、トラステッドＯＳ３１のシステムコールを実行した場合（Ｓ２２でＹＥＳ）、セキュアエレメント５０は、システムコールの実行内容（例えば、システムコール名及び引数）を取得する（Ｓ２３）。
【００９７】
セキュアエレメント５０は、取得したシステムコールの実行内容を秘匿通信路６１経由でサーバ２００へ送信し（Ｓ２４）、処理を終了する。
【００９８】
図１１は本実施の形態のサーバ２００によるデバイス１００の監視の処理手順の一例を示すフローチャートである。サーバ２００は、複数のデバイス１００からシステムコールの実行内容を受信し（Ｓ１０１）、デバイス１００毎にシステムコール実行履歴をデバイス管理ＤＢ２０３に記憶する（Ｓ１０２）。なお、システムコール実行履歴は、システムコールの実行内容を時系列に収集したものである。
【００９９】
サーバ２００は、故障検知のタイミングであるか否かを判定する（Ｓ１０３）。故障検知のタイミングは、適宜設定することができ、定期的でもよく不定期的でもよい。故障検知のタイミングは、例えば、デバイス１００の使用態様又は運用態様等に応じて監視の頻度の大小に応じて適宜設定すればよい。例えば、１０分毎、１時間毎、数時間毎の如くである。
【０１００】
故障検知のタイミングである場合（Ｓ１０３でＹＥＳ）、サーバ２００は、デバイス管理ＤＢ２０３を検索して故障検出ポリシーに合致するデバイス１００の有無を判定する（Ｓ１０４）。合致するデバイス１００がある場合（Ｓ１０４でＹＥＳ）、サーバ２００は、当該デバイス１００が故障であると判定し（Ｓ１０５）、後述のステップＳ１０６の処理を行う。合致するデバイス１００がない場合（Ｓ１０４でＮＯ）、サーバ２００は、ステップＳ１０５の処理を行うことなく、後述のステップＳ１０６の処理を行う。
【０１０１】
サーバ２００は、不正パターンの更新の有無を判定し（Ｓ１０６）、更新がある場合（Ｓ１０６でＹＥＳ）、不正パターンを更新し（Ｓ１０７）、後述のステップＳ１０８の処理を行う。更新がない場合（Ｓ１０６でＮＯ）、サーバ２００は、ステップＳ１０７の処理を行うことなく、後述のステップＳ１０８の処理を行う。
【０１０２】
サーバ２００は、処理を終了するか否かを判定し（Ｓ１０８）、処理を終了しない場合（Ｓ１０８でＮＯ）、ステップＳ１０１以降の処理を続ける。処理を終了する場合（Ｓ１０８でＹＥＳ）、サーバ２００は、処理を終了する。
【０１０３】
故障検知タイミングでない場合（Ｓ１０３でＮＯ）、サーバ２００は、セキュリティチェックのタイミングであるか否かを判定する（Ｓ１０９）。セキュリティチェックのタイミングは、適宜設定することができ、定期的でもよく不定期的でもよい。例えば、デバイス１００の使用態様又は運用態様等に応じてセキュリティチェックの頻度の大小に応じて適宜設定すればよい。例えば、１０分毎、１時間毎、数時間毎の如くである。また、デバイス１００からの通信（システムコールの実行内容の送信を含む）を受信する都度、セキュリティチェックを行ってもよい。
【０１０４】
セキュリティチェックのタイミングでない場合（Ｓ１０９でＮＯ）、サーバ２００は、ステップＳ１０１以降の処理を続ける。セキュリティチェックのタイミングである場合（Ｓ１０９でＹＥＳ）、サーバ２００は、デバイス管理ＤＢ２０３を検索してシステムコール実行履歴が不正パターンに合致するデバイス１００の有無を判定する（Ｓ１１０）。
【０１０５】
合致するデバイス１００がある場合（Ｓ１１０でＹＥＳ）、サーバ２００は、当該デバイス１００が不正動作している（セキュリティ上問題がある）と判定し（Ｓ１１１）、ステップＳ１０６の処理を行う。合致するデバイス１００がない場合（Ｓ１１０でＮＯ）、サーバ２００は、ステップＳ１１１の処理を行うことなく、ステップＳ１０６の処理を行う。
【０１０６】
上述のように、デバイス１００は、システムコール実行情報をサーバ２００へ転送するので、デバイス１００が個々の不正な処理順序を定義した上でデバイス１００に組み込む必要がなく、サーバ２００側でデバイス１００を監視することができ、デバイス１００のセキュリティ上の安全性を高めることができる。デバイス１００は、秘匿通信路６１、６２を使ってシステムコール実行情報を転送するので、システムコール実行情報が不正に改ざんされることを防止することができ、また、システムコール実行情報の送信がブロックされることも防止することができる。
【０１０７】
また、サーバ２００は、夫々のデバイス１００について、システムコールの実行順に実行内容を把握することができ、デバイス１００に係る所定の事象（例えば、セキュリティ上の問題、あるいは故障など）の有無を監視することができる。
【０１０８】
本実施の形態によれば、デバイス１００個々の状態に関係なく、デバイス１００の監視者が不正動作又は問題となる動作を定義することができ、未知のセキュリティ攻撃を検知可能なメカニズムを提供することができる。
【０１０９】
また、本実施の形態によれば、デバイス１００側にシステムコール実行履歴を保持する必要がなく、仮にデバイス１００が有するメモリ等の記憶部の記憶容量が少ない場合でも、そのようなデバイス１００に対するシステムコールに基づく監視を行うことができる。
【０１１０】
本実施の形態に係るセキュアエレメントは、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得する取得部と、前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部とを備える。
【０１１１】
本実施の形態に係るコンピュータプログラムは、コンピュータに、ＯＳのシステムコールに関する情報を転送させるためのコンピュータプログラムであって、コンピュータを、デバイス本体で実行されるＯＳのシステムコールに関する情報を受信する処理と、受信したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する処理とを実行させる。
【０１１２】
本実施の形態に係るデバイスは、本発明の実施の形態に係るセキュアエレメントと、ＯＳの実行環境を有するデバイス本体とを備える。
【０１１３】
取得部は、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得する。システムコールは、アプリケーションにＯＳ機能を提供するためのインタフェースであり、アプリケーションは、システムコールを実行することによってＯＳが適用する機能を実現することができる。システムコールに関する情報は、システムコールの実行内容であり、例えば、システムコール名及び引数などを含む。
【０１１４】
送信部は、取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する。サーバは、システムコールに関する情報に基づいて、デバイス本体（デバイス）においてアプリケーションが実行する処理の正当性を判定することができるサーバとすることができる。
【０１１５】
上述の構成により、セキュアエレメントは、システムコールに関する情報をサーバへ転送するので、デバイス個々の不正な処理順序を定義した情報を夫々のデバイスに組み込む必要がなく、サーバ側でデバイスを監視することができる。また、デバイスのセキュリティ上の安全性を高めることができる。また、セキュアエレメントは、秘匿通信路を使ってシステムコールに関する情報を転送するので、システムコールに関する情報が不正に改ざんされることを防止することができ、また、システムコールに関する情報の送信がブロックされることも防止することができる。
【０１１６】
本実施の形態に係るセキュアエレメントは、前記ＯＳは、通常実行環境で実行される汎用ＯＳを含む。
【０１１７】
ＯＳは、通常実行環境で実行される汎用ＯＳを含む。これにより、汎用ＯＳ上で動作する汎用アプリケーションが行う処理に基づいてデバイス（デバイス本体）の動作の正当性を判定することができる。
【０１１８】
本実施の形態に係るセキュアエレメントは、前記ＯＳは、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを含む。
【０１１９】
ＯＳは、通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを含む。これにより、トラステッドＯＳ上で動作するトラステッドアプリケーションが行う処理に基づいてデバイス（デバイス本体）の動作の正当性を判定することができる。
【０１２０】
本実施の形態に係るセキュアエレメントは、前記セキュアエレメントは、耐タンパ性を有する。
【０１２１】
セキュアエレメントは、耐タンパ性を有する。セキュアエレメントの機能（例えば、取得部、送信部など）をハードウェアのモジュールで実現する場合、耐タンパ性を有するためには、セキュアエレメントを１チップ化にする、モジュール表面をコーティングすることが含まれる。また、セキュアエレメントの機能をソフトウェアのモジュールで実現する場合、耐タンパ性を有するためには、実行コードを暗号化し、実行時に必要な部分だけをメモリ上で復号することが含まれる。
【０１２２】
セキュアエレメントを耐タンパ性にすることによって、システムコールに関する情報を取得してから送信するまでの間、当該システムコールに関する情報を物理的に保護することができる。
【０１２３】
本実施の形態に係るデバイスは、通常実行環境で実行される汎用ＯＳ及び前記通常実行環境よりも安全なトラステッド実行環境で実行されるトラステッドＯＳを有するデバイスであって、前記トラステッドＯＳは、前記汎用ＯＳのシステムコールに関する情報を取得する取得部と、前記取得部で取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する送信部とを備える。
【０１２４】
トラステッドＯＳの取得部は、汎用ＯＳのシステムコールに関する情報を取得する。すなわち、トラステッドＯＳは、汎用ＯＳ上で動作する汎用アプリケーションが実行するシステムコールの実行内容を取得する。
【０１２５】
トラステッドＯＳの送信部は、取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する。
【０１２６】
上述の構成により、汎用ＯＳから独立したセキュアなトラステッド実行環境（コンポーネント）は、システムコールに関する情報をサーバへ転送するので、デバイス個々の不正な処理順序を定義した情報を夫々のデバイスに組み込む必要がなく、サーバ側でデバイスを監視することができ、デバイスのセキュリティ上の安全性を高めることができる。また、トラステッド実行環境は、秘匿通信路を使ってシステムコールに関する情報を転送するので、システムコールに関する情報が不正に改ざんされることを防止することができ、また、システムコールに関する情報の送信がブロックされることも防止することができる。
【０１２７】
本実施の形態に係るサーバは、複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信する受信部と、該受信部で受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を記憶する履歴情報記憶部とを備える。
【０１２８】
受信部は、複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信する。
【０１２９】
履歴情報記憶部は、受信部で受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を記憶する。システムコール履歴情報は、例えば、システムコールの実行内容を実行順序に記憶した情報である。
【０１３０】
上述の構成により、サーバは、夫々のデバイスについて、システムコールの実行順に実行内容を把握することができ、デバイスの動作の正当性を判定することができる。
【０１３１】
本実施の形態に係るサーバは、所定の条件を記憶する記憶部と、前記履歴情報記憶部に記憶した任意のデバイスのシステムコール履歴情報が前記所定の条件を充足するか否かに応じて、前記デバイスに係る所定の事象の有無を監視する監視部とを備える。
【０１３２】
監視部は、履歴情報記憶部に記憶した任意のデバイスのシステムコール履歴情報が記憶部に記憶した所定の条件を充足するか否かに応じて、デバイスに係る所定の事象の有無を監視する。所定の事象は、例えば、デバイスの動作が正当でない状態（セキュリティ上の問題がある状態）、あるいはデバイスの故障状態などを含めることができる。これにより、デバイスにセキュリティ上の問題があるか否か、デバイスが故障しているか否か等を監視することができる。
【０１３３】
本実施の形態に係るサーバは、前記所定の条件は、システムコール履歴情報が予め定められた不正パターンと一致することであり、前記監視部は、前記デバイスに係る不正動作の有無を監視する。
【０１３４】
所定の条件は、システムコール履歴情報が予め定められた不正パターンと一致することであり、監視部は、デバイスに係る不正動作の有無を監視する。不正パターンを適宜定義することにより、未知のセキュリティ攻撃を検知可能とすることができる。
【０１３５】
本実施の形態に係るサーバは、前記不正パターンを更新する更新部を備える。
【０１３６】
更新部は、不正パターンを更新する。これにより、従来にはなかった新たなセキュリティ攻撃を検知可能とすることができる。
【０１３７】
本実施の形態に係るサーバは、計時部を備え、前記所定の条件は、前記システムコールが実行された時点と前記計時部で計時した時点との時間差が所定時間以上であり、前記監視部は、前記デバイスに係る故障の有無を監視する。
【０１３８】
所定の条件は、システムコールが実行された時点と計時部で計時した時点との時間差が所定時間以上であり、監視部は、デバイスに係る故障の有無を監視する。例えば、時間差が所定時間以上である場合、アプリケーションがシステムコールを所定時間以上実行しないことになり、デバイスの状況を監視することができないので、デバイスが故障していると判定することができる。
【０１３９】
本実施の形態に係るデバイス監視方法は、複数のデバイスを監視するサーバによるデバイス監視方法であって、前記複数のデバイスそれぞれは、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得し、取得したシステムコールに関する情報を、秘匿通信路を介して前記サーバへ送信し、前記サーバは、前記複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信し、受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を履歴情報記憶部に記憶し、前記履歴情報記憶部に記憶したシステムコール履歴情報に基づいて、任意のデバイスに係る所定の事象の有無を監視する。
【０１４０】
複数のデバイスそれぞれは、デバイス本体で実行されるＯＳのシステムコールに関する情報を取得し、取得したシステムコールに関する情報を、秘匿通信路を介してサーバへ送信する。
【０１４１】
サーバは、複数のデバイスそれぞれからＯＳのシステムコールに関する情報を受信し、受信したシステムコールに関する情報に基づいてデバイス毎のシステムコール履歴情報を履歴情報記憶部に記憶し、記憶したシステムコール履歴情報に基づいて、任意のデバイスに係る所定の事象の有無を監視する。
【０１４２】
上述の構成により、デバイスは、システムコールに関する情報をサーバへ転送するので、デバイスが個々の不正な処理順序を定義した上でデバイスに組み込む必要がなく、サーバ側でデバイスを監視することができる。また、デバイスのセキュリティ上の安全性を高めることができる。デバイスは、秘匿通信路を使ってシステムコールに関する情報を転送するので、システムコールに関する情報が不正に改ざんされることを防止することができ、また、システムコールに関する情報の送信がブロックされることも防止することができる。
【０１４３】
また、サーバは、夫々のデバイスについて、システムコールの実行順に実行内容を把握することができ、デバイスに係る所定の事象の有無を監視することができる。
【符号の説明】
【０１４４】
１０  デバイス本体
２０  ＲＥＥ
２１  リッチＯＳ
２１１  システムコール呼出検知処理部
２１２  システムコール
２１３  システムコール機能実装
２２  クライアントアプリケーション
３０  ＴＥＥ
３１  トラステッドＯＳ
３１１  トラステッドＯＳシステムコール呼出検知処理部
３１２  トラステッドＯＳシステムコール
３１３  トラステッドＯＳシステムコール機能実装
３２  トラステッドアプリケーション
３３  ＲＥＥシステムコールトラステッドアプリケーション
４１  ＣＰＵ
４２  ネットワーク通信部
４５  通信路
５０  セキュアエレメント
５１  システムコール情報受信処理部
５２  秘匿通信路通信処理部
６１、６２  秘匿通信路
７０  ネットワーク回線
２００  サーバ
【図１】
2019028670.tif 000003
【図２】
2019028670.tif 000004
【図３】
2019028670.tif 000005
【図４】
2019028670.tif 000006
【図５】
2019028670.tif 000007
【図６】
2019028670.tif 000008
【図７】
2019028670.tif 000009
【図８】
2019028670.tif 000010
【図９】
2019028670.tif 000011
【図１０】
2019028670.tif 000012
【図１１】
2019028670.tif 000013