JPWO2019235074A1 - 生成方法、生成装置および生成プログラム - Google Patents

生成方法、生成装置および生成プログラム Download PDF

Info

Publication number
JPWO2019235074A1
JPWO2019235074A1 JP2020523554A JP2020523554A JPWO2019235074A1 JP WO2019235074 A1 JPWO2019235074 A1 JP WO2019235074A1 JP 2020523554 A JP2020523554 A JP 2020523554A JP 2020523554 A JP2020523554 A JP 2020523554A JP WO2019235074 A1 JPWO2019235074 A1 JP WO2019235074A1
Authority
JP
Japan
Prior art keywords
path
abstraction
profile
candidate
aggregation
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.)
Granted
Application number
JP2020523554A
Other languages
English (en)
Other versions
JP6954466B2 (ja
Inventor
国雄 宮本
国雄 宮本
慎吾 折原
慎吾 折原
悠太 岩城
悠太 岩城
楊 鐘本
楊 鐘本
祐一 村田
祐一 村田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019235074A1 publication Critical patent/JPWO2019235074A1/ja
Application granted granted Critical
Publication of JP6954466B2 publication Critical patent/JP6954466B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

生成装置(10)は、サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する。そして、生成装置(10)は、集計された種類数が所定の条件を満たした場合には、プロファイルに含まれるパスを抽象化する処理を行う。

Description

本発明は、生成方法、生成装置および生成プログラムに関する。
インターネットの普及に伴い、Webサーバに対する攻撃が急増している。攻撃の対策としてIDS(Intrusion Detection System)、IPS(Intrusion Prevention System)、WAF(Web Application Firewall)等が知られている。これらの技術では、ブラックリストやシグネチャファイルを用いたパターンで検出を行い、既知の攻撃の検知及び防御を行う。
また、未知の攻撃の検出技術として、正常なWebサーバへのアクセス要求からパラメータ値の特徴等をプロファイルとして学習し、識別対象のアクセス要求の特徴と当該プロファイルとを比較することにより、当該アクセス要求が攻撃(正常なアクセスではない)であるか否かを判定する技術が知られている。
例えば、正常なアクセス内容の特徴(プロファイル)として、WebサイトへのHTTPリクエストにおけるパスとパラメータキーの組み合わせごとにパラメータ値の文字列構造を抽象化した情報(文字クラス列)を学習し、検査対象となるHTTPリクエストのパラメータ値の文字クラス列との類似度を検出し、未知の攻撃を検知するという技術が知られている。
国際公開第2015/186662号
従来の技術では、動的に生成されるパスが含まれる場合に、攻撃の誤検知が多発し、効率よく攻撃検知を行うことが出来ない場合があるという課題があった。例えば、従来の技術では、動的に生成されるパスとそのパスのパラメータキーごとにパラメータ値を学習してしまうと学習対象のパラメータ値の出現回数が不足し、不適切なプロファイルが生成されてしまうことで誤検知が多発してしまう場合があった。
また、例えば、従来の技術では、Webアプリケーション等の仕様によって動的に生成されるパスが一度しか生成されないような場合、当該パスを使用してプロファイルを生成しても、検知の際に対応するパスがプロファイル中に存在せず、攻撃を見逃してしまう場合があった。また、例えば、従来の技術では、動的に生成されるパスごとに学習を行う場合に、生成されたパスの数に比例してプロファイルのサイズも大きくなり、検知を行う際に照合に要する時間も比例して増大してしまう場合があった。
本発明は上述したような技術が有する問題点を解決するためになされたものであり、動的に生成されるパスが含まれる場合であっても、攻撃検知の誤検知を抑制し、効率よく攻撃検知を行うことを可能とした生成方法、生成装置および生成プログラムを提供することを目的とする。
上記目的を達成するための本発明の生成方法は、生成装置によって実行される生成方法であって、サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理ステップと、前記集計処理ステップにより集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理ステップと、を含んだことを特徴とする。
また、本発明の生成装置は、サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理部と、前記集計処理部により集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理部と、を備えたことを特徴とする。
また、本発明の生成プログラムは、サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理ステップと、前記集計処理ステップにより集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理ステップと、をコンピュータに実行させることを特徴とする。
本発明によれば、動的に生成されるパスが含まれる場合であっても、攻撃検知の誤検知を抑制し、効率よく攻撃検知を行うことができる。
図1は、第1の実施形態に係る生成装置の構成の一例を示す図である。 図2は、文字クラス列変換部およびプロファイル保存部による処理を説明するための図である。 図3は、プロファイルとの類似度の計算方法を説明するための図である。 図4は、学習処理および検知処理の概要を説明する図である。 図5は、プロファイルの一例を示す図である。 図6は、パスを抽象化する前のプロファイルについて説明する図である。 図7は、パスを抽象化した後のプロファイルについて説明する図である。 図8は、パスの抽象化候補集計リストについて説明する図である。 図9は、第1の実施形態に係る生成装置におけるプロファイル生成部の処理の流れを示すフローチャートである。 図10は、パスの抽象化要否判定処理について説明する図である。 図11は、プロファイル更新処理について説明する図である。 図12は、抽象化候補パスを自動生成する処理を説明する図である。 図13は、同一の文字クラス列および類似する文字クラス列を集約する処理を説明する図である。 図14は、文字クラス列の集約対象および集約対象外を判定する処理を説明する図である。 図15は、パラメータキーを抽象化する処理を説明する図である。 図16は、パラメータキーを抽象化し、プロファイルを更新する処理を説明する図である。 図17は、プログラムが実行されることにより生成装置が実現されるコンピュータの一例を示す図である。
以下に、本願に係る生成方法、生成装置および生成プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
[第1の実施形態の構成]
まず、図1を用いて、第1の実施形態に係る生成装置の構成について説明する。図1は、第1の実施形態に係る生成装置の構成の一例を示す図である。図1に示すように、生成装置10は、入力部11、制御部12及びプロファイル生成部15を有する。また、生成装置10は、サーバへのリクエストとの類似度に基づき、当該リクエストが攻撃であるか否かを判定するためのプロファイル13を生成するための装置である。また、生成装置10は、プロファイル13を用いて攻撃であるリクエストの検知を行うこともできる。
入力部11は、生成装置10における学習又は分析のためのデータの入力を受け付ける。入力部11は、分析対象データ入力部111及び学習データ入力部112を有する。分析対象データ入力部111は、分析データHTTPリクエスト20の入力を受け付ける。
また、学習データ入力部112は、学習データHTTPリクエスト30の入力を受け付ける。分析データHTTPリクエスト20及び学習データHTTPリクエスト30は、例えば、Webサイトへのアクセスの際に生成されるHTTPリクエストである。また、学習データHTTPリクエスト30は、攻撃であるか否かがあらかじめ判明しているHTTPリクエストであってもよい。
制御部12は、パラメータ抽出部121、文字クラス列変換部122、異常検知部123及びプロファイル保存部124を有する。制御部12は、プロファイル13の学習及び攻撃であるHTTPリクエストの検知に関する処理を行う。
パラメータ抽出部121は、入力部11に入力された分析データHTTPリクエスト20及び学習データHTTPリクエスト30から、パス、パラメータキー及びパラメータキーに対応するパラメータ値を抽出する。
例えば、学習データHTTPリクエスト30に「http://example.com/index.php?id=03&file=Top001.png」というURLが含まれている場合、パラメータ抽出部121は、パスとして「index.php」を抽出し、パラメータキーとして「id」及び「file」を抽出し、パラメータ値として、「03」及び「Top001.png」を抽出する。
また、文字クラス列変換部122は、パラメータ抽出部121によって抽出されたパラメータ値を文字クラス列に変換する。例えば、文字クラス列変換部122は、パラメータ抽出部121によって抽出されたパラメータ値である「03」及び「Top001.png」を文字クラス列に変換する。
文字クラス列変換部122は、例えば、パラメータ値の数字で構成される部分を「numeric」、アルファベットで構成される部分を「alpha」、記号で構成される部分を「symbol」に置き換えることで文字クラス列への変換を行う。文字クラス列変換部122は、例えば、パラメータ値「03」を文字クラス列「(numeric)」に変換する。また、文字クラス列変換部122は、例えば、パラメータ値「Top001.png」を文字クラス列「(alpha, numeric, symbol, alpha)」に変換する。
異常検知部123は、文字クラス列変換部122から受け取ったパス、パラメータキー及び文字クラス列と、プロファイル13との類似度を計算し、計算した類似度を閾値と比較すること等により攻撃の検知を行う。例えば、異常検知部123は、ある分析データHTTPリクエスト20のパス、パラメータキー及び文字クラス列と、プロファイル13との類似度が閾値以下である場合、当該分析データHTTPリクエスト20を攻撃として検知する。また、異常検知部123は、検知結果14を出力する。
プロファイル保存部124は、文字クラス列変換部122から受け取ったパス、パラメータキー及び文字クラス列をプロファイル13として保存する。この時、パス及びパラメータキーに対応する文字クラス列が複数ある場合、例えば当該複数の文字クラス列のうち出現回数が閾値を超える文字クラス列をプロファイル13として保存する。プロファイル保存部124の処理により、制御部12は、学習部として機能する。
図2の例を用いて、制御部12の処理について説明する。図2は、文字クラス列変換部122およびプロファイル保存部124による処理を説明するための図である。図2の上段は、同種のパラメータ値を示す、複数種の文字列を1つのクラスに分類した文字クラスの定義の一例を示す。文字クラスには、例えば、「numeric」や「space」などの文字クラスがある。図2の中段は、パラメータ値の先頭文字から最後の文字にかけて部分毎に文字クラスと比較し、文字クラスとの一致が最長になる文字クラスにその部分を置換し、文字クラスが順に配置された文字クラス列に変換される様子を示している。図2の下段は、上記のようにして、パラメータ値毎に文字クラス列を求め、文字クラス列毎の出現回数が閾値を超える文字クラス列をプロファイルとして保存する様子を示している。
制御部12の文字クラス列変換部122は、パラメータ値を文字クラス列に変換する際、予め用意した文字クラスの正規表現に対して、パラメータ値のマッチした部分文字列と文字クラスが最長一致した部分を1つの文字クラスと判定し、先頭文字から順にすべての文字列を文字クラスへ変換する。これにより、1つの文字クラスに定義されたものが複数個連接されたもの、複合されたものなどの、複雑な構造を持つパラメータ値も、文字クラス列に変換可能となる。そして、プロファイル保存部124は、文字クラス列を選出する際、出現回数が閾値を超える文字クラス列を選択し、それをプロファイル13として保存する。
次に、図3の例を用いて、プロファイルとの類似度の計算方法を説明する。図3は、プロファイルとの類似度の計算方法を説明するための図である。なお、ここでは、分析対象データにテストデータを用いている。文字クラス列変換部122は、学習処理と同様に、パラメータ値を文字クラス列に変換する。そして、異常検知部123は、プロファイルとの文字クラス列の類似度を求める。類似度算出方法としては、例えば、図3に示すLCS(最長共通部分列)を用いることができる。この結果、異常検知部123は、類似度Sが閾値Stより小さい場合、攻撃であると判定、そうでなければ攻撃でないと判定する。
次に、図4の例を用いて、学習処理および検知処理の概要を説明する。図4は、学習処理および検知処理の概要を説明する図である。図4の例では、パラメータキー「file」の場合で説明する。また、分析対象データとして、テストデータを用いている。
学習処理では、制御部12が、出現回数が閾値を超える文字クラス列を選出する。検知処理では、制御部12は、文字クラス列変換を行った後、類似度計算を行い、その結果により、攻撃であるか否かを判定する。
具体的には、図4に示すように、文字クラス列変換部122は、パラメータ値「Img.jpg」、「Test.png」及び「Top001.png」をそれぞれ、文字クラス列「(alpha, symbol, alpha)」、「(alpha, symbol, alpha)」及び「(alpha, numeric, symbol, alpha)」に変換する。また、文字クラス列変換部122は、パラメータ値「Test_011.jpg」及び「Test_011.jpg' or 1=1」を、それぞれ文字クラス列「(alpha, symbol, numeric, symbol, alpha)」及び「(alpha, symbol, numeric, symbol, alpha, symbol,・・・)」に変換する。
次に、異常検知部123は、テストデータからの文字クラス列「(alpha, symbol, numeric, symbol, alpha)」及び「(alpha, symbol, numeric, symbol, alpha, symbol,・・・)」に対応するパスとパラメータキーを組み合わせたデータとプロファイル13との類似度を計算し、類似度Sが閾値Stより小さい場合、攻撃であると判定、そうでなければ攻撃でないと判定することで、攻撃の検知を行う。
また、プロファイル保存部124は、学習データに含まれるURLのパス「index.php」及びパラメータキー「file」に対応する文字クラス列のうち、例えば「(alpha, symbol, alpha)」を最も頻出する文字クラス列としてプロファイル13に保存する。
ここで、図5を用いて、プロファイル13について一例を説明する。図5は、プロファイルの一例を示す図である。図5に例示するように、プロファイル13は、パス・パラメータキーの組合せ毎に、学習した文字クラス列、およびその出現回数を保持するデータベースである。プロファイル13内の各エントリは、学習や操作によって、生成、更新、削除される。また、プロファイル13内の各エントリは、後述する抽象化処理部152によってパスの抽象化処理がされる場合がある。また、プロファイル13は、検知処理時に異常検知部123によって参照され、分析データの文字クラス列との比較に用いられる。
なお、図5の例では、パラメータ値の数字で構成される部分である「numeric」が「NU」と記載され、アルファベットで構成される部分である「alpha」が「AL」と記載され、記号で構成される部分である「symbol」が「SY」と記載されている。このような省略は、以下の説明でも適宜使用されるものとする。
プロファイル生成部15は、集計処理部151、抽象化処理部152及びパスの抽象化候補集計リスト153を有する。集計処理部151は、サーバへのHTTPリクエストが攻撃であるか否かを判定するためのプロファイル13に含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う。
また、抽象化処理部152は、集計処理部151により集計された種類数が所定の条件を満たした場合には、プロファイル13に含まれるパスを抽象化する処理を行う。具体的には、抽象化処理部152は、集計された種類数が所定の閾値以上である場合には、プロファイル13に含まれるパスを抽象化する処理を行う。
ここで、図6および図7を用いて、プロファイル生成部15における処理の概要を説明する。図6は、パスを抽象化する前のプロファイルについて説明する図である。図7は、パスを抽象化した後のプロファイルについて説明する図である。図6に示すように、前述の制御部12は、学習データHTTPリクエストからパス、パラメータキーやパラメータ値を抽出し、抽出されたパラメータ値を文字クラス列に変換し、学習データに含まれるURLのパス及びパラメータキーに対応する文字クラス列のうち、出現回数が閾値を超えた文字クラス列をプロファイル13に保存する。プロファイル13は、パス・パラメータキーの組合せ毎に、学習した文字クラス列、およびその出現回数を保持する。
ここで、図6に例示する学習データHTTPリクエストにおける各パスは、リクエストの都度、異なるパスが動的に生成されたものであり、それぞれ出現回数が1回である。動的に生成されるパスについては、同一のパスと認識し、プロファイルを生成することが望ましい。
そこで、プロファイル生成部15は、図7に例示するように、学習データHTTPリクエストに動的に生成されたパスが存在する場合、動的に生成されたパスを抽象化対象パスとして、抽象化対象パスの全体もしくは部分文字列を特定文字列へ置換するパスの抽象化処理を行う。例えば、図7の例では、パスの文字列で”<DYNAMIC>”(抽象化されたパスを意味する)に置換されている部分は動的に生成されたパスに該当する部分である。生成装置10は、学習処理においては、パスの抽象化後の情報を使用してプロファイルを生成する。また、生成装置10は、検知処理においては、パスの抽象化後の情報を使用して該当文字クラス列と類似度計算を行い、攻撃検知を行う。
なお、動的に生成されたパスを特定する方法としては、どのような方法であってもよい。例えば、抽象化処理部152は、プロファイルのパスが、所定の条件を満たす場合、または、所定のパターンと一致する場合に、該プロファイルのパスを、動的に生成されたパスを抽象化候補のパスとして特定する。例えば、一例として、パスについて、所定の条件を満たす場合(例えば、16進数が3個以上続く場合)には、動的に生成されたパスであると特定するようにしてもよいし、予め定義された所定のパターン(例えば、「/*/program.php」)と一致する場合には、動的に生成されたパスであると特定するようにしてもよい。
パスの抽象化候補集計リスト153は、図8に例示するように、抽象化候補パス(動的に生成されるパスを特定文字列(例えば、<DYNAMIC>)に置換した文字列)と、抽象化対象パス(動的に生成されるパス)とパス種類数(抽象化対象パスの種類数)を一時的に保存するリストである。パスの抽象化候補集計リスト153は、抽象化処理部152において、パスの抽象化対象を集計するために使用される。また、パスの抽象化候補集計リスト153は、プロファイル13の生成、更新が行われる度、集計処理部151により生成され、パスの抽象化処理後に削除される。
例えば、パスの抽象化候補を生成する手法として、パターンを事前に定義するようにしてもよい。例えば、図8の例を用いて説明すると、パターンとして、(/*/program.php)が予め定義されており、集計処理部151は、パターンとマッチするパスを/<DYNAMIC>/program.phpに置換してパスの抽象化候補集計リスト153に登録する。
[第1の実施形態の処理]
次に、図9を用いて、生成装置10におけるプロファイル生成部15の処理の流れについて説明する。図9は、第1の実施形態に係る生成装置におけるプロファイル生成部の処理の流れを示すフローチャートである。なお、図9の処理は、プロファイル保存部124により、プロファイル13が生成または更新されたことを契機として処理を開始するものとする。
図9に示すように、生成装置10の集計処理部151は、プロファイル13を取得する(ステップS101)。なお、プロファイル13の要素として、少なくとも、パス、パラメータキー、文字クラス列および文字クラス列の出現回数を含む。続いて、集計処理部151は、空のパスの抽象化候補集計リスト153を生成する初期化処理を行う(ステップS102)。なお、パスの抽象化候補集計リスト153の要素として、少なくとも抽象化候補パス、抽象化対象パス、パスの種類数を含む。
そして、集計処理部151は、取得したプロファイル13の先頭行のパス、パラメータキーおよび文字クラス列を抽出し(ステップS103)、プロファイル13から抽出した行のパスが抽象化済みか否か判定する(ステップS104)。例えば、集計処理部151は、パス抽象化の置換後文字列(以下、<DYNAMIC>と記載する)が含まれると判定した場合には(ステップS104肯定)、ステップS103に戻り、プロファイル13の次の行の処理を行う。なお、パスが抽象化済みか否かを判定するその他の方法として、例えば、プロファイル13にパスが抽象化済みか否かを示すパス抽象化フラグを持たせ、パス抽象化フラグが「0」なら抽象化前、「1」なら抽象化済みと判定するようにしてもよい。
また、集計処理部151は、<DYNAMIC>が含まれていないと判定した場合には(ステップS104否定)、パスの抽象化処理の候補であると判断し、パスの抽象化候補集計リスト153を更新する処理を行う(ステップS105)。
具体的には、集計処理部151は、当該パスの抽象化候補パス、当該パス(抽象化対象パス)の組み合わせが、パスの抽象化候補集計リスト153に既に存在するかを確認し、パスの抽象化候補集計リスト153に対し、確認結果に応じて、下記のa)〜c)のいずれかの更新を行う。なお、「当該パスの抽象化候補パスは存在せず、当該パスは存在する」ケースは処理上起こりえない。また、当該パスに動的生成パスが含まれない(パスの抽象化候補パスを生成できない)場合、当該パスの抽象化候補パス、当該パスは、パスの抽象化候補集計リスト153に追加しない。
a)当該パスの抽象化候補パス、当該パス、いずれも存在しない場合
当該パスの抽象化候補パス、当該パスをパスの抽象化候補集計リスト153のエントリに新規作成し、パス種類数のカウントを1にする。
b)当該パスの抽象化候補パスは存在し、当該パスは存在しない場合
パスの抽象化候補集計リスト153の当該パスの抽象化候補パスのエントリに当該パスを追加し、パス種類数のカウントに1を加算する。
c)当該パスの抽象化候補パス、当該パス、共に存在する場合
当該パスの抽象化候補パス、当該パスは、パスの抽象化候補集計リスト153に追加しない。
その後、集計処理部151は、終了条件を満たしたか否かを判定する(ステップS106)。例えば、集計処理部151は、取得したプロファイル13の行が残っていれば、終了条件を満たしていないと判定し(ステップS106否定)、ステップS103に戻り、プロファイル13の次の行の処理を行う。また、例えば、集計処理部151は、取得したプロファイル13の行が残っていなければ、終了条件を満たしたと判定し(ステップS106肯定)、パスの抽象化候補集計リスト153を抽象化処理部152に出力する(ステップS107)。
続いて、抽象化処理部152は、パスの抽象化候補集計リスト153を取得し(ステップS108)、取得したパスの抽象化候補集計リスト153の先頭行の抽象化候補パス、抽象化対象パス、パス種類数を抽出する(ステップS109)。そして、抽象化処理部152は、パスの抽象化を行うか否か判定する(ステップS110)。例えば、抽象化処理部152は、パスの抽象化候補集計リスト153から取り出した行の抽象化候補パスのパス種類数が閾値以上であった場合は(ステップS110肯定)、パスの抽象化が必要なパスであると判断し、プロファイル更新処理を行う(ステップS111)。
また、抽象化処理部152は、パスの抽象化候補集計リスト153から取り出した行の抽象化候補パスのパス種類数が閾値未満であった場合は(ステップS110否定)、パスの抽象化が不要なパスであり、以降の処理対象ではないと判断し、ステップS109に戻り、パスの抽象化候補集計リスト153の次の行の処理を行う。
ここで、図10の例を用いて、パスの抽象化を行うか否か判定する処理について説明する。図10は、パスの抽象化済み判定処理について説明する図である。図10の例では、パスの種類数の閾値が「3」であるものとする。このような場合に、図10に例示するように、抽象化候補パス「/<DYNAMIC>/program.php」のパス種類数が「3」であり、パス種類数の閾値「3」以上であるため、抽象化処理部152は、抽象化候補パス「/<DYNAMIC>/program.php」について、パスの抽象化は「必要」と判定する。一方、抽象化候補パス「/<DYNAMIC>/view.php」のパス種類数が「1」であり、パス種類数の閾値「3」未満であるため、抽象化処理部152は、抽象化候補パス「/<DYNAMIC>/view.php」について、パスの抽象化は「不要」と判定する。
図9の説明に戻って、ステップS111において、抽象化処理部152は、パスの抽象化「要」と判断されたパスについて、当該パスのプロファイルをマージする(パスの抽象化処理)。抽象化処理部152は、マージする際の処理として、動的に生成されているパスを「<DYNAMIC>」に置換し、文字クラス列は集約する。また、抽象化処理部152は、図11に例示するように、各文字クラス列の出現回数は、抽象化対象パスで、パラメータキーに同一の文字クラス列があるものについては、出現回数を合算し、抽象化対象パスで、パラメータキーに同一の文字クラス列がないものについては、出現回数を継承する。
図9の説明に戻って、抽象化処理部152は、終了条件を満たしたか否かを判定する(ステップS112)。例えば、抽象化処理部152は、取得したパスの抽象化候補集計リスト153の行が残っていれば、終了条件を満たしていないと判定し(ステップS112否定)、ステップS109に戻り、パスの抽象化候補集計リスト153の次の行の処理を行う。また、例えば、抽象化処理部152は、取得したパスの抽象化候補集計リスト153の行が残っていなければ、終了条件を満たしたと判定し(ステップS112肯定)、取得したパスの抽象化候補集計リスト153を削除し(ステップS113)、処理を終了する。
このように、第1の実施形態に係る生成装置10は、パスの抽象化対象種類数を閾値により、パスの抽象化の要否を判断し、動的に生成されるパスを抽象化する。生成装置10は、パスの抽象化処理では、動的生成されているパスのみを特定文字列へ置換することで、元のパス構成を保持したプロファイル13を生成する。
(変形例)
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では変形例として本発明に含まれる他の実施例を説明する。
(1)パターンの自動生成
上記の説明では、パスの抽象化候補を生成する手法として、パターンを事前に定義しておくやり方を説明したが、これに限定されるものではなく、例えば、パターンを自動生成するようにしてもよい。
例えば、生成装置10の集計処理部151は、16進数3桁以上のパスを特定文字列へ置換して抽象化候補パスを生成する。そして、生成装置10の集計処理部151は、該当の抽象化候補パスが抽象化「要」と判断された場合、該当のパターンを作成することも考えられる。例えば、図12の例を用いて説明すると、パスが16進数3桁以上の場合、<HEX>へ置換し、該当パスがパスの抽象化「要」と判定され、抽象化候補パスからパターンとして、「</16進数3桁以上>/program.php」を作成する。
また、例えば、生成装置10の集計処理部151は、パスに含まれる共通文字列を自動的に抽出して、パターンを生成することも考えられる。例えば、生成装置10の集計処理部151は、最長共通部分列(LCS)を利用して共通文字列を自動的に抽出しても良い。なお、上記の説明では、パスの一部分のみを抽象化しているが、パスの複数個所を抽象化してもよい。また、パターンを事前に定義する手法とパターンを自動生成する手法とを組み合わせて使用してもよい。
(2)集約対象
また、上記の説明では、文字クラス列の集約の対象は、同一の文字クラス列の場合を説明したが、これに限定されるものではなく、例えば、同一の文字クラス列に加え、所定の閾値以上の類似度を有する文字クラス列を集約の対象としてもよい。
生成装置10の抽象化処理部152は、類似度を計算する方法として、例えば最長共通部分列を用いることができる。また、生成装置10の抽象化処理部152は、文字クラス列を集約する方法として、例えば最長共通部分列を用いることができる。例えば、抽象化処理部152は、X,Yが文字クラス列とすると、LCS(X,Y)=Xの場合はYへ集約し、LCS(X,Y)=Yの場合はXへ集約し、これ以外の場合は集約しない。ここでLCS(X,Y)は、文字クラス列X,Yの最長共通部分列を示す。例えば、図13の例では、パラメータキーidの文字クラス列では、LCS({AL,NU},{AL})={AL}なので、{AL,NU}に集約される。つまり、図13の例を用いて説明すると、抽象化処理部152は、同一パラメータキーの文字クラス列{AL,NU}および文字クラス列{AL}の最長共通部分列{AL}と一致する文字クラス列があった場合、抽象化処理部152は、2種類の文字クラス列{AL,NU}と文字クラス列{AL}を文字クラス列{AL,NU}へ集約する。
また、上記の応用として、出現回数の低い文字クラス列は、誤入力されたパラメータ値を持つHTTPリクエストや攻撃のHTTPリクエストを学習してしまっている可能性があるため、集約の対象外としたほうが、より正確に攻撃を検知できるプロファイルを作成できる場合がある。このため、文字クラス列の集約において、各文字クラス列の相対的な出現率を求め、出現率の低いレアな文字クラス列を閾値により判定し、集約対象外としてもよい。例えば、図14に例示するように、抽象化処理部152は、出現率に対する閾値が5%である場合、出現率が5%以上の文字クラス列のみを集約対象として、出現率5%未満の文字クラス列を集約対象外とする。
(3)パラメータキーの抽象化
また、上記の説明では、パスを抽象化する場合を説明したが、これに限定されるものではなく、例えば、パラメータキーを抽象化してもよい。なお、パスとパラメータキーの両方を抽象化するようにしてもよい。
ここで、図15を用いて、パラメータキーの抽象化候補集計リストについて説明する。図15に例示するように、集計処理部151は、上述したパスの抽象化候補集計リスト153における「抽象化候補パス」と「抽象化対象パス」を「抽象化候補パラメータキーのパス」、「抽象化候補パラメータキー」、「抽象化対象パラメータキー」とすることで、パラメータキーの抽象化候補集計リストを生成する。なお、異なるパスのパラメータキーを抽象化する場合は、抽象化候補パラメータキーのパスは*(ワイルドカード)とする。
このようにパラメータキーを抽象化する場合、上述したステップS105において、集計処理部151は、パラメータキーの抽象化候補集計リストを更新する処理を行う。
具体的には、集計処理部151は、抽象化候補パラメータキーのパスが、パラメータキーの抽象化候補集計リストに既に存在するかを確認し、抽象化候補パラメータキーのパスがパラメータキーの抽象化候補集計リストに既に存在する場合には、下記のa)〜c)のいずれかの更新を行い、抽象化候補パラメータキーのパスがパラメータキーの抽象化候補集計リストに既に存在しない場合には、下記のd)の更新を行う。なお、「当該パラメータキーの抽象化候補パラメータキーは存在せず、当該パラメータキーは存在する」ケースは処理上起こりえない。また、当該パラメータキーの抽象化候補パラメータキーを生成できない場合、当該パラメータキーの抽象化候補パラメータキー、当該パラメータキーは、パラメータキーの抽象化候補集計リストに追加しない。
a)当該パラメータキーの抽象化候補パラメータキー、当該パラメータキー、いずれも存在しない場合
当該パラメータキーの抽象化候補パラメータキー、当該パラメータキーをパラメータキーの抽象化候補集計リストのエントリに新規作成し、パラメータキー種類数のカウントを1にする。
b)当該パラメータキーの抽象化候補パラメータキーは存在し、当該パラメータキーは存在しない場合
パラメータキーの抽象化候補集計リストの当該パラメータキーの抽象化候補パスのエントリに当該パラメータキーを追加し、パラメータキー種類数のカウントに1を加算する。
c)当該パラメータキーの抽象化候補パラメータキー、当該パラメータキー、共に存在する場合
当該パラメータキーの抽象化候補パラメータキー、当該パラメータキーは、パラメータキーの抽象化候補集計リストに追加しない。
d)当該パラメータキーの抽象化候補パラメータキー、当該パラメータキーの存在の有無にかかわらず、当該抽象化候補パラメータキーのパス、抽象化候補パラメータキー、抽象化対象パラメータキーをパラメータキーの抽象化候補集計リストに追加する。
また、パラメータキーを抽象化する場合、上述したステップS111において、抽象化処理部152は、図16に例示するように、プロファイル13を更新する処理を行う。図16の例では、抽象化処理部152は、パラメータキーの数値部分を<NUM>に変換している。また、図16に例示するように、抽象化処理部152は、パラメータキーの抽象化「要」と判断されたパラメータキーについて、文字クラス列は集約する。また抽象化処理部152は、図16に例示するように、各文字クラス列の出現回数は、抽象化対象パラメータキーで、同一の文字クラス列があるものについては、出現回数を合算し、抽象化対象パラメータキーで、同一の文字クラス列がないものについては、出現回数を継承する。
[第1の実施形態の効果]
このように、第1の実施形態に係る生成装置10は、サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する。そして、生成装置10は、集計された種類数が所定の条件を満たした場合には、プロファイルに含まれるパスを抽象化する処理を行う。
このため、第1の実施形態に係る生成装置10では、動的に生成されるパスが含まれる場合であっても、攻撃検知の誤検知を抑制し、効率よく攻撃検知を行うことが可能である。具体的には、第1の実施形態に係る生成装置10によれば、パスが動的に生成されるWebアプリケーションに対して、以下の効果が得られる。
例えば、第1の実施形態に係る生成装置10では、パス毎に学習する際、学習対象のパラメータキーのパラメータ値の種類数や出現回数の不足を解消でき、当該パラメータキーに対して出現する文字クラス列を適切に保持したプロファイル13を生成できる。この結果、第1の実施形態に係る生成装置10では、正常なHTTPリクエストに対する誤検知を抑制できる。
また、例えば、第1の実施形態に係る生成装置10では、一度しか生成されないパスに対しても適用可能なプロファイル13を生成できるため、検知の際に、照合可能なパスがプロファイル13中に存在しない状態となること、を解消できる。この結果、第1の実施形態に係る生成装置10では、検知対象のHTTPリクエストのパスが動的に生成される場合でも検知が可能となり、攻撃の見逃しを抑制できる。
また、例えば、第1の実施形態に係る生成装置10では、動的に生成されるパスの種類数が増加しても、プロファイルのサイズの増大を抑制できる。この結果、第1の実施形態に係る生成装置10では、検知対象のHTTPリクエストとプロファイル13の照合に要する時間が短くなり、システムの性能の低下を抑制できる。
[システム構成等]
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
また、上記の実施形態で述べた生成装置10の機能を実現するプログラムを所望の情報処理装置(コンピュータ)にインストールすることによって実装できる。例えば、パッケージソフトウェアやオンラインソフトウェアとして提供される上記のプログラムを情報処理装置に実行させることにより、情報処理装置を生成装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistants)等がその範疇に含まれる。また、生成装置10を、クラウドサーバに実装してもよい。
図17を用いて、上記のプログラム(生成プログラム)を実行するコンピュータの一例を説明する。図17に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ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が接続される。
ここで、図17に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。前記した実施形態で説明した各種データや情報は、例えばハードディスクドライブ1090やメモリ1010に記憶される。
そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、上記の生成プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、上記のプログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
10 生成装置
11 入力部
12 制御部
13 プロファイル
14 検知結果
15 プロファイル生成部
20 分析データHTTPリクエスト
30 学習データHTTPリクエスト
111 分析対象データ入力部
112 学習データ入力部
121 パラメータ抽出部
122 文字クラス列変換部
123 異常検知部
124 プロファイル保存部
151 集計処理部
152 抽象化処理部
153 パスの抽象化候補集計リスト

Claims (6)

  1. 生成装置によって実行される生成方法であって、
    サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理ステップと、
    前記集計処理ステップにより集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理ステップと、
    を含んだことを特徴とする生成方法。
  2. 前記抽象化処理ステップは、前記集計処理ステップにより集計された種類数が所定の閾値以上である場合には、前記プロファイルに含まれるパスを抽象化する処理を行うことを特徴とする請求項1に記載の生成方法。
  3. 前記抽象化処理ステップは、前記プロファイルのパスが、所定の条件を満たす場合、または、所定のパターンと一致する場合に、該プロファイルのパスを、前記動的に生成されたパスを抽象化候補のパスとして特定することを特徴とする請求項1に記載の生成方法。
  4. 前記抽象化処理ステップは、前記集計処理ステップにより集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化するとともに、該抽象化された各パス・パラメータキーにおける文字クラス列の出現回数を合算することを特徴とする請求項1に記載の生成方法。
  5. サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理部と、
    前記集計処理部により集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理部と、
    を備えたことを特徴とする生成装置。
  6. サーバへのリクエストが攻撃であるか否かを判定するためのプロファイルに含まれるパスのうち、動的に生成されたパスを抽象化候補のパスとして特定し、該抽象化候補のパスごとに、パスの種類数を集計する処理を行う集計処理ステップと、
    前記集計処理ステップにより集計された種類数が所定の条件を満たした場合には、前記プロファイルに含まれるパスを抽象化する処理を行う抽象化処理ステップと、
    をコンピュータに実行させることを特徴とする生成プログラム。
JP2020523554A 2018-06-04 2019-04-15 生成方法、生成装置および生成プログラム Active JP6954466B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018107255 2018-06-04
JP2018107255 2018-06-04
PCT/JP2019/016221 WO2019235074A1 (ja) 2018-06-04 2019-04-15 生成方法、生成装置および生成プログラム

Publications (2)

Publication Number Publication Date
JPWO2019235074A1 true JPWO2019235074A1 (ja) 2020-12-17
JP6954466B2 JP6954466B2 (ja) 2021-10-27

Family

ID=68769981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020523554A Active JP6954466B2 (ja) 2018-06-04 2019-04-15 生成方法、生成装置および生成プログラム

Country Status (3)

Country Link
US (1) US11563717B2 (ja)
JP (1) JP6954466B2 (ja)
WO (1) WO2019235074A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7287503B2 (ja) * 2019-12-24 2023-06-06 日本電気株式会社 情報処理装置、脅威情報評価システム、情報処理方法およびプログラム
US11526553B2 (en) * 2020-07-23 2022-12-13 Vmware, Inc. Building a dynamic regular expression from sampled data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3136249B1 (en) 2014-06-06 2018-12-19 Nippon Telegraph and Telephone Corporation Log analysis device, attack detection device, attack detection method and program

Also Published As

Publication number Publication date
JP6954466B2 (ja) 2021-10-27
US11563717B2 (en) 2023-01-24
US20210168121A1 (en) 2021-06-03
WO2019235074A1 (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
JP6697123B2 (ja) プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム
CN109145600B (zh) 使用静态分析元素检测恶意文件的系统和方法
Baldwin et al. Leveraging support vector machine for opcode density based detection of crypto-ransomware
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
JP6126672B2 (ja) 悪性コード検出方法及びシステム
EP2790122B1 (en) System and method for correcting antivirus records to minimize false malware detections
KR101337874B1 (ko) 파일 유전자 지도를 이용하여 파일의 악성코드 포함 여부를 판단하는 방법 및 시스템
RU2708356C1 (ru) Система и способ двухэтапной классификации файлов
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
US10007788B2 (en) Method of modeling behavior pattern of instruction set in N-gram manner, computing device operating with the method, and program stored in storage medium to execute the method in computing device
CN111222137A (zh) 一种程序分类模型训练方法、程序分类方法及装置
JP6954466B2 (ja) 生成方法、生成装置および生成プログラム
JP2019036273A (ja) ユーザと銀行サービスとの相互通信中における潜在的に危険なデバイスを識別するシステム及び方法
JP6777612B2 (ja) コンピュータシステムにおけるデータ損失を防止するためのシステム及び方法
US11487876B1 (en) Robust whitelisting of legitimate files using similarity score and suspiciousness score
WO2023072002A1 (zh) 开源组件包的安全检测方法及装置
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
US20210209504A1 (en) Learning method, learning device, and learning program
KR102289408B1 (ko) 해시 코드 기반의 검색 장치 및 검색 방법
CN114676430A (zh) 恶意软件识别方法、装置、设备及计算机可读存储介质
WO2021106172A1 (ja) ルール生成装置およびルール生成プログラム
US11233809B2 (en) Learning device, relearning necessity determination method, and relearning necessity determination program
US20210203677A1 (en) Learning method, learning device, and learning program
WO2022230074A1 (ja) 検知装置、検知方法及び検知プログラム
KR102465307B1 (ko) 화이트 리스트 생성 방법 및 이를 수행하는 사용자 단말, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210913

R150 Certificate of patent or registration of utility model

Ref document number: 6954466

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150