JP2019057167A - コンピュータプログラム、デバイス及び判定方法 - Google Patents

コンピュータプログラム、デバイス及び判定方法 Download PDF

Info

Publication number
JP2019057167A
JP2019057167A JP2017181637A JP2017181637A JP2019057167A JP 2019057167 A JP2019057167 A JP 2019057167A JP 2017181637 A JP2017181637 A JP 2017181637A JP 2017181637 A JP2017181637 A JP 2017181637A JP 2019057167 A JP2019057167 A JP 2019057167A
Authority
JP
Japan
Prior art keywords
monitoring module
execution environment
normal
confirmation information
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017181637A
Other languages
English (en)
Inventor
篤浩 佐橋
Atsuhiro Sahashi
篤浩 佐橋
嘉昭 植村
Yoshiaki Uemura
嘉昭 植村
亮大 中村
Ryota Nakamura
亮大 中村
智恒 浜野
Tomotsune Hamano
智恒 浜野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2017181637A priority Critical patent/JP2019057167A/ja
Publication of JP2019057167A publication Critical patent/JP2019057167A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】デバイスをより安全な状態にすることができるコンピュータプログラム、デバイス及び判定方法を提供する。【解決手段】コンピュータプログラムは、ノーマル実行環境から仮想的に分離され、ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるため、コンピュータに、ノーマル実行環境で実行され、ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させる。【選択図】図1

Description

本発明は、コンピュータプログラム、デバイス及び判定方法に関する。
IoT(Internet of Things)では、多種多様なデバイスがネットワークに接続されることで新たな付加価値を生み出している。このようなデバイスに対するセキュリティ上の攻撃には多種多様な手法が存在し、より安全なセキュリティ対策が検討されている。
例えば、特許文献1には、外界からの攻撃を防止するための安全な実行環境を提供する技術が開示されている。
特許第6130612号公報
上述のようなデバイスは、様々な場所に設置され、人手を介さずに自動的にネットワークに接続され、オンライン環境で使用される。外界からの攻撃を防止するため、例えば、ネットワークの状態、実行環境下で稼働しているプロセスの挙動などを監視する監視モジュールが必要となるが、監視モジュールが攻撃対象となり、監視モジュールの機能停止又は改ざんが行われると異常な動作を引き起こす事態となる。
本発明は、斯かる事情に鑑みてなされたものであり、デバイスをより安全な状態にすることができるコンピュータプログラム、デバイス及び判定方法を提供することを目的とする。
本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させる。
本発明の実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本発明の実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。
本発明の実施の形態に係る判定方法は、監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する。
本発明によれば、デバイスをより安全な状態にすることができる。
本実施の形態のデバイスの構成の一例を示すブロック図である。 本実施の形態の認証モジュールによる起動時の動作の一例を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第1実施を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第2実施を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第3実施を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第4実施を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定動作の第5実施を示す説明図である。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第1実施を示すフローチャートである。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第1実施を示すフローチャートである。 本実施の形態の認証モジュールによる監視モジュールの正常・異常の判定処理の手順の第2実施を示すフローチャートである。
以下、本発明の実施の形態を図面に基づいて説明する。図1は本実施の形態のデバイス100の構成の一例を示すブロック図である。デバイス100は、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイス(電子デバイスとも称する)を含む。デバイス100は、例えば、単一のSoC(System on a Chip)で構成され、一個の半導体チップ上にシステムの動作に必要な機能の多く、あるいは全ての機能を一体化して実装している。
デバイス100は、ネットワーク通信部12を備える。ネットワーク通信部12は、デバイス100をネットワークに接続する機能を有し、ネットワーク上のサービスサーバ(不図示)との間で情報の送受信を行うことができる。ネットワーク通信部12は、不図示のセンサ類で検出した情報をサービスサーバ(不図示)に送信することができる。
デバイス100では、仮想化技術を実現するハイパーバイザー10によって、仮想的に分離された複数の実行環境が提供されている。図1では、二つの実行環境が図示されている。一の実行環境は、ノーマル領域20(ノーマル実行環境、ノーマルドメインとも称する)であり、他の実行環境は、セキュア領域30(セキュア実行環境、セキュアドメインとも称する)である。すなわち、ハイパーバイザー10は、CPU11上で動作し、ノーマル領域20の仮想コンピュータ及びセキュア領域30の仮想コンピュータをデバイス100上で構築している。なお、ハイパーバイザー10の機能の一部をハードウェア化し、プロセッサコアなどに組み込み高速化を図ることができる。この場合、プロセッサコアには、例えば、TrustZone(登録商標)と称される技術を搭載することができる。ノーマル領域20とセキュア領域30との間では、メモリ空間、入出力装置などが分離されている。
ノーマル領域20は、広く一般的に利用されているOSの実行環境であり、セキュア領域30へのアクセスが制限される以外、特段の機能制約がない実行環境である。
セキュア領域30は、例えば、セキュリティ機能を隔離する目的で、同一のSoC上でノーマル領域20とは別に提供される独立した実行環境である。セキュア領域30は、ノーマル領域20からのアクセスが制限されている。
上述のように、ノーマル領域20からセキュア領域30にはアクセスできないように制限されるので、ノーマル領域20からセキュア領域30で実行する処理を呼び出すためには、ハイパーバイザー10を経由しなければならない。
ノーマル領域20には、リッチOS21、揮発性のメモリ22、不揮発性のストレージ27、監視モジュール23、ファイルシステム24、アプリケーション25、26などが存在する。また、セキュア領域30には、セキュアOS31、揮発性のセキュアメモリ32、不揮発性のセキュアストレージ34、コンピュータプログラムとしての認証モジュール33などが存在する。なお、アプリケーションの数は二つに限定されない。
ファイルシステム24は、ストレージ27に含まれるフォルダ及びパスの構造を解釈し、アクセスするために利用される。
メモリ22には、ノーマル領域20のストレージ27に格納されたデータが展開される。また、メモリ22には、監視モジュール23で利用される一時的なデータ(例えば、セッション鍵など)が格納される。メモリ22の内容は、セキュア領域30のアプリケーション(例えば、認証モジュール33など)からも参照することができる。
ストレージ27には、認証情報、公開鍵α及び監視モジュール23の実行ファイルなどの情報が格納され、必要に応じて当該情報はメモリ22に展開される。なお、認証情報、公開鍵αは、ファイルとして保存されていてもよく、監視モジュール23の実行コード中にハードコードされていてもよい。ファイルとして保存する場合は、アクセス権の設定、データの暗号化などの措置を複合的に講じることが望ましい。また、監視モジュール23の実行コード中にハードコードする場合は、難読化又は暗号化などアプリケーションの保護を施すことが望ましい。
セキュアメモリ32は、セキュア領域30のセキュアストレージ34に格納されたデータが展開される。また、セキュアメモリ32には、認証モジュール33で利用される一時的なデータ(例えば、セッション鍵など)が格納される。セキュアメモリ32の内容は、ノーマル領域20のアプリケーションからは参照することができない。
セキュアストレージ34には、認証情報、秘密鍵β、監視モジュール23の実行コード又は該実行コードのハッシュ値、認証モジュール33の実行ファイルなどの情報が格納され、必要に応じて当該情報は、セキュアメモリ32に展開される。認証情報、秘密鍵β、監視モジュール23の実行コード又は該実行コードのハッシュ値はファイルとして保存されてもよく、あるいは、認証モジュール33の実行コード中にハードコードされていてもよい。認証情報は、監視モジュール23を認証するための情報である。
監視モジュール23は、ノーマル領域20内の監視対象を監視する。監視対象は、例えば、ノーマル領域20で動作するアプリケーション25、26、リッチOS21等から出力されるログファイル(実行履歴、デバッグ情報、アプリケーション間の通信ログなど)、ノーマル領域20で稼働しているアプリケーション25、26の挙動、ファイルシステム24の変更、セキュリティポリシーの変更、ネットワークの状態及びネットワークを伝送するパケットの中身などを含む。なお、監視対象は、上述のものに限定されない。
認証モジュール33は、認証情報の照合処理、復号処理、ハッシュ値の算出処理、監視モジュール23の正常・異常を判定する処理などを行うことができる。
認証モジュール33が、監視モジュール23の正常・異常を判定することにより、監視モジュール23が外部からの攻撃に晒されて正常な動作をすることができない場合、監視モジュール23の異常を判定することができ、外部からの攻撃を検出することができる。また、認証モジュール33は、監視モジュール23が動作するノーマル領域20から分離されたより安全なセキュア領域30で動作するので、外部からの攻撃に晒される可能性は極めて低く、ハッキングの難易度を高め、デバイス100をより安全な状態に保つことができる。
次に、認証モジュール33の動作について具体的に説明する。
図2は本実施の形態の認証モジュール33による起動時の動作の一例を示す説明図である。起動時は、例えば、デバイス100の起動時(リッチOS21の起動時)、ノーマル領域20内のアプリケーション25、26を立ち上げ時などを含む。以下、ステップP1からP6について説明する。
ステップP1では、監視モジュール23は、ストレージ27からメモリ22に展開された認証情報を公開鍵αで暗号化したデータを送信する。
ステップP2では、認証モジュール33は、受信したデータを秘密鍵βで復号し、復号して得られた認証情報とセキュアメモリ32に展開した認証情報との照合を行う。
ステップP3では、認証モジュール33は、認証情報が一致している場合、認証完了を送信する。両方の認証情報が一致する場合、監視モジュール23から取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、監視モジュール23から取得した認証情報は正当でないと判定することができる。これにより、なりすまし等の不正を防止することができる。
ステップP4では、監視モジュール23は、セッション鍵を生成する。
ステップP5では、監視モジュール23は、セッション鍵を公開鍵αで暗号化したデータを送信する。
ステップP6では、認証モジュール33は、受信したデータを秘密鍵βで復号してセッション鍵を取得する。これにより、認証モジュール33と監視モジュール23とは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。
図3は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第1実施を示す説明図である。以下、ステップP11からP15について説明する。
ステップP11では、監視モジュール23は、確認情報を送信する。
ステップP12では、認証モジュール33は、監視モジュール23から確認情報を受信することができたので、監視モジュール23は正常であると判定する。
ステップP13では、監視モジュール23は、確認情報を送信する。ステップP13の時点とステップP11の時点との間の所定時間Tは、予め定められており、例えば、10秒、20秒、30秒、1分など、デバイス100の使用環境、機能等に応じて適宜決定することができる。確認情報の出力のタイミングは、周期的に限定されるものではなく、例えば、デバイス100のCPU11の負荷が増加した場合、あるいは異常の予兆を検知した場合など不定期的でもよい。
ステップP14では、認証モジュール33は、直近に確認情報を受信した時点から所定時間Tが経過する以前に、監視モジュール23から確認情報を再度受信することができたので、監視モジュール23は正常であると判定する。
ステップP15では、ステップP13の時点から所定時間Tが経過しているにも関わらず、監視モジュール23は、確認情報を送信することができない。
ステップP16では、認証モジュール33は、監視モジュール23から確認情報を再度受信することができないので、監視モジュール23は異常であると判定する。
上述のように、確認情報が出力されるタイミングを経過しても、監視モジュール23が確認情報を出力しない場合、監視モジュール23が異常であると判定することができる。
図4は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第2実施を示す説明図である。以下、ステップP21からP25について説明する。
ステップP21では、監視モジュール23は、変数Xに乱数Aを格納する。変数Xは、監視モジュール23側の確認情報となる。
ステップP22では、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。
ステップP23では、認証モジュール33は、受信したデータをセッション鍵で復号して得られた変数Xを変数Yに格納する。変数Yは、認証モジュール33側の確認情報となる。
ステップP24では、ステップP22の時点から所定時間Tだけ経過したので、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。
ステップP25では、認証モジュール33は、受信したデータをセッション鍵で復号して変数Xを取得する。変数Yが格納されているので、認証モジュール33は、変数Xと変数Yとが一致するか否かを判定する。変数Xと変数Yとが一致する場合、監視モジュール23が正常であると判定することができる。変数Xと変数Yとが一致しない場合、監視モジュール23が異常であると判定することができる。
上述のように、確認情報がセッション鍵で保護されるので、認証情報の盗聴又は改ざんを防止することができる。
図5は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第3実施を示す説明図である。以下、ステップP31からP36について説明する。
ステップP31では、監視モジュール23は、変数Xに乱数Aを格納する。変数Xは、監視モジュール23側の確認情報となる。
ステップP32では、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。
ステップP33では、認証モジュール33は、受信したデータをセッション鍵で復号して得られた変数Xを変数Yに格納する。変数Yは、認証モジュール33側の確認情報となる。
ステップP34では、監視モジュール23は、変数Xに(X+d)を格納する。ここでは、確認情報を更新する所定のアルゴリズムは、更新の都度、所定値dを加算するというアルゴリズムとなる。なお、所定のアルゴリズムは、上述の例に限定されない。
ステップP35では、ステップP32の時点から所定時間Tだけ経過したので、監視モジュール23は、変数Xをセッション鍵で暗号化したデータを送信する。
ステップP36では、認証モジュール33は、受信したデータをセッション鍵で復号して変数Xを取得する。変数Yが格納されているので、認証モジュール33は、前述のアルゴリズムと同じアルゴリズムを用いて、変数Yを(Y+d)とする。認証モジュール33は、変数Xと変数(Y+d)とが一致するか否かを判定する。変数Xと変数(Y+d)とが一致する場合、監視モジュール23が正常であると判定することができる。監視モジュール23が正常である場合、認証モジュール33は、変数Yに変数X(=Y+d)を格納する。変数Xと変数(Y+d)とが一致しない場合、監視モジュール23が異常であると判定することができる。
上述のように、監視モジュール23が正常であれば、同じアルゴリズムで更新される確認情報は同一となる。確認情報が同一でない場合には、監視モジュール23が正しく確認情報を更新することができていないので、監視モジュール23が異常であると判定することができる。また、認証情報を更新することにより、リプレイ攻撃を防止することができる。
上述の例では、監視モジュール23が正常であるか否かを、監視モジュール23が送信する確認情報に基づいて判定する構成であったが、監視モジュール23が正常・異常の判定は、これに限定されない。以下では、監視モジュール23の実行コード(実行ファイル)を用いる構成について説明する。
図6は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第4実施を示す説明図である。
認証モジュール33は、ノーマル領域20内のメモリ22に展開された監視モジュール23の実行コードを取得する。実行コードは、監視モジュール23の全部でもよく一部でもよい。
認証モジュール33は、取得した実行コードと、セキュア領域30内のセキュアメモリ32に展開した監視モジュール23の実行コードとが同一であるか否かを判定する。実行コードが一致する場合、監視モジュールが正常であると判定することができる。実行コードが一致しない場合、監視モジュールが異常であると判定することができる。
これにより、監視モジュール23の改ざんなどを検出することができる。
図7は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定動作の第5実施を示す説明図である。
認証モジュール33は、ノーマル領域20内のメモリ22に展開された監視モジュール23の実行コードを取得する。認証モジュール33は、取得した実行コードのハッシュ値を算出する。なお、ハッシュ値の算出には、適宜のハッシュ関数を用いることができる。
認証モジュール33は、算出したハッシュ値と、セキュアメモリ32に展開した監視モジュール23の実行コードのハッシュ値とが同一であるか否かを判定する。ハッシュ値が一致する場合、監視モジュールが正常であると判定することができる。ハッシュ値が一致しない場合、監視モジュールが異常であると判定することができる。
これにより、監視モジュール23の改ざんなどを検出することができる。
認証モジュール33は、監視モジュールが23異常であると判定した場合、ノーマル領域20で実行されるリッチOS21を再起動する処理を行う。リッチOS21の再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、ノーマル領域20内の監視モジュール23を含むアプリケーション25、26、リッチOS21、ファイルシステム24等の修復することができる。また、ノーマル領域20内で動作するネットワーク通信部12なども初期化することができ、ノーマル領域20の修復を行うことができる。
また、ノーマル領域20がハッキングなどの攻撃を受けた場合、例えば、ノーマル領域20内に不正なアプリケーション又は不正なファイル(正常時には存在しないアプリケーション又はファイル)が導入される。このような場合、監視モジュール23が検知し、認証モジュール33に通知することにより、認証モジュール33は、ノーマル領域20を再起動して修復する(不正なアプリケーション又は不正なファイルを削除する)ことができる。
図8及び図9は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定処理の手順の第1実施を示すフローチャートである。認証モジュール33は、監視モジュール23の認証情報を暗号化したデータを取得し(S11)、取得したデータを復号して認証情報を取得する(S12)。認証モジュール33は、認証情報が一致するか否かを判定する(S13)。
認証情報が一致しない場合(S13でNO)、認証モジュール33は、後述のステップS23の処理を行う。認証情報が一致する場合(S13でYES)、認証モジュール33は、セッション鍵を暗号化したデータを取得し(S14)、取得したデータを復号してセッション鍵を取得する(S15)。
認証モジュール33は、確認情報をセッション鍵で暗号化したデータを取得し(S16)、取得したデータをセッション鍵で復号して確認情報を取得する(S17)。認証モジュール33は、取得した確認情報をセキュアメモリ32に格納する(S18)。
認証モジュール33は、確認情報をセッション鍵で暗号化したデータを取得したか否かを判定し(S19)、データを取得していない場合(S19でNO)、直近のデータ取得時点から所定時間経過しているか否かを判定する(S20)。所定時間経過していない場合(S20でNO)、認証モジュール33は、ステップS19の処理を続ける。所定時間経過した場合(S20でYES)、認証モジュール33は、後述のステップS23の処理を行う。
データを取得した場合(S19でYES)、認証モジュール33は、確認情報が一致するか否かを判定する(S21)。確認情報が一致する場合(S21でYES)、認証モジュール33は、監視モジュール23は正常であると判定し(S22)、後述のステップS25の処理を行う。
確認情報が一致しない場合(S21でNO)、認証モジュール33は、監視モジュール23は異常であると判定し(S23)、リッチOS21を再起動し(S24)、処理を終了するか否かを判定する(S25)。処理を終了しない場合(S25でNO)、認証モジュール33は、ステップS16以降の処理を行う。処理を終了する場合(S25でYES)、認証モジュール33は、処理を終了する。
図10は本実施の形態の認証モジュール33による監視モジュール23の正常・異常の判定処理の手順の第2実施を示すフローチャートである。認証モジュール33は、メモリ22に展開された監視モジュール23の実行コードを取得し(S31)、取得した実行コードのハッシュ値を算出する(S32)。
認証モジュール33は、算出したハッシュ値と、セキュアメモリ32に展開していた監視モジュール23の実行コードのハッシュ値とを比較し(S33)、ハッシュ値が一致するか否かを判定する(S34)。ハッシュ値が一致する場合(S34でYES)、認証モジュール33は、監視モジュール23は正常であると判定し(S35)、処理を終了する。
ハッシュ値が一致しない場合(S34でNO)、認証モジュール33は、監視モジュール23は異常であると判定し(S36)、リッチOS21を再起動し(S37)、処理を終了する。
上述のように、本実施の形態によれば、ハッキングの難易度を高め、デバイスをより安全な状態に保つことができる。
本実施の形態において、監視モジュール23は、認証情報を保護するため、難読化、動的解析対策などを施すこともできる。これにより、リバースエンジニアリングされた場合、あるいは、監視モジュール23を動作させた場合に、認証情報の内容が解読されることを防止できる。
本実施の形態において、監視モジュール23は、監視対象の異常を検知した場合、ログを記録すること、あるいはネットワークを介して外部の端末に異常検知の通知を行うことができる。また、異常検知を認証モジュール33に通知して、ノーマル領域20を再起動させることもできる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、コンピュータに、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させる。
本実施の形態に係るデバイスは、ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、本実施の形態に係るコンピュータプログラムを前記セキュア実行環境にインストール可能とする。
本実施の形態に係る判定方法は、監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する。
デバイスには、例えば、ハイパーバイザーなどの仮想化技術を用いたモジュールによって仮想的に分離された複数(例えば、二つ)の実行環境が提供されている。一の実行環境は、ノーマル実行環境(ノーマルドメインとも称する)であり、リッチOS、アプリケーションなどが動作するものである。他の実行環境は、セキュア実行環境(セキュアドメインとも称する)であり、ノーマル実行環境と分離され、セキュリティ上より安全な実行環境である。本実施の形態のコンピュータプログラムは、認証モジュールであり、セキュア実行環境で動作する。監視モジュールは、ノーマル実行環境で動作する。
監視モジュールは、ノーマル実行環境内の監視対象を監視する。監視対象は、例えば、ノーマル実行環境で動作するアプリケーション及びリッチOS等から出力されるログファイル(実行履歴、デバッグ情報、アプリケーション間の通信ログなど)、ノーマル実行環境で稼働しているアプリケーション(プロセス)、ネットワークの状態及びネットワークを伝送するパケットの中身などを含む。
認証モジュールは、監視モジュールの正常・異常を判定する処理を行う。これにより、監視モジュールが外部からの攻撃に晒されて正常な動作をすることができない場合、監視モジュールの異常を判定することができ、外部からの攻撃を検出することができる。また、認証モジュールは、監視モジュールが動作するノーマル実行環境から分離されたより安全なセキュア実行環境で動作するので、外部からの攻撃に晒される可能性は極めて低く、デバイスをより安全な状態に保つことができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、認証情報を暗号化した情報を取得する処理と、取得した情報を所定の秘密鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに展開した認証情報を照合する処理とを実行させる。
認証モジュールは、監視モジュールが認証情報を暗号化した情報を出力すると、当該情報を取得する。ノーマル実行環境内のメモリには、予め認証情報、暗号化のための鍵(例えば、公開鍵)が展開されている。監視モジュールは、認証情報を公開鍵で暗号化した情報(データ)を、ハイパーバイザーを介してセキュア実行環境内の認証モジュールに出力する。
認証モジュールは、取得した情報を所定の秘密鍵で復号して認証情報を取得すると、取得した認証情報とセキュア実行環境内のセキュアメモリに展開した認証情報とを照合する。両方の認証情報が一致する場合、監視モジュールから取得した認証情報は正当であると判定することができる。また、両方の認証情報が一致しない場合、監視モジュールから取得した認証情報は正当でないと判定することができる。これにより、なりすまし等の不正を防止することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが繰り返し出力する確認情報を取得する処理と、取得した確認情報に基づいて、前記監視モジュールの正常・異常を判定する処理とを実行させる。
認証モジュールは、監視モジュールが繰り返し出力する確認情報を取得する。確認情報の出力は、例えば、10秒に1回、1分に1回の如く周期的でもよく、デバイスのCPUの負荷が増加した場合、あるいは異常の予兆を検知した場合など不定期的でもよい。
認証モジュールは、取得した確認情報に基づいて、監視モジュールの正常・異常を判定する。例えば、確認情報が出力されるタイミングを経過しても、監視モジュールが確認情報を出力しない場合、監視モジュールが異常であると判定することができる。また、監視モジュールが出力した確認情報が、所定の確認情報と異なる場合、監視モジュールが異常であると判定することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、前記監視モジュールが出力する、前記所定のセッション鍵で確認情報を暗号化した暗号化確認情報を取得する処理と、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する処理とを実行させる。
認証モジュールは、監視モジュールが所定のセッション鍵を暗号化したセッション鍵情報を出力すると、当該セッション鍵情報を取得する。セッション鍵の暗号化は、ノーマル実行環境内のメモリに予め展開された鍵(例えば、公開鍵)を用いることができる。
認証モジュールは、取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する。これにより、認証モジュールと監視モジュールとは、お互いに共通のセッション鍵を有することができ、以後の通信に使用することができる。
認証モジュールは、監視モジュールが所定のセッション鍵で確認情報を暗号化した暗号化確認情報を出力すると、当該暗号化確認情報を取得する。認証モジュールは、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する。
これにより、確認情報がセッション鍵で保護されるので、認証情報の盗聴や改ざんを防止することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが出力する、出力の都度所定のアルゴリズムで更新される確認情報を前記所定のセッション鍵で暗号化した暗号化確認情報を取得する処理と、取得した暗号化確認情報を前記取得したセッション鍵で復号して確認情報を取得する処理と、取得した確認情報が、前記所定のアルゴリズムで更新されているか否かを判定する処理と、前記所定のアルゴリズムで更新されていない場合、前記監視モジュールが異常であると判定する処理とを実行させる。
認証モジュールは、監視モジュールが出力の都度所定のアルゴリズムで更新される確認情報を所定のセッション鍵で暗号化した暗号化確認情報を出力すると、当該暗号化確認情報を取得する。すなわち、監視モジュールは、暗号化確認情報を出力する場合、その都度、所定のアルゴリズムで確認情報を更新するので、出力の都度、確認情報は更新される。
認証モジュールは、取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する。認証モジュールは、取得した確認情報が、所定のアルゴリズムで更新されているか否かを判定し、所定のアルゴリズムで更新されていない場合、監視モジュールが異常であると判定する。
監視モジュールが正常であれば、同じアルゴリズムで更新される確認情報は同一となる。確認情報が同一でない場合には、監視モジュールが正しく確認情報を更新することができていないので、監視モジュールが異常であると判定することができる。認証情報の更新を行うことにより、リプレイ攻撃を防止することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記ノーマル実行環境内のメモリに展開された前記監視モジュールの実行コードを取得する処理と、取得した実行コードと、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードとが同一であるか否かを判定する処理と、実行コード同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理とを実行させる。
認証モジュールは、ノーマル実行環境内のメモリに展開された監視モジュールの実行コードを取得する。実行コードは、監視モジュールの全部でもよく一部でもよい。
認証モジュールは、取得した実行コードと、セキュア実行環境内のセキュアメモリに展開した監視モジュールの実行コードとが同一であるか否かを判定し、実行コード同士が同一でないと判定した場合、監視モジュールが異常であると判定する。
これにより、監視モジュールの改ざんなどを検出することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、取得した実行コードのハッシュ値を算出する処理と、算出したハッシュ値と、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定する処理と、ハッシュ値同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理とを実行させる。
認証モジュールは、取得した実行コードのハッシュ値を算出する。
認証モジュールは、算出したハッシュ値と、セキュア実行環境内のセキュアメモリに展開した監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定し、ハッシュ値同士が同一でないと判定した場合、監視モジュールが異常であると判定する。
これにより、監視モジュールの改ざんなどを検出することができる。
本実施の形態に係るコンピュータプログラムは、コンピュータに、前記監視モジュールが異常であると判定した場合、前記ノーマル実行環境で実行されるOSを再起動する処理を実行させる。
認証モジュールは、監視モジュールが異常であると判定した場合、ノーマル実行環境で実行されるOSを再起動する処理を行う。OSの再起動を行うことにより、改ざんされたファイルの初期化、不正なファイルの除去などを行うことができ、ノーマル実行環境内の監視モジュールを含むアプリケーション、OS等の修復することができる。
10 ハイパーバイザー
11 CPU
12 ネットワーク通信部
20 ノーマル領域
21 リッチOS
22 メモリ
23 監視モジュール
24 ファイルシステム
25、26 アプリケーション
30 セキュア領域
31 セキュアOS
32 セキュアメモリ
33 認証モジュール

Claims (10)

  1. コンピュータに、ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で所要の処理を実行させるためのコンピュータプログラムであって、
    コンピュータに、
    前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する処理を実行させるコンピュータプログラム。
  2. コンピュータに、
    前記監視モジュールが出力する、認証情報を暗号化した情報を取得する処理と、
    取得した情報を所定の秘密鍵で復号して得られた認証情報及び前記セキュア実行環境内のセキュアメモリに展開した認証情報を照合する処理と
    を実行させる請求項1に記載のコンピュータプログラム。
  3. コンピュータに、
    前記監視モジュールが繰り返し出力する確認情報を取得する処理と、
    取得した確認情報に基づいて、前記監視モジュールの正常・異常を判定する処理と
    を実行させる請求項1又は請求項2に記載のコンピュータプログラム。
  4. コンピュータに、
    前記監視モジュールが出力する、所定のセッション鍵を暗号化したセッション鍵情報を取得する処理と、
    取得したセッション鍵情報を所定の秘密鍵で復号してセッション鍵を取得する処理と、
    前記監視モジュールが出力する、前記所定のセッション鍵で確認情報を暗号化した暗号化確認情報を取得する処理と、
    取得した暗号化確認情報を取得したセッション鍵で復号して確認情報を取得する処理と
    を実行させる請求項3に記載のコンピュータプログラム。
  5. コンピュータに、
    前記監視モジュールが出力する、出力の都度所定のアルゴリズムで更新される確認情報を前記所定のセッション鍵で暗号化した暗号化確認情報を取得する処理と、
    取得した暗号化確認情報を前記取得したセッション鍵で復号して確認情報を取得する処理と、
    取得した確認情報が、前記所定のアルゴリズムで更新されているか否かを判定する処理と、
    前記所定のアルゴリズムで更新されていない場合、前記監視モジュールが異常であると判定する処理と
    を実行させる請求項4に記載のコンピュータプログラム。
  6. コンピュータに、
    前記ノーマル実行環境内のメモリに展開された前記監視モジュールの実行コードを取得する処理と、
    取得した実行コードと、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードとが同一であるか否かを判定する処理と、
    実行コード同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理と
    を実行させる請求項1から請求項5のいずれか一項に記載のコンピュータプログラム。
  7. コンピュータに、
    取得した実行コードのハッシュ値を算出する処理と、
    算出したハッシュ値と、前記セキュア実行環境内のセキュアメモリに展開した前記監視モジュールの実行コードのハッシュ値とが同一であるか否かを判定する処理と、
    ハッシュ値同士が同一でないと判定した場合、前記監視モジュールが異常であると判定する処理と
    を実行させる請求項6に記載のコンピュータプログラム。
  8. コンピュータに、
    前記監視モジュールが異常であると判定した場合、前記ノーマル実行環境で実行されるOSを再起動する処理を実行させる請求項1から請求項7のいずれか一項に記載のコンピュータプログラム。
  9. ノーマル実行環境及び該ノーマル実行環境よりも安全なセキュア実行環境を仮想的に分離して実行環境を提供する仮想化モジュールを備え、請求項1から請求項8のいずれか一項に記載のコンピュータプログラムを前記セキュア実行環境にインストール可能とするデバイス。
  10. 監視対象を監視する監視モジュールの正常・異常を判定する判定方法であって、
    ノーマル実行環境から仮想的に分離され、前記ノーマル実行環境よりも安全なセキュア実行環境で動作するセキュアモジュールは、
    前記ノーマル実行環境で実行され、該ノーマル実行環境内の監視対象を監視する監視モジュールの正常・異常を判定する判定方法。
JP2017181637A 2017-09-21 2017-09-21 コンピュータプログラム、デバイス及び判定方法 Pending JP2019057167A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017181637A JP2019057167A (ja) 2017-09-21 2017-09-21 コンピュータプログラム、デバイス及び判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017181637A JP2019057167A (ja) 2017-09-21 2017-09-21 コンピュータプログラム、デバイス及び判定方法

Publications (1)

Publication Number Publication Date
JP2019057167A true JP2019057167A (ja) 2019-04-11

Family

ID=66107547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017181637A Pending JP2019057167A (ja) 2017-09-21 2017-09-21 コンピュータプログラム、デバイス及び判定方法

Country Status (1)

Country Link
JP (1) JP2019057167A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021014539A1 (ja) * 2019-07-22 2021-01-28 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及び非一時的なコンピュータ可読媒体
JP2021056644A (ja) * 2019-09-27 2021-04-08 大日本印刷株式会社 デバイス、コンピュータプログラム及び監視方法
WO2022254519A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システムおよび監視方法
JP7296556B1 (ja) * 2022-09-27 2023-06-23 パナソニックIpマネジメント株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP7325072B1 (ja) * 2022-09-14 2023-08-14 パナソニックIpマネジメント株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2024057571A1 (ja) * 2022-09-14 2024-03-21 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2024070001A1 (ja) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021014539A1 (ja) * 2019-07-22 2021-01-28 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及び非一時的なコンピュータ可読媒体
JPWO2021014539A1 (ja) * 2019-07-22 2021-01-28
JP7290166B2 (ja) 2019-07-22 2023-06-13 日本電気株式会社 セキュリティ管理装置、セキュリティ管理方法、及びプログラム
JP2021056644A (ja) * 2019-09-27 2021-04-08 大日本印刷株式会社 デバイス、コンピュータプログラム及び監視方法
JP7352158B2 (ja) 2019-09-27 2023-09-28 大日本印刷株式会社 デバイス、コンピュータプログラム及び監視方法
JP2023002832A (ja) * 2021-05-31 2023-01-10 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システム及び監視方法
JP7189397B1 (ja) * 2021-05-31 2022-12-13 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システム及び監視方法
JP7253663B2 (ja) 2021-05-31 2023-04-06 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システム及び監視方法
WO2022255247A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システム及び監視方法
WO2022254519A1 (ja) * 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 監視装置、監視システムおよび監視方法
JP7325072B1 (ja) * 2022-09-14 2023-08-14 パナソニックIpマネジメント株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP7411902B1 (ja) 2022-09-14 2024-01-12 パナソニックIpマネジメント株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2024057571A1 (ja) * 2022-09-14 2024-03-21 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
JP7296556B1 (ja) * 2022-09-27 2023-06-23 パナソニックIpマネジメント株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
WO2024070001A1 (ja) * 2022-09-27 2024-04-04 パナソニックオートモーティブシステムズ株式会社 情報処理装置、情報処理装置の制御方法及びプログラム

Similar Documents

Publication Publication Date Title
Kolodenker et al. Paybreak: Defense against cryptographic ransomware
CN110799941B (zh) 防盗和防篡改的数据保护
JP2019057167A (ja) コンピュータプログラム、デバイス及び判定方法
US10367834B2 (en) Systems and methods for implementing intrusion prevention
Kim et al. Predictability of Android OpenSSL's pseudo random number generator
EP2887576B1 (en) Software key updating method and device
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
US20170034189A1 (en) Remediating ransomware
CN112074836A (zh) 通过可信执行环境保护数据的设备和方法
Xu et al. Data-provenance verification for secure hosts
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
TWI669626B (zh) 防止拷貝攻擊的處理方法、伺服器及用戶端
CN112257086B (zh) 一种用户隐私数据保护方法及电子设备
Ling et al. Secure boot, trusted boot and remote attestation for ARM TrustZone-based IoT Nodes
US11403428B2 (en) Protecting integrity of log data
CN111614467B (zh) ***后门防御方法、装置、计算机设备和存储介质
Banescu et al. Software-based protection against changeware
US10635826B2 (en) System and method for securing data in a storage medium
KR20110131627A (ko) 악성 코드 진단 및 복구 장치, 그리고 이를 위한 단말 장치
US20150172310A1 (en) Method and system to identify key logging activities
CN113127873A (zh) 堡垒机的可信度量***及电子设备
AU2013403029B2 (en) CRM security core
Qin et al. RIPTE: runtime integrity protection based on trusted execution for IoT device
CN116956298A (zh) 应用运行环境检测方法和装置
CN108228219B (zh) 一种带外刷新bios时验证bios合法性的方法及装置