(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】分析装置、分析方法及び分析プログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20241209BHJP
【FI】
G06F21/55 320
(21)【出願番号】P 2024092364
(22)【出願日】2024-06-06
(62)【分割の表示】P 2022161785の分割
【原出願日】2021-03-31
【審査請求日】2024-06-06
(73)【特許権者】
【識別番号】399035766
【氏名又は名称】エヌ・ティ・ティ・コミュニケーションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】加藤 恭英
(72)【発明者】
【氏名】石野 衛
(72)【発明者】
【氏名】正地 徹
(72)【発明者】
【氏名】山内 守
(72)【発明者】
【氏名】中島 博行
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2002-082849(JP,A)
【文献】特開2017-033221(JP,A)
【文献】国際公開第2017/150003(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
端末から送信されたリクエストに含まれるURLから抽出されたクエリ文字列を復号した結果に基づきサーバにITインフラサービスを提供させるゲートウェイ装置から取得した前記ITインフラサービスのログであって、アプリケーション層のログである利用ログ及び前記サーバから取得したログであって、ネットワーク層のログであるSSH(Secure Shell)ログを、端末、サーバ及びホストをノードとし、ノード間におけるアクセスをエッジとするグラフに変換する変換部と、
前記変換部によって変換されたグラフから、前記ITインフラサービスの不正利用に関する所定の条件を満たす事象を検出する検出部と、
を有し、
前記検出部は、前記リクエストの状態と、前記サーバから取得した情報と、を基に前記条件を満たす事象を検出することを特徴とする分析装置。
【請求項2】
前記検出部は、所定のパターンのリクエストの数が所定の値を越えていることを検出することを特徴とする請求項1に記載の分析装置。
【請求項3】
前記検出部は、端末とサーバとの間に新たなPATHが生じたことを検出することを特徴とする請求項1に記載の分析装置。
【請求項4】
前記検出部は、端末のサーバへのログインに関する挙動のうち、所定の条件を満たす挙動を検出することを特徴とする請求項1に記載の分析装置。
【請求項5】
分析装置によって実行される分析方法であって、
端末から送信されたリクエストに含まれるURLから抽出されたクエリ文字列を復号した結果に基づきサーバにITインフラサービスを提供させるゲートウェイ装置から取得した前記ITインフラサービスのログであって、アプリケーション層のログである利用ログ及び前記サーバから取得したログであって、ネットワーク層のログであるSSH(Secure Shell)ログを、端末、サーバ及びホストをノードとし、ノード間におけるアクセスをエッジとするグラフに変換する変換工程と、
前記変換工程によって変換されたグラフから、前記ITインフラサービスの不正利用に関する所定の条件を満たす事象を検出する検出工程と、
を含み、
前記検出工程は、前記リクエストの状態と、前記サーバから取得した情報と、を基に前記条件を満たす事象を検出することを特徴とする分析方法。
【請求項6】
コンピュータを、請求項1から4のいずれか1項に記載の分析装置として機能させるための分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分析装置、分析方法及び分析プログラムに関する。
【背景技術】
【0002】
従来、API(Application Programming Interface)を介して提供されるITインフラサービスが知られている。また、APIを介して提供されるサービスにおいては、サービス利用者の端末から送信されたAPIリクエストを基に新たなリクエストを生成し、当該生成したリクエストを用いてリダイレクトを行うことを端末に要求するAPIの処理方法が用いられる場合がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術には、大規模なITインフラサービスにおける不正利用を検知することが困難な場合があるという問題がある。例えば、大規模なITインフラサービスを提供するためのネットワークに存在する多数のネットワーク機器及びサーバから、不正検知のためのログを収集することは、量的な観点から困難な場合がある。
【課題を解決するための手段】
【0005】
上述した課題を解決し、目的を達成するために、分析装置は、端末から送信されたリクエストに含まれるURLから抽出されたクエリ文字列を復号した結果に基づきサーバにITインフラサービスを提供させるゲートウェイ装置から取得した前記ITインフラサービスのログであって、アプリケーション層のログである利用ログ及び前記サーバから取得したログであって、ネットワーク層のログであるSSH(Secure Shell)ログを、端末、サーバ及びホストをノードとし、ノード間におけるアクセスをエッジとするグラフに変換する変換部と、前記変換部によって変換されたグラフから、前記ITインフラサービスの不正利用に関する所定の条件を満たす事象を検出する検出部と、を有し、前記検出部は、前記リクエストの状態と、前記サーバから取得した情報と、を基に前記条件を満たす事象を検出することを特徴とすることを特徴とする。
【発明の効果】
【0006】
本発明によれば、大規模なITインフラサービスにおける不正利用を検知することができる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、サービス提供システムの構成例を示す図である。
【
図2】
図2は、分析装置による分析方法を説明する図である。
【
図4】
図4は、グラフへの変換について説明する図である。
【
図6】
図6は、第1の実施形態に係る分析装置の処理の流れを示すフローチャートである。
【
図7】
図7は、分析プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る分析装置、分析方法及び分析プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0009】
[第1の実施形態の構成]
まず、
図1を用いて、分析装置を含むサービス提供システムの構成について説明する。
図1は、サービス提供システムの構成例を示す図である。
【0010】
図1に示すように、サービス提供システム1は、インターネットを利用してサービス利用者に様々なサービスを提供するためのシステムである。
【0011】
図1の例では、サービス利用者は端末10からAPIを実行し、サーバ30によるサービスの提供を受ける。例えば、端末10はスマートフォン又はパーソナルコンピュータである。
【0012】
サービス提供システム1は、ITインフラサービス、金融サービス、飲食サービスといった様々なサービスを提供することができる。例えば、ITインフラサービスは、利用者にネットワーク上のサーバ等を利用させるサービスである。また、例えば、金融サービスは、クレジットカードのオンラインでの決済を行うサービスである。また、例えば、飲食サービスは、飲食店における商品の注文をネットワーク経由で行うサービスである。
【0013】
まず、端末10は、利用するサービスの内容に応じたリクエスト(例えば、HTTPリクエスト)をインターネットに送信する。ここで、端末10によって送信されたリクエストはゲートウェイ装置20によって受信される。
【0014】
ゲートウェイ装置20は、受信したリクエストに含まれるURLからクエリ文字列を抽出し、当該抽出したクエリ文字列を復号する。そして、ゲートウェイ装置20は、復号したクエリ文字列を基に、端末10に対してリダイレクトを実行することを要求する。
【0015】
端末10は、ゲートウェイ装置20の要求に従ってリダイレクトを実行する。このとき、リダイレクトによって生じたリクエストはサーバ30に送信される。サーバ30は、受け取ったリクエストを基にサービスの提供に関する所定のアプリケーションを実行する。
【0016】
ここで、分析装置40は、ゲートウェイ装置20からサービス利用ログ(ITインフラサービスの利用ログ)を取得し、サーバ30からSSH(Secure Shell)ログを取得する。そして、分析装置40は、取得したログを用いて、サービスの不正利用の検知するための分析を行う。
【0017】
図2は、分析装置による分析方法を説明する図である。
図2に示すように、分析装置40は、ゲートウェイ装置20から取得したログをDB(データベース)化する。例えば、分析装置40は、ゲートウェイ装置20から取得したITインフラサービスの利用ログ及びサーバ30から取得したSSHログをグラフデータに変換し、DB化する。
【0018】
そして、分析装置40はDBを基にリスクを検出し、検出結果をサービス運用者の端末50に通知する。
【0019】
分析装置40は、サービスの利用ログとSSHログの相関解析によるリスクを検出することができる。ここで、サービスの利用ログはアプリケーション層のログである。また、SSHログはネットワーク層のログである。このため、分析装置40は、アプリケーション層の情報とネットワーク層の情報を組み合わせたセキュリティリスクの検出が可能になる。
【0020】
図3は、分析装置の構成例を示す図である。
図3に示すように、分析装置40は、通信部41、記憶部42及び制御部43を有する。
【0021】
通信部41は、ネットワークを介して、ゲートウェイ装置20等の装置との間でデータ通信を行う。例えば、通信部41はNIC(Network Interface Card)である。
【0022】
記憶部42は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置である。なお、記憶部42は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)等のデータを書き換え可能な半導体メモリであってもよい。
【0023】
記憶部42は、分析装置40で実行されるOS(Operating System)や各種プログラムを記憶する。記憶部42は、ログ情報422及び検出情報423を記憶する。ログ情報422は、DB化されたログであり、例えばグラフデータである。また、検出情報423は、不正利用の検出結果である。
【0024】
制御部43は、分析装置40全体を制御する。制御部43は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部43は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。
【0025】
また、制御部43は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部43は、変換部431、検出部432、加算部433及び通知部434を有する。
【0026】
変換部431は、端末10から送信されたAPIリクエストを解釈した結果に基づきサーバ30にITインフラサービスを提供させるゲートウェイ装置20のログを、所定の形式のデータに変換する。
【0027】
ゲートウェイ装置20は、URLから抽出したクエリ文字列を復号することにより、APIリクエストを解釈しているということができる。
【0028】
例えば、変換部431は、ゲートウェイ装置20から取得したサービス利用ログ及びサーバ30から取得したSSHログを、端末10、サーバ30及びAPIをノードとし、ノード間におけるアクセスをエッジとするグラフに変換する。
【0029】
図4は、グラフへの変換について説明する図である。変換部431は、取得したログを、「eu(end user)」、「cd(client device)」、「API/ホスト」の3種類のノードを持つグラフデータに変換する。ここで得られたグラフデータは、アプリケーション層の情報とネットワーク層の情報を含んでいるということができる。
【0030】
「eu」は端末10を使用してAPIを実行するサービス利用者に相当する。「cd」は端末10に相当する。「API/ホスト」はサービス提供システム1で実行可能なAPI(又はホスト)に相当する。また、ノード間のエッジはアクセスがあったことを意味している。
【0031】
また、ある1つのノードから他の1つのノードへ複数回のアクセスがあった場合、
図4に示すように、当該ノード間には複数のエッジが配置される。
【0032】
図5は、グラフデータの例を示す図である。一例として、変換部431は、取得したログを
図5のようなグラフデータに変換する。
【0033】
検出部432は、変換部431によって変換されたデータから、ITインフラサービスの不正利用に関する所定の条件を満たす事象を検出する。
【0034】
検出部432は、APIリクエストの成否とHTTPステータスコードが矛盾している事象を検出することができる。なお、APIリクエストの成否はサービス利用ログから取得されたものであり、HTTPステータスコードはSSHログから取得されたものであってもよい。
【0035】
例えば、検出部432は、端末10からのAPIリクエストが失敗していて、かつHTTPステータスコードが400番台(エラー)である事象を検出する。
【0036】
また、例えば、検出部432は、端末10からのAPIリクエストのuserがnot setであって、HTTPステータスコードが200番台(成功)である事象を検出する。
【0037】
検出部432は、所定のパターンのAPIリクエストの数が所定の値を越えていることを検出することができる。
【0038】
例えば、検出部432は、APIリクエストのURIの特定のパターンの単位時間(例えば10分間)あたりの発生数の平均が過去の単位時間当たりの発生数の平均を越えたことを検出する。
【0039】
また、例えば、検出部432は、所定のユーザによって発行される特定のURIが増大したことを検出する。
【0040】
また、検出部432は、端末10とサーバ30との間に新たなPATH(端末10とサーバ30との間の経路)が生じたことを検出する。
【0041】
また、例えば、
図5の「eu」ノード101は、複数の「cd」ノードにアクセスしているため、検出部432は「eu」ノード101をリスクとして検出する。また、例えば、
図5の「API/ホスト」ノード201は、複数の「cd」ノードからアクセスされているため、検出部432は「API/ホスト」ノード201をリスクとして検出する。
【0042】
また、検出部432は、「cd」ノード301、302、303及び304についても、リスクとして検出されたノード101及びノード201との間にアクセスが存在するため、リスクとして検出する。
【0043】
検出部432は、端末10のサーバ30へのログインに関する挙動のうち、所定の条件を満たす挙動を検出することができる。
【0044】
例えば、検出部432は、ログインの失敗を検出する。また、例えば、検出部432は、ログイン後に複数のサーバ30を経由したアクセスがあったこと(多段SSH(Secure Shell))を検出する。
【0045】
加算部433は、検出部432によって検出された事象をリスクとみなし、関連するノードにポイントを加算する。このポイントが大きいほど不正利用の可能性が高くなる。
【0046】
通知部434は、検出結果を運用者に通知する。例えば、加算部433によって加算されたポイントが一定値を越えたノードに関する情報を通知する。
【0047】
[第1の実施形態の処理]
図6は、第1の実施形態に係る分析装置の処理の流れを示すフローチャートである。
図6に示すように、まず、分析装置40は、ゲートウェイ装置20等から取得したログをグラフデータに変換する(ステップS101)。
【0048】
次に、分析装置40は、グラフデータからリスクを検出する(ステップS102)。そして、分析装置40は、リスクに応じてグラフデータのノードにポイントを加算する(ステップS103)。
【0049】
そして、分析装置40は、検出結果を運用者に通知する(ステップS104)。
【0050】
[第1の実施形態の効果]
これまで説明してきたように、変換部431は、端末10から送信されたAPIリクエストを解釈した結果に基づきサーバ30にITインフラサービスを提供させるゲートウェイ装置20のログを、所定の形式のデータに変換する。検出部432は、変換部431によって変換されたデータから、ITインフラサービスの不正利用に関する所定の条件を満たす事象を検出する。
【0051】
分析装置40は、ゲートウェイ装置20のログを参照することで、通信に関する情報とアプリケーションの利用に関する情報の両方を得ることができる。このため、本実施形態によれば、大規模なITインフラサービスにおける不正利用を検知することができる。
【0052】
変換部431は、ログを、端末10、サーバ30及びAPIをノードとし、ノード間におけるアクセスをエッジとするグラフに変換する。これにより、エッジ数の計測といった既存のグラフ分析手法を用いて検出を行うことができる。
【0053】
検出部432は、APIリクエストの成否とHTTPステータスコードが矛盾している事象を検出する。これにより、不正なAPIの実行を検出することができる。
【0054】
検出部432は、所定のパターンのAPIリクエストの数が所定の値を越えていることを検出する。また、検出部432は、端末10とサーバ30との間に新たなPATHが生じたことを検出する。これにより、APIリクエストに関して通常とは異なる挙動を検出することができる。
【0055】
検出部432は、端末10のサーバ30へのログインに関する挙動のうち、所定の条件を満たす挙動を検出する。これにより、不正なログインを検出することができる。
【0056】
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。なお、プログラムは、CPUだけでなく、GPU等の他のプロセッサによって実行されてもよい。
【0057】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0058】
[プログラム]
一実施形態として、分析装置40は、パッケージソフトウェアやオンラインソフトウェアとして上記の分析処理を実行する分析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の分析プログラムを情報処理装置に実行させることにより、情報処理装置を分析装置40として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
【0059】
図7は、分析プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
【0060】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0061】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、分析装置40の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、分析装置40における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0062】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した実施形態の処理を実行する。
【0063】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0064】
1 サービス提供システム
10、50 端末
20 ゲートウェイ装置
30 サーバ
40 分析装置
41 通信部
42 記憶部
43 制御部
422 ログ情報
423 検出情報
431 変換部
432 検出部
433 加算部
434 通知部