JP6670907B2 - スクリプトの実行をブロックするシステム及び方法 - Google Patents

スクリプトの実行をブロックするシステム及び方法 Download PDF

Info

Publication number
JP6670907B2
JP6670907B2 JP2018192992A JP2018192992A JP6670907B2 JP 6670907 B2 JP6670907 B2 JP 6670907B2 JP 2018192992 A JP2018192992 A JP 2018192992A JP 2018192992 A JP2018192992 A JP 2018192992A JP 6670907 B2 JP6670907 B2 JP 6670907B2
Authority
JP
Japan
Prior art keywords
script
hash value
bytecode
similarity
hardware processor
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
JP2018192992A
Other languages
English (en)
Other versions
JP2019023918A (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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2019023918A publication Critical patent/JP2019023918A/ja
Application granted granted Critical
Publication of JP6670907B2 publication Critical patent/JP6670907B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/561Virus type 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/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
    • 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
    • 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/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Description

本開示は、米国特許法35 U.S.C. 119(a)-(d)に基づいて、2015年9月30日に出願されたロシア特許出願第2015141537についての優先権の利益を主張し、本明細書中に参考として援用する。
本発明は、概して、コンピュータセキュリティの分野に関するものであり、さらに詳細には、スクリプトの実行をブロックするシステム及び方法である。
コンピュータ及び情報技術における活発な開発により、電子商取引、電子文書の転送、クラウドストレージ及び他のコンピュータ技術における日常生活の中での幅広い使用がユーザにもたらされる。例えば、かなりの数のユーザは、彼らの個人情報及び機密情報をコンピュータに格納し、圧倒的多数の企業は、電子デバイス及びサービスを通じて、金融及び商業活動を行っている。
上述のコンピュータ技術の普及により、今度は、ハッキングのために、それらが使用されるという実例が増加している。様々な悪意あるプログラム(マルウェアとしても知られる)が多数登場しており、それらによって影響を受けたコンピュータ・システムの数は大幅に増している。悪意あるプログラムには、コンピュータ・システムからユーザの個人情報及び機密データ(ログインとパスワード、銀行情報、電子文書など)を盗むものもあり、感染したコンピュータ・システムから、いわゆるボットネットを形成するものもあり、さらに、ユーザに有料サービスを課すものもある。
多くの様々なセキュリティ技術は、悪意あるプログラムからコンピュータを保護するために用いられる。例えば、アンチウイルスプログラム、ファイアウォール、侵入検知システム(IDS)等であり、それらは、効果的に悪意あるプログラムを検出、且つ、削除するということができるものである。悪意あるプログラムに感染したコンピュータを効果的に修復することは、ユーザにとって、より重要である一方、企業にとっては、コンピュータ・システムに感染する試みを検出する間の、高い操作効率と有効性が重要である。
大多数の既存のセキュリティ・ソリューションは、その振る舞い又は構造がすでに知られているマルウェアを検出し、除去することを主目的としている。したがって、コンピュータ・システムが、新しく、未知であり、又は難読化されたマルウェア(具体的には、悪意あるスクリプト)によって攻撃されたと気づいた場合、既存のセキュリティ・ソリューションでは効果が無い。
さらに、悪意ある複合プログラム(具体的には、悪意あるスクリプト)に感染したコンピュータ・システムを検出するというタスクには、既知のセキュリティ・ソリューションにおいて大きな問題も存在している。悪意ある複合プログラムは、すべてが悪意ある機能を搭載するものではないが、いくつかのファイルから構成されたものである。
悪意あるスクリプトの実行をブロックするためのシステム及び方法の例示的な態様を開示する。例示的な方法は、
ハードウェアプロセッサによって、クライアントからサーバへのスクリプトの要求を傍受する工程と、
ハードウェアプロセッサによって、傍受したスクリプトのバイトコードを生成する工程と、
ハードウェアプロセッサによって、生成されたバイトコードのハッシュ値を計算する工程と、
ハードウェアプロセッサによって、バイトコードのハッシュ値と、データベースに保存されている悪意ある及びクリーンなスクリプトにおける複数のハッシュ値との間の類似度を決定する工程と、
ハードウェアプロセッサによって、データベースから類似のハッシュ値を識別する工程であって、識別されたハッシュ値とバイトコードのハッシュ値との類似度は、類似性の閾値の範囲内にある、工程と、
ハードウェアプロセッサによって、類似のハッシュ値の信頼係数を決定する工程と、
ハードウェアプロセッサによって、要求されたスクリプトが、類似度及び類似のハッシュ値の信頼係数に基づいて、悪意があるかどうか、を決定する工程と、
ハードウェアプロセッサによって、クライアントでの悪意あるスクリプトの実行をブロックする工程を備えている。
1つの例示的態様で、スクリプトの要求を傍受する工程は、
クライアントに、ネットワークのスクリプト要求を傍受するように構成されたドライバを提供する工程を含む。
1つの例示的態様で、バイトコードは、スクリプトにおける少なくとも1つのオペコードを含む。
1つの例示的態様で、スクリプトのバイトコードを生成する工程は、
ハードウェアプロセッサによって、ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作、及びプログラムの実行、における機能を担うスクリプトのコマンドを識別する工程と、
ハードウェアプロセッサによって、識別されたスクリプトコマンドをそれらの識別された機能に基づいて複数の機能グループにグループ化する工程と、
ハードウェアプロセッサによって、各機能グループにバイナリの値を割り当てる工程と、
ハードウェアプロセッサによって、バイナリの値からバイトコードを生成する工程を含む。
1つの例示的態様で、ハッシュ値は、ファジーハッシュを含む。
1つの例示的態様で、一致するハッシュ値の検索には、ファジー検索を含む。
悪意あるスクリプトの実行をブロックする例示的なシステムは、
クライアントからサーバへのスクリプトの要求を傍受し、
傍受したスクリプトのバイトコードを生成し、
生成されたバイトコードのハッシュ値を計算し、
バイトコードのハッシュ値と、データベースに保存されている悪意ある及びクリーンなスクリプトにおける複数のハッシュ値との間の類似度を決定し、
データベースから類似のハッシュ値を識別し、識別されたハッシュ値とバイトコードのハッシュ値の類似度は、類似性の閾値の範囲内にあり、
類似のハッシュ値の信頼係数を決定し、
要求されたスクリプトが、類似度及び類似のハッシュ値の信頼係数に基づいて、悪意があるかどうかと決定し、
クライアントでの悪意あるスクリプトの実行をブロックするように構成される。
悪意あるスクリプトの実行をブロックするためのコンピュータ実行可能命令を格納している例示的な非一時的なコンピュータ可読媒体であり、
上記命令は、クライアントからサーバへのスクリプトの要求を傍受する命令と、
傍受したスクリプトのバイトコードを生成する命令と、
生成されたバイトコードのハッシュ値を計算する命令と、
バイトコードのハッシュ値と、データベースに保存されている悪意ある及びクリーンなスクリプトにおける複数のハッシュ値の間の類似度を決定する命令と、
データベースからの類似のハッシュ値を識別する命令であって、識別されたハッシュ値とバイトコードのハッシュ値の類似度は、類似性の閾値の範囲内にある、命令と、
類似のハッシュ値の信頼係数を決定する命令と、
要求されたスクリプトが、類似度及び類似のハッシュ値の信頼係数に基づいて、悪意があるかどうかを決定する命令と、
クライアントで悪意あるスクリプトの実行をブロックする命令
を含む。
本発明の例示的な態様の上記の簡単な概要は、本発明の基本的な理解を提供するのに役立つ。この概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要または重要な要素を特定することも、本発明における任意の範囲又はすべての態様を線引きすることも意図されていない。その唯一の目的は、以下の本発明のより詳細な説明の前置きとして簡略化された形式で、一つ又は複数の態様を提示することである。前述の達成のために、本発明の一つ又は複数の態様は、特許請求の範囲で説明され、特に指摘された特徴を含む。
添付図面は、本明細書に組み込まれ、本明細書の1モジュールを構成し、本発明の1つ又は複数の例示的態様を示し、詳細な説明と共に、それらの原理及び実装を説明するのに役立つ。
図1は、スクリプトの実行をブロックするための例示的なシステムを示す。 図2は、スクリプトの実行をブロックするための例示的な方法を示す。 図3は、本発明のシステム及び方法の様々な態様を実装するために使用することができるコンピュータ・システムの一例を示す。
本発明の例示的態様は、悪意あるスクリプトの実行をブロックするためのシステム、方法、及びコンピュータプログラム製品における説明で本明細書に記載されている。当業者は、以下の説明は単なる例示であり、いかなる方法においても限定されることを意図するものではないことを理解するであろう。他の態様は、本開示の利益を有する当業者に対して容易に示される。添付の図面に示されるように、参照は例示的態様の実装に対して以下で詳細に説明される。同じ参照指標が、同一または同様の項目を参照するために、図面全体と以下の説明を通じて、可能な限り使用される。
以下の説明で使用される定義及び概念には、初めから導入されるものもある。
悪意あるスクリプトは、コンピュータ又はコンピュータのユーザデータに害を引き起こすことが可能であるスクリプトかもしれない。引き起こされる害は、例えば、盗難目的として、コンピュータに保存されているデータを含むコンピュータリソースへの不正アクセスであるかもしれず、及び、データの保存、計算の実行等を含むリソースの不正使用もありえる。
信頼できるスクリプトとは、コンピュータ又はそのユーザに害を引き起こすことのないスクリプトでありえる。信頼できるスクリプトは、信頼できるソフトウェアの製造元によって開発され、信頼できるソース(信頼できるサイトのライブラリの一員であるサイト等)からダウンロードしたスクリプトであると考えることができる。又、そのスクリプトの識別子(スクリプトファイルのMD5等)は、信頼できるスクリプトのライブラリに格納されている。製造元の識別子(デジタル証明書等)も、信頼できるスクリプトのライブラリに格納することができる。
図1は、サーバからの、クライアント(クライアント - サーバのアーキテクチャにおける構成要素)によって要求された悪意あるスクリプトの実行をブロックするための例示的なシステムの図を示す。システムは、サーバ100、クライアント101、傍受モジュール110、バイトコード計算モジュール120、ハッシュ値計算モジュール130、検索モジュール140、解析モジュール150、評価作成モジュール160、ハッシュ値ライブラリ170、及び評価テンプレートライブラリ180を含む。
1つの例示的な態様で、サーバ100は、少なくともウェブサーバ(インターネットのページを含む)、又は、ファイルサーバ(スクリプトを含む)でありえる。様々な例示的な態様で、スクリプトは、JavaScript(登録商標)、VBScript等のスクリプト言語で書かれたプログラム、VBA言語(アプリケーション用のVisual Basic)で書かれ、且つ、電子的なMS Officeの文書等に配置されるプログラム、Java(登録商標)言語で書かれたプログラム、ActionScript言語で書かれたプログラム、を含むが、これらに限定されない。スクリプトは、JavaScript(登録商標)コード、VBScript等を含むインターネットページの形式で、サーバ100からクライアント101へ転送され、インターネットサイトからクライアントのブラウザへネットワークによって送信され、又は、(VBAコードを含むMS Office文書等の)ファイル形式で、ファイル・マネージャーから、ファイルで動作するアプリケーション(MS Office等)へ、API関数によって送信される。
1つの例示的な態様で、傍受モジュール110は、サーバ100からクライアント101によって要求されたスクリプトを傍受し、その傍受したスクリプトをバイトコード計算モジュール120に送信し、評価作成モジュール160が、その傍受したスクリプトが悪意あるとの決定のアナウンスがあった場合、その傍受したスクリプトの実行をブロックするように構成することができる。
1つの例示的な態様で、サーバ100からクライアント101へ送信されるスクリプトの傍受は、この目的のために特別に開発されたドライバを使用して行うことができ、クライアント101からドライバへのスクリプトの伝送路(例えば、データを受信するソースのアドレスを変更することによって)を再ルーティングするように構成することを含む。したがって、クライアント101によって要求され、サーバ100によって送信されるスクリプトは、クライアントではなく、ドライバにおいて終端されることになるだろう。例えば、オペレーティングシステムのAPI関数recvのコールを傍受するドライバは、ネットワークを介して送信されるデータの受信を担っており、着信する全ネットワークトラフィックを受信することができる。様々な例示的な態様では、スクリプトの実行をブロックする工程は、
対応するAPI関数のコールを傍受することによって、傍受したスクリプトの実行を防ぐ工程と、
予め用意した信頼できるスクリプトを実行することを意図したスクリプトに交換する工程と、
起動されたスクリプトによって要求された場所に、予め用意したデータを送信する工程、
を含むが、これらに限定されない。
1つの例示的な態様で、バイトコード計算モジュール120は、傍受したスクリプトのバイトコードを計算するように構成することができる。バイトコードは、傍受したスクリプトに含まれる少なくとも1つのコマンドから成るスクリプトコマンドのセット(オペコード)で構成されてもよい。バイトコード計算モジュール120は、その後、ハッシュ値計算モジュール130にバイトコードを送信する。
1つの例示的な態様で、傍受したスクリプトのバイトコードは、以下のように形成されてもよい。すべてのスクリプトシーケンスはスクリプトから選択される。予め指定された機能(ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作、アプリケーションの起動等)を実行していないいくつかのスクリプトコマンドは、選択されたシーケンスから移動させられる。選択されたシーケンスに残っているスクリプトコマンドは、少なくとも1つの各々のスクリプトコマンドを含むコマンドのグループに組み合される(例えば、ファイルへのデータの書き込み、ファイルの起動及びファイルの削除を担うスクリプトコマンドのシーケンスは1つのグループに組み合わされることができる)。各スクリプトコマンド又はスクリプトコマンドのグループは、固有の2バイト値が割り当てられる。2バイト値の得られたシーケンスは、計算されたバイトコードを構成する。
1つの例示的な態様で、ハッシュ値計算モジュール130は、算出されたバイトコードのハッシュ値を計算し、算出されたハッシュ値を検索モジュール140に送信するように構成することができる。バイトコードのハッシュ値は、ファジーハッシュ値を計算することによって算出できる。
データのファジーハッシュ値とは、ファジーハッシュ値が計算されるデータ領域とは別のデータ領域から計算されたハッシュ値のセットで構成されるものであり、及び、ファジー検索とは、データ構造(ユークリッド空間、ツリー空間、等の要素)を用いているセットにおいて、要素を検索する技術であり、任意の与えられた空間での比較的少ない数で、検索している要素に最も近いセットの要素を迅速に検索することができる。
1つの例示的な態様で、検索モジュール140は、
少なくとも1つのグループをハッシュ値ライブラリ170から選択し、
そのグループにある少なくとも1つのハッシュ値が、ハッシュ値計算モジュール130によって算出されたハッシュ値に対して、予め設定された類似性の閾値に対応する類似度を有し、
少なくとも1つの選択されたグループ及びその決定された類似度を解析モジュール150へ送信するように構成されている。
比較しているハッシュ値の類似度は、比較のハッシュ値が互いにどれほど類似しているかを特徴づける数値でありえ、ハッシュ値を比較する手段によって決定されることができる。
ハッシュ値の類似度は、少なくとも、
ファジーハッシュ値を比較する(つまり、ハッシュ値を計算するためのデータにおける類似度を特徴づける数値を計算する)こと、
ファジー検索メトリックを計算する(つまり、検索されるセットのSEEK要素とFIND要素の間の距離を計算する)こと、
によって計算することができる。
1つの例示的な態様で、解析モジュール150は、
少なくとも1つのグループを含む少なくとも1つの評価テンプレートを評価テンプレートライブラリ180から選択し、
検索モジュール140によって選択された少なくとも1つのグループに対する上記グループの類似度は、予め設定された閾値に対応しており、
評価テンプレートは、ハッシュ値ライブラリ170からの少なくとも1つのグループ、数値的な値である評価テンプレート信頼係数を含むデータセットから構成され、
及び、選択された評価テンプレートからの評価テンプレート信頼係数と計算された類似度を、評価作成モジュール160へ送信する、
ように構成されることができる。
1つの例示的な態様で、評価テンプレートの信頼係数は、0(与えられた評価テンプレートに含まれているグループを取得するために使用される全てのスクリプトが、悪意あることを意味する)から1(与えられた評価テンプレートに含まれるグループを取得するために使用される全てのスクリプトが、信頼できることを意味する)の数値でありえる。
1つの例示的な態様で、グループの類似度は、少なくとも、
多次元ベクトル(多次元ベクトルの要素は、グループに含まれるデータである)のベクター積を求めること、とファジー検索メトリックを計算することによって算出することができる。
1つの例示的な態様で、評価作成モジュール160は、
解析モジュール150から得られた少なくとも1つの評価テンプレート信頼係数及び検索モジュール140から得られた少なくとも1つのハッシュ値の類似度に基づいて、傍受モジュール110によって傍受したスクリプトが、悪意あるかについて決定し、
且つ、適切な判断を傍受モジュール110へ送信する、ように構成されている。
1つの例示的な態様で、傍受モジュール110によって傍受したスクリプトが悪意あるかについての決定をアナウンスすることは、解析モジュール150によって選択された少なくとも1つの評価テンプレート信頼係数とハッシュ値計算モジュール130によって計算された少なくとも1つのハッシュ値の類似度との積の平均値と、設定された閾値とを比較することによって成し遂げられる。
1つの例示的な態様で、ハッシュ値ライブラリ170は、データのセットを構成する少なくとも1つのグループを保存するように構成され、そのデータのセットは、悪意あるスクリプトのバイトコードから予め計算された少なくとも2つのハッシュ値、及び、そのグループに含まれる少なくとも2つのハッシュ値に対する少なくとも1つの類似度、を含む。
1つの例示的な態様で、評価テンプレートライブラリ180は、少なくとも1つの評価テンプレートを格納するように構成され、そのテンプレートは、ハッシュ値ライブラリ170からの少なくとも1つのグループと、数値的な値である評価テンプレート信頼係数を含むデータのセットである。
1つの例示的な態様で、評価テンプレートライブラリ180からの評価テンプレートは、ハッシュ値ライブラリ170からのすべてのグループをまとめて包含することができる。
スクリプトの実行をブロックするための上述のシステムの動作は、電子的なMS Word文書に含まれる悪意あるスクリプトをブロックする例に基づいて、次に説明されるだろう。MS Wordプロセッサを起動しているクライアント101を使用しているユーザは、ファイル・マネージャーを起動しているサーバ100から、VBA言語で記述された悪意あるスクリプトを含む電子文書c:\ mydoc.docxの受信を試みる。傍受モジュール110は、ファイル・マネージャーのドライバであって、開かれた文書のスクリプトを傍受し、それをバイトコード計算モジュール120に送る。スクリプトを傍受することは、オペレーティングシステムのAPI関数CreateFile、ReadFile 等のコールを傍受するドライバによって成され、それらは、ファイル・マネージャーから受信したデータに対して責任を担っている。
バイトコード計算モジュール120は、傍受したスクリプトのバイトコードを計算する。このために、すべてのスクリプトコマンドのシーケンスは、傍受したスクリプトから選択される。スクリプトコマンドのモジュールのいくつかは、ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作、アプリケーションの起動等、についての機能的責任に対して責任を担っておらず、選択されたシーケンスから移動させられる。
選択されたシーケンスに残っているスクリプトコマンドは、コマンドのグループに組み込まれる(例えば、ファイルへデータを書き込み、ファイルの起動、及び、ファイルの削除、を担っているスクリプトコマンドのシーケンスは1つのグループに組み込まれる)ことになる。各スクリプトコマンド又はスクリプトコマンドのグループは、固有の2バイトの値を割り当てられる。2バイトの値の得られたシーケンスは、算出されたバイトコードで構成される。
ハッシュ値計算モジュール130は、(例えば、オープンソースアルゴリズムfuzzyHashを使用して)受信したバイトコードからファジーハッシュ値を計算する。
ファジーハッシュ値は、ブロックのサイズ(バイトコードが、そのブロックに分割されている)とこれらのブロックのハッシュ値を含むデータのセットである。この後、ハッシュ値計算モジュールは、算出されたハッシュ値を検索モジュール140へ送信する。
検索モジュール140は、ハッシュ値ライブラリ170からハッシュ値におけるグループの選択を行い、グループは、悪意あるスクリプトのバイトコードにおける予め計算されたハッシュ値、そのグループに含まれるハッシュ値の間の類似度を含むデータのセットで構成される。
ハッシュ値ライブラリ170からの選択の過程で、ハッシュ値ライブラリ170に含まれる各グループのハッシュ値と、ハッシュ値計算モジュール130から受信したハッシュ値とのファジー比較(ファジー検索)が行われる。
2つのハッシュ値のファジー比較の結果は、0から1の範囲の数値である。それは、比較のハッシュ値が互いにどれほど類似しているかを示し、2つのハッシュ値の類似度として知られるものである(例えば、お互いに10%の差異があるスクリプトコマンドを含むスクリプトのバイトコードから計算されたファジーハッシュ値の類似性は、0.9と等しくなるだろう)。
比較対象であるグループの少なくとも1つのハッシュ値とハッシュ値計算モジュール130から得られたハッシュ値との類似度が、設定された閾値(例えば、0.85)より大きい場合、そのグループが発見されたと見なされ、ハッシュ値計算モジュール130から得られたハッシュ値は、比較対象であるグループに属する。この後、選択されたグループと決定された類似度は、解析モジュール150へ送られる。ハッシュ値ライブラリ170にあるグループも更新され、ハッシュ値計算モジュール130から得られたハッシュ値は、選択されたグループに追加される。更新されたグループが、より多くの悪意あるスクリプトのハッシュ値を含むことになるので、これによって、後に傍受されるスクリプトに対するグループ検索の精度が増す。ファイルc:\mydoc.docxから傍受したスクリプトに対して、以下の機能を備えるスクリプトのハッシュ値を含んだグループが選択された。
・グループ#1-ディスクへの書き込み及びファイルの属性の設定(類似度0.98)。
・グループ#2 - タスクマネージャーのブロック、タスクバーを隠す(類似度0.95)。
・グループ#3 - ファイルの削除(類似度0.90)。
・グループ#4 - VBA手段を使用して、Windowsのウィンドウの作成(類似度0.87)。
選択されたグループは、解析モジュール150に送られる。
解析モジュール150は、評価テンプレートライブラリ180から評価テンプレート(検索モジュール140から受け取ったグループを含むテンプレート)の選択を実行する。選択プロセスにおいて、どのグループが評価テンプレートライブラリ180の各評価テンプレートに含まれているのか、及び、それらが検索モジュール140から受け取ったグループにどれほど類似しているかについて決定がなされる。用いられる比較の手法は、ファジー検索アルゴリズムであってもよく、その結果は、0から1の範囲の数値となる。それは、比較するグループのセットが互いにどれほど類似しているかを特徴づけるものであり、2つのグループのセットの類似度として知られるものである。検索モジュール140から受け取ったグループに対して、以下の評価テンプレートが選択された。
・テンプレート#1"blocker":テンプレート信頼係数0.1であり、グループ#1(類似度1.0)、グループ#2(類似度1.0)、グループ#3(類似度0.9)を含む。
・テンプレート#2"cryptor":テンプレート信頼係数0.3であり、グループ#1(類似度0.7)、グループ#3(類似度1.0)、グループ#4(類似度0.95)を含む。
選択された評価テンプレートのテンプレート信頼係数は、検索モジュール140によって選択されるグループと同様に、評価作成モジュールに送られる。
評価作成モジュール160は、受け取った信頼係数("blocker"評価テンプレートでは0.1)から、選択されたテンプレートに含まれるグループでのハッシュ値における最小の類似度(0.9)を選び、信頼係数と類似度の積(0.09)を計算する。生成された値を最大の許容値(0.2等)と比較した後、傍受したスクリプトは悪意がありブロックされるべきであるという評価をアナウンスし、そして、傍受したスクリプトをブロックするために傍受モジュール110へその決定を送る。この後、傍受モジュール110は、どんなアクションも実行しない空白のスクリプトに取り替えられ、それは、Microsoft Wordの文書における正確な動作に対してのみ必要とされるものである。それによって、傍受したスクリプトをブロックすること、及び、ユーザのコンピュータ・システムで悪意あるスクリプトの実行を阻むことになる。
図2は、スクリプトの実行をブロックする例示的な方法を示す。ステップ210で、サーバ100からクライアント101によって要求された少なくとも1つのスクリプトは、傍受モジュール110によって傍受される。ステップ220で、傍受したスクリプトのバイトコードは、バイトコード計算モジュール120によって計算される。ステップ230で、バイトコードのハッシュ値は、ハッシュ値計算モジュール130によって計算される。ステップ240で、少なくとも1つのグループが選択モジュール140によってハッシュ値ライブラリ170から選択され、そのグループにある少なくとも1つのハッシュ値と、ステップ230で計算されたハッシュ値との類似度は、予め設定された類似性の閾値に対応しているものである。ステップ250で、少なくとも1つの評価テンプレートが、解析モジュール150によって、評価テンプレートライブラリ180から選択される。そのテンプレートは、少なくとも1つのグループを含み、そのグループにおける検索モジュール140で選択された少なくとも1つのグループとの類似度が、設定された閾値に対応している。ステップ260で、ステップ250で選択された少なくとも1つの評価テンプレート信頼係数と、ステップ240で決定された少なくとも1つのハッシュ値の類似度に基づいて、ステップ210で傍受したスクリプトが悪意あるかについての決定が評価作成モジュール160によって成される。ステップ270で、ステップ210で傍受したスクリプトは、傍受スクリプトの悪意性に関する評価作成モジュール160による決定に従って、傍受モジュール110によってブロックされる。
スクリプトの実行をブロックするための上述の方法における動作は、ブラウザを用いるユーザの視覚に入るウェブサイトのページに含まれる悪意あるスクリプトをブロックするという例に基づいて、次に説明されるだろう。Internet Explorerブラウザを実行しているクライアント101を介して、ユーザは、ページを開くという試みをする。例えば、サイトhttp://tasianits.comであるサーバ100からインターネットのページを受信するものであり、それは、ActiveX を用いてJavaScript(登録商標)言語で書かれた悪意あるスクリプトを含むものである。
ステップ210で、傍受モジュール110は、開いている文書のスクリプトを傍受し、バイトコード計算モジュール120に送信する。
ステップ220で、バイトコード計算モジュール120は、傍受したスクリプトのバイトコードを計算する。このために、ユーザのコンピュータ・システムと相互にやりとりするという動作(ディスクへの書き込み等)と関連がある動作のコマンドが、傍受スクリプトから選択される。選択された各動作は、2バイト(いわゆるバイトコード)の識別子が割り当てられており、バイトシーケンスは、結果として得られた識別子(バイトコードを構成している識別子)から作られる。その後、バイトコード計算モジュール120は、算出されたバイトコードをハッシュ値計算モジュール130に送信する。
ステップ230で、ハッシュ値計算モジュール130は、受信したバイトコードから(例えば、オープンソースのアルゴリズムfuzzyHashを利用して)ファジーハッシュ値を計算し、ファジーハッシュ値は、ブロックのサイズ(バイトコードはハッシュ値を計算するためにそのサイズに分割される)を特徴づける番号、及び、バイトコードから計算された2つのハッシュ値を含むデータのセットである。この後、算出されたハッシュ値を、検索モジュール140へ送る。
ステップ240で、検索モジュール140は、ハッシュ値ライブラリ170からハッシュ値のグループを選択する。このために、ハッシュ値ライブラリ170に含まれる各グループのハッシュ値と、ハッシュ値計算モジュール130から受信したハッシュ値とのファジー比較が行われる。
2つのハッシュ値のファジー比較の結果は、0から1の範囲の数値である。それは、比較のハッシュ値が互いにどれほど類似しているかを示し、2つのハッシュ値の類似度として知られるものである。
比較対象であるグループの少なくとも1つのハッシュ値とハッシュ値計算モジュール130から得られたハッシュ値との類似度が、設定された閾値(例えば、0.5)より大きい場合、そのグループが発見されたと見なされ、ハッシュ値計算モジュール130から得られたハッシュ値は、比較対象であるグループに属する。この後、選択されたグループと決定された類似度は、解析モジュール150へ送られる。ハッシュ値ライブラリ170にあるグループも更新される。ハッシュ値計算モジュール130から得られたハッシュ値は、選択されたグループに追加される。これによって、後に傍受されるスクリプトに対するグループ検索の有効性が増す。サイトhttp://tasianits.comから傍受したスクリプトの場合には、以下の機能を備えるスクリプトのハッシュ値を含んだグループが選択された。
・グループ#1 - ディスクへの書き込み、ユーザのコンピュータ・システムでのファイルの実行(類似度0.7)
・グループ#2 - ActiveXの脆弱性を利用した動作のセット(類似度1.0)
ステップ250では、解析モジュール150は、評価テンプレートライブラリ180から評価テンプレートを選択し、上記テンプレートは、検索モジュール140から受け取ったグループを含む。
これによって、どのグループが評価テンプレートライブラリ180からの各評価テンプレートに含まれているのか、及び、それらが検索モジュール150から受け取ったグループにどれほど類似しているかについて決定がなされる。用いられる比較の手法は、ファジー検索アルゴリズムをであってもよく、その結果は、0から1の範囲の数値となる。それは、比較するグループのセットが互いにどれほど類似しているかを特徴づけるけるものであり、2つのグループのセットの類似度として知られるものである。検索モジュール140から受け取ったグループに対して、以下の評価テンプレートが選択された。
テンプレート#1 "injector":テンプレート信頼係数0.0、グループ#1(類似度1.0)、#2(類似度1.0)を含む。選択された評価テンプレートのテンプレート信頼係数は、評価作成モジュール160に送られる。
ステップ260では、評価作成モジュール160は、受け取ったテンプレートの信頼係数と類似度に基づいて、信頼係数(0.0)と類似性(0.85)の積を計算する。その後、最大の許容値(0.15)と生成された値を比較し、傍受したスクリプトは悪意がありブロックされるべきであるという評価をアナウンスし、傍受したスクリプトをブロックするために傍受モジュール110へその決定を送る。
この後、ステップ270で、傍受モジュールは、傍受スクリプトをブロックし、それによって、ユーザのコンピュータ・システムで悪意あるスクリプトの実行をさせない。
図3は、例示的態様に係る、開示されたシステム及び方法が実装されることができる、汎用コンピュータ・システム(パーソナルコンピュータ又はサーバであってもよい)の例である。
示されるように、コンピュータ・システムは、中央処理ユニット21、システムメモリ22及びシステムバス23を含み、システムバスは、様々なシステムコンポーネント(中央処理ユニット21に付随するメモリを含む)に接続している。システムバス23は、先行文献で知られている任意のバス構造のように実現され、順にバスメモリ又はバスメモリコントローラ、周辺バス、及びローカルバスを含み、それは、任意の他のバスアーキテクチャと相互作用することができる。システムメモリは、読み出し専用メモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本入出力システム(BOIS)26は、パーソナルコンピュータ20の要素間で情報の転送を保証する基本的な手順を含み、ROM24を使用してオペレーティングシステムをロードする時にも同様である。
パーソナルコンピュータ20は、順に、データの読み書き用ハードディスク27、リムーバブル磁気ディスク29への読み書き用磁気ディスクドライブ28、及び、リムーバブル光ディスク31(CD-ROM、DVD-ROM又は他の光情報媒体等)への読み書き用光ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光ドライブ30は、それぞれ、ハードディスクインターフェース32、磁気ディスクインタフェース33及び光ドライブインターフェース34を介してシステムバス23に接続されている。ドライブ及び対応するコンピュータ情報媒体は、パーソナルコンピュータ20のコンピュータ命令、データ構造、プログラムモジュール、及びその他のデータにおける記憶装置に対して電力独立型モジュールである。
本開示は、ハードディスク27、リムーバブル磁気ディスク29及びリムーバブル光ディスク31を使用するシステムの実装を提供するが、コンピュータによって読み取り可能な形式でデータを格納することができる他の型のコンピュータ情報媒体56(ソリッドステートドライブ、フラッシュメモリカード、デジタルディスク、ランダムアクセスメモリ(RAM)等)を使用することも可能であることが理解されるべきであり、それらは、コントローラ55を介してシステムバス23に接続される。
コンピュータ20は、ファイルシステム36を有し、そこには記録されたオペレーティングシステム35が保持され、及び、追加プログラムアプリケーション37、他のプログラムモジュール38及びプログラムデータ39、もまた同様である。
ユーザは、入力デバイス(キーボード40、マウス42)で、パーソナルコンピュータ20に、コマンドと情報を入力することができる。他の入力デバイス(図示せず)として、マイクロホン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることができる。そのような入力デバイスは、通常、シリアルポート46を介してコンピュータ・システム20に接続され、それは、順番に、システムバスに接続される。それらは、他の方法(例えば、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB))を用いて接続できる。モニター47又は他の型の表示デバイスもまた、ビデオアダプタ48などのインターフェースを介してシステムバス23に接続される。モニター47に加えて、パーソナルコンピュータは、ラウドスピーカー、プリンター等の他の周辺出力デバイス(図示せず)を搭載することができる。
パーソナルコンピュータ20は、1つ又は複数のリモートコンピュータ49を用いて、ネットワーク環境で作業することができる。リモートコンピュータ(複数可)49も、前述の要素の大モジュール分又は全てを有するパーソナルコンピュータ又はサーバであり、その要素は、パーソナルコンピュータ20の本質を示している。ルータ、ネットワーク局、ピアデバイスまたは他のネットワークノード等、他のデバイスも、コンピュータネットワークに存在できる。
ネットワーク接続は、有線及び/または無線ネットワーク等のローカルエリアコンピュータネットワーク(LAN)50、及びワイドエリアコンピュータネットワーク(WAN)を生成することができる。このようなネットワークは、企業コンピュータネットワークと社内ネットワークで使用されており、これらは一般的にインターネットへのアクセス権を有している。LANまたはWANネットワークでは、パーソナルコンピュータ20は、ネットワークで使用しているネットワークアダプタまたはネットワークインタフェース51を介してローカルエリアネットワーク50に接続される。ネットワークが用いられる場合、パーソナルコンピュータ20は、インターネットのようなワイドエリアコンピュータネットワークとの通信を提供するため、モデム54または他のモジュールを使用する。モデム54は、内モジュールまたは外モジュールデバイスであり、シリアルポート46によってシステムバス23に接続される。ネットワーク接続は、単なる例であり、ネットワークの正確な構成を示す必要はないことに留意すべきである。すなわち、現実には技術的な通信モジュールによる他のコンピュータの接続を確立する他の方法がある。
様々な態様において、本明細書で説明するシステム及び方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装することができる。ソフトウェアで実装する場合、その方法は、非一時的なコンピュータ可読媒体の1つまたは複数の命令またはコードとして格納されることができる。コンピュータ可読媒体は、データ記憶を含む。コンピュータ可読媒体を以下に例示するが、限定するものではない。コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、フラッシュメモリ、又は、他の型の電気的、磁気的、または光記憶媒体、又は他の任意の媒体、を備えることができ、命令またはデータ構造の形で所望のプログラムコードを搬送又は格納するために用いられ、汎用コンピュータのプロセッサによってアクセスすることができる。
様々な態様では、システム及び方法は、モジュールの観点から、本開示で説明される。本明細書で使用される用語「モジュール」とは、現実世界のデバイス、コンポーネント、または、ハードウェアを用いて実装されたコンポーネントの配置を言及しており、例えば、または、ハードウェアとソフトウェアの組み合わせとして、特定用途向け集積回路(ASIC)またはフィールド・プログラマブル・ゲート・アレイ(FPGA)などによって実装され、モジュールの機能を実装するマイクロプロセッサシステムと命令セットなどによって、(実行される間に)マイクロプロセッサシステムを専用のデバイスに変換される。モジュールも、2つの組合せとして実装されることができ、ハードウェアだけによって容易とされる特定の機能、及び、ハードウェアとソフトウェアの組み合わせによって容易とされる他の機能と、これらの組み合わせとして実現することができる。特定の実施態様では、少なくとも一部のモジュール、及びいくつかのケースでは、モジュールのすべては、(例えば、図3で詳細に説明したもののように)汎用コンピュータのプロセッサで実行することができる。したがって、各モジュールは、適切な様々な構成で実現することができ、そして本明細書中に任意の例示的な実施形態に限定されるものではない。
明瞭にするために、態様のルーチン機能のすべてが、本明細書に開示されているわけではない。本開示における任意の実際の実装における開発で、多数の実装固有の判断が、開発者の特定の目標を達成するためになされなければならないことが理解されるであろう。さらに、これらの具体的な目標は、異なる実装及び異なる開発者に対して変化することが理解されるであろう。そのような開発努力は複雑で時間がかかるかもしれないが、それでも本開示の利益を有する当業者にとっては、エンジニアリングの日常の仕事であると理解されるであろう。
さらに、本明細書で使用される用語又は表現は、説明のためであり、制限するものではなく、つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語または表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであることが理解されるべきである。明示的な記載がない限り、明細書または特許請求の範囲内で、任意の用語に対して、珍しいまたは特別な意味を帰することは意図されていない。本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。さらに、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (15)

  1. 悪意あるスクリプトの実行をブロックするための方法であって、
    前記方法は、
    ハードウェアプロセッサによって、クライアントによって要求されたサーバからのスクリプト傍受する工程と、
    前記ハードウェアプロセッサによって、前記傍受したスクリプトのバイトコードを生成する工程と、
    前記ハードウェアプロセッサによって、前記生成されたバイトコードのハッシュ値を計算する工程と、
    前記ハードウェアプロセッサによって、前記バイトコードのハッシュ値と、データベースに保存されている、悪意ある及びクリーンなスクリプトにおける複数のハッシュ値との間の類似度を決定する工程と、
    前記ハードウェアプロセッサによって、前記データベースから類似のハッシュ値を識別する工程であって、前記識別されたハッシュ値と前記バイトコードのハッシュ値との類似度は、類似性の閾値内にある、工程と、
    前記ハードウェアプロセッサによって、前記類似のハッシュ値に係る評価テンプレートの信頼係数を決定する工程と、
    前記ハードウェアプロセッサによって、前記傍受したスクリプトが、前記類似度と前記評価テンプレートの信頼係数に基づいて、悪意があるを決定する工程と、
    前記ハードウェアプロセッサによって、前記傍受したスクリプトの、前記クライアントで実行をブロックする工程を備え
    前記ハッシュ値は、ファジーハッシュである、方法。
  2. 前記スクリプトを傍受する工程は、前記クライアントに、ネットワークのスクリプト要求を傍受するように構成されたドライバを提供する工程を含む、請求項1に記載の方法。
  3. 前記バイトコードは、前記スクリプトにおける少なくとも1つのオペコードを含む、請求項1に記載の方法。
  4. 前記スクリプトのバイトコードを生成する工程は、
    前記ハードウェアプロセッサによって、ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作、及びプログラムの実行、の機能を担うスクリプトコマンドを識別する工程と、
    前記ハードウェアプロセッサによって、前記識別されたスクリプトコマンドを、前記識別された機能に基づいて、複数の機能グループにグループ化する工程と、
    前記ハードウェアプロセッサによって、各機能グループにバイナリの値を割り当てる工程と、
    前記ハードウェアプロセッサによって、前記バイナリの値から前記バイトコードを生成する工程を含む、請求項1に記載の方法。
  5. 類似するハッシュ値を検索する手法は、ファジー検索を含む、請求項1に記載の方法。
  6. 悪意あるスクリプトの実行をブロックするためのシステムであって、
    前記システムは、ハードウェアプロセッサを備え、
    前記ハードウェアプロセッサは、
    クライアントによって要求されたサーバからのスクリプトを傍受し、
    前記傍受したスクリプトのバイトコードを生成し、
    前記生成されたバイトコードのハッシュ値を計算し、
    前記ハッシュ値は、ファジーハッシュであり、
    前記バイトコードのハッシュ値と、データベースに保存されている悪意ある及びクリーンなスクリプトにおける複数のハッシュ値との間の類似度を決定し、
    前記データベースから類似したハッシュ値を識別し、前記識別されたハッシュ値と前記バイトコードのハッシュ値との類似度は、類似性の閾値の範囲内にあり、
    前記類似のハッシュ値に係る評価テンプレートの信頼係数を決定し、
    前記傍受したスクリプトが、前記類似度及び前記評価テンプレートの信頼係数に基づいて、悪意があるかを決定し、
    前記傍受したスクリプトの、前記クライアントでの実行をブロックするように構成される、システム。
  7. スクリプトの傍受は、
    前記クライアントに、ネットワークスクリプト要求を傍受するように構成されたドライバを提供することを含む、請求項6に記載のシステム。
  8. 前記バイトコードは、前記スクリプトにおける少なくとも1つのオペコードを含む、請求項6に記載のシステム。
  9. 前記スクリプトのバイトコードの生成は、
    ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作及びプログラムの実行、の機能を担うスクリプトコマンドの識別と、
    前記識別されたスクリプトコマンドの、前記識別された機能に基づく、複数の機能グループへのグループ分けと、
    各機能グループへのバイナリの値の割り当てと、
    前記バイナリの値からの前記バイトコードの生成を含む、請求項6に記載のシステム。
  10. 類似するハッシュ値の検索は、ファジー検索を含む、請求項6に記載のシステム。
  11. 悪意あるスクリプトの実行をブロックするためのコンピュータ実行可能命令を格納する非一時的なコンピュータ可読媒体であって、
    前記命令は、
    クライアントによって要求されたサーバからのスクリプトを傍受する命令と、
    前記傍受したスクリプトのバイトコードを生成する命令と、
    前記生成されたバイトコードのハッシュ値を計算する命令と、
    前記バイトコードの前記ハッシュ値と、データベースに保存されている、悪意ある及びクリーンなスクリプトにおける複数のハッシュ値との間の類似度を決定する命令と、
    前記データベースから類似のハッシュ値を識別する命令であって、前記識別されたハッシュ値と前記バイトコードのハッシュ値との類似度は、類似性の閾値内にある、命令と、
    前記類似のハッシュ値に係る評価テンプレートの信頼係数を決定する命令と、
    前記傍受したスクリプトが、前記類似度と前記評価テンプレートの信頼係数に基づいて悪意があるかを決定する命令と、
    前記傍受したスクリプトの、前記クライアントでの実行をブロックする命令と、を含み、
    前記ハッシュ値は、ファジーハッシュである、非一時的なコンピュータ可読媒体。
  12. スクリプトを傍受する命令は、
    前記クライアントに、ネットワークスクリプト要求を傍受するように構成されたドライバを提供する命令を含む、請求項11に記載の非一時的なコンピュータ可読媒体。
  13. 前記バイトコードが、前記スクリプトにおける少なくとも1つのオペコードを含む、請求項11に記載の非一時的なコンピュータ可読媒体。
  14. 前記スクリプトのバイトコードを生成する命令は、
    前記ハードウェアプロセッサによって、ディスクへのデータの書き込み、ファイルシステムのオブジェクトの動作、プログラムの実行、の機能を担うスクリプトコマンドを識別する命令と
    前記ハードウェアプロセッサによって、前記識別されたスクリプトコマンドを、前記識別された機能に基づいて、複数の機能グループにグループ化する命令と、
    前記ハードウェアプロセッサによって、各機能グループにバイナリの値を割り当てる命令と、
    前記ハードウェアプロセッサによって、前記バイナリの値から前記バイトコードを生成する命令を含む、請求項11に記載の非一時的なコンピュータ可読媒体。
  15. 類似するハッシュ値を検索する命令は、ファジー検索を含む、請求項11に記載の非一時的なコンピュータ可読媒体。
JP2018192992A 2015-09-30 2018-10-12 スクリプトの実行をブロックするシステム及び方法 Active JP6670907B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2015141537A RU2606564C1 (ru) 2015-09-30 2015-09-30 Система и способ блокировки выполнения сценариев
RU2015141537 2015-09-30
US15/062,455 US9648032B2 (en) 2015-09-30 2016-03-07 System and method for blocking execution of scripts
US15/062,455 2016-03-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016163361A Division JP6568504B2 (ja) 2015-09-30 2016-08-24 スクリプトの実行をブロックするシステム及び方法

Publications (2)

Publication Number Publication Date
JP2019023918A JP2019023918A (ja) 2019-02-14
JP6670907B2 true JP6670907B2 (ja) 2020-03-25

Family

ID=58409392

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016163361A Active JP6568504B2 (ja) 2015-09-30 2016-08-24 スクリプトの実行をブロックするシステム及び方法
JP2018192992A Active JP6670907B2 (ja) 2015-09-30 2018-10-12 スクリプトの実行をブロックするシステム及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2016163361A Active JP6568504B2 (ja) 2015-09-30 2016-08-24 スクリプトの実行をブロックするシステム及び方法

Country Status (4)

Country Link
US (1) US9648032B2 (ja)
JP (2) JP6568504B2 (ja)
CN (1) CN107066883B (ja)
RU (1) RU2606564C1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108401253B (zh) * 2017-02-06 2022-12-27 腾讯科技(深圳)有限公司 一种应用信息识别方法、装置以及系统
US10754948B2 (en) * 2017-04-18 2020-08-25 Cylance Inc. Protecting devices from malicious files based on n-gram processing of sequential data
KR102006242B1 (ko) * 2017-09-29 2019-08-06 주식회사 인사이너리 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템
RU2708356C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Система и способ двухэтапной классификации файлов
US10819733B2 (en) * 2018-07-24 2020-10-27 EMC IP Holding Company LLC Identifying vulnerabilities in processing nodes
US11188622B2 (en) * 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
CN110674497B (zh) * 2019-09-27 2021-07-02 厦门安胜网络科技有限公司 一种恶意程序相似度计算的方法和装置
CN112783615B (zh) * 2019-11-08 2024-03-01 北京沃东天骏信息技术有限公司 一种数据处理任务的清理方法和装置
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
CN113158146A (zh) * 2020-01-07 2021-07-23 网联清算有限公司 脚本管理方法、脚本管理平台、计算设备及介质
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11531675B1 (en) * 2021-07-19 2022-12-20 Oracle International Corporation Techniques for linking data to provide improved searching capabilities
CN114268475A (zh) * 2021-12-13 2022-04-01 北京知道创宇信息技术股份有限公司 恶意脚本拦截方法、系统、服务器及计算机可读存储介质
US20230185915A1 (en) * 2021-12-14 2023-06-15 Palo Alto Networks, Inc. Detecting microsoft windows installer malware using text classification models
CN114430339A (zh) * 2021-12-25 2022-05-03 深圳太极云软技术有限公司 一种网络请求的过滤方法、装置、终端和可读存储介质
EP4246352A1 (en) * 2022-03-17 2023-09-20 AO Kaspersky Lab System and method for detecting a harmful script based on a set of hash codes

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707634B2 (en) * 2004-01-30 2010-04-27 Microsoft Corporation System and method for detecting malware in executable scripts according to its functionality
US8037535B2 (en) * 2004-08-13 2011-10-11 Georgetown University System and method for detecting malicious executable code
US7590589B2 (en) * 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
US7801840B2 (en) * 2006-07-28 2010-09-21 Symantec Corporation Threat identification utilizing fuzzy logic analysis
US8312546B2 (en) 2007-04-23 2012-11-13 Mcafee, Inc. Systems, apparatus, and methods for detecting malware
JP2010009269A (ja) * 2008-06-26 2010-01-14 Iwate Univ コンピュータウィルス検出装置、コンピュータウィルス検出方法及びコンピュータウィルス検出プログラム
US9235704B2 (en) * 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US8635694B2 (en) * 2009-01-10 2014-01-21 Kaspersky Lab Zao Systems and methods for malware classification
US20100205297A1 (en) * 2009-02-11 2010-08-12 Gurusamy Sarathy Systems and methods for dynamic detection of anonymizing proxies
US8464345B2 (en) * 2010-04-28 2013-06-11 Symantec Corporation Behavioral signature generation using clustering
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
RU2446459C1 (ru) * 2010-07-23 2012-03-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ проверки веб-ресурсов на наличие вредоносных компонент
RU2444056C1 (ru) * 2010-11-01 2012-02-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ ускорения решения проблем за счет накопления статистической информации
EP2646911B1 (en) * 2010-12-01 2018-04-04 Cisco Technology, Inc. Detecting malicious software through contextual convictions, generic signatures and machine learning techniques
US8997233B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc Detecting script-based malware using emulation and heuristics
US9032526B2 (en) * 2011-05-12 2015-05-12 Microsoft Technology Licensing, Llc Emulating mixed-code programs using a virtual machine instance
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
CN102609649B (zh) * 2012-02-06 2015-09-02 北京百度网讯科技有限公司 一种自动采集恶意软件的方法和装置
US9300682B2 (en) * 2013-08-09 2016-03-29 Lockheed Martin Corporation Composite analysis of executable content across enterprise network
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9148441B1 (en) * 2013-12-23 2015-09-29 Symantec Corporation Systems and methods for adjusting suspiciousness scores in event-correlation graphs
RU2580032C2 (ru) * 2014-08-01 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ определения категории доверенности приложения

Also Published As

Publication number Publication date
RU2606564C1 (ru) 2017-01-10
US9648032B2 (en) 2017-05-09
JP2017097843A (ja) 2017-06-01
JP2019023918A (ja) 2019-02-14
JP6568504B2 (ja) 2019-08-28
CN107066883B (zh) 2020-04-07
US20170093893A1 (en) 2017-03-30
CN107066883A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
JP6670907B2 (ja) スクリプトの実行をブロックするシステム及び方法
US11055411B2 (en) System and method for protection against ransomware attacks
JP7084778B2 (ja) 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法
RU2706896C1 (ru) Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
US10242186B2 (en) System and method for detecting malicious code in address space of a process
JP6346632B2 (ja) モバイルデバイスでの悪質なファイルを検出するシステム及び方法
KR101607951B1 (ko) 클라우드 기술을 사용한 멀웨어에 대한 동적 클리닝
US9135443B2 (en) Identifying malicious threads
US9147073B2 (en) System and method for automatic generation of heuristic algorithms for malicious object identification
RU2634178C1 (ru) Способ обнаружения вредоносных составных файлов
US20190141075A1 (en) Method and system for a protection mechanism to improve server security
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
JP2019505943A (ja) サイバーセキュリティシステムおよび技術
JP6726429B2 (ja) ドメイン生成アルゴリズム(dga)のマルウェアを検出するためのシステムおよび方法
US10372907B2 (en) System and method of detecting malicious computer systems
US10860719B1 (en) Detecting and protecting against security vulnerabilities in dynamic linkers and scripts
JP6322240B2 (ja) フィッシング・スクリプトを検出するためのシステム及び方法
Kumar et al. A zero-day resistant malware detection method for securing cloud using SVM and sandboxing techniques
JP7320462B2 (ja) アクセス権に基づいてコンピューティングデバイス上でタスクを実行するシステムおよび方法
US20200218832A1 (en) Automatic Initiation of Execution Analysis
RU2628922C1 (ru) Способ определения похожести составных файлов
EP3151149B1 (en) System and method for blocking execution of scripts
US11886584B2 (en) System and method for detecting potentially malicious changes in applications
RU2659739C1 (ru) Способ контроля доступа к составным файлам
US20230297673A1 (en) Detecting a harmful file using a database of vulnerable drivers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200302

R150 Certificate of patent or registration of utility model

Ref document number: 6670907

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