JP6505533B2 - 悪質なコードの検出 - Google Patents

悪質なコードの検出 Download PDF

Info

Publication number
JP6505533B2
JP6505533B2 JP2015144498A JP2015144498A JP6505533B2 JP 6505533 B2 JP6505533 B2 JP 6505533B2 JP 2015144498 A JP2015144498 A JP 2015144498A JP 2015144498 A JP2015144498 A JP 2015144498A JP 6505533 B2 JP6505533 B2 JP 6505533B2
Authority
JP
Japan
Prior art keywords
data set
software code
malicious software
statistical analysis
determining
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.)
Active
Application number
JP2015144498A
Other languages
English (en)
Other versions
JP2016029567A (ja
Inventor
トン トレバー
トン トレバー
Original Assignee
ベリサイン・インコーポレイテッド
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 ベリサイン・インコーポレイテッド filed Critical ベリサイン・インコーポレイテッド
Publication of JP2016029567A publication Critical patent/JP2016029567A/ja
Application granted granted Critical
Publication of JP6505533B2 publication Critical patent/JP6505533B2/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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service

Description

本発明は、悪質なコードの検出に関するものである。
コンピュータのネットワーク化の成長と共に、「マルウェア攻撃」と一般的に呼ばれる、悪質ソフトウェア攻撃の数が爆発的に増加した。悪質ソフトウェア(malicious software)の短縮である「マルウェア」とは、敵対または侵入の目的で設計されるソフトウェアである。たとえば、マルウェアは、情報を収集し、操作を拒否または妨害し、認証なしでリソースにアクセスする意図で、または他の不正な目的で設計され得る。マルウェア攻撃の種類には、ウィルス攻撃、ワーム攻撃、トロイの木馬攻撃、スパイウェア攻撃、アドウェア攻撃、ボットネット攻撃、ルートキット攻撃、およびサービス妨害攻撃(DDOS)があり得る。マルウェア開発者は典型的には、彼らのソフトウェアをインターネットで、多くの場合、内密に配布する。インターネット利用は世界中で広がり続けるので、マルウェア開発者は、このソフトウェアをリリースする動機がこれまで以上に高まっている。
マルウェアは、ブラウザの脆弱性を悪用する悪質なウェブページと通信しながらブラウザを実行しているコンピュータにインストールされることが多い。これらの悪質なウェブページは、「エクスプロイト」または「エクスプロイト・キット」を用いて、攻撃者が選択した実行可能プログラムを訪問者のコンピュータにユーザからの操作なしでダウンロードし起動することができる。すなわち、ブラウザまたは自動起動される外部プログラムおよび拡張機能の欠陥により、ユーザが悪質なウェブページを訪問した際に、ユーザがインストールに気づかないように、悪質なウェブページがマルウェアを自動的にインストールすることを許してしまう可能性がある。エクスプロイト・キットの例には、ブラックホールおよびインコグニート(Incognito)・エクスプロイト・キットがある。これらのキットは、エクスプロイト・キットのインストールを捜索するアンチウィルス・エンジンおよびウェブ・クローラからエクスプロイト・コードを隠蔽するための難読化ルーチンを利用する。
多くの場合、ユーザによりアクセスされるウェブページは、悪質なウェブページを参照するように侵入された「無実の」ウェブページである。攻撃者は、彼らの悪質なウェブページにトラフィックを送るために「無実の」ウェブページに侵入し、この悪質なウェブページは、悪質な実行可能ファイルまたはブラウザ・エクスプロイト・コードなどの悪質なコードをホストするために用いられる。攻撃者は、ハイパーテキスト・マークアップ言語(「HTML」)コードを無実のウェブページに注入する方法を発見し、これにより、訪問者のブラウザは、訪問者に知らせずに悪質なウェブページにコンテンツを要求し処理することになる。
マルウェアの伝播により、たとえばシステム・ユーザ・タイム、システム管理者リソース、ネットワーク帯域幅、ディスク領域、および中央処理装置(「CPU」)サイクルなどの貴重なリソースが浪費される。マルウェアは、原本が修復不可能となるように、データファイルを崩壊させることもある。加えて、マルウェアは、侵入したコンピュータに機密データ(たとえば、銀行情報、パスワードなど)をマルウェア攻撃者に送信させることもある。
本開示のいくつかの例と一致して、データセットにアクセスし、事前定義された変換アルゴリズムに従って、データセットをバイナリ・データセットに変換し、バイナリ・データセットにおける1つまたは複数のサイクルを特定し、特定された1つまたは複数のサイクルに対して統計分析を行い、行われた統計分析に基づいて、データセットの組が悪質なソフトウェア・コードを含むと判定するための、コンピュータで実行される方法、装置、および命令の組を格納する非一時的コンピュータ可読記憶媒体が提供される。
また、本開示のいくつかの例と一致して、データセットが悪質なソフトウェア・コードを含むと判定することは、行われた統計分析の結果を、悪質なソフトウェア・コードのプロファイル内の格納された値と比較することと、行われた統計分析の結果が、悪質なソフトウェア・コードのプロファイル内の格納された値の所定の閾値内である場合に、データセットが悪質なソフトウェア・コードを含むと判定することとを含む。
また、本開示のいくつかの例と一致して、事前定義された変換アルゴリズムは、文字を「0」に変換することと、数字を「1」に変換することとを含む。
また、本開示のいくつかの例と一致して、統計分析を行うことは、最長連続サイクル部分文字列長、文字列あたりの分離した連続サイクル数量、および文字列あたりのサイクルの数量のうちの少なくとも1つを計算することを含む。
また、本開示のいくつかの例と一致して、悪質なソフトウェア・コードは、ブラックホール・エクスプロイト・キットである。
本開示の少なくとも1つの実施形態を詳細に説明する前に、本開示は、その用途が以下の説明に記載するまたは図面に示す構造の細部および配置に限定されないことを理解されたい。本開示は、記載したものに加えた実施形態が可能であり、様々な方法で実施し実行することが可能である。また、本明細書ならびに要約書で用いられる表現および専門用語は、説明のためのものであり、限定とみなされるべきではないことを理解されたい。
添付の図面は、本明細書に組み込まれ、その一部を構成するものであり、本開示の特定の実施形態を例示し、記述と共に、本開示の原理を説明するのに役立つものである。
したがって、本開示が基づく概念を、本開示のいくつかの目的を遂行するために他の構造、方法、および/またはシステムを設計するための基礎として容易に利用できることを当業者は理解するだろう。それゆえ、特許請求の範囲が、本開示の趣旨および範囲から逸脱しない限りにおいてそのような均等な構造を含むものとみなされるべきであることを認識するのは重要である。
本開示のいくつかの例による、システム環境を示す図である。 本開示のいくつかの例による、コンピューティング・デバイスの一例を示す図である。 本開示のいくつかの例による、データセットがマルウェアを含むか判定するためのフロー図である。 本開示のいくつかの例による、値配列難読化(value−array obfuscation)データセットの一例を示す図である。 本開示のいくつかの例による、数字を強調したデータセットの一例を示す図である。 本開示のいくつかの例による、変換されたデータセットの一例を示す図である。 本開示のいくつかの例による、データセットにおけるサイクルの一例を示す図である。 開示した実施形態を実現するためのコンピュータ・システムの一例を示す図である。
本開示の本実施形態への参照を詳細に行うことにし、本開示の特定の例を添付の図面に示す。
エクスプロイト・キット、たとえば上記のブラックホールおよびインコグニート・エクスプロイト・キットは、難読化ルーチンまたはアルゴリズムを用いてこれらのキットをソフトウェアに埋め込む。本明細書で論じる難読化ルーチンの一例には、値配列難読化がある。値配列難読化ルーチンでは、難読化されるコードの各バイトは、セパレータ付きの大きなデータ配列に符号化される。たとえば、整数の配列をJavaScript(登録商標)で定義することができ、ここでString.fromCharCode()は、以下の例1に示すように、各整数を文字へ簡単に変換する。
Figure 0006505533
他の例では、以下の例2に示すように、例えば、文字、数字、および区切り記号(punctuation)の長い文字列により、非表示DIV要素が埋められる。
Figure 0006505533
ループが配列の各要素に対して反復され、String.split()呼び出しを最初に含むことがあり、次いで、復号したデータを新しい文字列に追加し、この文字列は後でeval()に渡される。
これらのキットは、難読化ルーチンの多形性質のため、単純な部分文字列一致または適度に複雑な正規表現すら用いても、簡単に検出されないことがある。これに対処するため、本明細書で論じるように、難読化コードは、変換技法、たとえば文字変換技法または変換アルゴリズムを用いて検出することができる。統計分析を、変換されたデータにおいて特定されたサイクルに対して行うことができる。少なくともいくつかのエクスプロイト・キットを含む変換されたデータは、特定の統計的属性が関連付けられる。したがって、エクスプロイト・キットは、本明細書で論じる原理に従って、特定することができる。
本明細書で論じるように、データセットにアクセスし、事前定義された変換アルゴリズムに従ってバイナリ・データセットに変換することができる。1つまたは複数のサイクルを、バイナリ・データセット内で特定することができる。統計分析を、特定された1つまたは複数のサイクルに対して行うことができる。データセットにおける悪質なソフトウェア・コードを、行われた統計分析に基づいて特定することができる。
1つまたは複数の例によるシステム100を、図1に示す。システム100は、悪質コード検出部104を含むコンピューティング・デバイス102と、コンテンツを格納する複数のサーバ108、110とを含むことができる。サーバ108、110を、ネットワーク106を介して通信可能に接続することができる。コンピューティング・デバイス102およびサーバ108、110は、サーバ、メインフレーム・コンピューティング・デバイス、これらの構成要素の任意の組合せ、または任意の他の適切なコンピューティング・デバイス、リソース・サービス、たとえばクラウドなどとして実装することができる。ネットワーク106は、1つまたは複数の直接通信リンク、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、または任意の他の適切な接続を含むことができる。ネットワーク106は、インターネットを含むこともできる。
悪質コード検出部104は、コンテンツを分析して悪質なコードを検出するための、メモリ(図示せず)に接続された1つまたは複数のプロセッサ(図示せず)を含むコンピューティング・デバイス上で実行される1つまたは複数のアプリケーションとすることができる。プロセッサは、たとえば、カリフォルニア州サンタクララのインテル社製のPentium(登録商標)プロセッサなどの汎用マイクロプロセッサ、特定の例による方法の少なくとも一部をそのハードウェアおよびファームウェアに具現化する特定用途向け集積回路、モバイルデバイスプロセッサ、これらの組合せなどを含むことができる。メモリは、電子情報を格納可能な任意のデバイス、たとえばRAM、フラッシュメモリ、ハードディスク、内部または外部のデータベースなどとすることができる。メモリは、特定の実施形態による方法の少なくとも一部を実施するための、プロセッサにより実行されるように構成された命令を格納するための非一時的記憶媒体として実装することができる。たとえば、メモリは、本明細書で論じる他の機能に加えて悪質なコードを検出するための、プロセッサ上で実行されるように構成されたコンピュータ可読命令または機械可読命令などのコンピュータ・プログラム命令を格納することができる。
図1に示す例では、悪質コード検出部104は、コンピューティング・デバイス102により提供されている。他の例では、悪質コード検出部は、サーバ108、110、および/または、システム環境100に図示しない他のデバイスにより提供されてもよい。
図1に示す例では、コンピューティング・デバイス102は、サーバ108、サーバ110、またはシステム環境100に図示しない他のデバイスからコンテンツにアクセスすることができる。他の例によれば、コンピューティング・デバイス102は、システム環境100内の図示しないローカルまたはリモートの記憶デバイスからコンテンツにアクセスすることができる。
図2に、悪質なコードを検出するためのコンピューティング・デバイス200のいくつかの構成要素を示す。コンピューティング・デバイス200は、たとえば、図1のコンピューティング・デバイス102として実装することができる。図2に示すように、コンピューティング・デバイス200は、悪質コード検出部202を含む。悪質コード検出部202は、データ収集部204と、データ処理部206と、統計分析部208とを含む。データ収集部204は、分析して悪質なコードを含むか判定するためのデータの収集を容易にすることができる。データ処理部206は、データ収集部204により収集されたデータを処理することができる。たとえば、データ処理部206は、事前定義された変換アルゴリズムに従ってデータを変換することができる。データ処理部206はさらに、変換されたデータ内のサイクルを特定することができる。統計分析部208は、変換されたデータ、およびこの中で特定されたサイクルに統計分析を行うことができる。統計分析部208はさらに、悪質なコードがデータに含まれるかを判定するために、統計分析の結果を悪質なコードのプロファイルと比較することができる。
コンピューティング・デバイス200は、悪質コード・プロファイル209をさらに含むことができる。悪質コード・プロファイル209は、1つまたは複数の悪質なコードに対するプロファイルを格納することができる。これらのプロファイルの各々は、統計的属性に関する厳密値および/または閾値を含むことができる。いくつかの例によれば、複数の閾値を、1つまたは複数の統計的属性に対して、所望の検出感度に基づいて格納することができる。たとえば、より広い閾値範囲を、より高い感度を得るために統計的特性に対して格納することができ、より狭い閾値範囲を、より低い感度を得るために統計的特性に対して格納することができる。統計的特性のいくつかの例については、以下で論じる。悪質コード・プロファイル209は、以下でより完全に論じるように、データセットが悪質なコードを含むか判定するために、悪質コード検出部202がアクセスすることができる。
コンピューティング・デバイス200は、プログラム命令の形式の機械可読コードを実行して本明細書で論じる方法を実施するためのプロセッサ210をさらに含むことができる。コンピューティング・デバイス200は、システム環境100内の他のデバイスとデータを送受信するための送信器/受信器212をさらに含むことができる。コンピューティング・デバイス200は、システム環境100内の他のデバイスとの通信を容易にするためのネットワーク・インターフェース214をさらに含むことができる。
図3に、データが悪質なコードを含むか判定するための処理の一例としてのフロー図を示す。図3に示した処理は、たとえば、図1に示したコンピューティング・デバイス102、および図2に示したコンピューティング・デバイス200により、実施することができる。
図3に示すように、302において、データセットにアクセスすることができる。データセットは、ウェブコンテンツを提供するサーバ、ローカルまたはリモートの記憶デバイスなどから、アクセスすることができる。データセットは、たとえば、ハイパーテキスト・マークアップ言語(「HTML」)、javascript(登録商標)、実行可能ファイルなどのフォーマットとすることができる。
304において、アクセスされたデータセットを変換することができる。たとえば、データセットは、事前定義された変換アルゴリズムに従って、バイナリ・データセットに変換することができる。事前定義された変換アルゴリズムは、いくつかの例によれば、テキストデータの文字列の全ての項目を「0」または「1」に変換することを含むことができる。たとえば、文字、すなわちアルファベットの文字は「0」に変換することができ、数字は「1」に変換することができ、逆も同様である。変換された文字は、0および1の新しい文字列を形成することができる。
以下は、値配列難読化を含まないデータセット、および変換されたデータセットの例3であり、ここで、事前定義されたアルゴリズムは、文字列の数字を1に変換し、アルファベット文字またはHTMLの一片を0に変換する。
例3
データセット:
<table id="bran" width="100" style="border: 2px solid black">
変換されたデータセット:
0000000000000000000000001110000000000000000010000000000000000
以下の例4では、値配列難読化を含むデータセットと、変換されたデータセットとを与える。
例4
難読化データセット:
<style>#c118{background:url(data:,13,41.5,26,55,12.5,32.5,28,10,10.5,41.5,17.5,6.5,26.5,22.5,10.5,9.5,23.5,42,25,11,43.5,42,43,11,2.5,52.5,9.5,27,15,15,12.5,36.5,47.5,
変換された難読化データセット:
000000000111000000000000000000000011011010110110110101101011011011010110
10110101010110101101011010101011010110110110110101101101101010110101010110110110110101101011010
例3および例4の2つの変換されたデータセットを比較すると、0および1のパターンが出現している。0の小クラスタに1の小クラスタが続き、繰り返している。これらの0および1の小クラスタはクラスタとなり、複数のサイクルが文字列内で互いに隣接して出現する場合に、連続サイクル(contiguous cycle)が現れる。サイクルおよび連続サイクルは、正規表現で簡単に検出される。したがって、図3に記載した処理に戻ると、306において、1つまたは複数のサイクルを、変換されたデータセットから特定することができる。
本明細書で論じるように、「サイクル」は、変換されたデータセットにおける0および1のパターンの一例とすることができる。「連続サイクル」は、文字列内で互いに隣接する1つまたは複数の同一のサイクルとすることができる。最長連続サイクル部分文字列長(「LCCSL(longest contiguous cycle substring length)」)は、変換されたデータに現れる連続サイクルの最長の組の長さとすることができる。LCCSLを用いる1つの目的は、元の未変換の文字列における潜在的な配列状の構造を特定することである。LCCSLの値は、3つの中間形式を介して計算され、各形式は前の形式に基づく:1)0および1。2)0および1のサイクル。ここで、各サイクルは、潜在的な配列における要素およびそのセパレータを表し得る。3)連続して出現するサイクル:連続して現れる要素およびセパレータは、元のデータに現れる配列状の構造を表す。
図3に示すように、308において、統計分析を、特定されたサイクルに対して行うことができる。たとえば、以下の統計的属性のうちの1つまたは複数を計算することができる。
LCCSL − テキストのみを含むデータの文字列における、最大数の文字に広がる連続サイクルの長さ、
文字列あたりの分離した連続サイクル数量 − 文字列あたりの分離した連続サイクルの数、
文字列あたりのサイクルの数量 − 文字列あたりのサイクルの数、
LCCSL/文字列全長、および
LCCSL/連続部分文字列の数。
他の統計的属性を計算してもよいことは理解されよう。
図3に示すように、310において、データセットが悪質なコードを含むか判定することができる。この判定は、計算された統計的属性値を、悪質コード・プロファイル209内の対応する格納された統計的属性値と比較することで、行うことができる。この比較は、正確に一致するか、または計算された統計的属性値が所定の閾値に収まるかを判定することでもよい。計算された統計的属性値が一致するか、または1つまたは複数の悪質コード・プロファイルの所定の閾値内である場合、悪質コード検出部202は、データセットが悪質なコードを含むと判定することができる。さらに、悪質コード検出部は、一致した悪質コード・プロファイルに基づいて、どの種類の悪質なコードが検出されたかを判定することができる。
いくつかの例によれば、データセットが悪質なコードを含むことを示す警告を生成することができ、この警告は、データセットに含まれていた悪質なコードの種類を特定することができる。この警告は、表示画面に表示する、表示用装置に送信する、ログに記録するなどすることができる。この警告はさらに、一致する閾値レベルに関連付けられた感度のレベルを特定することができる。
悪質コード検出部の感度を、たとえばユーザ・インターフェースにより設定する、デフォルトで設定するなどが可能であることは理解されよう。たとえば、悪質コード検出部は、悪質なコードがデータセットに含まれていると判定するために、1つの統計的属性のみが一致するかまたは所定の閾値内である必要があるように構成することができる。他の例によれば、悪質なコードがデータセットに含まれていると判定するために、2つの統計的属性が一致するかまたは所定の閾値内である必要がある。他の例によれば、悪質なコードがデータセットに含まれていると判定するために、3つの統計的属性が一致するかまたは所定の閾値内である必要がある、といった具合である。
以下は、データセットが悪質なソフトウェア・コードを含むか判定する例である。データセットが悪質なソフトウェア・コードを含むか判定するための処理を説明するのを支援するために、例3として以下に説明する次のコードは、難読化されていないjavascript(登録商標)の一例である:
Figure 0006505533
このjavascript(登録商標)は、新しいリモート・スクリプト要素をDOMに追加し、ブラウザに、悪質なサーバgg4g.example.eeに対するパスloadj.jsのGET要求を行わせる。これはまた、ブラウザに、自身に関するなんらかのフィンガープリント情報を悪質なサーバに渡させる。
図4Aに、値配列難読化を用いた例3のjavascript(登録商標)の難読化javascript(登録商標)注入コードの例示の文字列を示す。値の配列は、非表示DIV要素内の<b>、<i>、および<u>要素である。最後のスクリプト要素はこの配列を復号し、隠しjavascript(登録商標)を実行し、隠しjavascript(登録商標)は他のスクリプト要素をDOMに追加し、このスクリプト要素はブラウザに攻撃者のサーバとネットワーク接続を行うように要求する。これはまた、何らかのフィンガープリント情報を犠牲者のブラウザから攻撃者へ送る。
値難読化ルーチンの性質によって、値配列は、多数の寸法(dimension)にわたって毎回ランダムに生成され得る。この最小限のランダム化の使用であっても、従来の検出システムは簡単に阻止され得る。
図3に関して上記で論じたように、この文字列は、まず事前定義された変換アルゴリズムを用いてデータセットを変換されたデータセットに変換することで、分析される。この例では、データセットは0および1に変換される:数字(0−9)である文字は1に変換され、その他全ては0に変換される。次いで、単純な状態機械が変換された文字列に対して起動され、サイクルおよび連続サイクルオフセット(ここで、連続サイクルは文字列内に現れる)ならびに長さ情報を同一反復内で抽出する。
図4Bに、文字列内の全ての数字に下線が引かれた難読化文字列を示す。変換アルゴリズムによれば、文字列内の数字は1に変換されることになる。
図4Cに、図4Bで数字が強調された難読化文字列を示す。他の文字の全ては0に変換されている。
図4Dに、難読化文字列におけるサイクルおよび連続サイクルを示す。サイクルは<−−−>で識別され、連続サイクルは、図4Dで下線が引かれているが、単純にサイクルの組であり、この始まりおよび終わりは、太字の<シンボルおよび>シンボルで示されている。
統計分析が、特定されたサイクルに対して行われる。統計値は、元の文字列の長さ、発見されたサイクルの配列(およびそれらのそれぞれの長さ)、発見された連続サイクルの配列(それらの長さ、および各々が含むサイクルの数)だけを用いて計算される。図4Aに示した難読化文字列に対する統計値は以下のようになる。
"avg-cycle-len": 9.746666666666666,"lccsl-to-num-cycles": 6.751111111111111,
"num-cycles": 225,"longest-contig-cycle-to-str-len": 0.5133491044271713,
"longest-contig-cycle": 1519,"avg-contig-cycle-len": 438.6,
"num-cycles-to-str-len": 0.07603920243325447,
"avg-num-cycles-per-contig-cycle": 45.0,
"num-contig-cycles": 5, および
"num-contig-cycles-to-str
len": 0.0016897600540723217.
生成された統計値が既知のマルウェア・サンプルのプロファイルに一致するかを判定するために、統計的属性に対する許容範囲を示すプロファイルの組にアクセスすることができる。この例では、2つのプロファイルにアクセスできる。新スクリプト注入工作(injection campaign)用のもの(a)と、例示的エクスプロイト・キット用のもの(b)である。プロファイルの各々は、以下のように1つまたは複数の統計的属性を含む。
Figure 0006505533
Figure 0006505533
サンプルの難読化文字列から収集された統計値を、アクセスされたプロファイル内の属性に適用して、サンプルが2つのアクセスされたプロファイルのいずれかに一致するかを判定する。
Figure 0006505533
Figure 0006505533
この例では、計算された統計値とアクセスされたプロファイル内の対応する属性の範囲との間に一致が存在するためには、統計値は、プロファイルに存在する全ての属性に対して指定された範囲内になくてはならない。この例では、サンプルの値が、注入工作プロファイルに対して指定された範囲内に入るので、一致したとみなされ、例示的エクスプロイト・キットのプロファイルに対しては一致ではなく、これは、1つまたは複数の値が指定範囲内に入らないためである。
本明細書で論じるいくつかの例によれば、より精巧なシステムを、サンプルがプロファイルに一致するかを判定するために用いることができる。たとえば、重みを各キーに付加してもよく、その属性に対するサンプルの値が一致する場合、重みがスコアに加算され、サンプルの値が一致しない場合、重みがスコアから減算される。スコアが正で、ある閾値を超える場合、サンプルは一致したと考えることができる。
本明細書で論じるいくつかの例によれば、所与の属性に対する指定範囲の中心からの距離を用いて、どの程度の重みが加算または減算されるかに影響を与えることができ、これはいくつかの機械学習技法に非常に類似している。
以下は、本明細書で論じる処理が統計的に適切であると結論を下すために行われる検定(testing)の説明である。異なるエクスプロイト・キットに対する悪質コード・プロファイルを特定する際に、既知のエクスプロイト・キットを含むデータセットを、上記で論じたように変換し分析した。たとえば、ブラックホール、インコグニート、および、svcgostと呼ばれる正体不明のエクスプロイト・キットを含むデータセットを、それらのデータセットに含めた。さらに、ランダムなURLを訪問した際にリモート・ウェブサーバから送信された多数の文字列を表すランダム・データセットを、上記で論じたように変換し分析した。
表1において、LCCSLを異なるデータセットに関して分析して、文字列内のLCCSLがデータセット間で異なるか判定した。以下は、上記で説明した2つのデータセット、ランダムおよびエクスプロイトの間の、文字列あたりのLCCSLの比較と、特定のエクスプロイト・キット、すなわちブラックホール、インコグニート、およびsvcgostからの統計値を表す。
Figure 0006505533
表3の値から分かるように、エクスプロイト・キット・データセットの平均は、ランダム・サンプルの平均と大きく異なる。エクスプロイト・キットにおける平均的なサイクルの長さは、値配列難読化を用いるために、長いと予想される。しかしながら、平均的な文字列は、多数の長い連続サイクルを有するわけではないので、文字変換、または変換アルゴリズムを用いたデータセットの変換を用いてマルウェアを特定することができる。
一般的に、平均的な文字列は、マルウェアなしでは、多数の短い連続サイクルを含むと思われ、というのは、HTMLタグが、文字の短いスパンで区切られた数字を含むサイズ属性を含むことが多いためである。しかしながら、長い値配列難読化コードを含む文字列は、マルウェアを含む場合、平均的により少数の連続サイクルを有するはずであり、というのは、寸法および他の数値属性の組を有するHTMLタグが、おそらくより少数であるためである。
以下の表4は、2つのデータセット、すなわち上述のランダムおよびエクスプロイトの間の、文字列あたりの分離した連続サイクルの数、ならびに、特定のエクスプロイト・キット、すなわちブラックホール、インコグニート、およびsvcgostからの統計値を比較する。
Figure 0006505533
2つのデータセット、すなわちランダムおよびエクスプロイト・キットの分析は、比較的類似した平均を有していたが、Z検定は、エクスプロイト・キットがランダム文字列よりも、平均した文字列あたりの分離した連続サイクルが多いことを示していた。具体的に、ブラックホール・エクスプロイト・キットをレビューすると、平均した文字列あたりの連続サイクルの部分文字列は、たった1つであった。
連続サイクルだけに、および、平均した文字列あたりのサイクル数だけに注目していたら、エクスプロイト・キットは、平均した文字列あたりのサイクル数がより大きいと予想されただろう。表5は、2つのデータセット間の、文字列あたりのサイクル数を比較する。
Figure 0006505533
表5において分かるように、データセット間のサイクル数の違いは大きい。したがって、ブラックホールおよびインコグニートの文字列は、文字列あたりのサイクル数が、平均的な文字列より非常に多い。
追加の統計的属性を、上記の統計的属性を操作することで決定することができる。たとえば、文字列内の分離した連続サイクルの数でLCCSLを割ることにより、ブラックホールなどのマルウェアが文字列に存在することの強力な指標となる比が得られる。他の例では、最長の連続サイクル部分文字列により消費される文字列の量を考慮すると、値配列難読化を用いた特定のエクスプロイト・キットに関する強力な指標が得られる。表4は、2つのデータセット間の、LCCSLおよび他の値に基づく特徴を比較する。表6に示した値は平均値である。
Figure 0006505533
したがって、マルウェア、たとえばブラックホールおよびインコグニートは、これらの統計的属性のうちの1つまたは複数に基づいて、分類するか、またはプロファイリングすることができる。上記で論じたように、これらの値を用いて、ブラックホール、インコグニート、およびsvcgostの各々に対するマルウェア・プロファイルを作成することができ、ここで、マルウェア・プロファイルは、複数の統計的属性の各々に対する値および/または1つまたは複数の閾値範囲を含む。これらのプロファイルを用いて、上述のように、文字列がマルウェアを含むかを判定することができる。
図5に、一例による、図1に示したデバイス102、および/または図2に示したデバイス200などのコンピューティング装置500のブロック図を示す。この点において、コンピューティング装置500は、本明細書で説明した機能のうちの1つまたは複数を実行するためのプラットフォームとして用いることができる。
コンピューティング装置500は、1つまたは複数のプロセッサ502を含む。プロセッサ502を用いて、図3に示した方法に記載されたステップの一部または全部を実行することができる。プロセッサ502からのコマンドおよびデータは、通信バス504上で通信される。コンピューティング装置500はまた、プロセッサ502用のプログラム・コードがランタイム中に実行可能であるランダムアクセスメモリ(RAM)などのメインメモリ506と、二次メモリ508とを含む。二次メモリ508は、たとえば、1つまたは複数のハードディスク・ドライブ510、および/または、フレキシブルディスク・ドライブ、磁気テーブ・ドライブ、コンパクト・ディスク・ドライブなどを表すリムーバブル・ストレージ・ドライブ512を含むことができ、これらの中に、図3に示した方法を実行するためのデータ収集部204、データ処理部206、統計分析部208などに対するコンピュータ可読命令または機械可読命令の形式のプログラム・コードのコピーを格納することができる。本明細書で論じた記憶デバイスは、たとえばランダム・アクセス・メモリ(RAM)またはリード・オンリー・メモリ(ROM)などの非一時的、揮発性または不揮発性メモリの組合せを備えることができる。
リムーバブル・ストレージ・ドライブ510は、よく知られた方法で、リムーバブル・ストレージ・ユニット514から読み出す、および/または、これに書き込むことができる。ユーザ入力および出力デバイス516は、キーボード、マウス、ディスプレイなどを含むことができる。ディスプレイ・アダプタ518は、通信バス504およびディスプレイ520とインターフェースをとることができ、プロセッサ502から表示データを受信し、表示データをディスプレイ520に対する表示コマンドに変換することができる。加えて、プロセッサ502は、ネットワーク・アダプタ522を介して、たとえばインターネット、LANなどのネットワーク上で通信することができる。
前述の記載は、例示および説明の目的で提示した。これらは、網羅的ではなく、開示した例を開示した厳密な形態に限定するものではない。修正および改変が、上記の教示に照らして可能であり、開示した例を実施することから取得することができる。たとえば、記載した実装はソフトウェアを含むが、開示した例は、ハードウェアおよびソフトウェアの組合せとして、またはファームウェアで実装することができる。ハードウェアの例には、パーソナル・コンピュータ、サーバ、ラップトップ、メインフレーム、マイクロプロセッサなどを含むコンピューティング・システムまたは処理システムがある。加えて、開示した態様はコンピュータ上のメモリに格納されているように説明されているが、これらの態様が、ハードディスク、フレキシブルディスク、CD−ROM、USBメディア、DVD、または、RAMもしくはROMの他の形態のような二次記憶デバイスなどの、他の種類のコンピュータ可読記憶媒体にも格納できることを当業者は理解するだろう。
本明細書および開示した方法に基づくコンピュータ・プログラムは、熟練した開発者の技能の範囲内にある。様々なプログラムまたはプログラム・モジュールが、当業者に知られている技法のいずれかを用いて作成するか、または既存のソフトウェアに関連して設計することができる。たとえば、プログラム・セクションまたはプログラム・モジュールは、.Net Framework、.Net Compact Framework(および関連言語、たとえばVisual Basic、Cなど)、XML、Java(登録商標)、C++、JavaScript(登録商標)、HTML、HTML/AJAX、Flex、Silverlight、または任意の他の現在知られているもしくは後に作成されるプログラミング言語で、またはこれらを用いて、設計することができる。そのようなソフトウェア・セクションまたはモジュールのうちの1つまたは複数は、コンピュータ・システムまたは既存のブラウザ・ソフトウェアに統合することができる。
他の例は、本明細書を考慮し、本明細書で開示した例を実施すれば、当業者にとって明らかであろう。特許請求の範囲における記述は、特許請求の範囲で用いられる文言に基づいて広く解釈されるべきであり、本明細書内でまたは本出願の審査中に説明される例に限定されず、これらの例は非排他的であると解釈されるべきである。したがって、本明細書および例は、単なる例とみなされるべきであり、真の範囲および趣旨は、以下の特許請求の範囲およびこれらの全範囲の均等物により示されるものとする。
本発明の多数の特徴および利点は、この詳細な明細書から明らかであり、したがって、添付の特許請求の範囲は、本発明の真の趣旨および範囲に含まれる全てのシステムおよび方法を網羅するものとする。本明細書では、不定冠詞「a」および「an」は、移行句「備える(comprising)」、「含む(including)」、および/または「有する(having)」を含む開放型(open−ended)請求項では、「1つまたは複数(one or more)」を意味する。さらに、多数の修正および改変を当業者は容易に思いつくと思われるので、図示し説明した厳密な構成および動作に本発明を限定するのは望ましくなく、したがって、全ての適切な修正例および均等物は、本発明の範囲内に入るものとして再分類することができる。

Claims (16)

  1. データセットにアクセスするステップと、
    事前定義された変換アルゴリズムに従って、前記データセットをバイナリ・データセットに変換するステップと、
    前記バイナリ・データセットにおける1つまたは複数のサイクルを特定するステップと、
    特定された1つまたは複数の前記サイクルに対して統計分析を行うステップと、
    行われた前記統計分析に基づいて、前記データセットの組が悪質なソフトウェア・コードを含むと判定するステップと
    を有するコンピュータで実行される方法。
  2. 前記データセットが悪質なソフトウェア・コードを含むと判定するステップは、
    行われた前記統計分析の結果を、悪質なソフトウェア・コードのプロファイル内の格納された値と比較するステップと、
    行われた前記統計分析の結果が、前記悪質なソフトウェア・コードのプロファイル内の格納された値の所定の閾値内である場合に、前記データセットが悪質なソフトウェア・コードを含むと判定するステップと
    を含む請求項1に記載のコンピュータで実行される方法。
  3. 事前定義された前記変換アルゴリズムが、文字を「0」に変換することと、数字を「1」に変換することとを含む請求項1に記載のコンピュータで実行される方法。
  4. 前記統計分析を行うステップは、最長連続サイクル部分文字列長、文字列あたりの分離した連続サイクル数量、文字列あたりのサイクルの数量、および最長連続サイクル部分文字列長/文字列全長のうちの少なくとも1つを計算することを含む請求項1に記載のコンピュータで実行される方法。
  5. 前記悪質なソフトウェア・コードが、値配列難読化ソフトウェア・コードである請求項1に記載のコンピュータで実行される方法。
  6. 命令の組を格納するメモリと、
    格納された前記命令の組を実行するプロセッサと
    を備え、
    前記プロセッサは、
    データセットにアクセスするステップと、
    事前定義された変換アルゴリズムに従って、前記データセットをバイナリ・データセットに変換するステップと、
    前記バイナリ・データセットにおける1つまたは複数のサイクルを特定するステップと、
    特定された1つまたは複数の前記サイクルに対して統計分析を行うステップと、
    行われた前記統計分析に基づいて、前記データセットの組が悪質なソフトウェア・コードを含むと判定するステップと
    を含む方法を実行する、装置。
  7. 前記データセットが悪質なソフトウェア・コードを含むと判定するステップは、
    行われた前記統計分析の結果を、悪質なソフトウェア・コードのプロファイル内の格納された値と比較するステップと、
    行われた前記統計分析の結果が、前記悪質なソフトウェア・コードのプロファイル内の格納された値の所定の閾値内である場合に、前記データセットが悪質なソフトウェア・コードを含むと判定するステップと
    を含む、請求項6に記載の装置。
  8. 事前定義された前記変換アルゴリズムが、文字を「0」に変換することと、数字を「1」に変換することとを含む、請求項6に記載の装置。
  9. 前記統計分析を行うステップが、最長連続サイクル部分文字列長、文字列あたりの分離した連続サイクル数量、文字列あたりのサイクルの数量、および最長連続サイクル部分文字列長/文字列全長のうちの少なくとも1つを計算することを含む、請求項6に記載の装置。
  10. 前記悪質なソフトウェア・コードが、値配列難読化ソフトウェア・コードである、請求項6に記載の装置。
  11. データセットにアクセスするステップと、
    事前定義された変換アルゴリズムに従って、前記データセットをバイナリ・データセットに変換するステップと、
    前記バイナリ・データセットにおける1つまたは複数のサイクルを特定するステップと、
    特定された1つまたは複数の前記サイクルに対して統計分析を行うステップと、
    行われた前記統計分析に基づいて、前記データセットの組が悪質なソフトウェア・コードを含むと判定するステップと
    を含む方法を、プロセッサにより実行された場合に、前記プロセッサに実行させる命令の組を含む、非一時的コンピュータ可読記憶媒体。
  12. 前記データセットが悪質なソフトウェア・コードを含むと判定するステップは、
    行われた前記統計分析の結果を、悪質なソフトウェア・コードのプロファイル内の格納された値と比較するステップと、
    行われた前記統計分析の結果が、前記悪質なソフトウェア・コードのプロファイル内の格納された値の所定の閾値内である場合に、前記データセットが悪質なソフトウェア・コードを含むと判定するステップと
    を含む、請求項11に記載の非一時的コンピュータ可読記憶媒体。
  13. 事前定義された前記変換アルゴリズムが、文字を「0」に変換することと、数字を「1」に変換することとを含む、請求項11に記載の非一時的コンピュータ可読記憶媒体。
  14. 統計分析を行うステップが、最長連続サイクル部分文字列長、文字列あたりの分離した連続サイクル数量、文字列あたりのサイクルの数量、および最長連続サイクル部分文字列長/文字列全長のうちの少なくとも1つを計算することを含む、請求項11に記載の非一時的コンピュータ可読記憶媒体。
  15. 前記悪質なソフトウェア・コードが、値配列難読化ソフトウェア・コードである、請求項11に記載の非一時的コンピュータ可読記憶媒体。
  16. 前記データセットの組が悪質なソフトウェア・コードを含むと判定するステップが、選択された感度レベルに基づく、請求項11に記載の非一時的コンピュータ可読記憶媒体。
JP2015144498A 2014-07-22 2015-07-22 悪質なコードの検出 Active JP6505533B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/338,253 2014-07-22
US14/338,253 US10158664B2 (en) 2014-07-22 2014-07-22 Malicious code detection

Publications (2)

Publication Number Publication Date
JP2016029567A JP2016029567A (ja) 2016-03-03
JP6505533B2 true JP6505533B2 (ja) 2019-04-24

Family

ID=53719705

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015144498A Active JP6505533B2 (ja) 2014-07-22 2015-07-22 悪質なコードの検出

Country Status (3)

Country Link
US (1) US10158664B2 (ja)
EP (1) EP2977928B1 (ja)
JP (1) JP6505533B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10075456B1 (en) * 2016-03-04 2018-09-11 Symantec Corporation Systems and methods for detecting exploit-kit landing pages
US11038905B2 (en) * 2017-01-25 2021-06-15 Splunk, Inc. Identifying attack behavior based on scripting language activity
JP7084273B2 (ja) * 2018-10-10 2022-06-14 株式会社Nttドコモ 難読化判定装置
US11538038B2 (en) * 2019-05-31 2022-12-27 Paypal, Inc. Systems and methods for remote detection of computer device attributes
CN113315742B (zh) * 2020-02-27 2022-08-09 华为技术有限公司 攻击行为检测方法、装置及攻击检测设备

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375204A (en) * 1992-04-30 1994-12-20 Ricoh Company, Ltd. System and method for efficient binary encoding of procedures in a document processing language
US5414833A (en) * 1993-10-27 1995-05-09 International Business Machines Corporation Network security system and method using a parallel finite state machine adaptive active monitor and responder
US6802028B1 (en) 1996-11-11 2004-10-05 Powerquest Corporation Computer virus detection and removal
JP2000299748A (ja) * 1999-04-15 2000-10-24 Hitachi Zosen Corp 公衆回線を使用した通信方法
US20110238855A1 (en) 2000-09-25 2011-09-29 Yevgeny Korsunsky Processing data flows with a data flow processor
US8006305B2 (en) 2004-06-14 2011-08-23 Fireeye, Inc. Computer worm defense system and method
US7519998B2 (en) * 2004-07-28 2009-04-14 Los Alamos National Security, Llc Detection of malicious computer executables
WO2006031496A2 (en) 2004-09-10 2006-03-23 The Regents Of The University Of California Method and apparatus for deep packet inspection
US20070094734A1 (en) 2005-09-29 2007-04-26 Mangione-Smith William H Malware mutation detector
WO2007117574A2 (en) 2006-04-06 2007-10-18 Smobile Systems Inc. Non-signature malware detection system and method for mobile platforms
US20100205123A1 (en) * 2006-08-10 2010-08-12 Trustees Of Tufts College Systems and methods for identifying unwanted or harmful electronic text
US9021590B2 (en) 2007-02-28 2015-04-28 Microsoft Technology Licensing, Llc Spyware detection mechanism
US20090235357A1 (en) 2008-03-14 2009-09-17 Computer Associates Think, Inc. Method and System for Generating a Malware Sequence File
US8584233B1 (en) 2008-05-05 2013-11-12 Trend Micro Inc. Providing malware-free web content to end users using dynamic templates
GB0822619D0 (en) 2008-12-11 2009-01-21 Scansafe Ltd Malware detection
US8635694B2 (en) 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US8621626B2 (en) 2009-05-01 2013-12-31 Mcafee, Inc. Detection of code execution exploits
US9087195B2 (en) * 2009-07-10 2015-07-21 Kaspersky Lab Zao Systems and methods for detecting obfuscated malware
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US8572740B2 (en) 2009-10-01 2013-10-29 Kaspersky Lab, Zao Method and system for detection of previously unknown malware
US8375450B1 (en) 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
US8176559B2 (en) 2009-12-16 2012-05-08 Mcafee, Inc. Obfuscated malware detection
US20110154495A1 (en) 2009-12-21 2011-06-23 Stranne Odd Wandenor Malware identification and scanning
US9213838B2 (en) 2011-05-13 2015-12-15 Mcafee Ireland Holdings Limited Systems and methods of processing data associated with detection and/or handling of malware
JP5425840B2 (ja) 2010-06-07 2014-02-26 サムソン エスディーエス カンパニー リミテッド アンチマルウェアシステム及びその動作方法
US8997233B2 (en) 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
PL2702524T3 (pl) 2011-04-27 2018-02-28 Seven Networks Llc Wykrywanie i filtrowanie złośliwego oprogramowania, oparte na obserwacji ruchu wykonywanego w rozproszonym układzie zarządzania ruchem w sieciach mobilnych
US8510841B2 (en) 2011-12-06 2013-08-13 Raytheon Company Detecting malware using patterns
US9021589B2 (en) 2012-06-05 2015-04-28 Los Alamos National Security, Llc Integrating multiple data sources for malware classification

Also Published As

Publication number Publication date
EP2977928B1 (en) 2017-09-13
JP2016029567A (ja) 2016-03-03
EP2977928A1 (en) 2016-01-27
US20160028746A1 (en) 2016-01-28
US10158664B2 (en) 2018-12-18

Similar Documents

Publication Publication Date Title
US8479296B2 (en) System and method for detecting unknown malware
EP2946331B1 (en) Classifying samples using clustering
Liu et al. A novel approach for detecting browser-based silent miner
Wang et al. Jsdc: A hybrid approach for javascript malware detection and classification
JP6505533B2 (ja) 悪質なコードの検出
US8769692B1 (en) System and method for detecting malware by transforming objects and analyzing different views of objects
Huang et al. Malicious URL detection by dynamically mining patterns without pre-defined elements
JP6697123B2 (ja) プロファイル生成装置、攻撃検知装置、プロファイル生成方法、および、プロファイル生成プログラム
Shahzad et al. Detection of spyware by mining executable files
Nissim et al. Keeping pace with the creation of new malicious PDF files using an active-learning based detection framework
Kim et al. Detecting fake anti-virus software distribution webpages
JP6687761B2 (ja) 結合装置、結合方法および結合プログラム
US20160219068A1 (en) Method and apparatus for automatically identifying signature of malicious traffic using latent dirichlet allocation
KR101858620B1 (ko) 기계 학습을 이용한 자바스크립트 분석 장치 및 방법
CN107463844B (zh) Web木马检测方法及系统
WO2018066221A1 (ja) 分類装置、分類方法及び分類プログラム
KR102120200B1 (ko) 악성 코드 수집 방법 및 시스템
JP6691240B2 (ja) 判定装置、判定方法、および、判定プログラム
Dada et al. Performance evaluation of machine learning algorithms for detection and prevention of malware attacks
Gorji et al. Detecting obfuscated JavaScript malware using sequences of internal function calls
Khan et al. A dynamic method of detecting malicious scripts using classifiers
JP2020109611A (ja) コンピュータシステム内の悪意のあるアクティビティの源を検出するシステムおよび方法
Alam et al. Current trends and the future of metamorphic malware detection
Han Detection of web application attacks with request length module and regex pattern analysis
Süren et al. I see EK: A lightweight technique to reveal exploit kit family by overall URL patterns of infection chains

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

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: 20190226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190327

R150 Certificate of patent or registration of utility model

Ref document number: 6505533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250