JP2018147444A - 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 - Google Patents
分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 Download PDFInfo
- Publication number
- JP2018147444A JP2018147444A JP2017045026A JP2017045026A JP2018147444A JP 2018147444 A JP2018147444 A JP 2018147444A JP 2017045026 A JP2017045026 A JP 2017045026A JP 2017045026 A JP2017045026 A JP 2017045026A JP 2018147444 A JP2018147444 A JP 2018147444A
- Authority
- JP
- Japan
- Prior art keywords
- data
- analysis program
- divergence
- analysis
- output
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims description 9
- 238000012544 monitoring process Methods 0.000 title claims description 6
- 238000004458 analytical method Methods 0.000 claims abstract description 84
- 238000013523 data management Methods 0.000 description 43
- 230000006399 behavior Effects 0.000 description 26
- 230000015654 memory Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 244000035744 Hura crepitans Species 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Virology (AREA)
- Bioethics (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】中核地点(例えば本社)に設けられた計算機システムでなく、拠点(例えば工場又は支社)に設けられた計算機システムにおいて分析プログラムを実行しても、分析に関するデータの漏洩を防ぐことができるようにする。
【解決手段】分析元データを管理する計算機システムが、分析プログラムを受信し実行する。計算機システムは、分析プログラムの挙動から1種類以上の乖離を計算する。計算機システムは、算出された前記1種類以上の乖離を基に、分析プログラムによる分析の結果として出力されたデータである出力データをこの計算機システム外に出力するか否かを制御する。
【選択図】図3
【解決手段】分析元データを管理する計算機システムが、分析プログラムを受信し実行する。計算機システムは、分析プログラムの挙動から1種類以上の乖離を計算する。計算機システムは、算出された前記1種類以上の乖離を基に、分析プログラムによる分析の結果として出力されたデータである出力データをこの計算機システム外に出力するか否かを制御する。
【選択図】図3
Description
本発明は、概して、分析に関わるデータの保護に関する。
分析に関わるデータ(例えば、分析元データ及び分析結果データの少なくともいずれか)は適切に保護されることが望ましい。データの保護に関する技術として、例えば、特許文献1に開示の技術が知られている。特許文献1に開示のシステムは、秘匿対象のデータを保護しながら、開示可能なデータを開示して解析を可能としつつ、その結果得られた情報を、アクセスレベルが異なる者や組織等に通知する。
複数のエッジシステムと、複数のエッジシステムと通信可能なコアシステムとが知られている。各エッジシステムは、拠点(例えば工場又は支社)に設けられた計算機システムである。コアシステムは、中核地点(例えば本社)に設けられた計算機システムである。
複数のエッジシステムの各々において、分析元データが蓄積されている。コアシステムが、複数のエッジシステムの各々から分析元データを収集し、分析プログラムを実行することで、収集された分析元データを用いた分析を実行することができる。
しかし、少なくとも1つのエッジシステムにおいて、分析元データは、しばしば大量である(例えば、多数のセンサの各々から収集された時系列データ)。このため、分析元データをエッジシステムからコアシステムに転送することは効率が悪い。
そこで、各エッジシステムが、分析システムとなること、具体的には、コアシステム提供の分析プログラムを実行することで、そのエッジシステムが管理する分析元データを用いた分析を実行し、分析結果データをコアシステムに送信することが考えられる。
しかし、実行される分析プラグラムが常に信頼できるプログラムであるとは限らない。例えば、他社のシステムから提供された分析プログラムを使用することも考えられるが、そのような分析プログラムが必ずしも信頼できるプログラムとは限らない。また、受信(導入)されたときには分析プログラムは信頼できるプログラムであっても、その後に信頼できないプログラムになること(例えばマルウェアに感染すること)が考えられる。
信頼できない分析プログラムが実行されると、分析に関するデータが漏洩するおそれがある。具体的には、例えば、分析元データの少なくとも一部の漏洩、分析結果データの少なくとも一部の漏洩、及び、分析結果データが不適切である(分析結果が間違っている)のうちの少なくとも1つが生じ得る。
分析元データを管理する計算機システムが、分析プログラムを受信し実行する。計算機システムは、分析プログラムの挙動から1種類以上の乖離を計算する。計算機システムは、算出された前記1種類以上の乖離を基に、分析プログラムによる分析の結果として出力されたデータである出力データをこの計算機システム外に出力するか否かを制御する。
分析に関するデータの漏洩を防ぐことができる。
以下の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「記憶部」は、1以上のメモリを含む。記憶部に関して少なくとも1つのメモリは、揮発性メモリでよい。記憶部は、主に、プロセッサ部による処理の際に使用される。記憶部は、更に、1以上の不揮発性記憶デバイス(例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive))を含んでもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、1以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))によって実現されてもよい。機能がプロセッサ部によって実現される場合、定められた処理が、適宜に記憶部(例えばメモリ)及び/又はインターフェース部(例えば通信ポート)等を用いながら行われるため、機能はプロセッサ部の少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサ部又はそのプロセッサ部を有する装置が行う処理としてもよい。また、プロセッサ部は、処理の一部又は全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからプロセッサにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が1つの機能にまとめられたり、1つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「計算機システム」は、1以上の計算機でよい。少なくとも1つの計算機は、汎用計算機でよい。例えば、少なくとも1つの物理的な計算機が、仮想的な計算機(例えばVM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。
図1は、実施形態に係るシステム全体の構成を示す。
通信ネットワーク(例えばインターネット)1000に、エッジシステム100、コアシステム700C及び代行システム2000が接続される。システム100、700及び2000の各々は、計算機システムである。システム100、700及び2000のいずれも1又は複数存在する。説明を簡単にするために、本実施形態の説明では、システム100、700及び2000のいずれも1つであるとする。
エッジシステム100は、分析システムの一例、すなわち、分析プログラムを実行する計算機システムの一例である。エッジシステム100は、拠点に存在する計算機システムでよい。本実施形態では、エッジシステム100は、分析プログラムを、コアシステム700から通信ネットワーク1000を通じて受信して実行したり、分析結果データをコアシステム700に通信ネットワーク1000を通じて送信したりする。なお、分析プログラムの提供元は、コアシステム700に代えて又は加えて、代行システム2000のような、システム100及び700以外の計算機システムでもよい。
コアシステム700は、通信ネットワーク1000を通じてエッジシステム100に分析プログラムを提供したり、通信ネットワーク1000を通じてエッジシステム100から分析結果データを受信して格納したりする。
代行システム2000は、分析プログラムの提供及び実行のうちの少なくとも1つを代行する計算機システムである。具体的には、例えば、代行システム2000は、複数の分析プログラムのうちの選択された分析プログラムをエッジシステム100に提供してもよい。また、代行システム2000は、エッジシステム100に代わって分析プログラムを受信及び実行し、分析結果データをコアシステム700に送信してもよい。代行システム2000は、オプションである(つまり必ずしも無くてもよい)。以下、代行システム2000の説明は省略する。
図2は、エッジシステム100の物理構成を示す。
エッジシステム100は、ネットワークインターフェース60、I/O(Input/Output)デバイス50、ストレージ装置40、中継デバイス30、メモリ20及びマイクロプロセッサ10を有する。
ネットワークインターフェース60は、インターフェース部の一例であり、通信ネットワーク1000に接続される。I/Oデバイス50は、入力デバイス(例えば、キーボード及びポインティングデバイス)及び出力デバイス(例えば表示デバイス)である。ストレージ装置40は、分析元データを格納する。ストレージ装置40は、エッジシステム100と通信可能にエッジシステム100外に存在してもよい。中継デバイス30は、ネットワークインターフェース60、I/Oデバイス50、ストレージ装置40及びプロセッサ10の各々の通信を中継する。プロセッサ10は、メモリ20に格納されているプログラムを実行することにより、ストレージ装置40からメモリ20にデータを読み出したり、メモリ20内のデータを参照または更新したりする。メモリ20は、例えば、DRAM(Dynamic Random Access Memory)のような揮発性半導体メモリであるが、フラッシュメモリのような不揮発性半導体メモリでもよい。メモリ20及びストレージ装置40のうちの少なくともメモリ20が、記憶部の一例である。プロセッサ10が、プロセッサ部の一例である。
なお、エッジシステム100の物理構成を詳細に説明したが、コアシステム700も同様の物理構成を有してよい。
図3は、エッジシステム100及びコアシステム700の各々の論理構成を示す。
コアシステム700は、分析プログラム記憶資源810と、分析プログラム管理部800と、分析結果記憶資源830とを有する。記憶資源810及び830の各々は、コアシステム700が有する記憶部が提供する記憶空間の少なくとも一部でもよいし、コアシステム700外に存在するストレージ装置が提供する記憶空間の少なくとも一部でもよい。
分析プログラム記憶資源810は、1以上の分析プログラムを記憶している。分析プログラム管理部800は、分析プログラム記憶資源810から提供対象の分析プログラムを取得し、取得した分析プログラムをエッジシステム100に提供する。また、分析プログラム管理部800は、提供した分析プログラムの実行結果としての分析結果データを受信し、受信した分析結果データを分析結果記憶資源830に格納する。
エッジシステム100は、分析元記憶資源600と、認証ポリシ記憶資源500と、分析プログラム認証部300と、分析プログラム実行部200と、データ管理部400とを有する。記憶資源600及び500の各々は、エッジシステム100が有する記憶部(メモリ20及びストレージ装置40のうちの少なくともメモリ20)が提供する記憶空間の少なくとも一部でもよいし、エッジシステム100外に存在するストレージ装置が提供する記憶空間の少なくとも一部でもよい。
分析元記憶資源600は、分析元データを記憶する。認証ポリシ記憶資源500は、認証ポリシを示すデータである認証ポリシデータ(例えばデータベース)を記憶する。
分析プログラム認証部300は、コアシステム700から分析プログラムを受信し、受信した分析プログラムが正しいか否かを、認証ポリシデータを基に判断する。判断結果が真の場合、分析プログラム認証部300は、受信した分析プログラムを分析プログラム実行部200に提供する。
分析プログラム実行部200は、分析プログラム認証部300をパスした分析プログラムを実行する。分析プログラムの実行結果としての影響は、分析プログラム実行部200に閉じる。具体的には、例えば、分析プログラム実行部200はサンドボックスである。
データ管理部400は、分析プログラム実行部200を監視し、監視結果に応じた制御を実行する。データ管理部400は、入力管理部410及び出力管理部460を含む。入力管理部410は、分析プログラムが使用するデータである入力データ(分析元データの少なくとも一部)を分析元記憶資源600から取得し分析プログラム実行部200に入力する。出力管理部460は、分析プログラムの実行結果としての分析結果データを分析プログラム実行部200から受けてコアシステムに送信する。入力管理部410及び出力管理部460のうちの少なくとも1つが、必要に応じて、認証ポリシデータに応じた制御を実行する。
図4は、エッジシステム100の論理構成の詳細を示す。
分析プログラム実行部200は、分析プログラム認証部300をパスした(つまり認証部300により認証された)分析プログラム230を実行する。分析プログラム230には、データ需要情報240が紐付いている。データ需要情報240は、その情報240が紐付いている分析プログラム230の挙動を示す情報(別の言い方をすれば、分析プログラム230の自己申告の内容)を含んだ情報である。図5が、データ需要情報240の具体例を示す。すなわち、データ需要情報240は、例えば、入力定義2401、処理定義2402及び出力定義2403を含む。入力定義2401は、分析プログラム230が分析において参照する入力データに関する定義(例えば、データベース毎のデータベース名、データ数及びデータ型)を示す情報である。処理定義2402は、入力データを用いた処理(分析)に関する定義(例えば、データ処理単位、API(Application Programming Interface)コールシーケンス(APIの呼び出し順序))を示す情報である。出力定義403は、分析の結果として出力される出力データに関する定義(例えば、データ数、データ型、入出力エントロピ差分(入力データのエントロピと出力データのエントロピとの差分))を示す情報である。
入力管理部410は、需要認証部420、データ入力制御部430、入力指標計算部440及び入力バッファ450を有する。
分析プログラム230へ入力される入力データの管理は、例えば、下記の通りである。
需要認証部420は、認証ポリシ記憶資源500から、分析プログラム230に関する認証ポリシを取得する。認証ポリシ記憶資源500内の認証ポリシデータは、分析プログラム毎の認証ポリシを示す。認証ポリシは、例えば、動的API呼び出しシーケンス、及び、分析元記憶資源600から分析のために読み出すデータのデータ量及び範囲(例えばアドレス範囲)を示す。需要認証部420は、取得した認証ポリシと、分析プログラム230に紐付いたデータ需要情報240とに基づき、分析元記憶資源600内の分析元データへのアクセス可否を決定する。アクセス可が決定された場合、需要認証部420は、分析プログラム230に紐付いたデータ需要情報240に基づき、分析元記憶資源600内の分析元データのうちのリード対象データ(例えばリード元アドレス範囲)も決定する。アクセス可が決定された場合、需要認証部420は、リード対象データにアクセスすることのリード指示(例えば、リード元アドレス範囲を関連付けたリード指示)を、データ入力制御部430に送信する。
データ入力制御部430は、需要認証部420からのリード指示に応答して、分析元記憶資源600からデータを読み出す。データ入力制御部430は、読み出したデータを、入力バッファ450に格納する。
入力指標計算部440は、入力指標を計算し、算出した入力指標を、需要認証部420に通知する。「入力データ」は、分析元記憶資源600から分析のために読み出された全データである。例えば、データの読出しが、所定のデータ単位で行われた場合(別の言い方をすれば、複数回行われた場合)、読み出された個々のデータは、入力データ要素であり、読み出された全データ(入力データ要素の集合)が、入力データである。「入力指標」は、入力データに関する指標である。入力指標は、例えば、入力データ量(入力データのデータ量)、及び、入力データエントロピである。入力指標計算部440は、例えば、入力バッファ450に入力データ要素が格納される都度に、入力指標を更新し、全ての入力データ要素が読み出された場合に、入力データについての入力指標を算出(確定)し、その入力指標を需要認証部420に通知してよい。
入力バッファ450に一定量又は一定範囲のデータが格納される都度に、分析プログラム実行部200が実行する分析プログラム230により、入力バッファ450から分析プログラム230にデータが入力され、分析が行われる。需要認証部420は、その分析プログラム230の挙動を監視し、監視された挙動を表す情報を、その分析プログラム230の認証ポリシの一部として、認証ポリシ記憶資源500に蓄積する。つまり、分析プログラム230についての認証ポリシが更新される。更新後の認証ポリシを基に、将来再び同一の分析プログラム230が分析プログラム実行部200により実行される場合、その分析プログラム230についての認証処理速度の向上、及び、その分析プログラム230の挙動が正常な挙動(分析動作)から逸脱してもその逸脱事象を検出することが期待できる。
分析プログラム230から出力される出力データの管理は、例えば、下記の通りである。
需要認証部420は、挙動乖離の大きさと指標乖離の大きさとのうちの少なくとも1つに基づき、データ出力の可否を決定し、決定したデータ出力可否を、データ出力制御部470に通知する。
「挙動乖離」とは、分析プログラム230について監視された挙動と、分析プログラム230に対応した認証ポリシが示す正常な挙動との乖離である。もし、分析プログラム認証部300をパスした分析プログラム230(つまり、認証されたプログラム230)が、実行の際にマルウェアに感染していた場合、挙動乖離が大きくなると考えられる。このような場合、データ出力が拒否(禁止)されることで、不正なデータ漏洩を防ぐことができる。
「指標乖離」とは、入力指標と出力指標との乖離、具体的には、入力データ量と出力データ量との乖離であるデータ量乖離、及び、入力データエントロピと出力データエントロピとの乖離であるエントロピ乖離である。分析の特性として、入力データ量よりも出力データ量が小さくなる傾向がある。このため、データ量乖離が所定量より小さいと、分析プログラム230が信頼できないプログラムである可能性が高い。一方、出力データが圧縮されると出力データ量は小さくなるので、見かけ上、データ量乖離を大きくすることができる。そこで、エントロピ乖離の大きさに基づくチェックは有効である。例えば、下記が採用されてよい。
(b1−1)需要認証部420は、データ量乖離が第1閾値以上か否かを判断する。
(b1−2)(b1−1)の判断結果が真の場合、更に、需要認証部420は、エントロピ乖離が第2閾値以上か否かを判断する。
(b2)(b1−2)の判断結果も真の場合、需要認証部420は、データ出力制御部470に対して、データ出力許可を通知する。その通知を受けたデータ出力制御部470が、出力バッファ490内の出力データをコアシステム700に送信する。
(b1−1)需要認証部420は、データ量乖離が第1閾値以上か否かを判断する。
(b1−2)(b1−1)の判断結果が真の場合、更に、需要認証部420は、エントロピ乖離が第2閾値以上か否かを判断する。
(b2)(b1−2)の判断結果も真の場合、需要認証部420は、データ出力制御部470に対して、データ出力許可を通知する。その通知を受けたデータ出力制御部470が、出力バッファ490内の出力データをコアシステム700に送信する。
挙動乖離及び指標乖離の少なくとも1つの大きさと比較される閾値は、所定のユーザインタフェース(例えばGUI(Graphical User Interface))を介してユーザにより認証ポリシの一部として設定されてよい。
また、本実施形態では、既知の分析プログラムを監視し監視結果に応じてデータ出力の可否を制御する第1モードに加えて、未知の分析プログラムをテスト監視し監視結果に関わらずデータ出力を拒否(禁止)する第2モードが定義される。第1及び第2モードの各々については、図6を参照して後に説明する。
データ出力制御部470は、需要認証部420からの通知(データ出力可否の通知)に従い、出力バッファ490からのデータ出力を制御する。
出力指標計算部480は、出力指標を計算し、算出した出力指標を、需要認証部420に通知する。「出力データ」は、入力データを用いて行われた分析の結果としてのデータである。例えば、データ出力が、入力データの部分毎に行われた場合、出力されたデータは出力データ要素であり、出力された全データが集約されたデータが、出力データである。出力データは、分析プログラム230により出力バッファ490に格納される。「出力指標」は、出力データに関する指標である。出力指標は、例えば、出力データ量(出力データのデータ量)、及び、出力データエントロピである。
図6は、エッジシステム100が行う処理の流れを示す。
分析プログラム認証部300が、分析要求を受けた場合(S1010:Y)、その分析要求で指定されている分析プログラム(以下、対象分析プログラム)が正しいか否かを判断する(S1020)。この判断は、例えば、分析プログラムのメタデータ(例えば、分析プログラムの提供元又は作成者)を基に行われてよい。S1020の判断結果が偽の場合(S1020:N)、分析プログラム認証部300が、認証失敗通知を、分析要求の要求元(コアシステム700)に送信する(S1110)。
S1020の判断結果が真の場合(S1020:Y)、分析プログラム認証部300が、分析プログラム実行部200に、対象分析プログラムの実行を命じる。なお、対象分析プログラムが、過去に受信し実行されたことのある分析プログラムである場合、上述の分析要求には、分析プログラムを特定可能な情報(例えばプログラムID)が指定されていてよいし、或いは、対象分析プログラム(及びそれのデータ需要情報)が関連付けられていてよい(後者の場合、分析の終了の都度にデータ管理部400によって分析プログラムがエッジシステム100から削除されてもよい)。一方、対象分析プログラムが、初めて受信し実行することになる分析プログラムである場合、上述の分析要求には、対象分析プログラム(及びそれのデータ需要情報)が関連付けられていてよい。
分析プログラム実行部200に対象分析プログラムの実行が命じられると、分析プログラム実行部200が対象分析プログラムの実行命令を受けたことが、分析プログラム実行部200を監視しているデータ管理部400によって検出される。分析プログラム実行部200は閉じた環境(例えばサンドボックス)であるため、仮に対象分析プログラムが信頼できないプログラムであったとしても、その実行結果の影響範囲は、分析プログラム実行部200内に閉じることになる。
データ管理部400が、対象分析プログラムが未知の分析プログラムか否かを判断する(S1040)。例えば、認証ポリシ記憶資源500に、対象分析プログラムを過去に実行した履歴(挙動)が認証ポリシの一部として登録されていなければ、対象分析プログラムは未知の分析プログラムであると判断される。
S1040の判断結果が真の場合(S1040:Y)、データ管理部400は、第2モード(S1050〜S1080)に入る。
まず、データ管理部400は、対象分析プログラムの実行のためのテストデータの少なくとも一部を入力バッファ450に準備し、且つ、データ出力抑止を設定する(S1050)。テストデータは、データ需要情報の入力定義から特定されるデータ量と同じデータ量のダミーデータでもよいし、分析元データからデータ需要情報の入力定義に従い読み出されたデータでもよい。データ出力抑止の設定により、分析の結果として出力され出力バッファ490に格納されたデータがデータ管理部400外(エッジシステム100外)に出力されることがデータ管理部400により抑止される。
次に、データ管理部400は、分析プログラム実行部200に対象分析プログラムの実行を許可する(S1060)。これにより、分析プログラム実行部200が対象分析プログラムを実行する。
次に、データ管理部400は、S1070を実行する。例えば、データ管理部400は、認証ポリシ記憶資源500から、対象分析プログラムに関する認証ポリシを取得する。入力バッファ450に格納されたデータが分析プログラム230に入力され分析が行われ、分析結果としてのデータが出力バッファ490に格納される。データ管理部400は、対象分析プログラムの挙動を監視する。
最後に、データ管理部400は、対象分析プログラムの認証ポリシを更新する(S1080)。例えば、認証ポリシに、対象分析プログラムの特定された挙動(例えば、テストデータのうち入力されたデータのアドレス範囲)を表す情報、算出された入力指標を表す情報、及び、算出された出力指標を表す情報が追加される。なお、データ管理部400は、データ需要情報が、対象分析プログラムの開発側と分析データの提供側との間で事前に合意されたデータ需要情報であれば、対象分析プログラムを実行する前に、データ需要情報を、対象分析プログラムの認証ポリシの一部として認証ポリシデータに登録しておいてよい。その認証ポリシ内のデータ需要情報が表す挙動が、第1モードにおいて、実行される分析プログラムのデータ需要情報(又は分析プログラムの実際の挙動)と照合されてもよい。
S1080の後(第2モードから抜けた後)、データ管理部400は、対象分析プログラムに紐付いたデータ需要情報(対象分析プログラムの挙動を示す情報を含む)と、対象分析プログラムについて取得された認証ポリシとを照合することで、対象分析プログラムが信頼できるプログラムか否かを判断する(S1100)。例えば、以下のS1100−1〜S1100−3のうちの少なくとも1つが行われる。S1100−1〜S1100−3のうち実行された全てのステップについて判断結果が真の場合、S1100の判断結果が真となる。実行されたステップのうちの少なくとも1つのステップについて判断結果が偽の場合、S1100の判断結果が偽となる。
(S1100−1)データ管理部400は、監視された挙動が、対象分析プログラムに紐付いているデータ需要情報通りであるか否かを判断する。
(S1100−2)データ管理部400は、対象分析プログラムに紐付いているデータ需要情報が、対象分析プログラムに対応した認証ポリシに適合するか否かを判断する。データ需要情報が不正に書き換えられている可能性があり、故に、そのような危険性の無い認証ポリシにデータ需要情報が適合するか否かを判断することは有意である。
(S1100−3)データ管理部400は、対象分析プログラムに紐付いているデータ需要情報が予め指定された情報(例えば、高リスクの懸念が無い情報)であるか否かを判断する。
(S1100−1)データ管理部400は、監視された挙動が、対象分析プログラムに紐付いているデータ需要情報通りであるか否かを判断する。
(S1100−2)データ管理部400は、対象分析プログラムに紐付いているデータ需要情報が、対象分析プログラムに対応した認証ポリシに適合するか否かを判断する。データ需要情報が不正に書き換えられている可能性があり、故に、そのような危険性の無い認証ポリシにデータ需要情報が適合するか否かを判断することは有意である。
(S1100−3)データ管理部400は、対象分析プログラムに紐付いているデータ需要情報が予め指定された情報(例えば、高リスクの懸念が無い情報)であるか否かを判断する。
S1100の判断結果が偽の場合(S1100:N)、データ管理部400が分析プログラム認証部300にS1110を実行させる。これにより、分析プログラム認証部300が、認証失敗通知を、分析要求の要求元(コアシステム700)に送信する(S1110)。
S1040の判断結果が偽の場合(S1040:N)、データ管理部400は、第2モード(S1050〜S1080)に入ること無しに、S1100を実行する。但し、対象分析プログラムは実行されていないので、S1100では、例えば、上記のS1100−2及びS1100−3のうちの少なくとも1つが実行される。S1100−2及びS1100−3のうち実行された全てのステップについて判断結果が真の場合、S1100の判断結果が真となる。実行されたステップのうちの少なくとも1つのステップについて判断結果が偽の場合、S1100の判断結果が偽となる。
S1100の判断結果が真の場合(S1100:Y)、データ管理部400は、第1モード(S1130〜S1160)に入る。
まず、データ管理部400は、対象分析プログラムの実行のための入力データの少なくとも一部を入力バッファ450に読み出し、且つ、データ出力有効を設定する(S1130)。入力データは、分析元データからデータ需要情報の入力定義に従い読み出されたデータである。データ出力有効の設定により、分析の結果として出力され出力バッファ490に格納されたデータがデータ管理部400外(エッジシステム100外)にデータ管理部400により出力され得る。
次に、データ管理部400は、分析プログラム実行部200に対象分析プログラムの実行を許可する(S1140)。これにより、分析プログラム実行部200が対象分析プログラムを実行する。
次に、データ管理部400は、S1150を実行する。例えば、データ管理部400は、認証ポリシ記憶資源500から、対象分析プログラムに関する認証ポリシを取得する。また、データ管理部400は、取得した認証ポリシと、対象分析プログラムに紐付いたデータ需要情報とのうちの少なくとも1つに基づき、入力データのアクセス可否を決定する。アクセス可の場合、入力バッファ450に格納されたデータが分析プログラム230に入力され分析が行われ、分析結果としてのデータが出力バッファ490に格納される。データ管理部400は、対象分析プログラムの挙動を監視する。データ管理部400は、入力指標(例えば入力データ量及び入力データエントロピ)及び出力指標(例えば出力データ量及び出力データエントロピ)を計算する。データ管理部400は、指標乖離及び挙動乖離を計算する。
最後に、データ管理部400は、対象分析プログラムの認証ポリシを更新する(S1160)。例えば、認証ポリシに、対象分析プログラムの特定された挙動(例えば、テストデータのうち入力されたデータのアドレス範囲)を表す情報、算出された入力指標を表す情報、及び、算出された出力指標を表す情報が追加される。
S1160の後(第1モードから抜けた後)、データ管理部400は、対象分析プログラムが信頼できるプログラムか否か、具体的には、出力バッファ490内のデータの出力を許可するか否かを判断する(S1180)。例えば、以下のS1180−1〜S1180−3のうちの少なくとも1つが行われる。S1180−1〜S1180−3のうち実行された全てのステップについて判断結果が真の場合、S1180の判断結果が真となる。実行されたステップのうちの少なくとも1つのステップについて判断結果が偽の場合、S1180の判断結果が偽となる。なお、下記の閾値A、B(B1及びB2)のいずれも、GUIのようなユーザインタフェース経由でユーザにより指定された情報に従い決められ認証ポリシに設定されてもよいし、データ需要情報に含まれていてもよい。
(S1180−1)データ管理部400は、挙動乖離が閾値A未満か否かを判断する。例えば、データ管理部400は、監視された挙動も、認証ポリシが示す挙動も、特徴量のような値とし、値同士の差分が、閾値A未満か否かを判断する。
(S1180−2)データ管理部400は、出力データが、データ需要情報内の出力定義に適合するか否かを判断する。
(S1180−3)データ管理部400は、指標乖離が閾値B以上か否かを判断する。例えば、下記のうちの少なくとも1つの判断が行われる。S1180−3−2の判断は、S1180−3−1の判断結果が真の場合に実行されてよい。
(S1180−3−1)データ管理部400は、入力データ量と出力データ量との差分であるデータ量乖離が閾値B1以上か否かを判断する。
(S1180−3−2)データ管理部400は、入力データエントロピと出力データエントロピとの差分であるエントロピ乖離が閾値B2(例えば、図5に例示の入出力エントロピ差分)以上か否かを判断する。
(S1180−1)データ管理部400は、挙動乖離が閾値A未満か否かを判断する。例えば、データ管理部400は、監視された挙動も、認証ポリシが示す挙動も、特徴量のような値とし、値同士の差分が、閾値A未満か否かを判断する。
(S1180−2)データ管理部400は、出力データが、データ需要情報内の出力定義に適合するか否かを判断する。
(S1180−3)データ管理部400は、指標乖離が閾値B以上か否かを判断する。例えば、下記のうちの少なくとも1つの判断が行われる。S1180−3−2の判断は、S1180−3−1の判断結果が真の場合に実行されてよい。
(S1180−3−1)データ管理部400は、入力データ量と出力データ量との差分であるデータ量乖離が閾値B1以上か否かを判断する。
(S1180−3−2)データ管理部400は、入力データエントロピと出力データエントロピとの差分であるエントロピ乖離が閾値B2(例えば、図5に例示の入出力エントロピ差分)以上か否かを判断する。
S1180の判断結果が偽の場合(S1180:N)、データ管理部400が分析プログラム認証部300にS1110を実行させる。これにより、分析プログラム認証部300が、認証失敗通知を、分析要求の要求元(コアシステム700)に送信する(S1110)。
S1180の判断結果が真の場合(S1180:Y)、データ管理部400が、出力データ(分析結果データ)を、分析要求の要求元(コアシステム700)に送信する(S1190)。
上述した実施形態によれば、対象分析プログラムが信頼できない場合、そのことを特定し、分析に関するデータの漏洩を防ぐことができる。具体的には、例えば、分析プログラムに紐付けられたデータ需要情報(プログラムの挙動を示す情報)と、分析プログラムに対応し予め登録されている認証ポリシとを照合することで、当該プログラムの動作が正規の分析動作であることを認証し、セキュリティを向上させることができる。また、分析プログラムが出力するデータについても監視し、予め設定された基準を満たさない場合にはそのデータの出力を抑止することができる。
以上、一実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
100:エッジシステム
Claims (10)
- 分析元データを管理する計算機システムであって、
分析プログラムを受信する1以上のインターフェースであるインターフェース部と、
前記インターフェース部に接続された1以上のプロセッサであり前記分析プログラムを実行するプロセッサ部と
を有し、
前記プロセッサ部が、
(A)前記分析プログラムの挙動から1種類以上の乖離を計算し、
(B)算出された前記1種類以上の乖離を基に、前記分析プログラムによる分析の結果として出力されたデータである出力データを前記計算機システム外に出力するか否かを制御する、
計算機システム。 - 前記1種類以上の乖離は、入力指標と出力指標との乖離である指標乖離を含み、
前記入力指標は、前記分析プログラムに分析のために入力される入力データに関する指標であり、
前記出力指標は、前記出力データに関する指標であり、
(B)において、前記プロセッサ部が、
(b1)前記指標乖離が閾値以上か否かを判断し、
(b2)(b1)の判断結果が真の場合、前記出力データを前記計算機システム外に出力する、
請求項1記載の計算機システム。 - 前記指標乖離は、データ量乖離であり、
前記データ量乖離は、前記入力データの量と前記出力データの量との乖離であり、
(b1)において、前記プロセッサ部が、
(b1−1)前記データ量乖離が第1閾値以上か否かを判断する、
請求項2記載の計算機システム。 - 前記指標乖離は、前記データ量乖離の他に、前記入力データのエントロピと前記出力データのエントロピとの乖離であるエントロピ乖離であり、
(b1)において、前記プロセッサ部が、
(b1−2)(b1−1)の判断結果が真の場合、更に、前記エントロピ乖離が第2閾値以上か否かを判断し、
(b1−2)の判断結果も真の場合、(b2)において、前記プロセッサ部が、前記出力データを前記計算機システム外に出力する、
請求項3記載の計算機システム。 - 前記受信した分析プログラムには、データ需要情報が関連付けられており、
前記データ需要情報は、前記分析プログラムの挙動と、前記第1閾値及び前記第2閾値のうちの少なくとも1つとを示す情報を含み、
前記1種類以上の乖離は、前記分析プログラムの実際の挙動と前記データ需要情報が示す挙動との乖離である挙動乖離を含み、
(B)において、前記プロセッサ部が、
(b3)前記挙動乖離が第3閾値未満か否かを判断し、
更に(b3)の判断結果も真の場合、(b2)において、前記プロセッサ部が、前記出力データを前記計算機システム外に出力する、
請求項4記載の計算機システム。 - 前記プロセッサ部が、
1以上の分析プログラムにそれぞれ対応した1以上のポリシのうち、前記受信した分析プログラムに対応するポリシを特定し、
前記1以上のポリシの各々は、そのポリシに対応する分析プログラムの挙動に関するポリシを含み、
前記データ需要情報が前記特定されたポリシに適合するか否かを判断し、
その判断結果が真の場合、(A)及び(B)を実行する、
請求項5記載の計算機システム。 - 前記特定されたポリシが示す挙動は、前記分析プログラムの過去の挙動である、
請求項6記載の計算機システム。 - 前記指標乖離は、前記入力データのエントロピと前記出力データのエントロピとの乖離であるエントロピ乖離であり、
(b1)において、前記プロセッサ部が、前記エントロピ乖離が閾値以上か否かを判断する、
請求項2記載の計算機システム。 - 前記受信した分析プログラムには、データ需要情報が関連付けられており、
前記データ需要情報は、前記分析プログラムの挙動を示す情報を含み、
前記1種類以上の乖離は、前記分析プログラムの実際の挙動と前記データ需要情報が示す挙動との乖離である挙動乖離を含み、
(B)において、前記プロセッサ部が、更に、前記挙動乖離が閾値未満か否かを判断し、
その判断結果も真の場合、前記プロセッサ部が、前記出力データを前記計算機システム外に出力する、
請求項1記載の計算機システム。 - 分析プログラムの実行を監視する方法であって、
分析元データを管理する計算機システムが、分析プログラムを受信し、
前記分析プログラムを実行し、
前記分析プログラムの挙動から1種類以上の乖離を計算し、
算出された前記1種類以上の乖離を基に、分析プログラムによる分析の結果として出力されたデータである出力データをこの計算機システム外に出力するか否かを制御する、
方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017045026A JP2018147444A (ja) | 2017-03-09 | 2017-03-09 | 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 |
US15/800,793 US20180260563A1 (en) | 2017-03-09 | 2017-11-01 | Computer system for executing analysis program, and method of monitoring execution of analysis program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017045026A JP2018147444A (ja) | 2017-03-09 | 2017-03-09 | 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018147444A true JP2018147444A (ja) | 2018-09-20 |
Family
ID=63446559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017045026A Withdrawn JP2018147444A (ja) | 2017-03-09 | 2017-03-09 | 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180260563A1 (ja) |
JP (1) | JP2018147444A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021117624A (ja) * | 2020-01-24 | 2021-08-10 | 三菱電機株式会社 | 車載制御装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209672A (zh) * | 2019-05-20 | 2019-09-06 | 中国银行股份有限公司 | 冠字号码数据处理方法、装置、计算机设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110067264A (ko) * | 2009-12-14 | 2011-06-22 | 성균관대학교산학협력단 | 네트워크 이상징후 탐지장치 및 방법 |
EP2544153A1 (en) * | 2011-07-04 | 2013-01-09 | ZF Friedrichshafen AG | Identification technique |
US9380066B2 (en) * | 2013-03-29 | 2016-06-28 | Intel Corporation | Distributed traffic pattern analysis and entropy prediction for detecting malware in a network environment |
US10671724B2 (en) * | 2016-09-15 | 2020-06-02 | Paypal, Inc. | Techniques for detecting encryption |
US20180124080A1 (en) * | 2016-11-02 | 2018-05-03 | Qualcomm Incorporated | Methods and Systems for Anomaly Detection Using Functional Specifications Derived from Server Input/Output (I/O) Behavior |
-
2017
- 2017-03-09 JP JP2017045026A patent/JP2018147444A/ja not_active Withdrawn
- 2017-11-01 US US15/800,793 patent/US20180260563A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021117624A (ja) * | 2020-01-24 | 2021-08-10 | 三菱電機株式会社 | 車載制御装置 |
Also Published As
Publication number | Publication date |
---|---|
US20180260563A1 (en) | 2018-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10542022B2 (en) | Sandboxed execution of plug-ins | |
CN109831420B (zh) | 内核进程权限的确定方法及装置 | |
US9021584B2 (en) | System and method for assessing danger of software using prioritized rules | |
KR101700552B1 (ko) | 보안 운영 체제 환경으로의 콘텍스트 기반 전환 | |
KR101295428B1 (ko) | 스마트 단말기에서 어플리케이션의 권한정보 관리 장치 및 제어 방법 | |
US10101936B2 (en) | Memory access control | |
RU2535506C2 (ru) | Система и способ формирования сценариев модели поведения приложений | |
CN111159713B (zh) | 基于SELinux的自学习可信策略构建方法及*** | |
KR101565590B1 (ko) | 역할기반 접근통제 및 인가된 파일 리스트를 통한 파일접근 통제 통합 시스템 | |
CN111416811A (zh) | 越权漏洞检测方法、***、设备及存储介质 | |
US11019494B2 (en) | System and method for determining dangerousness of devices for a banking service | |
JP6717206B2 (ja) | マルウェア対策装置、マルウェア対策システム、マルウェア対策方法、及び、マルウェア対策プログラム | |
US10223536B2 (en) | Device monitoring policy | |
US9774605B2 (en) | Temporary authorizations to access a computing system based on user skills | |
CN111919198A (zh) | 内核函数回调的方法和*** | |
US20220012158A1 (en) | Application monitoring using workload metadata | |
US20240267405A1 (en) | Detecting malware infection path in a cloud computing environment utilizing a security graph | |
CN110659478B (zh) | 在隔离的环境中检测阻止分析的恶意文件的方法 | |
US9349012B2 (en) | Distributed processing system, distributed processing method and computer-readable recording medium | |
JP2018147444A (ja) | 分析プログラムを実行する計算機システム、及び、分析プログラムの実行を監視する方法 | |
US10250603B1 (en) | Connection control for virtualized environments | |
KR20170036465A (ko) | 악성 코드 탐지 시스템 및 방법 | |
US20170115911A1 (en) | Memory access control | |
CN114386025A (zh) | 异常检测方法、装置、电子设备及存储介质 | |
US20210044589A1 (en) | Access control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200228 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20200608 |