(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023129069
(43)【公開日】2023-09-14
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20230907BHJP
【FI】
G06F21/55
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022033839
(22)【出願日】2022-03-04
(11)【特許番号】
(45)【特許公報発行日】2023-06-16
(71)【出願人】
【識別番号】519182659
【氏名又は名称】MONET Technologies株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】森 権次郎
(57)【要約】 (修正有)
【課題】APIキーの適切を利用を管理する情報処理装置、方法及びプログラムを提供する。
【解決手段】情報処理装置は、グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報をグローバルIPアドレス毎に記憶する記憶部と、利用履歴情報に基づき、APIキーを不正利用していないと判定された第1サーバ装置によるAPIキーの利用回数である第1利用回数情報及び第2グローバルIPアドレスによって識別され第1サーバ装置が利用するAPIキーを利用する第2サーバ装置によるAPIキーの利用回数である第2利用回数情報を取得する取得部と、第1利用回数と第2利用回数との比較に基づき、第2サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出する算出部と、算出されたスコアが所定の閾値を超える場合に、第2サーバ装置がAPIキーを不正利用していると判定する判定部と、を備える。
【選択図】
図3
【特許請求の範囲】
【請求項1】
グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報を前記グローバルIPアドレスごとに記憶する記憶部と、
前記利用履歴情報に基づいて、前記APIキーを不正利用していないと判定されたサーバ装置である第1サーバ装置による前記APIキーの利用回数である第1利用回数を示す第1利用回数情報、および、判定対象のサーバ装置であって、前記第1サーバ装置を識別する第1グローバルIPアドレスと異なる第2グローバルIPアドレスによって識別され前記第1サーバ装置が利用する前記APIキーを利用する第2サーバ装置による前記APIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する取得部と、
前記第1利用回数と前記第2利用回数との比較に基づいて、前記第2サーバ装置が前記APIキーを不正利用しているか否かを示すスコアを算出する算出部と、
前記算出部によって算出されたスコアが所定の閾値を超える場合に、前記第2サーバ装置が前記APIキーを不正利用していると判定し、前記算出部によって算出されたスコアが前記所定の閾値以下である場合に、前記第2サーバ装置が前記APIキーを不正利用していないと判定する判定部と、
を備える情報処理装置。
【請求項2】
前記算出部は、
前記第1利用回数として、所定期間における前記第1サーバ装置による前記APIキーの利用回数と、前記第2利用回数として、前記所定期間における前記第2サーバ装置による前記APIキーの利用回数との比較に基づいて、前記スコアを算出する、
請求項1に記載の情報処理装置。
【請求項3】
前記算出部は、
前記第1利用回数に対する前記第2利用回数の割合が所定の割合以下である場合の前記スコアよりも、前記第1利用回数に対する前記第2利用回数の割合が所定の割合を超える場合の前記スコアを高く算出する、
請求項1または2に記載の情報処理装置。
【請求項4】
前記記憶部は、
前記利用履歴情報として、前記グローバルIPアドレスと対応するFQDN(Fully Qualified Domain Name)に関するドメイン名情報を記憶し、
前記取得部は、
前記第1グローバルIPアドレスと対応するFQDNに関する第1ドメイン名情報、および、前記第2グローバルIPアドレスと対応するFQDNに関する第2ドメイン名情報を取得し、
前記算出部は、
前記第1ドメイン名情報と前記第2ドメイン名情報との比較に基づいて、前記スコアを算出する、
請求項1~3のいずれか1つに記載の情報処理装置。
【請求項5】
前記算出部は、
前記第1グローバルIPアドレスと対応するFQDNと、前記第2グローバルIPアドレスと対応するFQDNとが同一である場合の前記スコアよりも、前記第1グローバルIPアドレスと対応するFQDNと、前記第2グローバルIPアドレスと対応するFQDNとが異なる場合の前記スコアを高く算出する、
請求項4に記載の情報処理装置。
【請求項6】
前記判定部によって前記第2サーバ装置が前記APIキーを不正利用していると判定された場合、前記第1サーバ装置の管理者に対して前記APIキーの不正利用が検出されたことを通知する通知部をさらに備える、
請求項1~5のいずれか1つに記載の情報処理装置。
【請求項7】
コンピュータが実行する情報処理方法であって、
グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報を前記グローバルIPアドレスごとに記憶部に記憶する記憶工程と、
前記利用履歴情報に基づいて、前記APIキーを不正利用していないと判定されたサーバ装置である第1サーバ装置による前記APIキーの利用回数である第1利用回数を示す第1利用回数情報、および、判定対象のサーバ装置であって、前記第1サーバ装置を識別する第1グローバルIPアドレスと異なる第2グローバルIPアドレスによって識別され前記第1サーバ装置が利用する前記APIキーを利用する第2サーバ装置による前記APIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する取得工程と、
前記第1利用回数と前記第2利用回数との比較に基づいて、前記第2サーバ装置が前記APIキーを不正利用しているか否かを示すスコアを算出する算出工程と、
前記算出工程によって算出されたスコアが所定の閾値を超える場合に、前記第2サーバ装置が前記APIキーを不正利用していると判定し、前記算出工程によって算出されたスコアが前記所定の閾値以下である場合に、前記第2サーバ装置が前記APIキーを不正利用していないと判定する判定工程と、
を含む情報処理方法。
【請求項8】
グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報を前記グローバルIPアドレスごとに記憶部に記憶する記憶手順と、
前記利用履歴情報に基づいて、前記APIキーを不正利用していないと判定されたサーバ装置である第1サーバ装置による前記APIキーの利用回数である第1利用回数を示す第1利用回数情報、および、判定対象のサーバ装置であって、前記第1サーバ装置を識別する第1グローバルIPアドレスと異なる第2グローバルIPアドレスによって識別され前記第1サーバ装置が利用する前記APIキーを利用する第2サーバ装置による前記APIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する取得手順と、
前記第1利用回数と前記第2利用回数との比較に基づいて、前記第2サーバ装置が前記APIキーを不正利用しているか否かを示すスコアを算出する算出手順と、
前記算出手順によって算出されたスコアが所定の閾値を超える場合に、前記第2サーバ装置が前記APIキーを不正利用していると判定し、前記算出手順によって算出されたスコアが前記所定の閾値以下である場合に、前記第2サーバ装置が前記APIキーを不正利用していないと判定する判定手順と、
をコンピュータに実行させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
従来、不正行為からコンピュータ機器やデータを保護するための技術が知られている。例えば、端末装置は、パケットを送信する場合に、パケットの送信先のホスト名からIPアドレスへの名前解決をDNSサーバに要求する。DNSサーバは、端末装置からの要求に応じて、ホスト名からIPアドレスへの名前解決を試みる。そして、DNSサーバは、名前解決ができない場合、または、名前解決結果が無効なIPアドレスである場合、名前解決結果に関する情報を端末装置に通知する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術では、DNSサーバは、名前解決ができない場合、または、名前解決結果が無効なIPアドレスである場合、名前解決結果に関する情報を端末装置に通知するにすぎない。したがって、上記の従来技術では、APIキーが適切に利用されているかどうかを管理可能とすることができるとは限らない。
【0005】
本開示は、APIキーが適切に利用されているかどうかを管理可能とすることができる情報処理装置、情報処理方法および情報処理プログラムを提供する。
【課題を解決するための手段】
【0006】
実施形態に係る情報処理装置は、グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報を前記グローバルIPアドレスごとに記憶する記憶部と、前記利用履歴情報に基づいて、前記APIキーを不正利用していないと判定されたサーバ装置である第1サーバ装置による前記APIキーの利用回数である第1利用回数を示す第1利用回数情報、および、判定対象のサーバ装置であって、前記第1サーバ装置を識別する第1グローバルIPアドレスと異なる第2グローバルIPアドレスによって識別され前記第1サーバ装置が利用する前記APIキーを利用する第2サーバ装置による前記APIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する取得部と、前記第1利用回数と前記第2利用回数との比較に基づいて、前記第2サーバ装置が前記APIキーを不正利用しているか否かを示すスコアを算出する算出部と、前記算出部によって算出されたスコアが所定の閾値を超える場合に、前記第2サーバ装置が前記APIキーを不正利用していると判定し、前記算出部によって算出されたスコアが前記所定の閾値以下である場合に、前記第2サーバ装置が前記APIキーを不正利用していないと判定する判定部と、を備える。
【図面の簡単な説明】
【0007】
【
図1】
図1は、実施形態に係る情報処理システムの構成例を示す図である。
【
図2】
図2は、APIキーの不正利用の問題点について説明するための図である。
【
図3】
図3は、実施形態に係る情報処理装置の構成例を示す図である。
【
図4】
図4は、実施形態に係る利用履歴情報記憶部の一例を示す図である。
【
図5】
図5は、実施形態に係る正常IPセット情報記憶部の一例を示す図である。
【
図6】
図6は、実施形態に係る不明IPセット情報記憶部の一例を示す図である。
【
図7】
図7は、実施形態に係るスコアリング条件記憶部の一例を示す図である。
【
図8】
図8は、実施形態に係る情報処理手順を示すフローチャートである。
【
図9】
図9は、情報処理装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0008】
以下に、本願に係る情報処理装置、情報処理方法及び情報処理プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る情報処理装置、情報処理方法及び情報処理プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0009】
(実施形態)
〔1.はじめに〕
近年、API(Application Programming Interface)を提供しているサービスなどにおいて、APIキーを顧客ごとに提供し、APIキー情報が正しいことを確認して、APIを実行させるビジネスモデルが増加している。ここで、APIキーを利用する顧客にとっては、APIキーの流出や、APIキーの不正利用は、懸念事項である。ところが従来、APIキーの不正利用に気づくには、顧客自らがAPIキーの利用状況を監視する必要があったため、顧客の負担となっていた。そこで、APIの提供者側が、APIキーの不正利用を検出し、検出された不正利用の情報を顧客へ提供する技術が望まれている。これにより、APIの提供者としてのサービス品質の向上、および、顧客のサービス満足度の向上に繋がると思われる。
【0010】
そこで、本実施形態は、次の(1)~(5)の処理で構成される。(1)APIの提供者が、顧客に対してAPIキーを提供する。(2)顧客は、APIキーを顧客のサーバ装置に設定して、APIを実行するプログラムを実装する。(3)情報処理装置は、APIの提供者によって管理される。情報処理装置は、APIキーを用いてAPIが実行された場合、接続元のサーバ装置のグローバルIPアドレスとAPIキーを対応付けたうえで、APIキーの利用履歴を記録することで、APIキーの利用回数をカウントする。(4)情報処理装置は、接続元のサーバ装置のグローバルIPアドレスを逆引きし、FQDN(Fully Qualified Domain Name)を得られた場合はFQDNに関する情報も付帯させたうえで、APIキーの利用履歴を記録する。(5)情報処理装置は、接続元のサーバ装置のグローバルIPアドレスやFQDNが異なりAPIキーが同一の通信があった場合や、APIキーの利用回数の傾向が従来と著しく異なる場合、APIキーの流出や不正利用(以下、APIキーの不正利用ともいう)を疑うようアラートが上がるようにする。具体的には、情報処理装置は、接続元のサーバ装置のグローバルIPアドレスやFQDNが異なりAPIキーが同一の通信があった場合や、APIキーの利用回数の傾向が従来と著しく異なる場合に対応するスコアを算出し、算出されたスコアが所定の閾値を超える場合、APIキーが不正利用されたと判定する。
【0011】
これにより、情報処理装置は、APIキーの不正利用を検知することを可能にすることができる。また、情報処理装置は、接続元のサーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出することにより、接続元のサーバ装置がAPIキーを正常に利用しているか否かについても管理することを可能にすることができる。したがって、情報処理装置は、APIキーが適切に利用されているかどうかを管理可能とすることができる。
【0012】
〔2.情報処理システムの構成例〕
図1は、実施形態に係る情報処理システム1の構成例を示す図である。情報処理システム1には、端末装置10と、サーバ装置20と、情報処理装置100とが含まれてよい。端末装置10と、サーバ装置20と、情報処理装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続されてよい。なお、情報処理システム1には、任意の数の端末装置10と任意の数のサーバ装置20と任意の数の情報処理装置100とが含まれてもよい。
【0013】
端末装置10は、サーバ装置20が提供する第1のサービスであって、情報処理装置100が提供するAPIによって利用可能な第2のサービスを組み込んだ第1のサービスの利用者によって利用されるコンピュータである。端末装置10は、例えば、スマートフォンや、タブレット型端末や、PC(Personal Computer)や、ノート型PCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。また、端末装置10は、第2のサービスの利用に関する要求情報をサーバ装置20に対して送信する。
【0014】
サーバ装置20は、情報処理装置100が提供するAPIによって利用可能な第2のサービスを組み込んだ第1のサービスを提供するサーバ装置である。サーバ装置20は、情報処理装置100が提供するAPIを実行するプログラムを実装する。サーバ装置20は、APIの提供者からあらかじめ提供されたAPIキーを用いて、情報処理装置100のAPIを実行する。APIキーは、事業者ごとに発行される。サーバ装置20は、第1のサービスを提供する事業者によって管理される。ここで、第1のサービスを提供する事業者は、情報処理装置100が提供するAPIを利用する顧客でもある。例えば、サーバ装置20は、第2のサービスとして、情報処理装置100が提供する決済APIによって利用可能な決済サービスを組み込んだ第1のサービスを提供する。また、サーバ装置20は、第2のサービスとして、情報処理装置100が提供するチケットAPIによって利用可能なチケットの発行サービスを組み込んだ第1のサービスを提供する。また、サーバ装置20は、第2のサービスとして、情報処理装置100が提供する乗車予約APIによって利用可能なオンデマンドバスの乗車予約サービスを組み込んだ第1のサービスを提供する。また、サーバ装置20は、第2のサービスとして、情報処理装置100が提供するエンドユーザー管理APIによって利用可能なエンドユーザーの管理サービスを組み込んだ第1のサービスを提供する。
【0015】
また、サーバ装置20は、端末装置10から第2のサービスの利用に関する要求情報を受信した場合、受信した要求情報に応じて、APIキーとともに、APIの実行に関する要求情報を情報処理装置100に対して送信する。また、サーバ装置20は、APIの実行結果に関する応答情報を情報処理装置100から受信する。
【0016】
情報処理装置100は、APIおよびAPIによって利用可能な第2のサービスを提供するサーバ装置である。情報処理装置100は、APIの提供者によって管理される。例えば、情報処理装置100は、決済API、および、決済APIによって利用可能な決済サービスを提供する。また、情報処理装置100は、チケットAPI、および、チケットAPIによって利用可能なチケットの発行サービスを提供する。また、情報処理装置100は、乗車予約API、および、乗車予約APIによって利用可能なオンデマンドバスの乗車予約サービスを提供する。また、情報処理装置100は、エンドユーザー管理API、および、エンドユーザー管理APIによって利用可能なエンドユーザーの管理サービスを提供する。
【0017】
また、情報処理装置100は、APIキーとともに、APIの実行に関する要求情報をサーバ装置20から受信する。情報処理装置100は、要求情報を受信した場合、APIキーが正しければ、受信した要求情報に応じてAPIを実行する。情報処理装置100は、APIを実行した場合、APIの実行結果に関する応答情報をサーバ装置20に対して送信する。また、情報処理装置100は、上述した(3)~(5)の処理を実行する。
【0018】
図2は、APIキーの不正利用の問題点について説明するための図である。
図2に示す端末装置10は、A社によって提供されるサービス(
図2では、A社サービスと記載する)の利用者によって使用される。A社サービスは、上述した第1のサービスに相当する。また、サーバ装置20-1は、A社サービスを提供するサーバ装置(
図2では、A社サーバと記載する)である。サーバ装置20-1は、上述したサーバ装置20に相当する。また、サーバ装置20-2は、APIの提供者がA社専用に発行したAPIキー(
図2では、A社専用APIキー(ABCDEFG)と記載する)を不正に利用するサーバ装置(
図2では、不正アクセスサーバと記載する)である。
【0019】
図2では、端末装置10は、利用者の操作に従って、サーバ装置20-1にアクセスする。具体的には、端末装置10は、上述した第2のサービスの利用に関する要求情報をサーバ装置20-1に対して送信する。サーバ装置20-1は、端末装置10から要求情報を受信した場合、受信した要求情報に応じて、A社専用APIキー(ABCDEFG)とともに、APIの実行に関する要求情報を情報処理装置100に対して送信する。情報処理装置100は、要求情報を受信した場合、受信したA社専用APIキー(ABCDEFG)とあらかじめA社に対して提供したA社専用APIキー(ABCDEFG)が一致するか否かを判定する。
図2では、情報処理装置100は、受信したA社専用APIキー(ABCDEFG)とあらかじめA社に対して提供したA社専用APIキー(ABCDEFG)が一致すると判定し、APIを実行する。情報処理装置100は、APIを実行した場合、APIの実行結果に関する応答情報をサーバ装置20-1に対して送信する。情報処理装置100は、応答情報をサーバ装置20-1に対して送信した場合、APIの利用料金をA社に対して課金する。
【0020】
また、
図2では、サーバ装置20-2は、例えば、A社専用APIキー(ABCDEFG)を不正に入手する。サーバ装置20-2は、A社専用APIキー(ABCDEFG)とともに、APIの実行に関する要求情報を情報処理装置100に対して送信する。情報処理装置100は、要求情報を受信した場合、受信したA社専用APIキー(ABCDEFG)とあらかじめA社に対して提供したA社専用APIキー(ABCDEFG)が一致するか否かを判定する。
図2では、情報処理装置100は、受信したA社専用APIキー(ABCDEFG)とあらかじめA社に対して提供したA社専用APIキー(ABCDEFG)が一致すると判定し、APIを実行する。情報処理装置100は、APIを実行した場合、APIの実行結果に関する応答情報をサーバ装置20-2に対して送信する。情報処理装置100は、応答情報をサーバ装置20-2に対して送信した場合、APIの利用料金をA社に対して課金する。
【0021】
上述したように、A社とは関係のない第三者がA社専用APIキーを不正に入手し、不正アクセスサーバによってA社専用APIキーが不正に利用された場合であっても、不正アクセスサーバによるAPIの利用料金がA社に対して課金されてしまうという問題がある。このような問題を解決するため、APIの提供者側が、APIキーの不正利用を検出し、検出された不正利用の情報を顧客へ提供する技術が望まれている。
【0022】
〔3.情報処理装置の構成例〕
図3は、実施形態に係る情報処理装置100の構成例を示す図である。情報処理装置100は、通信部110と、記憶部120と、制御部130とを有してよい。なお、情報処理装置100は、情報処理装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示させるための表示部(例えば、液晶ディスプレイ等)を有してもよい。
【0023】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワークと有線または無線で接続され、例えば、サーバ装置20や端末装置10との間で情報の送受信を行う。
【0024】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。具体的には、記憶部120は、
図3に示すように、利用履歴情報記憶部121と、正常IPセット情報記憶部122と、不明IPセット情報記憶部123と、スコアリング条件記憶部124とを有する。また、記憶部120は、上記に限らず、種々の情報を記憶してもよい。
【0025】
(利用履歴情報記憶部121)
図4は、実施形態に係る利用履歴情報記憶部121の一例を示す図である。利用履歴情報記憶部121は、サーバ装置によるAPIキーの利用履歴に関する各種の情報を記憶する。
図4に示す例では、利用履歴情報記憶部121は、「利用日時」、「APIキー」、「グローバルIP」といった項目を有する。「利用日時」は、サーバ装置によるAPIキーの利用日時を示す。「APIキー」は、サーバ装置によって利用されたAPIキーを識別する識別情報を示す。「グローバルIP」は、サーバ装置を識別するグローバルIPアドレスを示す。
図4に示すように、利用履歴情報記憶部121は、グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報をグローバルIPアドレスごとに記憶する。なお、図示は省略するが、利用履歴情報記憶部121は、利用履歴情報として、グローバルIPアドレスと対応するFQDN(Fully Qualified Domain Name)に関するドメイン名情報を記憶してもよい。
【0026】
(正常IPセット情報記憶部122)
図5は、実施形態に係る正常IPセット情報記憶部122の一例を示す図である。正常IPセット情報記憶部122は、情報処理装置100によってAPIキーを不正利用していない(つまり、APIキーを正常に利用している)と判定されたサーバ装置(以下、「正常サーバ装置」ともいう)に関する各種の情報を記憶する。
【0027】
図5に示す例では、正常IPセット情報記憶部122は、「APIキー」、「グローバルIP」、「逆引きFQDN」、「利用回数(直近1週間)」といった項目を有する。「APIキー」は、正常サーバ装置によって利用されたAPIキーを識別する識別情報を示す。「グローバルIP」は、正常サーバ装置を識別するグローバルIPアドレスを示す。「逆引きFQDN」は、グローバルIPアドレスと対応するFQDNに関するドメイン名情報を示す。
図5に示す例では、グローバルIPアドレスと対応するFQDNが存在しないことを示す。「利用回数(直近1週間)」は、直近1週間における正常サーバ装置によるAPIキーの利用回数を示す。
【0028】
(不明IPセット情報記憶部123)
図6は、実施形態に係る不明IPセット情報記憶部123の一例を示す図である。不明IPセット情報記憶部123は、情報処理装置100によってAPIキーを不正利用していないと判定されていない(つまり、APIキーを正常に利用しているか否かが不明な)サーバ装置(以下、「不明サーバ装置」ともいう)に関する各種の情報を記憶する。言い換えると、不明サーバ装置は、情報処理装置100によってAPIキーを不正利用していないか否か(つまり、APIキーを正常に利用しているか否か)の判定が行われている最中のサーバ装置である。すなわち、不明サーバ装置は、情報処理装置100による判定対象のサーバ装置であって、正常サーバ装置を識別するグローバルIPアドレスと異なるグローバルIPアドレスによって識別され正常サーバ装置が利用するAPIキーを利用するサーバ装置である。
【0029】
図6に示す例では、不明IPセット情報記憶部123は、「APIキー」、「グローバルIP」、「逆引きFQDN」、「利用回数(直近1週間)」といった項目を有する。「APIキー」は、不明サーバ装置によって利用されたAPIキーを識別する識別情報を示す。「グローバルIP」は、不明サーバ装置を識別するグローバルIPアドレスを示す。「逆引きFQDN」は、グローバルIPアドレスと対応するFQDNに関するドメイン名情報を示す。
図6に示す例では、グローバルIPアドレスと対応するFQDNが存在しないことを示す。「利用回数(直近1週間)」は、直近1週間における不明サーバ装置によるAPIキーの利用回数を示す。
【0030】
(スコアリング条件記憶部124)
図7は、実施形態に係るスコアリング条件記憶部124の一例を示す図である。スコアリング条件記憶部124は、第2サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出するための条件であるスコアリング条件に関する各種の情報を記憶する。
図7に示す例では、スコアリング条件記憶部124は、「No.」、「スコアリング条件」、「点数」といった項目を有する。「No.」は、スコアリング条件を識別する識別情報を示す。「スコアリング条件」は、第2サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出するための条件を示す。「点数」は、第2サーバ装置がスコアリング条件を満たす場合に第2サーバ装置に対して付与される点数を示す。
【0031】
(制御部130)
図3の説明に戻る。制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、情報処理装置100内部の記憶装置に記憶されている各種プログラム(情報処理プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
【0032】
制御部130は、取得部131と、算出部132と、判定部133と、通知部134とを機能部として有し、以下に説明する情報処理の作用を実現または実行する。なお、制御部130の内部構成は、
図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、各機能部は、制御部130の機能を示したものであり、必ずしも物理的に区別されるものでなくともよい。
【0033】
(取得部131)
取得部131は、グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報をグローバルIPアドレスごとに取得する。取得部131は、利用履歴情報を取得した場合、取得した利用履歴情報をグローバルIPアドレスごとに利用履歴情報記憶部121に格納する。また、取得部131は、グローバルIPアドレスを逆引きして、グローバルIPアドレスと対応するFQDNを取得する。例えば、取得部131は、nslookup等の公知技術を用いて、グローバルIPアドレスと対応するFQDNを取得する。取得部131は、グローバルIPアドレスと対応するFQDNを取得した場合、グローバルIPアドレスと対応するFQDNをグローバルIPアドレスと対応付けて利用履歴情報記憶部121に格納する。なお、取得部131は、グローバルIPアドレスを逆引きして、グローバルIPアドレスと対応するFQDNを取得しなかった場合、グローバルIPアドレスと対応するFQDNが存在しないことを示す情報をグローバルIPアドレスと対応付けて利用履歴情報記憶部121に格納する。
【0034】
取得部131は、利用履歴情報に基づいて、正常サーバ装置によるAPIキーの利用回数を示す正常利用回数情報を取得する。具体的には、取得部131は、正常IPセット情報記憶部122を参照して、所定のAPIキーと紐づくグローバルIPアドレスを取得する。例えば、取得部131は、
図5に示す正常IPセット情報記憶部122を参照して、「ABCDEFG」によって示されるAPIキーと紐づく「192.0.2.101」によって示されるグローバルIPアドレスを取得する。
【0035】
続いて、取得部131は、グローバルIPアドレスを取得した場合、利用履歴情報記憶部121を参照して、取得されたグローバルIPアドレスによって識別される正常サーバ装置の所定期間における利用履歴情報を取得する。例えば、取得部131は、
図4に示す利用履歴情報記憶部121を参照して、「192.0.2.101」によって示されるグローバルIPアドレスによって識別される正常サーバ装置の直近1週間における利用履歴情報を取得する。
【0036】
続いて、取得部131は、所定期間における利用履歴情報を取得した場合、取得された利用履歴情報に基づいて、所定期間における正常サーバ装置によるAPIキーの利用回数を示す第1利用回数情報を取得する。例えば、取得部131は、所定期間における利用履歴情報に基づいて、所定期間における正常サーバ装置の利用履歴のレコードの数を算出する。例えば、取得部131は、直近1週間における「192.0.2.101」によって示されるグローバルIPアドレスによって識別される正常サーバ装置のレコードの数を「73」と算出する。続いて、取得部131は、算出したレコードの数を示す情報を所定期間における正常サーバ装置によるAPIキーの利用回数を示す第1利用回数情報として取得する。例えば、取得部131は、算出したレコードの数である「73」を示す情報を直近1週間における「192.0.2.101」によって示されるグローバルIPアドレスによって識別される正常サーバ装置によるAPIキーの利用回数を示す第1利用回数情報として取得する。
【0037】
また、取得部131は、利用履歴情報に基づいて、不明サーバ装置によるAPIキーの利用回数を示す第2利用回数情報を取得する。具体的には、取得部131は、不明IPセット情報記憶部123を参照して、所定のAPIキーと紐づくグローバルIPアドレスを取得する。例えば、取得部131は、
図6に示す不明IPセット情報記憶部123を参照して、「ABCDEFG」によって示されるAPIキーと紐づく「192.0.2.110」によって示されるグローバルIPアドレスを取得する。また、取得部131は、「ABCDEFG」によって示されるAPIキーと紐づく「198.51.100.52」によって示されるグローバルIPアドレスを取得する。
【0038】
続いて、取得部131は、グローバルIPアドレスを取得した場合、利用履歴情報記憶部121を参照して、取得されたグローバルIPアドレスによって識別される不明サーバ装置の所定期間における利用履歴情報を取得する。例えば、取得部131は、
図4に示す利用履歴情報記憶部121を参照して、「192.0.2.110」によって示されるグローバルIPアドレスによって識別される不明サーバ装置の直近1週間における利用履歴情報を取得する。また、取得部131は、「198.51.100.52」によって示されるグローバルIPアドレスによって識別される不明サーバ装置の直近1週間における利用履歴情報を取得する。
【0039】
続いて、取得部131は、所定期間における利用履歴情報を取得した場合、取得された利用履歴情報に基づいて、所定期間における不明サーバ装置によるAPIキーの利用回数を示す第2利用回数情報を取得する。例えば、取得部131は、所定期間における利用履歴情報に基づいて、所定期間における不明サーバ装置の利用履歴のレコードの数を算出する。例えば、取得部131は、直近1週間における「192.0.2.110」によって示されるグローバルIPアドレスによって識別される不明サーバ装置のレコードの数を「11」と算出する。また、取得部131は、直近1週間における「198.51.100.52」によって示されるグローバルIPアドレスによって識別される不明サーバ装置のレコードの数を「20101」と算出する。続いて、取得部131は、算出したレコードの数を示す情報を所定期間における不明サーバ装置によるAPIキーの利用回数を示す第2利用回数情報として取得する。例えば、取得部131は、算出したレコードの数である「11」を示す情報を直近1週間における「192.0.2.110」によって示されるグローバルIPアドレスによって識別される不明サーバ装置によるAPIキーの利用回数を示す第2利用回数情報として取得する。同様にして、取得部131は、算出したレコードの数である「20101」を示す情報を直近1週間における「198.51.100.52」によって示されるグローバルIPアドレスによって識別される不明サーバ装置によるAPIキーの利用回数を示す第2利用回数情報として取得する。
【0040】
(算出部132)
算出部132は、正常サーバ装置によるAPIキーの利用回数と不明サーバ装置によるAPIキーの利用回数との比較に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出する。具体的には、算出部132は、所定期間(例えば、直近1週間)における正常サーバ装置によるAPIキーの利用回数(以下、第1利用回数ともいう)と、所定期間(例えば、直近1週間)における不明サーバ装置によるAPIキーの利用回数(以下、第2利用回数ともいう)との比較に基づいて、スコアを算出する。より具体的には、算出部132は、第1利用回数に対する第2利用回数の割合が所定の割合以下である場合のスコアよりも、第1利用回数に対する第2利用回数の割合が所定の割合を超える場合のスコアを高く算出する。例えば、算出部132は、第1利用回数に対する第2利用回数の割合が200%を超える場合のスコアを「100」と算出する。また、算出部132は、第1利用回数に対する第2利用回数の割合が50%を超えるが200%以下である場合のスコアを「50」と算出する。また、算出部132は、第1利用回数に対する第2利用回数の割合が50%以下である場合のスコアを「25」と算出する。
【0041】
(判定部133)
判定部133は、不明サーバ装置がAPIキーを不正利用しているか否かを判定する。具体的には、判定部133は、算出部132によって算出されたスコアが所定の閾値を超える場合に、不明サーバ装置がAPIキーを不正利用していると判定する。例えば、判定部133は、算出部132によって算出されたスコアが「100」を超える場合に、不明サーバ装置がAPIキーを不正利用していると判定する。
【0042】
一方、判定部133は、算出部132によって算出されたスコアが所定の閾値以下である場合に、不明サーバ装置がAPIキーを不正利用していないと判定する。例えば、判定部133は、算出部132によって算出されたスコアが「100」以下である場合に、不明サーバ装置がAPIキーを不正利用していないと判定する。判定部133は、不明サーバ装置がAPIキーを不正利用していないと判定した場合、不明サーバ装置を識別するグローバルIPアドレスに関する情報を不明IPセット情報記憶部123から削除する。また、判定部133は、不明サーバ装置がAPIキーを不正利用していないと判定した場合、不明サーバ装置を識別するグローバルIPアドレスに関する情報を正常IPセット情報記憶部122に追加する。
【0043】
(通知部134)
通知部134は、判定部133によって不明サーバ装置がAPIキーを不正利用していると判定された場合、正常サーバ装置の管理者に対してAPIキーの不正利用が検出されたことを通知する。例えば、通知部134は、正常サーバ装置に対してAPIキーの不正利用が検出されたことを示す情報を送信する。
【0044】
〔4.情報処理の手順〕
図8は、実施形態に係る情報処理手順を示すフローチャートである。
図8では、情報処理装置100の記憶部120が、サーバ装置によるAPIキーの利用履歴を示す利用履歴情報をグローバルIPアドレスごとに記憶する(ステップS1)。また、情報処理装置100の取得部131は、記憶部120に記憶された利用履歴情報に基づいて、第1サーバ装置によるAPIキーの利用回数である第1利用回数を示す第1利用回数情報、および、第2サーバ装置によるAPIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する(ステップS2)。また、情報処理装置100の算出部132は、第1利用回数と第2利用回数との比較に基づいて、第2サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出する(ステップS3)。
【0045】
また、情報処理装置100の判定部133は、算出部132によって算出されたスコアが所定の閾値を超えるか否かを判定する(ステップS4)。判定部133は、算出部132によって算出されたスコアが所定の閾値を超えると判定した場合(ステップS4;Yes)、第2サーバ装置がAPIキーを不正利用していると判定する(ステップS5)。情報処理装置100の通知部134は、判定部133によって第2サーバ装置がAPIキーを不正利用していると判定された場合、第1サーバ装置の管理者に対してAPIキーの不正利用が検出されたことを通知する(ステップS6)。一方、判定部133は、算出部132によって算出されたスコアが所定の閾値を超えないと判定した場合(ステップS4;No)、第2サーバ装置がAPIキーを不正利用していないと判定する(ステップS7)。
【0046】
〔5.変形例〕
上述した実施形態に係る処理は、上記実施形態以外にも種々の異なる形態にて実施されてよい。
【0047】
上述した実施形態では、算出部132が、正常サーバ装置によるAPIキーの利用回数と不明サーバ装置によるAPIキーの利用回数との比較に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出する場合について説明した。ここでは、算出部132が、正常サーバ装置を識別するグローバルIPアドレスと対応するFQDNに関するドメイン名情報と、不明サーバ装置を識別するグローバルIPアドレスと対応するFQDNに関するドメイン名情報との比較に基づいて、スコアを算出する場合について説明する。
【0048】
具体的には、取得部131は、正常サーバ装置を識別するグローバルIPアドレス(以下、第1グローバルIPアドレスともいう)と対応するFQDNに関する第1ドメイン名情報を取得する。例えば、取得部131は、第1グローバルIPアドレスを逆引きして、第1グローバルIPアドレス対応するFQDNが得られた場合は、第1ドメイン名情報として、第1グローバルIPアドレス対応するFQDNを取得する。一方、取得部131は、第1グローバルIPアドレスを逆引きして、第1グローバルIPアドレス対応するFQDNが得られなかった場合は、第1ドメイン名情報として、第1グローバルIPアドレス対応するFQDNが存在しないことを示す情報を取得する。また、取得部131は、正常サーバ装置と同様にして、不明サーバ装置を識別するグローバルIPアドレス(以下、第2グローバルIPアドレスともいう)と対応するFQDNに関する第2ドメイン名情報を取得する。
【0049】
算出部132は、第1ドメイン名情報と第2ドメイン名情報との比較に基づいて、スコアを算出する。より具体的には、算出部132は、第1グローバルIPアドレスと対応するFQDNと、第2グローバルIPアドレスと対応するFQDNとが同一である場合のスコアよりも、第1グローバルIPアドレスと対応するFQDNと、第2グローバルIPアドレスと対応するFQDNとが異なる場合のスコアを高く算出する。例えば、算出部132は、第1グローバルIPアドレスと対応するFQDNと、第2グローバルIPアドレスと対応するFQDNとが同一である場合のスコアを「-1000」と算出する。また、算出部132は、第1グローバルIPアドレスと対応するFQDNと第2グローバルIPアドレスと対応するFQDNとが異なる場合のスコアを「100」と算出する。また、算出部132は、第2グローバルIPアドレスと対応するFQDNが存在しない場合のスコアを「100」と算出する。
【0050】
なお、上述した実施形態では、情報処理装置100がAPIおよびAPIによって利用可能な第2のサービスを提供するサーバ装置である場合について説明したが、情報処理装置100は、APIゲートウェイを提供するサーバ装置であってもよい。情報処理装置100は、APIゲートウェイの提供者によって管理される。例えば、情報処理装置100は、APIキーとともに、APIの実行に関する要求情報をサーバ装置20から受信する。情報処理装置100は、要求情報を受信した場合、受信した要求情報に応じたAPIを実行するAPIサーバ装置に対して要求情報を転送する。情報処理装置100は、APIサーバ装置からAPIの実行結果に関する応答情報を受信する。情報処理装置100は、応答情報を受信した場合、受信した応答情報をサーバ装置20に対して送信する。
【0051】
〔6.効果〕
上述してきたように、実施形態に係る情報処理装置100は、記憶部120と取得部131と算出部132と判定部133を備える。記憶部120は、グローバルIPアドレスによって識別されるサーバ装置によるAPIキーの利用履歴を示す利用履歴情報をグローバルIPアドレスごとに記憶する。取得部131は、利用履歴情報に基づいて、APIキーを不正利用していないと判定されたサーバ装置である第1サーバ装置によるAPIキーの利用回数である第1利用回数を示す第1利用回数情報、および、判定対象のサーバ装置であって、第1サーバ装置を識別する第1グローバルIPアドレスと異なる第2グローバルIPアドレスによって識別され第1サーバ装置が利用するAPIキーを利用する第2サーバ装置によるAPIキーの利用回数である第2利用回数を示す第2利用回数情報を取得する。算出部132は、第1利用回数と第2利用回数との比較に基づいて、第2サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出する。判定部133は、算出部132によって算出されたスコアが所定の閾値を超える場合に、第2サーバ装置がAPIキーを不正利用していると判定し、算出部132によって算出されたスコアが所定の閾値以下である場合に、第2サーバ装置がAPIキーを不正利用していないと判定する。
【0052】
このように、情報処理装置100は、正常サーバ装置によるAPIキーの利用回数と不明サーバ装置によるAPIキーの利用回数との比較に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを判定する。これにより、情報処理装置100は、不明サーバ装置を識別するグローバルIPアドレスが存在しない場合であっても、不明サーバ装置がAPIキーを不正利用しているか否かを判定することができる。また、情報処理装置100は、サーバ装置がAPIキーを不正利用しているか否かを示すスコアを算出することにより、サーバ装置がAPIキーを正常に利用しているか否かについても管理することを可能にすることができる。したがって、情報処理装置100は、APIキーが適切に利用されているかどうかを管理可能とすることができる。また、情報処理装置100は、APIキーが適切に利用されているかどうかを管理可能とすることができるため、持続可能な開発目標(SDGs)の目標9「産業と技術革新の基盤をつくろう」の達成に貢献できる。
【0053】
また、算出部132は、第1利用回数として、所定期間における第1サーバ装置によるAPIキーの利用回数と、第2利用回数として、所定期間における第2サーバ装置によるAPIキーの利用回数との比較に基づいて、スコアを算出する。
【0054】
これにより、情報処理装置100は、同じ期間における正常サーバ装置によるAPIキーの利用回数と不明サーバ装置によるAPIキーの利用回数を比較に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを適切に判定することができる。
【0055】
また、算出部132は、第1利用回数に対する第2利用回数の割合が所定の割合以下である場合のスコアよりも、第1利用回数に対する第2利用回数の割合が所定の割合を超える場合のスコアを高く算出する。
【0056】
これにより、情報処理装置100は、第1利用回数に対する第2利用回数の割合に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを適切に判定することができる。
【0057】
また、記憶部120は、利用履歴情報として、グローバルIPアドレスと対応するFQDN(Fully Qualified Domain Name)に関するドメイン名情報を記憶する。取得部131は、第1グローバルIPアドレスと対応するFQDNに関する第1ドメイン名情報、および、第2グローバルIPアドレスと対応するFQDNに関する第2ドメイン名情報を取得する。算出部132は、第1ドメイン名情報と第2ドメイン名情報との比較に基づいて、スコアを算出する。
【0058】
これにより、情報処理装置100は、正常サーバ装置を識別するグローバルIPアドレスと対応するFQDNに関するドメイン名情報と、不明サーバ装置を識別するグローバルIPアドレスと対応するFQDNに関するドメイン名情報との比較に基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを精度よく判定することができる。
【0059】
また、算出部132は、第1グローバルIPアドレスと対応するFQDNと、第2グローバルIPアドレスと対応するFQDNとが同一である場合のスコアよりも、第1グローバルIPアドレスと対応するFQDNと、第2グローバルIPアドレスと対応するFQDNとが異なる場合のスコアを高く算出する。
【0060】
これにより、情報処理装置100は、正常サーバ装置を識別するグローバルIPアドレスと対応するFQDNと、不明サーバ装置を識別するグローバルIPアドレスと対応するFQDNとが一致するか否かに基づいて、不明サーバ装置がAPIキーを不正利用しているか否かを精度よく判定することができる。
【0061】
また、情報処理装置100は、通知部134をさらに備える。通知部134は、判定部133によって第2サーバ装置がAPIキーを不正利用していると判定された場合、第1サーバ装置の管理者に対してAPIキーの不正利用が検出されたことを通知する。
【0062】
これにより、情報処理装置100は、APIの提供者としてのサービス品質を向上させることができる。また、情報処理装置100は、APIを利用する顧客のサービス満足度を向上させることができる。
【0063】
〔7.ハードウェア構成〕
また、上述してきた実施形態に係る情報処理装置100は、例えば
図9に示すような構成のコンピュータ1000によって実現される。
図9は、情報処理装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を備える。
【0064】
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
【0065】
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
【0066】
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。なお、CPU1100の代わりに、MPU(Micro Processing Unit)またはGPU(Graphics Processing Unit)を用いてもよい。
【0067】
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【0068】
例えば、コンピュータ1000が情報処理装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
【0069】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0070】
〔8.その他〕
また、上記実施形態及び変形例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0071】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0072】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【符号の説明】
【0073】
1 情報処理システム
10 端末装置
20 サーバ装置
100 情報処理装置
110 通信部
120 記憶部
121 利用履歴情報記憶部
122 正常IPセット情報記憶部
123 不明IPセット情報記憶部
124 スコアリング条件記憶部
130 制御部
131 取得部
132 算出部
133 判定部
134 通知部