(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024134959
(43)【公開日】2024-10-04
(54)【発明の名称】データ管理プログラム、データ管理方法及びデータ管理装置
(51)【国際特許分類】
G06F 21/64 20130101AFI20240927BHJP
G06F 16/16 20190101ALI20240927BHJP
【FI】
G06F21/64
G06F16/16
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023045428
(22)【出願日】2023-03-22
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和元年度、国立研究開発法人海上・港湾・航空技術研究所、戦略的イノベ-ション創造プログラム「スマート物流サービス」「物流・商流データ基盤に関する技術(要素基礎技術)」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山崎 滉一
(72)【発明者】
【氏名】小林 郁弥
(57)【要約】
【課題】ログ取得用のクエリの応答時間の短縮を実現することを課題とする。
【解決手段】データ管理プログラムは、データ基盤のプラットフォーム上のデータに対するアクセスログを、アクセスログが持つ特徴を数値化した特徴量を用いて特徴ベクトルへ変換し、アクセスログを識別する識別情報と、特徴ベクトルとを紐づけてブロックチェーンネットワーク内のデータストアへ保存する、処理をコンピュータに実行させる。
【選択図】
図9
【特許請求の範囲】
【請求項1】
データ基盤のプラットフォーム上のデータに対するアクセスログを、前記アクセスログが持つ特徴を数値化した特徴量を用いて特徴ベクトルへ変換し、
前記アクセスログを識別する識別情報と、前記特徴ベクトルとを紐づけてブロックチェーンネットワーク内のデータストアへ保存する、
処理をコンピュータに実行させることを特徴とするデータ管理プログラム。
【請求項2】
前記特徴ベクトルは、前記アクセスログよりもデータサイズが小さく、
前記変換する処理は、特定の時間帯ごとに前記時間帯で生成された複数のアクセスログを複数の特徴ベクトルへ変換する処理を含み、
前記保存する処理は、前記時間帯を識別する識別情報と、前記複数の特徴ベクトルとを紐づけて保存する処理を含む、
ことを特徴とする請求項1に記載のデータ管理プログラム。
【請求項3】
前記変換する処理は、前記時間帯で生成された複数のアクセスログの中に記述内容が同一である複数のアクセスログが存在する場合、前記複数のアクセスログのうち1つのアクセスログを特徴ベクトルに変換する処理を含み、
前記保存する処理は、前記時間帯を識別する識別情報に紐づけて、前記1つのアクセスログから変換された特徴ベクトルおよび記述内容が同一であるアクセスログの個数の組合せを保存する処理を含む、
ことを特徴とする請求項2に記載のデータ管理プログラム。
【請求項4】
前記識別情報は、前記時間帯に対応するタイムスタンプであることを特徴とする請求項2に記載のデータ管理プログラム。
【請求項5】
前記変換する処理は、前記ブロックチェーンネットワークのPeerノードで実行されるチェーンコードが実行するログ解析用の機械学習モデルが入力とする特徴ベクトルの形式と同一の形式で前記アクセスログを前記特徴ベクトルへ変換する処理を含む、
ことを特徴とする請求項1に記載のデータ管理プログラム。
【請求項6】
データ基盤のプラットフォーム上のデータに対するアクセスログを、前記アクセスログが持つ特徴を数値化した特徴量を用いて特徴ベクトルへ変換し、
前記アクセスログを識別する識別情報と、前記特徴ベクトルとを紐づけてブロックチェーンネットワーク内のデータストアへ保存する、
処理をコンピュータが実行することを特徴とするデータ管理方法。
【請求項7】
データ基盤のプラットフォーム上のデータに対するアクセスログを、前記アクセスログが持つ特徴を数値化した特徴量を用いて特徴ベクトルへ変換し、
前記アクセスログを識別する識別情報と、前記特徴ベクトルとを紐づけてブロックチェーンネットワーク内のデータストアへ保存する、
処理を実行する制御部を有するデータ管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ管理プログラム、データ管理方法及びデータ管理装置に関する。
【背景技術】
【0002】
データ基盤には、従来のプラットフォーム以上の安心および安全が求められる。このため、防御中心の対策に留まらず、防御を突破された場合でもデータの真正性(非改ざん性)を担保できる対策をとることが求められている。このような対策の1つとして、不正アクセスを検知するログ解析技術をデータ基盤に取り入れることが挙げられる。
【0003】
しかし現状、防御が突破された場合、ログ解析用のアクセスログやログ解析で異常が検知された異常ログ自体が改ざんされる場合があるので、正常な不正アクセスの検知が困難な側面がある。
【0004】
このような側面から、アクセスログの非改ざん性を担保するために、ブロックチェーン技術を利用して、データ基盤におけるアクセスログをブロックチェーンに記録することが提案されている。
【0005】
このとき、アクセスログの取得にかかる所要時間は短い方が実用的である。このため、ログ解析時には、全てのトランザクションが記録されるブロックチェーンおよび最新のブロックのトランザクションが記録されるデータストアのうち、クエリの応答時間が短いデータストアからアクセスログが取得される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2021-35041号公報
【特許文献2】特開2020-13175号公報
【特許文献3】特開2020-98972号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のデータストアからアクセスログを取得する場合であっても、依然として、ログ取得用のクエリの応答時間が短縮するのが困難である側面がある。
【0008】
1つの側面では、本発明は、ログ取得用のクエリの応答時間の短縮を実現できるデータ管理プログラム、データ管理方法及びデータ管理装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
1つの側面にかかるデータ管理プログラムは、データ基盤のプラットフォーム上のデータに対するアクセスログを、前記アクセスログが持つ特徴を数値化した特徴量を用いて特徴ベクトルへ変換し、前記アクセスログを識別する識別情報と、前記特徴ベクトルとを紐づけてブロックチェーンネットワーク内のデータストアへ保存する、処理をコンピュータに実行させる。
【発明の効果】
【0010】
一実施形態によれば、ログ取得用のクエリの応答時間の短縮を実現できる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、従来技術におけるログ取得を示す模式図である。
【
図2】
図2は、ログ保存量とクエリ性能の関係を示す図である。
【
図3】
図3は、コンフリクトの一例を示す模式図である。
【
図4】
図4は、従来技術に係るStateDBの一例を示す図である。
【
図5】
図5は、本実施例に係るStateDBの一例を示す図である。
【
図6】
図6は、サーバ装置の機能構成例を示すブロック図である。
【
図7】
図7は、アクセスログの保存の流れを示す模式図である。
【
図8】
図8は、ログ書込関数の動作を示す模式図である。
【
図9】
図9は、特徴ベクトルの変換の一例を示す模式図である。
【
図10】
図10は、リアルタイム性とI/O頻度の関係を示す図である。
【
図11】
図11は、不正アクセス検知および確認依頼の流れを示す模式図である。
【
図12】
図12は、変更履歴照会および通報の流れを示す模式図である。
【
図13】
図13は、不正操作無効化およびアカウント初期化の流れを示す模式図である。
【
図14】
図14は、保存処理の手順を示すフローチャートである。
【
図15】
図15は、生成処理の手順を示すフローチャートである。
【
図16】
図16は、変換処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して本願に係るデータ管理プログラム、データ管理方法及びデータ管理装置の実施例について説明する。各実施例には、あくまで1つの例や側面を示すに過ぎず、このような例示により数値や機能の範囲、利用シーンなどは限定されない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例0013】
まず、従来技術に係るデータ基盤やブロックチェーンについて説明する。
図1は、従来技術におけるログ取得を示す模式図である。
図1に示すように、データ基盤上で公開された公開データへのアクセスを受け付けると(ステップS1)、データ基盤上のデータに対するアクセス制御を行うデータ基盤API(Application Programming Interface)は、アクセスログを生成する(ステップS2)。そして、データ基盤APIは、ステップS2で生成されたアクセスログをBC(Block Chain)およびStateDBへ記録する(ステップS3)。
【0014】
このようなアクセスログの管理の下、ログ解析時には、チェーンコードの解析関数は、ログ取得用のクエリをStateDBに発行することにより、StateDBに保存されたアクセスログを取得する(ステップS4)。
【0015】
このように、ログ解析時にBCおよびStateDBのうちStateDBからアクセスログが取得されるのは、アクセスログの取得にかかる所要時間は短い方が実用的であるからである。このため、クエリの応答時間が短いStateDBからアクセスログが取得される。
【0016】
しかしながら、StateDBからアクセスログを取得する場合であっても、依然として、ログ取得用のクエリの応答時間が短縮するのが困難である側面がある。
【0017】
なぜなら、ログ解析で一定の精度を得るには、ある程度以上の量のアクセスログが求められる側面から、StateDBのデータサイズ、すなわちアクセスログの保存量を削減するには限界があるからである。
【0018】
StateDBのクエリ性能は、データサイズおよびキーの数に依存する。
図2は、ログ保存量とクエリ性能の関係を示す図である。
図2には、比較例として、BCの最新値のみをStateDBに保存するパターン1と、StateDBに大量のアクセスログを保存するパターン2とが挙げられている。
図2に示すように、パターン1の場合、StateDBに保存されるアクセスログの量が少ないので、高精度のログ解析が困難である一方で、クエリ性能は高まる。また、パターン2の場合、StateDBに大量のアクセスログが保存されるので、高精度のログ解析が実施できる一方で、クエリ性能は低下する。
【0019】
このような側面から、クエリ性能の低下を抑制しつつ、StateDBに保存するデータサイズを増加させるために、1つのキーに複数のアクセスログを関連付けてStateDBに保存する先進技術が考えられる。なお、ここで挙げる先進技術は、公知である特許文献や非特許文献等に記載がある上記の従来技術とは区別される。
【0020】
しかしながら、上記の先進技術では、StateDBの更新時にコンフリクトが発生する場合がある。すなわち、StateDBの各キーは、データベースの各キーに対応するが、ブロックチェーンでは、StateDBを更新するデータがブロック内で時系列順に整理されている。このため、ブロック内に同一のキーに関する更新処理や参照処理などのコマンドが2つ以上含まれる場合、コンフリクトが発生する結果、データの不一致が起こる場合がある。
【0021】
図3は、コンフリクトの一例を示す図である。
図3には、あくまで一例として、同一のユニークキーであるキー2に対する処理1のwrite setおよび処理2のwrite setのコンフリクトが発生する例が示されている。
図3に示すように、処理1のwrite setおよび処理2のwrite setのコンフリクトが発生すると、先に処理1のwrite setがStateDBに反映されてしまうので、後でStateDBに反映される処理2のwrite setの内容がブロックと一致しないものになってしまう。
【0022】
そこで、本実施例に係るデータ管理機能は、時間帯ごとに当該時間帯で生成されたアクセスログの集合をバッチ化し、バッチ化されたアクセスログの集合を1つのキーに関連付けて記録できる。このようなアクセスログの特徴ベクトルの記録と同時、あるいは並行して、本実施例に係るデータ管理機能は、アクセスログを特徴ベクトルへ変換してオリジナルのアクセスログの代わりに特徴ベクトルをStateDBに記録する。
【0023】
図4は、従来技術に係るStateDBの一例を示す図である。
図5は、本実施例に係るStateDBの一例を示す図である。上記の従来技術では、
図4に示すように、オリジナルのアクセスログがStateDBに記録される。その一方で、本実施例に係るデータ管理機能によれば、
図5に示すように、オリジナルのアクセスログから特徴が抽出された特徴ベクトルがStateDBに記録される。これにより、アクセスログの記述が数値表現へ変換されるので、1つのアクセスログあたりのデータサイズが削減される結果、StateDBのデータサイズを削減できる。したがって、本実施例に係るデータ管理機能によれば、ログ取得用のクエリの応答時間の短縮を実現できる。加えて、ログ解析時にチェーンコードの解析関数が実行する機械学習モデルにアクセスログを入力する際に実行される特徴ベクトルの変換をログ保存時に前処理できるので、ログ解析時の処理負荷を軽減することも可能になる。
【0024】
また、上記の従来技術では、
図4に示すように、1つのユニークキーにつき1つのアクセスログがStateDBに記録される。一方、本実施例に係るデータ管理機能によれば、
図5に示すように、1時間単位でバッチ化されたアクセスログの集合がStateDBに記録される。このように時間帯ごとにキーを分離することで、コンフリクトの発生というデメリットを回避する一方で、StateDBのキーの数の増加を抑えつつ、StateDBに保存するアクセスログの量を増加させるメリットのみを得ることができる。加えて、StateDBのキーの数の増加が抑えられるので、StateDBからのI/Oの頻度を削減できる結果、ログ解析の処理速度を高速化できる。
【0025】
次に、本実施例に係るデータ管理機能を提供するサーバ装置1の機能構成例について説明する。
図6は、サーバ装置1の機能構成例を示すブロック図である。
図6に示すサーバ装置1は、データ基盤を提供するプラットフォームとして機能するとともに、上記のデータ管理機能を提供する。このようなデータ基盤の利用シーンの1つとして、サプライチェーンにおける川上(メーカー)から川下(小売)までの商流および物流の情報を産業界全体で共有する例が挙げられる。
【0026】
図6に示すように、サーバ装置1は、ネットワークNWを介して、クライアント端末3および管理者端末5と通信可能に接続され得る。例えば、ネットワークNWは、有線または無線を問わず、インターネットやLAN(Local Area Network)などの任意の種類の通信網であってよい。
【0027】
クライアント端末3および管理者端末5は、端末装置の一例である。例えば、クライアント端末3は、上記のデータ基盤の提供を受けるユーザにより使用され得る。また、管理者端末5は、上記のデータ基盤の管理者などにより使用され得る。これらクライアント端末3および管理者端末5は、パーソナルコンピュータを始め、携帯端末装置やウェアラブル端末などの任意のコンピュータにより実現されてよい。
【0028】
なお、
図6には、1つのサーバ装置1につき1つのクライアント端末3および1つの管理者端末5が接続される例を挙げたが、任意の台数のクライアント端末3および任意の台数の管理者端末5が接続されることを妨げない。
【0029】
図6には、サーバ装置1が有するデータ管理機能に関連するブロックが模式化されている。
図6に示すように、サーバ装置1は、通信制御部6と、記憶部7と、制御部10とを有する。なお、
図6には、上記のデータ管理機能に関連する機能部が抜粋して示されているに過ぎず、図示以外の機能部がサーバ装置1に備わることとしてもよい。
【0030】
通信制御部6は、クライアント端末3や管理者端末5などの他の装置との間の通信を制御する機能部である。あくまで一例として、通信制御部6は、ネットワークインタフェイスカードにより実現され得る。
【0031】
記憶部7は、各種のデータを記憶する機能部である。あくまで一例として、記憶部7は、サーバ装置1の内部、外部または補助のストレージにより実現される。例えば、記憶部7は、データ基盤上で公開される公開データ8と、StateDBに対応するデータストア9とを記憶する。なお、公開データ8およびデータストア9などの説明は、参照、生成または登録が実行される場面で併せて説明することとする。
【0032】
制御部10は、サーバ装置1の全体制御を行う機能部である。例えば、制御部10は、ハードウェアプロセッサにより実現され得る。
図6に示すように、制御部10は、MW(MiddleWare)実行部11を有する。なお、制御部10は、ハードワイヤードロジックなどにより実現されてもよい。
【0033】
MW実行部11は、上記のデータ基盤の機能を実現するミドルウェアを実行する処理部である。
図6に示すように、MW実行部11は、アクセス制御部13と、PF(PlatForm)実行部20と、監視部15とを有する。
【0034】
アクセス制御部13は、データ基盤上のデータに対するアクセス制御を行う処理部である。このようなアクセス制御は、一例として、データ基盤APIにより実現され得る。
【0035】
PF実行部20は、BCネットワークのプラットフォームを実現するソフトウェアを実行する処理部である。このようなソフトウェアが実行されることにより、BCネットワークのプラットフォームが構築される。PF実行部20は、
図6に示すように、トランザクションとそのデータへのアクセスを管理するスマートコントラクトのロジックが定義されたチェーンコードを実行するチェーンコード実行部30をさらに有する。
【0036】
監視部15は、データ基盤上のデータに対する不正アクセスを監視する処理部である。このような不正アクセスの監視は、一例として、監視プログラムを実行することにより実現され得る。
【0037】
図7を用いて、アクセス制御部13およびPF実行部20により実現されるアクセスログの保存機能を説明する。
図7は、アクセスログの保存の流れを示す模式図である。
図7には、データ基盤に構築されたBCネットワークに含まれるPeerノードと、データ基盤APIとが模式化されている。
【0038】
図7に示すように、データ基盤APIは、特定の時間帯の間に生成されたK個のアクセスログをバッチ化する(ステップS10)。例えば、同図の例で言えば、2022年12月11日の午前10時00分00秒から午前10時59分59秒までの1時間の間で生成されたアクセスログが一括でまとめられる。
【0039】
続いて、データ基盤APIは、ステップS10でバッチ化されたK個のアクセスログを引数とし、チェーンコードのログ書込関数の実行命令をPeer(Endorser)ノードへ送信する(ステップS11)。そして、Peer(Endorser)ノードは、チェーンコードのログ書込関数を実行する(ステップS12)。
【0040】
ここで、ログ書込関数は、K個のアクセスログの各々を特徴ベクトルへ変換してwrite setを生成する(ステップS13)。例えば、ログ書込関数は、ステップS10でバッチ化が実施された時間帯のタイムスタンプから当該時間帯を識別する識別情報を生成し、生成された識別情報と、K個の特徴ベクトルとを対応付けることにより、write setを生成する。
【0041】
その後、チェーンコードは、ステップS13で生成されたwrite setを処理結果としてPeer(Endorser)ノードへ返却する(ステップS14)。この処理結果を受け付けたPeer(Endorser)ノードは、ステップS13で生成されたwrite setに署名を実行してデータ基盤APIへ返却する(ステップS15)。
【0042】
続いて、データ基盤APIは、ステップS15でPeer(Endorser)ノードから返却された承認結果、すなわちEndorsementをOrdererノードへ送信する(ステップS16)。すると、Ordererノードは、Endorsementを順序付けしてブロックを生成する(ステップS17)。そして、Ordererノードは、ステップS17で生成されたブロックをPeer(Committer)ノードへ送信する(ステップS18)。
【0043】
その後、Peer(Committer)ノードは、ステップS18で送信されたブロックをBCに追加する(ステップS19A)。さらに、Peer(Committer)ノードは、ステップS18で送信されたwrite setをStateDBに追加する(ステップS19B)。
【0044】
次に、
図7に示すステップS13におけるログ書込関数の動作について説明する。
図8は、ログ書込関数の動作を示す模式図である。
図8に示すように、特定の時間帯でバッチ化されたK個のアクセスログを受け付けると、ログ書込関数は、バッチ化が実施された時間帯のタイムスタンプに対応するキーを採番する(ステップS132)。
【0045】
このとき、複数のアクセスログの間で記述内容が同一である場合、ログ書込関数は、同一の記述内容である複数のアクセスログを1つに集約する(ステップS134)。続いて、ログ書込関数は、K個のアクセスログの各々を特徴ベクトルへ変換する(ステップS135)。
【0046】
ここで、同一の記述内容である複数のアクセスログについては、複数のアクセスログのうち1つのアクセスログから変換された特徴ベクトルと、同一のアクセスログの個数との組合せにより数値表現される。例えば、
図8に示す例で言えば、特徴ベクトル[5,4,7,・・・,5,7]と、同一のアクセスログの個数「3」とを乗算記号「*」で接続する。
【0047】
その後、ログ書込関数は、ステップS132で採番されたキーと、ステップS135で変換された特徴ベクトルの集合とを関連付けることにより、write setを生成する(ステップS136)。
【0048】
さらに、
図8に示すステップS135における特徴ベクトルの変換をより詳細に説明する。
図9は、特徴ベクトルの変換の一例を示す模式図である。
図9には、アクセスログから23個の特徴量を含む特徴ベクトルへ変換される例が示されている。
図9に示すように、ログ書込関数は、アクセスログに含まれる「.」の個数「10」を特徴ベクトルの1つ目の特徴量として抽出する。さらに、ログ書込関数は、アクセスログで「%」が最初に出現する場所「0」を特徴ベクトルの2つ目の特徴量として抽出する。さらに、ログ書込関数は、アクセスログに含まれる「/」の個数「8」を特徴ベクトルの3つ目の特徴量として抽出する。同様にして23個の特徴量が抽出されることにより、特徴ベクトルが得られる。なお、
図9に示す特徴抽出は、あくまで一例に過ぎず、機械学習で実行される任意の特徴抽出が実行されてよい。
【0049】
次に、アクセスログをバッチ化する時間帯のサイズを切り替える場合におけるリアルタイム性およびI/O頻度を説明する。
図10は、リアルタイム性とI/O頻度の関係を示す図である。
図10に示すように、アクセスログをバッチ化する時間帯のサイズが短く設定するにつれてリアルタイム性が高まる一方で、キーの分離性能が低下するので、I/O頻度は高くなり、クエリ性能は低下する。一方、アクセスログをバッチ化する時間帯のサイズが長く設定するにつれてリアルタイム性が低下する一方で、キーの分離性能が向上するので、I/O頻度は低くなり、クエリ性能は向上する。
【0050】
次に、
図11を用いて、監視部15により実現される不正アクセス検知機能および確認依頼機能を説明する。
図11は、不正アクセス検知および確認依頼の流れを示す模式図である。
図11に示すように、アカウントAのユーザを装う第三者がクライアント端末3を介して公開データ8にアクセスすると(ステップS21)、データ基盤APIは、アクセスログを生成する(ステップS22)。
【0051】
このように生成されたアクセスログは、
図7に示す動作が実行されることにより、他のアクセスログとともにバッチ化された上でBCおよびStateDBに追加される(ステップS23)。
【0052】
これらステップS21からステップS23までの動作と独立して、監視プログラムは、一定時間ごとにログ解析のリクエストをチェーンコードの解析関数に送信する(ステップS24)。
【0053】
すると、チェーンコードの解析関数は、ログ取得用のクエリをStateDBに発行することにより、バッチ化されたアクセスログの集合に対応する特徴ベクトルの集合を読み出す(ステップS25)。そして、機械学習モデルにより異常候補ログが検知された場合、チェーンコードの解析関数は、当該異常候補ログを監視プログラムへ応答する(ステップS27)。
【0054】
その上で、チェーンコードの解析関数は、ステップS25で読みだされた特徴ベクトルの集合をログ解析用の機械学習モデルへ入力することにより、ログ解析を実行する(ステップS26)。
【0055】
あくまで一例として、上記のログ解析は、1つ以上の特徴ベクトルを入力として異常なアクセスログの候補である異常候補ログに対応する特徴ベクトルを出力する機械学習モデルにより実現されてよい。例えば、機械学習モデルは、ニューラルネットワークを始め、サポートベクタマシンや勾配ブースティング決定木などの任意の機械学習モデルにより実現されてよい。
【0056】
その後、監視プログラムは、ステップS27で応答された異常候補ログからアクセス元のユーザ、例えばアカウントAを識別する(ステップS28)。その上で、監視プログラムは、当該異常候補ログに該当するアクセスを行った否かを確認する確認依頼を、ステップS28で識別されたユーザ、すなわちアカウントAの正規のユーザにより使用されるクライアント端末3に、送信する(ステップS29)。
【0057】
次に、
図12を用いて、データ基盤APIにより実現される変更履歴照会機能および通報機能を説明する。
図12は、変更履歴照会および通報の流れを示す模式図である。
図12に示すように、
図11に示すステップS29の確認依頼を受けたユーザ、すなわちアカウントAの正規のユーザは、クライアント端末3を介してデータ基盤へログインする(ステップS31)。
【0058】
続いて、アカウントAの正規のユーザは、クライアント端末3を介して異常候補ログに対応する変更履歴をチェーンコードの照会関数へ問い合わせる(ステップS32)。これにより、アカウントAの正規のユーザは、異常候補ログに対応する変更履歴から不正な操作履歴の有無を確認できる。
【0059】
このとき、不正な操作履歴がある場合、アカウントAの正規のユーザは、クライアント端末3を介して不正な操作履歴をデータ基盤APIの通報機能へ通報する(ステップS33)。このような通報を受け付けた通報機能は、管理者端末5を介して不正な操作履歴をデータ基盤の管理者に通知したり、あるいは、クライアント端末3を介して不正な操作履歴を不正な操作が行われたデータを過去に閲覧したユーザ、例えばアカウントBのユーザなどに通知したりすることができる。
【0060】
次に、
図13を用いて、データ基盤APIにより実現される不正操作無効化機能およびアカウント初期化機能を説明する。
図13は、不正操作無効化およびアカウント初期化の流れを示す模式図である。
【0061】
図13に示すように、
図12に示すステップS33で通報を受けた管理者は、管理者端末5を介して不正な操作を当該不正な操作が行われる時点よりも前の状態のデータにロールバックする不正操作無効化の実行をチェーンコードの不正操作無効化関数へリクエストする(ステップS41)。
【0062】
その後、管理者は、管理者端末5を介して不正アクセスが検知されたアカウントAのアカウント情報を初期化する(ステップS42)。
【0063】
次に、アクセスログの保存処理のフローチャートを説明する。
図14は、保存処理の手順を示すフローチャートである。
図14に示すように、データ基盤APIは、特定の時間帯の間に生成されたK個のアクセスログをバッチ化する(ステップS10)。
【0064】
続いて、データ基盤APIは、ステップS10でバッチ化されたK個のアクセスログを引数とし、チェーンコードのログ書込関数の実行命令をPeer(Endorser)ノードへ送信する(ステップS11)。そして、Peer(Endorser)ノードは、チェーンコードのログ書込関数を実行する(ステップS12)。
【0065】
ここで、ログ書込関数は、K個のアクセスログの各々を特徴ベクトルへ変換してwrite setを生成する(ステップS13)。その後、チェーンコードは、ステップS13で生成されたwrite setを処理結果としてPeer(Endorser)ノードへ返却する(ステップS14)。この処理結果を受け付けたPeer(Endorser)ノードは、ステップS13で生成されたwrite setに署名を実行してデータ基盤APIへ返却する(ステップS15)。
【0066】
続いて、データ基盤APIは、ステップS15でPeer(Endorser)ノードから返却された承認結果、すなわちEndorsementをOrdererノードへ送信する(ステップS16)。すると、Ordererノードは、Endorsementを順序付けしてブロックを生成する(ステップS17)。そして、Ordererノードは、ステップS17で生成されたブロックをPeer(Committer)ノードへ送信する(ステップS18)。
【0067】
その後、Peer(Committer)ノードは、ステップS18で送信されたブロックをBCに追加する(ステップS19A)。さらに、Peer(Committer)ノードは、ステップS18で送信されたwrite setをStateDBに追加し(ステップS19B)、処理を終了する。
【0068】
次に、
図14に示すステップS13で実行されるwrite setの生成処理について説明する。
図15は、生成処理の手順を示すフローチャートである。
図15に示すように、特定の時間帯でバッチ化されたK個のアクセスログを受け付けると(ステップS131)、ログ書込関数は、バッチ化が実施された時間帯のタイムスタンプに対応するキーを採番する(ステップS132)。
【0069】
このとき、記述内容が同一である複数のアクセスログが存在する場合(ステップS133Yes)、ログ書込関数は、同一の記述内容である複数のアクセスログを1つに集約する(ステップS134)。続いて、ログ書込関数は、K個のアクセスログの各々を特徴ベクトルへ変換する(ステップS135)。
【0070】
その後、ログ書込関数は、ステップS132で採番されたキーと、ステップS135で変換された特徴ベクトルの集合とを関連付けることにより、write setを生成し(ステップS136)、処理を終了する。
【0071】
最後に、
図15に示すステップS135で実行される特徴ベクトルの変換処理について説明する。
図16は、変換処理の手順を示すフローチャートである。
図16に示すように、ログ書込関数は、記述内容が異なるアクセスログの数Mおよび特徴ベクトルのパラメータ(特徴量)の個数Nに対応する回数の分、下記のステップS1351および下記のステップS1352の処理を反復するループ処理1およびループ処理2を実行する。
【0072】
すなわち、ログ書込関数は、m個目のアクセスログから特徴ベクトルのn番目のパラメータをカウントする(ステップS1351)。そして、ログ書込関数は、m個目のアクセスログに対応する特徴ベクトルのn番目の要素にステップS1351でカウントされたパラメータの個数を追加する(ステップS1352)。
【0073】
このようなループ処理1およびループ処理2が反復されることにより、M個のアクセスログごとにN個のパラメータを持つ特徴ベクトルを生成できる。
【0074】
上述してきたように、本実施例に係るデータ管理機能は、データ基盤上のデータに対するアクセスログをBCネットワークに記録する際、アクセスログを特徴ベクトルへ変換してオリジナルのアクセスログの代わりに特徴ベクトルをStateDBに記録する。これにより、アクセスログの記述が数値表現へ変換されるので、1つのアクセスログあたりのデータサイズが削減される結果、StateDBのデータサイズを削減できる。したがって、本実施例に係るデータ管理機能によれば、ログ取得用のクエリの応答時間の短縮を実現できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散および統合して構成することができる。なお、各構成は、物理的な構成であってもよい。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
なお、上記のデータ管理プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にデータ管理プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体からデータ管理プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などにデータ管理プログラム170aを記憶させておく。このように記憶されたデータ管理プログラム170aをコンピュータ100にダウンロードさせた上で実行させるようにしてもよい。
(付記3)前記変換する処理は、前記時間帯で生成された複数のアクセスログの中に記述内容が同一である複数のアクセスログが存在する場合、前記複数のアクセスログのうち1つのアクセスログを特徴ベクトルに変換する処理を含み、
前記保存する処理は、前記時間帯を識別する識別情報に紐づけて、前記1つのアクセスログから変換された特徴ベクトルおよび記述内容が同一であるアクセスログの個数の組合せを保存する処理を含む、
ことを特徴とする付記2に記載のデータ管理プログラム。
(付記5)前記変換する処理は、前記ブロックチェーンネットワークのPeerノードで実行されるチェーンコードが実行するログ解析用の機械学習モデルが入力とする特徴ベクトルの形式と同一の形式で前記アクセスログを前記特徴ベクトルへ変換する処理を含む、
ことを特徴とする付記1に記載のデータ管理プログラム。
(付記8)前記変換する処理は、前記時間帯で生成された複数のアクセスログの中に記述内容が同一である複数のアクセスログが存在する場合、前記複数のアクセスログのうち1つのアクセスログを特徴ベクトルに変換する処理を含み、
前記保存する処理は、前記時間帯を識別する識別情報に紐づけて、前記1つのアクセスログから変換された特徴ベクトルおよび記述内容が同一であるアクセスログの個数の組合せを保存する処理を含む、
ことを特徴とする付記7に記載のデータ管理方法。
(付記10)前記変換する処理は、前記ブロックチェーンネットワークのPeerノードで実行されるチェーンコードが実行するログ解析用の機械学習モデルが入力とする特徴ベクトルの形式と同一の形式で前記アクセスログを前記特徴ベクトルへ変換する処理を含む、
ことを特徴とする付記6に記載のデータ管理方法。
(付記13)前記変換する処理は、前記時間帯で生成された複数のアクセスログの中に記述内容が同一である複数のアクセスログが存在する場合、前記複数のアクセスログのうち1つのアクセスログを特徴ベクトルに変換する処理を含み、
前記保存する処理は、前記時間帯を識別する識別情報に紐づけて、前記1つのアクセスログから変換された特徴ベクトルおよび記述内容が同一であるアクセスログの個数の組合せを保存する処理を含む、
ことを特徴とする付記12に記載のデータ管理装置。
(付記15)前記変換する処理は、前記ブロックチェーンネットワークのPeerノードで実行されるチェーンコードが実行するログ解析用の機械学習モデルが入力とする特徴ベクトルの形式と同一の形式で前記アクセスログを前記特徴ベクトルへ変換する処理を含む、
ことを特徴とする付記11に記載のデータ管理装置。