以下、本発明の実施の形態を図面に基づいて説明する。図1は本実施の形態の照合システムの構成の一例を示すブロック図である。本実施の形態の認証システムは、セキュアエレメント50が組み込まれたデバイス100、及びサーバ200などを備える。デバイス100は、「モノのインターネット」(IoT)でいうところの「モノ」に該当するデバイス(電子デバイスとも称する)を含む。デバイス100は、セキュリティ上の保護対象となるデバイスである。
デバイス100は、セキュアエレメント50の他に、デバイス本体10を備える。デバイス本体10とセキュアエレメント50との間は、I2C(Inter-Integrated Circuit)、SPI(Serial Peripheral Interface)等の通信路31で物理的に接続されている。なお、セキュアエレメント50は、UICC(Universal Integrated Circuit Card)のように着脱可能な構成とすることもできる。
デバイス本体10は、OSカーネル11、ファイルシステム12、インタフェース部13、ネットワーク通信部14、CPU15などを備える。
CPU15は、デバイス本体10全体の制御、セキュアエレメント50との間の通信制御などを行う。
ネットワーク通信部14は、デバイス100をネットワークに接続する機能を有し、ネットワーク上のサービスサーバ(不図示)との間で情報の送受信を行うことができる。ネットワーク通信部14は、不図示のセンサ類で検出した情報をサービスサーバ(不図示)に送信することができる。
OSカーネル11は、OSの基本的な機能を実装しているソフトウェアコンポーネントである。OSカーネル11は、起動されると、OSの機能をアプリケーション又はユーザに提供する。例えば、OS上のアプリケーションは、OSカーネル11を経由してファイルシステム12へのアクセスを行う。
ファイルシステム12は、デバイス100上で取り扱うファイル(フォルダ)ツリー全てを保持するデータ一式である。ファイルシステム12は、OSカーネル11によって認識されることで、アプリケーション又はユーザは、ファイルシステム12内のファイルを読み書きすることができる。
図2は本実施の形態のファイルシステム12の一例を示す模式図である。なお、図2に示すファイルシステム12は、便宜上、簡略化して図示している。実際のファイルシステムは、さらに多くのフォルダ及びファイルで構成されている。ファイルシステム12は、デバイス本体10が現時点で保持するフォルダ及びファイルを示す。図2に示すように、ルートフォルダ「/」の下には二つのフォルダ「/etc」及び「/usr/sbin」が存在する。フォルダ「/etc」の下にはファイル「passwd」121が存在し、フォルダ「/usr/sbin」の下には二つのファイル「telnetd」122、「init」123が存在する。
インタフェース部13は、通信路31を介してセキュアエレメント50との間のインタフェース機能を有する。
インタフェース部13は、出力部としての機能を有し、所定のタイミングで、ファイル情報が指定された照合要求をセキュアエレメント50へ出力する。所定のタイミングは、例えば、OSカーネル11の起動時(例えば、起動開始から起動完了までの適宜の時点)、所定のファイル又はフォルダへのアクセス時(例えば、アクセス開始からアクセス完了までの適宜の時点)とすることができるが、これらに限定されない。
ファイル情報は、例えば、ファイル名及びファイルの内容を示すファイルコンテンツ、並びにファイルリスト(特定のフォルダに存在するファイルのリスト)である。
デバイス本体10が照合対象となるファイルを特定する場合、特定したファイルのファイルコンテンツ(ファイル名及びファイルの内容)を指定して照合要求をセキュアエレメント50へ出力する。また、デバイス本体10が照合対象となるフォルダを特定する場合、特定したフォルダのファイルリスト(フォルダ名、あるいはフォルダ名及びファイル名)を指定して照合要求をセキュアエレメント50へ出力する。
セキュアエレメント50は、インタフェース部51、ダウンロード処理部52、照合処理部53、記憶部54、指示部55などを備える。
インタフェース部51は、通信路31を介してデバイス本体10との間のインタフェース機能を有する。
インタフェース部51は、照合要求取得部としての機能を有し、デバイス本体10(より具体的には、OSカーネル11)から照合対象に係るファイル情報が指定された照合要求を取得する。
ダウンロード処理部52は、取得部としての機能を有し、OSカーネル11からのダウンロード要求に応じ、サーバ200から所定のファイル情報を取得する。所定のファイル情報は、例えば、デバイス本体10が保持するファイルシステム内のファイル情報のうち、改ざん等を検知する検知対象のファイル情報である。
ダウンロード処理部52は、OSカーネル11からのダウンロード要求に応じ、サーバ200から照合対象に係るファイル情報を特定する特定情報を取得する。以下では、特定情報を管理対象リストとも称する。管理対象リストは、デバイス本体10のファイル情報(ファイルコンテンツ、ファイルリスト)のうち、セキュアエレメント50が照合対象とするファイル情報を特定する。例えば、ファイルコンテンツはファイルとして特定され、ファイルリストはフォルダとして特定される。
ダウンロード処理部52は、通信部としての機能を有し、サーバ200との間で暗号化された秘匿通信路61を確立する。秘匿通信路61においては、例えば、TLS(Transport Layer Security)などのプロトコルによって通信を行うことができる。これにより、所定のファイル情報、管理対象リストをサーバ200から取得する際に、ファイル情報又は管理対象リストの改ざんを防止すること、あるいは取得の妨害を回避することができる。
記憶部54は、ダウンロード処理部52で取得したファイル情報を記憶する。サーバ200から所定のファイル情報を取得して記憶部54に記憶することにより、セキュリティ脆弱性に基づいてファイル情報の状態が更新された場合でも、サーバ200から最新のファイル情報を取得して記憶することができる。
記憶部54は、ダウンロード処理部52で取得した管理対象リストを記憶する。サーバ200から管理対象リストを取得して記憶部54に記憶することにより、セキュリティ脆弱性に基づいて照合対象に係るファイル情報が更新された場合でも、サーバ200から最新の照合対象を取得して記憶することができる。
図3は本実施の形態のセキュアエレメント50が記憶部54に記憶するファイル情報及び管理対象リストの一例を示す模式図である。図3では、管理対象リスト541、ファイル情報としてファイルコンテンツ542及びファイルリスト543、544を図示している。なお、図3では、便宜上、簡略化して図示している。実際のファイル情報及び管理対象リストは、さらに多くの情報で構成されている。
管理対象リスト541は、デバイス本体10のファイルシステム12内のファイル、フォルダのうち、セキュアエレメント50が照合対象とするファイル及びフォルダのリストである。照合対象のファイルとしては、「/etc/passwd」が記載されている。なお、「/etc/passwd」は、フォルダ構造及びファイル名を一つの文字列として纏めているが、記載方法は、図3の例に限定されない。また、照合対象のフォルダとしては、「/」、「/usr/sbin」が記載されている。
ファイルコンテンツ542は、管理対象リスト541のファイル「/etc/passwd」の内容である。また、ファイルリスト543は、管理対象リスト541のフォルダ「/」内に存在するファイル又はフォルダの名前である。ファイルリスト543から、フォルダ「/」内には二つのフォルダ「/etc」、「/usr/sbin」が存在することが分かる。また、ファイルリスト544は、管理対象リスト541のフォルダ「/usr/sbin」内に存在するファイル又はフォルダの名前である。ファイルリスト544から、フォルダ「/usr/sbin」内には一つファイル「init」が存在することが分かる。
ファイル情報は、ファイルコンテンツ及びファイルリストの少なくとも一つを含む。図3に示すように、ファイルコンテンツ542は、ファイルのファイル名及び当該ファイルの内容で表される。ファイルリスト543、544は、フォルダ内に存在するフォルダ又はファイルを特定するものであり、フォルダ名(フォルダにファイルが存在しない場合)、フォルダ名及びファイル名で表される。これにより、ファイルの内容の改ざん、不正なファイルの存在を検知することができる。
照合処理部53は、照合部としての機能を有し、OSカーネル11からの照合要求に応じ、照合要求で指定されたファイル情報と記憶部54に記憶したファイル情報とを照合する。照合は、両方のファイルコンテンツの一致・不一致の判定、両方のファイルリストの一致・不一致の判定を行う。
インタフェース部51は、出力部としての機能を有し、照合処理部53での照合結果をデバイス本体10へ出力する。上述の構成により、最新のファイル情報に基づいて、デバイス本体10が保持するファイルシステム内のファイルの改ざん、あるいは不正なファイルの存在を検知することができ、デバイス100のセキュリティ上の保護を図ることができる。
また、照合処理部53は、照合要求で指定されたファイル情報が管理対象リスト541によって特定されたファイル情報と一致する場合、照合要求で指定されたファイル情報と記憶部54に記憶したファイル情報とを照合することができる。
また、照合処理部53は、照合要求で指定されたファイル情報が管理対象リスト541によって特定されたファイル情報と一致しない場合、照合要求で指定されたファイル情報と記憶部54に記憶したファイル情報とを照合しないようにすることができる。これにより、照合対象に係るファイル情報を選択的に管理することができ、ファイルシステム全体を管理する場合に比べてセキュアエレメント50の処理負荷を軽減することができる。
照合処理部53は、送信部としての機能を有し、照合結果をサーバ200へ送信する。これにより、デバイス本体10が保持するファイルシステム12内のファイルの改ざん、あるいは不正なファイルの存在等の検知結果をサーバ200で把握することができ、デバイス100の遠隔管理が可能となり、デバイス100のセキュリティ上の保護を図ることができる。
また、照合処理部53は、通信部としての機能を有し、サーバ200との間で暗号化された秘匿通信路61を確立する。秘匿通信路61においては、例えば、TLS(Transport Layer Security)などのプロトコルによって通信を行うことができる。これにより、照合結果をサーバ200へ送信する際に、照合結果の改ざんを防止すること、あるいは送信の妨害を回避することができる。
指示部55は、照合処理部53での照合結果が不一致の場合、所定の処理を指示する。所定の処理は、照合結果が不一致の場合(例えば、ファイルの改ざん又は不正なファイルの存在が検知された場合)、ファイルの改ざん又は不正なファイルの存在による影響を排除又は最小化するような処理であればよい。
また、処理の指示は、セキュアエレメント50が、デバイス本体10(例えば、CPU15)が直接所定の処理を行うようにデバイス本体10に指示(セキュアエレメント50は直接所定の処理を実行しない)する構成でもよく、セキュアエレメント50が直接所定の処理を実行する構成でもよい。これにより、デバイス100に対するセキュリティ上の攻撃に起因する影響を回避又は少なくすることができる。
所定の処理は、デバイス本体10の動作を停止する処理でもよい。これにより、デバイス100に対するセキュリティ上の攻撃に起因する影響を回避又は少なくすることができる。
また、所定の処理は、照合要求で指定されたファイル情報に係るファイルの内容を修復する処理でもよい。例えば、デバイス本体10は、セキュアエレメント50から取得した照合結果(不一致)に基づいて、真正なファイルをセキュアエレメント50へ要求し、セキュアエレメント50は真正なファイルとともに修復指示をデバイス本体10へ出力する。デバイス本体10は、改ざんされたファイルを真正なファイルに置き換える(上書きする)ことにより、ファイルの内容を修復する。これにより、ファイルの改ざんの検知だけでなく、改ざんされたファイルを真正なファイルに置き換えてファイルの内容を修復することができる。
また、所定の処理は、デバイス本体10が保持するファイルのうち、記憶部54に記憶したファイル情報に係るファイルリストに含まれていないファイルを削除する処理でもよい。例えば、デバイス本体10は、セキュアエレメント50から取得した照合結果(不一致)に基づいて、真正なファイルリストをセキュアエレメント50へ要求し、セキュアエレメント50は真正なファイルリストとともに当該真正なファイルリストに含まれていないファイルの削除指示をデバイス本体10へ出力する。デバイス本体10は、真正なファイルリストに含まれていないファイルを削除することにより、不正なファイルを削除する。これにより、ファイルの改ざんの検知だけでなく、不正なファイルを削除することができる。
セキュアエレメント50は、耐タンパ性を有する。セキュアエレメント50は、記憶部54は、例えば、不揮発性メモリで構成することができ、記憶されたデータを安全に保持することができる。セキュアエレメント50の機能(例えば、ダウンロード処理部52、照合処理部53、記憶部54など)をハードウェアのモジュールで実現する場合、耐タンパ性を有するためには、セキュアエレメント50を1チップ化にしてもよく、あるいは、モジュール表面をコーティングしてもよい。また、セキュアエレメント50の機能をソフトウェアのモジュールで実現する場合、耐タンパ性を有するためには、実行コードを暗号化し、実行時に必要な部分だけをメモリ上で復号するようにすればよい。
サーバ200は、デバイス100を遠隔管理する管理サーバであり、ダウンロード処理部201、記憶部202、照合結果受信処理部203、ポリシーチェック処理部204、デバイスDB205、デバイスDB更新処理部206、チェックポリシー207などを備える。
ダウンロード処理部201は、セキュアエレメント50からダウンロード要求に応じ、記憶部202から所定のファイル情報(ファイルコンテンツ、ファイルリスト)、管理対象リストを読み出し、秘匿通信路61を経由して読み出した所定のファイル情報(ファイルコンテンツ、ファイルリスト)、管理対象リストをセキュアエレメント50へ送信する。なお、記憶部202には、図3で例示したファイル情報(ファイルコンテンツ542、ファイルリスト543、544)、管理対象リスト541が記憶されている。
照合結果受信処理部203は、取得部としての機能を有し、デバイス100のセキュアエレメント50から秘匿通信路61を経由して照合結果を取得する。
デバイスDB205は、管理対象となる複数のデバイス100それぞれの照合結果、及び最終照合時刻を記録するデータベースである。
デバイスDB更新処理部206は、デバイス100から照合結果を取得する都度、デバイスDB205を更新する。
チェックポリシー207は、所定条件としての機能を有し、デバイスDB205の各レコードにおいて、どのような状態が検知された場合に、デバイス100に対する攻撃と判定し、あるいはデバイス100の故障と判定するかを記述したデータである。チェックポリシー207は、実装者のポリシーによって検証ルールを適宜設定すること、あるいは所要の検証対象を用いることができる。なお、チェックポリシー207の詳細は後述する。
ポリシーチェック処理部204は、検知部としての機能を有し、デバイス100の照合結果及び最終照合時刻に基づいてセキュリティに係る異常又はデバイス100の故障を検知する。ポリシーチェック処理部204は、照合結果がチェックポリシー207に該当する場合(所定条件を充足する場合)、セキュリティに係る異常又はデバイスの故障を検知する。所定条件は、例えば、ファイルコンテンツの不一致、ファイルリストの不一致、所定時間以上照合が実施されていない等とすることができる。
より具体的には、ポリシーチェック処理部204は、チェックポリシー207をデバイスDB205に適用し、チェックポリシー207に該当するデバイスDB205内のレコードを特定するための処理を行う。通常のリレーショナルデータベースであればSQL SELECT等でチェックポリシー207の条件を設定し、定期的に問い合わせを行うことが想定されるが、実装者のポリシーに応じて任意のタイミングで問い合わせを行うこともできる。
上述の構成により、様々な場所に設置された複数のデバイス100それぞれのセキュリティ上の攻撃、あるいはデバイス100の故障を遠隔から管理することができる。
次に、本実施の形態の照合システムの動作について説明する。以下では、ファイル情報等のダウンロード動作、ファイルの照合動作、ファイルリストの照合動作、及び照合結果の管理動作について説明する。
図4は本実施の形態の照合システムのファイル情報等のダウンロード動作の一例を示す説明図である。以下、符号P1〜P4で示す処理について説明する。セキュアエレメント50が、ファイル情報の照合を行うためには、予め照合対象とするファイル及びフォルダの情報をサーバ200からダウンロードしておく。
P1(ダウンロード要求):OSカーネル11は、セキュアエレメント50に対し、セキュアエレメント50(記憶部54)で記憶するためのファイル情報及び管理対象リストのダウンロード要求を行う。ダウンロード要求のタイミングは、例えば、OSによって適宜設定することができるが、例えば、起動時、起動後所定周期(例えば、一日毎)とすることができるが、これらに限定されない。また、セキュリティの観点から重要なデバイス100に対しては、ダウンロード要求の頻度を高くすればよい。
P2(秘匿通信路61の確立):セキュアエレメント50は、ダウンロード要求を取得すると、サーバ200との間でエンドツーエンドの秘匿通信路61を確立する。本実施の形態では、秘匿通信路61は、TLS(HTTPS)であるが、これに限定されない。セキュアエレメント50が自ら物理的な通信手段(例えば、LAN、Wifi等)を有する場合、秘匿通信路の確立を独力で行うことができるが、通信手段を有しない場合、デバイス100の物理的な通信手段を用いてもよい。
P3(サーバ200へのダウンロード要求):セキュアエレメント50は、確立した秘匿通信路61経由で、サーバ200に対して、照合対象とするファアイルコンテンツ、ファイルリスト、管理対象リストのダウンロード要求を送信する。
P4(セキュアエレメント50への展開):サーバ200は、ダウンロード要求を受信すると、秘匿通信路61経由で、記憶部202に記憶したファイルコンテンツ、ファイルリスト、管理対象リストをセキュアエレメント50へ送信する。セキュアエレメント50は、受信したファアイルコンテンツ542、ファイルリスト543、544、管理対象リスト541を記憶部54に記憶する。
図5は本実施の形態の照合システムのファイルの照合動作の一例を示す説明図である。以下、符号P11〜P18で示す処理について説明する。
P11(照合対象ファイルの特定):OSカーネル11は、照合対象となるファイルを特定する。照合タイミングは、例えば、OSの設計に依存するが、例えば、起動時、アプリケーションがファイルへのアクセス要求を発した時とすることができる。図5の例では、照合対象のファイルは、「/etc/passwd」である。なお、ファイルコンテンツ121は、ファイル「/etc/passwd」の内容である。
P12(照合対象ファイルの内容取得):OSカーネル11は、照合対象とするファイルの内容(すなわち、ファイルコンテンツ121)を取得する。
P13(セキュアエレメント50への照合要求):OSカーネル11は、照合対象ファイル名「/etc/passwd」及び照合対象ファイルの内容を指定して、照合要求をセキュアエレメント50へ出力する。セキュアエレメント50は、照合要求を取得すると、照合処理部53が照合処理を行う。
P14(管理対象リスト541の検索):照合処理部53は、記憶部54に記憶する管理対象リスト541を検索し、照合要求を受けたファイルがセキュアエレメント50での照合対象ファイルであるか否かを判定する。図5の例では、照合対象ファイル名として「/etc/passwd」が指定され、かつ管理対象リスト541に「/etc/passwd」をファイルとして管理する旨が記録されているので、ファイル「/etc/passwd」のファイルコンテンツ542の取得に進む。
P15(セキュアエレメント50内のファイルコンテンツの取得):照合処理部53は、ファイル「/etc/passwd」について、記憶部54に記憶しているファイルコンテンツ542を特定して取得する。
P16(照合処理の実施):照合処理部53は、OSカーネル11から取得したファイルの内容(図5の例では、ファイル121の内容)と、記憶部54に記憶しているファイルコンテンツ542とを比較し、一致・不一致を判定する。なお、一致・不一致の判定は、ファイルの内容全文を比較してもよく、ファイルの内容に基づいてハッシュ演算を行って得られたハッシュ値を比較してもよい。図5の例では、OSカーネル11から取得したファイル121には、「/usr/bin/bash」と記載され、記憶部54に記憶しているファイルコンテンツ542には、「/usr/sbin/nologin」と記載されているので、照合結果は不一致となる。
P17(照合結果をデバイス本体10へ通知):照合処理部53は、OSカーネル11に対して、照合結果を通知する。
P18(照合結果をサーバ200へ通知):照合処理部53は、サーバ200との間で、エンドツーエンドの秘匿通信路61を確立した上で、照合結果をサーバ200(照合結果受信処理部203)へ通知する。
図5の例では、デバイス本体10(OSカーネル11)から取得したファイル121に指定されていた内容は、管理者権限(root)におけるログインシェルを指定するものであり、セキュリティホールの一つ(ルートログインを許可する設定:/usr/bin/bash)である。本実施の形態によれば、かかるセキュリティホールを、サーバ200からダウンロードした適切(真正)なファイルの内容(ファイルコンテンツ542内の/usr/sbin/nologin)と比較することによって検知することができる。
図6は本実施の形態の照合システムのファイルリストの照合動作の一例を示す説明図である。以下、符号P21〜P28で示す処理について説明する。
P21(照合対象フォルダの特定):OSカーネル11は、照合対象となるフォルダを特定する。照合タイミングは、例えば、OSの設計に依存するが、例えば、起動時、アプリケーションがフォルダへのアクセス要求を発した時とすることができる。図6の例では、照合対象のフォルダは、「/usr/sbin」である。なお、ファイルリスト124は、フォルダ「/usr/sbin」に二つのファイル「telnetd」122、「init」123が存在することを示す。
P22(照合対象ファイルリストの取得):OSカーネル11は、照合対象とするフォルダのファイルリスト124を取得する。図6の例では、フォルダ「/usr/sbin」に存在する二つのファイル「telnetd」122、「init」123を含むファイルリスト124を取得する。
P23(セキュアエレメント50への照合要求):OSカーネル11は、照合対象フォルダ名「/usr/sbin」 及び照合対象ファイルリストの内容を指定して、照合要求をセキュアエレメント50へ出力する。セキュアエレメント50は、照合要求を取得すると、照合処理部53が照合処理を行う。
P24(管理対象リスト541の検索):照合処理部53は、記憶部54に記憶する管理対象リスト541を検索し、照合要求を受けたフォルダがセキュアエレメント50での照合対象フォルダであるか否かを判定する。図6の例では、照合対象フォルダ名として「/usr/sbin」が指定され、かつ管理対象リスト541に「/usr/sbin」をフォルダとして管理する旨が記録されているので、フォルダ「/usr/sbin」のファイルリスト544の取得に進む。
P25(セキュアエレメント50内のファイルリストの取得):照合処理部53は、フォルダ「/usr/sbin」について、記憶部54に記憶しているファイルリスト544を特定して取得する。
P26(照合処理の実施):照合処理部53は、OSカーネル11から取得したファイルリスト124と、記憶部54に記憶しているファイルリスト544とを比較し、一致・不一致を判定する。図6の例では、OSカーネル11から取得したファイルリスト124には、二つのファイル「telnetd」、「init」が記載され、記憶部54に記憶しているファイルリスト544には、ファイル「init」だけが記載されているので、照合結果は不一致となる。
P27(照合結果をデバイス本体10へ通知):照合処理部53は、OSカーネル11に対して、照合結果を通知する。
P28(照合結果をサーバ200へ通知):照合処理部53は、サーバ200との間で、エンドツーエンドの秘匿通信路61を確立した上で、照合結果をサーバ200(照合結果受信処理部203)へ通知する。
図6の例では、デバイス本体10(OSカーネル11)から取得したファイルリスト124には、脆弱なリモートログインサービスであるtelnetdが存在している。本実施の形態によれば、サーバ200側で本来意図していないファイル(不正なファイル)がデバイス本体10内に存在していることを検知することができる。
図7は本実施の形態の照合システムの照合結果の管理動作の一例を示す説明図である。以下、符号P31〜P34で示す処理について説明する。
P31(照合結果の受信):照合結果受信処理部203は、複数のデバイス100(図7の例では、デバイス1〜4)が送信する照合結果を時系列順に受信し、受信する都度、逐次、照合結果をデバイスDB更新処理部206へ出力する。
P32(デバイスDB205の更新):図7に示すように、デバイスDB205は、デバイス名、最終照合時刻、照合結果の各レコードで構成されている。デバイスDB更新処理部206は、照合結果を取得すると、デバイスDB205の更新対象レコードを特定し、特定したレコードに照合結果を書き込む(更新する)。更新対象レコードの特定は、例えば、デバイス100が照合結果とともにデバイス固有の識別子(例えば、図7のデバイス1〜4の如くデバイス名)を送信するようにし、デバイスDB205内のデバイス名と一致するレコードを更新対象とすることができる。
P33(デバイスDB205に対するポリシーチェック):デバイスDB205の更新処理とは独立又は並列に、ポリシーチェック処理部204は、ポリシーチェック処理を実行する。ポリシーチェック処理は、所定周期毎(例えば、10分毎)に行うことができるが、これに限定されるものではなく、任意の時点(例えば、非定期)に行うように設定することもできる。ポリシーチェック処理は、デバイスDB205の各レコードについて、チェックポリシー207に記載されたルールに合致するレコードを検索する。
図7に示すように、チェックポリシー207には、次のような記述がある。(1)24時間以上照合が発生していないデバイスは故障と判断する。(2)/etc/passwdの内容が不一致(改変)の場合は攻撃(改ざん)されていると判断する。(3)/のファイルリストが不一致(不正ファイルの追加)の場合は攻撃(マルウェア混入)と判断する。
図7の例では、チェックポリシー207に記載のルールによって、デバイス1、2、4のレコードが特定されている。
P34(異常又は故障の検出):ポリシーチェック処理部204は、特定されたレコードについて異常の種類を特定する。デバイス1は、ファイルの内容が不一致なので、異常の種類は攻撃(改ざん)であると特定されている。デバイス2は、現在時刻と最終照合時刻との差が24時間以上であるので、異常の種類は故障であると特定されている。デバイス4は、/のファイルリストが不一致なので、異常の種類は攻撃(マルウェア混入)であると特定されている。ポリシーチェック処理部204は、各デバイスの異常の有無を、サーバ200の管理者、他のアプリケーションに通知することができる。実装者のセキュリティポリシーに応じて通知後の対応が適宜実施される。
攻撃者が取り得る攻撃手法として、デバイスを攻撃中、攻撃者による攻撃が管理者等に悟られないように、攻撃中はデバイスの通信を遮断することが想定される。また、ファイルの改ざん又はマルウェア混入を行わない場合でも、デバイスの通信を遮断したうえで不正にデバイスを利用する可能性もある。しかし、本実施の形態によれば、攻撃者がデバイス100の通信を遮断した場合、照合結果をサーバ200へ送信されなくなるので、デバイス100の故障とともに、あるいはデバイス100の故障に代えて、セキュリティ上の異常として検知することができる。
また、仮に攻撃者が、OSに対する管理者権限を奪取した場合であっても、サーバ200との間の通信は、セキュアエレメント50が独立して秘匿通信路61を確立(開設)しているので、照合結果を改ざんしてサーバ200又は管理者を騙すことができない。従って、攻撃者が、デバイス本体(OS側)のファイルの改ざん、不正なファイルの追加、ファイルの削除を行った場合、攻撃者の不正行為は、確実にサーバ200に通知される。これにより、攻撃者は、セキュアエレメント50による照合結果通知に対し有効な攻撃手段を持ち得ず、本実施の形態は、デバイス100のセキュリティ確保手段として堅牢といえる。
図8はデバイスに対する攻撃の一例を示す説明図である。以下、攻撃者による攻撃手順を符号A1〜A6で示す。
A1(デバイスに対するリモートログイン):攻撃者は、デバイス上で動作している脆弱なリモートログインサービス(Telnet)に対し、容易に推測可能なパスワードのリストを用いてログインを試みる。
A2(リモートログイン可否判断):デバイスは、攻撃者からのリモートログイン要求に応じ、パスワードファイルを検索してログイン可否を判断する。パスワードファイルが、例えば、出荷時状態で容易に推測可能なパスワードのままであると、攻撃者のパスワードと一致し、デバイスはログイン可能と判断する。
A3(リモートログイン成功):デバイスは、リモートログイン許可を攻撃者に与える。
A4(マルウェアの配置):攻撃者は、手元のC&C(Command and Control)が可能なマルウェアをデバイス内の適当なフォルダにコピーする。
A5(マルウェアに対する攻撃指示):攻撃者は、前述のA1〜A4の手順を複数のデバイスに対して行い、十分な数のマルウェア感染を確保した後、デバイス内の各マルウェアに対して、攻撃対象サーバに対して一斉に通信を行うように、コマンドを実行して指示する。
A6(攻撃対象サーバに対する攻撃):各デバイス内のマルウェアは、攻撃者からのコマンドを受信すると、攻撃対象サーバに対して一斉に通信要求を送信する。攻撃対象サーバの処理能力を超える数の通信要求を送信することによって、攻撃対象サーバの機能が停止する。
しかし、本実施の形態によれば、不正なファイルの存在を検知することができ、かつ不正なファイルの削除を行うことができるので、攻撃者は、攻撃手順A1を失うことになる。また、本実施の形態によれば、ファイルの改ざんを検知して、真正なファイルに修復することができるので、例えば、脆弱なパスワードに改変されたファイルを検知することができ、攻撃者は、攻撃手順A2を失うことになる。また、本実施の形態によれば、不正なファイルの存在を検知することができ、かつ不正なファイルの削除を行うことができるので、不正なマルウェアの存在を検知して削除することができるので、攻撃者は、攻撃手順A5、A6も失うことになる。このように、本実施の形態によれば、攻撃者の一連の攻撃手順に対して何重もの防御手段を提供することができる。
図9は本実施の形態のセキュアエレメント50によるファイル情報等のダウンロード処理手順の一例を示すフローチャートである。セキュアエレメント50は、デバイス本体10からファイル情報のダウンロード要求の有無を判定し(S11)、ダウンロード要求がない場合(S11でNO)、ステップS11の処理を続ける。ダウンロード要求があった場合(S11でYES)、セキュアエレメント50は、サーバ200との間の秘匿通信路61を確立する(S12)。
セキュアエレメント50は、サーバ200に対して、照合対象のファイルコンテンツ及びファイルリスト並びに管理対象リストのダウンロード要求を送信し(S13)、サーバ200からファイルコンテンツ、ファイルリスト及び管理対象リストを受信する。セキュアエレメント50は、受信したファイルコンテンツ、ファイルリスト及び管理対象リストを記憶部54に記憶し(S15)、処理を終了する。
図10は本実施の形態のセキュアエレメント50による照合処理手順の一例を示すフローチャートである。セキュアエレメント50は、デバイス本体10からファイル情報の照合要求の有無を判定し(S21)、照合要求がない場合(S21でNO)、ステップS21の処理を続ける。
照合要求があった場合(S21でYES)、セキュアエレメント50は、照合要求を受けたファイルコンテンツ又はファイルリストが管理対象リストに存在するか否かを判定する(S22)。照合要求を受けたファイルコンテンツ又はファイルリストが管理対象リストに存在する場合(S22でYES)、セキュアエレメント50は、照合要求を受けたファイルコンテンツ又はファイルリストをデバイス本体10から取得する(S23)。
セキュアエレメント50は、デバイス本体10から取得したファイルコンテンツ又はファイルリストと、記憶部54に記憶したファイルコンテンツ又はファイルリストとを照合する(S24)。
セキュアエレメント50は、照合結果をデバイス本体10へ出力する(S25)。セキュアエレメント50は、サーバ200との間の秘匿通信路61を確立し(S26)、照合結果をサーバ200へ送信し(S27)、処理を終了する。照合要求を受けたファイルコンテンツ又はファイルリストが管理対象リストに存在しない場合(S22でNO)、セキュアエレメント50は、処理を終了する。
図9及び図10に示すような処理手順を定めたコンピュータプログラムをRAMにロードし、CPU(プロセッサ)により当該コンピュータプログラムを実行させることにより、セキュアエレメント50の各処理をコンピュータプログラムによって実現することができる。
上述のように、本実施の形態によれば、セキュアエレメント50内に真正なファイルを保持(記憶)するので、ファイルの改ざん検知のみならす、破損又は改ざんされたファイルの修復、あるいはセキュリティ対策を目的としたファイルの更新を随時行うことができる。
また、本実施の形態によれば、ファイルだけでなく、フォルダに存在するファイルのリストをセキュアエレメント50内に保持(記憶)するので、ファイルの改ざんのみならす、フォルダ構成についても意図しない追加又は削除が行われたことを検知することができる。これにより、デバイスに本来存在しないはずの不正なマルウェア等の有害なファイルの検知及び削除が可能となる。
また、本実施の形態によれば、管理対象リストを用いることによって、セキュリティ上重要なファイル又はフォルダ構成に絞り込むことができるので、セキュアエレメント50の処理負荷を軽減することができるとともに、効果的な改ざん防止機能、不正なファイルの混入防止機能を提供することができる。
また、本実施の形態によれば、セキュアエレメント50とサーバ200との間をエンドツーエンドで開設された秘匿通信路を用いるので、サーバ200からダウンロードする情報の改ざんを防止することができ、また、サーバ200へ送信する照合結果の改ざんを防止することができる。
また、本実施の形態によれば、サーバは、複数のデバイス100からの照合結果を取集して各デバイス100の異常を検知するとともに、各デバイスの状態を遠隔管理することができる。
本実施の形態に係るセキュアエレメントは、サーバから所定のファイル情報を取得する取得部と、該取得部で取得したファイル情報を記憶する記憶部と、デバイス本体から照合対象に係るファイル情報が指定された照合要求を取得する照合要求取得部と、前記照合要求で指定されたファイル情報と前記記憶部に記憶したファイル情報とを照合する照合部と、該照合部での照合結果を前記デバイス本体へ出力する出力部とを備える。
本実施の形態に係るコンピュータプログラムは、コンピュータに、ファイル情報の照合をさせるためのコンピュータプログラムであって、コンピュータに、サーバから所定のファイル情報を取得する処理と、取得したファイル情報を記憶部に記憶する処理と、デバイス本体から照合対象に係るファイル情報が指定された照合要求を取得する処理と、前記照合要求で指定されたファイル情報と前記記憶部に記憶したファイル情報とを照合する処理と、照合結果を前記デバイス本体へ出力する処理とを実行させる。
本実施の形態に係るデバイスは、本実施の形態に係るセキュアエレメントと、デバイス本体とを備える。
本実施の形態に係るファイル情報の照合方法は、サーバから所定のファイル情報を取得部が取得し、取得されたファイル情報を記憶部に記憶し、デバイス本体から照合対象に係るファイル情報が指定された照合要求を照合要求取得部が取得し、前記照合要求で指定されたファイル情報と前記記憶部に記憶したファイル情報とを照合部が照合し、照合結果を前記デバイス本体へ出力部が出力する。
取得部は、サーバから所定のファイル情報を取得する。ファイル情報は、例えば、ファイル名及びファイルの内容であるファイルコンテンツ、ファイルリスト(特定のフォルダに存在するファイルのリスト)である。所定のファイル情報は、例えば、デバイス本体が保持するファイルシステム内のファイル情報のうち、改ざん等を検知する検知対象のファイル情報である。
記憶部は、取得部で取得したファイル情報を記憶する。サーバから所定のファイル情報を取得して記憶部に記憶することにより、セキュリティ脆弱性に基づいてファイル情報の状態が更新された場合でも、サーバから最新のファイル情報を取得して記憶することができる。
照合要求取得部は、デバイス本体から照合対象に係るファイル情報が指定された照合要求を取得する。例えば、デバイス本体が照合対象となるファイルを特定する場合、特定したファイルのファイルコンテンツ(ファイル名及びファイルの内容)を指定して照合要求をセキュアエレメントへ出力する。また、デバイス本体が照合対象となるフォルダを特定する場合、特定したフォルダのファイルリスト(フォルダ名、あるいはフォルダ名及びファイル名)を指定して照合要求をセキュアエレメントへ出力する。
照合部は、照合要求で指定されたファイル情報と記憶部に記憶したファイル情報とを照合する。照合は、両方のファイルコンテンツの一致・不一致の判定、両方のファイルリストの一致・不一致の判定を行う。
出力部は、照合部での照合結果をデバイス本体へ出力する。上述の構成により、最新のファイル情報に基づいて、デバイス本体が保持するファイルシステム内のファイルの改ざん、あるいは不正なファイルの存在を検知することができ、デバイスのセキュリティ上の保護を図ることができる。
本実施の形態に係るセキュアエレメントにおいて、前記取得部は、前記サーバから前記照合部での照合対象に係るファイル情報を特定する特定情報を取得し、該取得部で取得した特定情報を記憶する記憶部を備え、前記照合部は、前記照合要求で指定されたファイル情報が前記特定情報によって特定されたファイル情報と一致する場合、前記照合要求で指定されたファイル情報と前記記憶部に記憶したファイル情報とを照合する。
取得部は、サーバから照合部での照合対象に係るファイル情報を特定する特定情報を取得する。特定情報(管理対象リストとも称する)は、デバイス本体のファイル情報(ファイルコンテンツ、ファイルリスト)のうち、セキュアエレメントが照合対象とするファイル情報を特定する。例えば、ファイルコンテンツはファイルとして特定され、ファイルリストはフォルダとして特定される。
記憶部は、取得部で取得した特定情報を記憶する。サーバから特定情報を取得して記憶部に記憶することにより、セキュリティ脆弱性に基づいて照合対象に係るファイル情報が更新された場合でも、サーバから最新の照合対象を取得して記憶することができる。
照合部は、照合要求で指定されたファイル情報が特定情報によって特定されたファイル情報と一致する場合、照合要求で指定されたファイル情報と記憶部に記憶したファイル情報とを照合する。また、照合部は、照合要求で指定されたファイル情報が特定情報によって特定されたファイル情報と一致しない場合、照合要求で指定されたファイル情報と記憶部に記憶したファイル情報とを照合しない。これにより、照合対象に係るファイル情報を選択的に管理することができ、ファイルシステム全体を管理する場合に比べてセキュアエレメントの処理負荷を軽減することができる。
本実施の形態に係るセキュアエレメントは、前記照合部での照合結果をサーバへ送信する送信部を備える。
送信部は、照合部での照合結果をサーバへ送信する。これにより、デバイス本体が保持するファイルシステム内のファイルの改ざん、あるいは不正なファイルの存在等の検知結果をサーバで把握することができ、デバイスの遠隔管理が可能となり、デバイスのセキュリティ上の保護を図ることができる。
本実施の形態に係るセキュアエレメントは、前記サーバとの間で暗号化された秘匿通信路を確立する通信部を備える。
通信部は、サーバとの間で暗号化された秘匿通信路を確立する。秘匿通信路においては、例えば、TLS(Transport Layer Security)などのプロトコルによって通信を行うことができる。これにより、所定のファイル情報、特定情報をサーバから取得する際に、ファイル情報又は特定情報の改ざんを防止すること、あるいは取得の妨害を回避することができる。また、照合結果をサーバへ送信する際に、照合結果の改ざんを防止すること、あるいは送信の妨害を回避することができる。
本実施の形態に係るセキュアエレメントにおいて、前記ファイル情報は、ファイルコンテンツ及びファイルリストの少なくとも一つを含む。
ファイル情報は、ファイルコンテンツ及びファイルリストの少なくとも一つを含む。ファイルコンテンツは、ファイルのファイル名及び当該ファイルの内容で表される。ファイルリストは、フォルダ内に存在するフォルダ又はファイルを特定するものであり、フォルダ名(フォルダにファイルが存在しない場合)、フォルダ名及びファイル名で表される。これにより、ファイルの内容の改ざん、不正なファイルの存在を検知することができる。
本実施の形態に係るセキュアエレメントは、前記照合部での照合結果が不一致の場合、所定の処理を指示する指示部を備える。
指示部は、照合部での照合結果が不一致の場合、所定の処理を指示する。所定の処理は、照合結果が不一致の場合、例えば、ファイルの改ざん又は不正なファイルの存在が検知された場合、ファイルの改ざん又は不正なファイルの存在による影響を排除又は最小化するような処理であればよい。また、処理の指示は、セキュアエレメントが、デバイス本体が直接所定の処理を行うようにデバイス本体に指示(セキュアエレメントは直接所定の処理を実行しない)する構成でもよく、セキュアエレメントが直接所定の処理を実行する構成でもよい。これにより、デバイスに対するセキュリティ上の攻撃に起因する影響を回避又は少なくすることができる。
本実施の形態に係るセキュアエレメントにおいて、前記所定の処理は、前記デバイス本体の動作を停止する処理を含む。
所定の処理は、デバイス本体の動作を停止する処理を含む。これにより、デバイスに対するセキュリティ上の攻撃に起因する影響を回避又は少なくすることができる。
本実施の形態に係るセキュアエレメントにおいて、前記所定の処理は、前記照合要求で指定されたファイル情報に係るファイルの内容を修復する処理を含む。
所定の処理は、照合要求で指定されたファイル情報に係るファイルの内容を修復する処理を含む。例えば、デバイス本体は、取得した照合結果(不一致)に基づいて、真正なファイルをセキュアエレメントへ要求し、セキュアエレメントは真正なファイルとともに修復指示をデバイス本体へ出力する。デバイス本体は、改ざんされたファイルを真正なファイルに置き換える(上書きする)ことにより、ファイルの内容を修復する。これにより、ファイルの改ざんの検知だけでなく、改ざんされたファイルを真正なファイルに置き換えてファイルの内容を修復することができる。
本実施の形態に係るセキュアエレメントにおいて、前記所定の処理は、前記デバイス本体が保持するファイルのうち、前記記憶部に記憶したファイル情報に係るファイルリストに含まれていないファイルを削除する処理を含む。
所定の処理は、デバイス本体が保持するファイルのうち、記憶部に記憶したファイル情報に係るファイルリストに含まれていないファイルを削除する処理を含む。例えば、デバイス本体は、取得した照合結果(不一致)に基づいて、真正なファイルリストをセキュアエレメントへ要求し、セキュアエレメントは真正なファイルリストとともに当該真正なファイルリストに含まれていないファイルの削除指示をデバイス本体へ出力する。デバイス本体は、真正なファイルリストに含まれていないファイルを削除することにより、不正なファイルを削除する。これにより、ファイルの改ざんの検知だけでなく、不正なファイルを削除することができる。
本実施の形態に係るデバイスにおいて、前記デバイス本体は、OSカーネルと、ファイルシステムと、前記OSカーネルの起動時、所定のファイル又はフォルダへのアクセス時に、ファイル情報が指定された照合要求を前記セキュアエレメントへ出力する出力部とを備える。
デバイス本体は、OSカーネル及びファイルシステムを備える。OSカーネルは、OSの基本的な機能を実装しているソフトウェアコンポーネントである。OSカーネルは、起動されると、OSの機能をアプリケーション又はユーザに提供する。例えば、OS上のアプリケーションは、OSカーネルを経由してファイルシステムへのアクセスを行う。
ファイルシステムは、デバイス上で取り扱うファイル(フォルダ)ツリー全てを保持するデータ一式である。ファイルシステムは、OSカーネルによって認識されることで、アプリケーション又はユーザは、ファイルシステム内のファイルを読み書きすることができる。
出力部は、OSカーネルの起動時、所定のファイル又はフォルダへのアクセス時に、ファイル情報が指定された照合要求をセキュアエレメントへ出力する。なお、照合要求の出力のタイミングは、これらに限定されない。上述の構成により、デバイスに対するセキュリティ上の攻撃の有無を所要のタイミングで検知することができる。
本実施の形態に係るサーバは、複数のデバイスからファイル情報に係る照合結果を取得する取得部と、該取得部で取得した照合結果に基づいてセキュリティに係る異常又はデバイスの故障を検知する検知部とを備える。
取得部は、複数のデバイスからファイル情報に係る照合結果を取得する。検知部は、取得部で取得した照合結果に基づいてセキュリティに係る異常又はデバイスの故障を検知する。セキュリティに係る異常は、例えば、ファイルの改ざん、不正なファイルの存在などである。また、あるデバイスから所定時間以上照合結果を取得することができない場合、当該デバイスの故障と判定することができる。
上述の構成により、様々な場所に設置された複数のデバイスそれぞれのセキュリティ上の攻撃、あるいは複数のデバイスそれぞれの故障を遠隔から管理することができる。
本実施の形態に係るサーバにおいて、前記検知部は、前記照合結果が所定条件を充足する場合、セキュリティに係る異常又はデバイスの故障を検知する。
検知部は、照合結果が所定条件を充足する場合、セキュリティに係る異常又はデバイスの故障を検知する。所定条件は、例えば、ファイルコンテンツの不一致、ファイルリストの不一致、所定時間以上照合が実施されていない等とすることができる。これにより、デバイスのセキュリティ上の異常検知又はデバイスの故障検知を行うことができる。
本実施の形態に係るサーバは、前記取得部は、前記複数のデバイスそれぞれのデバイス本体からの照合要求によって指定されたファイル情報と前記複数のデバイスそれぞれのセキュアエレメントが前記サーバから取得したファイル情報との照合結果を取得する。
取得部は、複数のデバイスそれぞれのデバイス本体からの照合要求によって指定されたファイル情報と当該複数のデバイスそれぞれのセキュアエレメントがサーバから取得したファイル情報との照合結果である。これにより、様々な場所に設置された複数のデバイスそれぞれのセキュリティ上の攻撃、あるいは複数のデバイスそれぞれの故障を遠隔から管理することができる。