JP2022541250A - Inline malware detection - Google Patents
Inline malware detection Download PDFInfo
- Publication number
- JP2022541250A JP2022541250A JP2022502913A JP2022502913A JP2022541250A JP 2022541250 A JP2022541250 A JP 2022541250A JP 2022502913 A JP2022502913 A JP 2022502913A JP 2022502913 A JP2022502913 A JP 2022502913A JP 2022541250 A JP2022541250 A JP 2022541250A
- Authority
- JP
- Japan
- Prior art keywords
- file
- gram
- features
- analysis
- model
- 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
Links
- 238000001514 detection method Methods 0.000 title abstract description 8
- 238000004458 analytical method Methods 0.000 claims abstract description 114
- 238000013145 classification model Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 45
- 230000003068 static effect Effects 0.000 claims description 35
- 239000013598 vector Substances 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009471 action Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 21
- 238000013459 approach Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000001914 filtration Methods 0.000 description 9
- 238000013515 script Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- KKIMDKMETPPURN-UHFFFAOYSA-N 1-(3-(trifluoromethyl)phenyl)piperazine Chemical compound FC(F)(F)C1=CC=CC(N2CCNCC2)=C1 KKIMDKMETPPURN-UHFFFAOYSA-N 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000002790 cross-validation Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000037406 food intake Effects 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 230000004941 influx Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
Abstract
悪意のあるファイルの検出が開示される。1つ以上のサンプル分類モデルを含むセットが、ネットワーク装置に保管される。受信したファイルに関連付けられた受信パケットのシーケンスについて、nグラム解析が実行されるnグラム解析の実行は、少なくとも1つの保管されたサンプル分類モデルを使用することを含む。受信パケットのシーケンスのnグラム解析に少なくとも部分的に基づいて、受信したファイルが悪意のものであるとの決定がなされる。ファイルが悪意のものであるとの決定に応じて、受信したファイルの伝搬が防止される。Malicious file detection is disclosed. A set containing one or more sample classification models is stored on the network device. N-gram analysis is performed on a sequence of received packets associated with a received file Performing n-gram analysis includes using at least one stored sample classification model. A determination is made that the received file is malicious based at least in part on an n-gram analysis of the sequence of received packets. Propagation of the received file is prevented in response to determining that the file is malicious.
Description
マルウェアは、悪意のあるソフトウェア(例えば、様々な敵対的、侵入的、及び/又は、望ましくないソフトウェアを含む)を参照する一般的な用語である。マルウェアは、コード、スクリプト、アクティブコンテンツ、及び/又は、他のソフトウェアの形態であり得る。マルウェアの使用例は、コンピュータ及び/又はネットワークの動作の中断、機密情報(proprietary information)(例えば、身元、財務、及び/又は、知的財産関連情報といった、秘密情報)の盗用、及び/又は、私的/専有コンピュータシステム及び/又はコンピュータネットワークへのアクセスの獲得、を含む。不幸にも、マルウェアの検出および軽減に役立つ技法が開発されるにつれて、悪意のある作家は、そうした努力を回避する方法を見つけるようになる。従って、マルウェアを識別し、かつ、軽減するための技法を改善する必要性が継続的に存在している。 Malware is a general term referring to malicious software (eg, including various hostile, intrusive, and/or unwanted software). Malware can be in the form of code, scripts, active content, and/or other software. Examples of malware uses include disrupting computer and/or network operations, stealing proprietary information (e.g., confidential information, such as identity, financial, and/or intellectual property related information), and/or including gaining access to private/proprietary computer systems and/or computer networks. Unfortunately, as techniques are developed to help detect and mitigate malware, malicious writers find ways to circumvent such efforts. Accordingly, there is a continuing need for improved techniques for identifying and mitigating malware.
本発明の様々な実施形態が、以下の詳細な説明および添付の図面において開示されている。
本発明は、プロセス、装置、システム、合成物、コンピュータ読取り可能な記憶媒体上に具現化されたコンピュータプログラム製品、及び/又は、プロセッサを含む、多数の方法で実施することができる。プロセッサに結合されたメモリに保管され、かつ/あるいは、それによって提供される命令を実行するように構成されたプロセッサ、といったものである。この明細書では、これらの実施形態、または、本発明が採用し得るその他の形態は、技法(technique)と称される。一般的に、開示されるプロセスのステップの順序は、本発明の範囲内で変更され得る。特に指示のない限り、タスクを実行するように構成されているものと説明されたプロセッサまたはメモリといったコンポーネントは、所与の時間にタスクを実行するように一時的に構成される一般的なコンポーネント、または、タスクを実行するように製造されている特定のコンポーネントとして実装することができる。ここにおいて使用されるように、用語「プロセッサ(“processor”)」は、コンピュータプログラム命令などのデータを処理するように構成された1つ以上のデバイス、回路、及び/又は、処理コアを参照する。 The present invention can be implemented in numerous ways, including processes, devices, systems, compositions of matter, computer program products embodied on computer readable storage media, and/or processors. A processor configured to execute instructions stored in and/or provided by a memory coupled to the processor. In this specification, these embodiments, or other forms that the invention may take, are referred to as techniques. In general, the order of steps of disclosed processes may be altered within the scope of the invention. Unless otherwise indicated, a component such as a processor or memory described as being configured to perform a task is a generic component that is temporarily configured to perform a task at any given time; Alternatively, it can be implemented as a specific component manufactured to perform the task. As used herein, the term "processor" refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions. .
本発明の1つ以上の実施形態の詳細な説明は、本発明の原理を説明する添付の図面と共に、以下で提供されている。本発明は、そうした実施形態に関連して説明されるが、本発明は、任意の実施形態に限定されるものではない。本発明の範囲は、請求項によってのみ限定されるものであり、そして、本発明は、多数の代替物、修正物、および均等物を包含している。本発明の完全な理解を提供するために、以下の説明において多数の具体的な詳細が記載されている。これらの詳細は、例示のために提供されているものであり、そして、本発明は、これらの特定の詳細の一部または全部を伴わずに、請求項に従って実施することができる。明確化のために、発明に関連する技術分野において周知の技術的資料は、発明が不必要に不明瞭にならないように詳細には説明されない。 A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. Although the invention is described in connection with such embodiments, the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention includes numerous alternatives, modifications and equivalents. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the invention. These details are provided for the purpose of example, and the invention may be practiced according to the claims without some or all of these specific details. For the sake of clarity, technical material that is well known in the technical fields related to the invention has not been described in detail so as not to unnecessarily obscure the invention.
I.概要 I.Overview
ファイアウォールは、一般的に、承認された通信がファイアウォールを通過するのを許可し、一方で、不正アクセスからネットワークを保護している。ファイアウォールは、典型的には、ネットワークアクセスのためにファイアウォール機能を提供する、デバイス、一式のデバイス、または、デバイスにおいて実行されるソフトウェアである。例えば、ファイアウォールは、デバイス(例えば、コンピュータ、スマートフォン、または、他のタイプのネットワーク通信可能なデバイス)のオペレーティングシステムの中に統合することができる。ファイアウォールは、また、コンピュータサーバ、ゲートウェイ、ネットワーク/ルーティング(routing)デバイス(例えば、ネットワークルータ)、または、データ機器(例えば、セキュリティ機器、または他のタイプの特殊目的デバイス)といった、様々なタイプのデバイスまたはセキュリティデバイス上のソフトウェアアプリケーションとして統合され、または実行することができ、そして、いくつかの実装では、特定の動作は、ASICまたはFPGAといった、特定目的ハードウェアで実装することができる。
る。
Firewalls generally allow authorized communications to pass through the firewall while protecting the network from unauthorized access. A firewall is typically a device, set of devices, or software running on a device that provides firewall functionality for network access. For example, a firewall can be integrated into the operating system of a device (eg, computer, smart phone, or other type of network communication enabled device). Firewalls can also be devices of various types, such as computer servers, gateways, network/routing devices (e.g., network routers), or data appliances (e.g., security appliances, or other types of special purpose devices). or integrated or executed as a software application on the security device, and in some implementations specific operations may be implemented in special purpose hardware, such as ASICs or FPGAs.
be.
ファイアウォールは、典型的に、一式のルールに基づいてネットワーク送信を拒否または許可する。これらのルールのセットは、しばしば、ポリシ(例えば、ネットワークポリシ、またはネットワークセキュリティポリシ)として参照される。例えば、ファイアウォールは、不要な外部トラフィックが保護デバイスに到達するのを防ぐために、一式のルールまたはポリシを適用することによって、インバウンドトラフィック(inbound traffic)をフィルタリングすることができる。ファイアウォールは、また、一式のルールまたはポリシを適用することによってアウトバウンドトラフィックをフィルタリングすることができる(例えば、許可(allow)、ブロック(block)、モニタリング(monitor)、通知(notify)、またはログ(log)、及び/又は、ファイアウォールルールまたはファイアウォールポリシにおいて指定され得る他のアクションであり、これらは、ここにおいて説明されるような、様々な基準に基づいてトリガすることができる)。ファイアウォールは、また、同様に一式のルールまたはポリシを適用することによって、ローカルネットワーク(例えば、イントラネット)トラフィックをフィルタリングすることもできる。 A firewall typically denies or permits network transmissions based on a set of rules. These rule sets are often referred to as policies (eg, network policies or network security policies). For example, a firewall can filter inbound traffic by applying a set of rules or policies to prevent unwanted external traffic from reaching a protected device. Firewalls can also filter outbound traffic by applying a set of rules or policies (e.g., allow, block, monitor, notify, or log ), and/or other actions that may be specified in firewall rules or policies, which may be triggered based on various criteria, as described herein). A firewall can also filter local network (eg, intranet) traffic by applying a set of rules or policies as well.
セキュリティデバイス(例えば、セキュリティ機器、セキュリティゲートウェイ、セキュリティサービス、及び/又は、他のセキュリティデバイス)は、様々なセキュリティ動作(例えば、ファイアウォール、アンチ-マルウェア、侵入防止/検出、プロキシ、及び/又は、他のセキュリティ機能)、ネットワーク機能(例えば、ルーティング、クオリティ・オブ・サービス(QoS)、ネットワーク関連リソースのワークロードバランシング、及び/又は、他のネットワーク機能)、及び/又は、他のセキュリティ及び/又はネットワーク関連の機能を実行することができる。例えば、ルーティングは、送信元(source)情報(例えば、IPアドレスおよびポート)、宛先(destination)情報(例えば、IPアドレスおよびポート)、および、プロトコル情報に基づいて実行することができる。 Security devices (eg, security appliances, security gateways, security services, and/or other security devices) may perform various security operations (eg, firewall, anti-malware, intrusion prevention/detection, proxy, and/or other security functions), network functions (e.g., routing, quality of service (QoS), workload balancing of network-related resources, and/or other network functions), and/or other security and/or network functions It can perform related functions. For example, routing can be performed based on source information (eg, IP address and port), destination information (eg, IP address and port), and protocol information.
基本的なパケットフィルタリング・ファイアウォールは、ネットワークを介して送信される個々のパケットを検査することによって、ネットワーク通信トラフィックをフィルタリングする(例えば、ステートレス(stateless)パケットフィルタリング・ファイアウォールである、パケットフィルタリング・ファイアウォールまたは第1世代ファイアウォール)。ステートレスパケットフィルタリング・ファイアウォールは、典型的に、個々のパケット自体を検査し、そして、検査されたパケットに基づいて(例えば、パケットの送信元および宛先のアドレス情報、プロトコル情報、および、ポート番号の組み合わせを使用して)ルールを適用する。 A basic packet-filtering firewall filters network communication traffic by inspecting each individual packet sent over the network (e.g., a stateless packet-filtering firewall, a packet-filtering firewall or 1st generation firewall). Stateless packet-filtering firewalls typically inspect individual packets themselves, and based on the inspected packet (e.g., a combination of the packet's source and destination address information, protocol information, and port number). ) to apply the rule.
アプリケーション・ファイアウォールは、また、(例えば、アプリケーション層フィルタリング・ファイアウォール、または、TCP/IPスタックのアプリケーションレベルにおいて機能する第2世代ファイアウォールを使用して)アプリケーション層フィルタリングを実行することもできる。アプリケーション層フィルタリング・ファイアウォールまたはアプリケーション・ファイアウォールは、一般的に、所定のアプリケーションおよびプロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP)を使用したウェブブラウジング、ドメインネームシステム(DNS)要求、ファイル転送プロトコル(FTP)を使用したファイル転送、および、Telnet、DHCP、TCP、UDP、およびTFTP(GSS)といった、様々な他のタイプのアプリケーションおよび他のプロトコル)を識別することができる。例えば、アプリケーション・ファイアウォールは、標準ポートにおいて通信を試みる未認可(unauthorized)プロトコルをブロックすることができる(例えば、そのプロトコルについて非標準(non-standard)ポートを使用することにより黙って通り抜けること(sneak through)を試みる未認可/外れたポリシプロトコルは、一般的に、アプリケーション・ファイアウォールを使用して識別することができる)。 An application firewall can also perform application layer filtering (eg, using an application layer filtering firewall or a second generation firewall that works at the application level of the TCP/IP stack). Application-layer filtering firewalls, or application firewalls, are generally used to protect certain applications and protocols (e.g., web browsing using Hypertext Transfer Protocol (HTTP), Domain Name System (DNS) requests, File Transfer Protocol (FTP) and various other types of applications and other protocols such as Telnet, DHCP, TCP, UDP, and TFTP (GSS)). For example, application firewalls can block unauthorized protocols that attempt to communicate on standard ports (e.g., sneak through by using a non-standard port for that protocol). Unauthorized/outside policy protocols attempting to through) can generally be identified using an application firewall).
ステートフル・ファイアウォールは、また、ステートフル・ベースのパケット検査を実行することもでき、そこでは、各パケットが、そのネットワーク送信のパケットフロー(packets/packet flow)と関連する一式のパケットのコンテキストの中で検査される。このファイアウォール技術は、一般的に、ステートフル・パケット検査として参照される。ファイアウォールを通過する全ての接続の記録を保持し、そして、パケットが、新しい接続の開始であるか、既存の接続の一部であるか、または、無効なパケットであるかを判断することができるからである。例えば、接続の状態は、それ自体が、ポリシの中のルールをトリガするクライテリアの1つになり得る。 Stateful firewalls can also perform stateful-based packet inspection, where each packet is viewed within the context of a set of packets associated with that network transmission's packets/packet flow. be inspected. This firewall technology is commonly referred to as stateful packet inspection. Keeps a record of all connections that pass through the firewall and can determine whether a packet is the start of a new connection, part of an existing connection, or an invalid packet It is from. For example, the state of a connection can itself be one of the criteria that trigger a rule in a policy.
先進的または次世代ファイアウォールは、上述のように、ステートレスおよびステートフルなパケットフィルタリングおよびアプリケーション層フィルタリングを実行することができる。次世代ファイアウォールは、また、追加的なファイアウォール技術を実行することもできる。例えば、先進的または次世代ファイアウォールとして、しばしば参照される所定の新しいファイアウォールは、また、ユーザおよびコンテンツを識別することができる。特に、所定の次世代ファイアウォールは、これらのファイアウォールが自動的に識別できるアプリケーションのリストを、何千ものアプリケーションまで拡大している。そうした次世代ファイアウォールの例は、Palo Alto Networksから市販されている(例えば、Palo Alto NetworksのPAシリーズのファイアウォール)。例えば、Palo Alto Networksの次世代ファイアウォールは、様々な識別技術を使用して、企業およびサービスプロバイダが、アプリケーション、ユーザ、およびコンテンツ-単にポート、IPアドレス、およびパケットだけでなく-を識別し、かつ、制御することを可能にする。様々な識別技術は、正確なアプリケーション識別のためのアプリケーションID(App-ID)(例えば、App ID)、ユーザ識別のためのユーザID(User-ID)(例えば、User ID)、および、リアルタイムなコンテンツスキャニングのためのコンテンツID(Content-ID)(例えば、Content ID)といったものである(例えば、Webサーフィンを制御し、かつ、データおよびファイルの転送を制限する)。これらの識別技術により、企業は、従来のポートブロッキングファイアウォールによって提供される従来のアプローチに従う代わりに、ビジネス関連の概念を使用して、アプリケーションの使用を安全に可能にすることができる。また、(例えば、専用装置として実装される)次世代ファイアウォールのための特定目的ハードウェアは、汎用ハードウェアにおいて実行されるソフトウェアよりも、アプリケーション検査についてより高いパフォーマンスレベルを一般的に提供する(例えば、Palo Alto Networks社が提供するセキュリティ機器といったものであり、シングルパス・ソフトウェアエンジンと堅く統合されている、専用の、機能固有の処理を利用し、Palo Alto NetworksのPAシリーズ次世代ファイアウォールについて、レイテンシ(latency)を最小化する一方で、ネットワークのスループットを最大化する)。 Advanced or next-generation firewalls can perform stateless and stateful packet filtering and application layer filtering, as described above. Next-generation firewalls can also implement additional firewall technologies. For example, certain newer firewalls, often referred to as advanced or next-generation firewalls, can also identify users and content. In particular, certain next-generation firewalls extend the list of applications that these firewalls can automatically identify to thousands of applications. Examples of such next-generation firewalls are commercially available from Palo Alto Networks (eg, Palo Alto Networks' PA series firewalls). For example, Palo Alto Networks next-generation firewalls use a variety of identification technologies to help enterprises and service providers identify applications, users, and content—not just ports, IP addresses, and packets—and , allows you to control Various identification technologies include App-ID (e.g., App-ID) for precise application identification, User-ID (e.g., User-ID) for user identification, and real-time Content-ID for content scanning (eg, Content-ID) (eg, controlling web surfing and restricting data and file transfers). These identification techniques allow enterprises to use business-related concepts to securely enable application usage instead of following the traditional approach provided by traditional port-blocking firewalls. Also, special-purpose hardware for next-generation firewalls (e.g., implemented as dedicated equipment) generally provides higher performance levels for application inspection than software running on general-purpose hardware (e.g., , security appliances from Palo Alto Networks, Inc., which utilize dedicated, function-specific processing that is tightly integrated with a single-pass software engine to reduce latency for Palo Alto Networks' PA Series Next-Generation Firewalls. maximizing network throughput while minimizing (latency)).
先進的または次世代ファイアウォールは、また、仮想化ファイアウォールを使用して実装することもできる。そうした次世代ファイアウォールの例は、Palo Alto Networks社から市販されている(Palo Alto Networksのファイアウォールは、VMware(R) ESXiTMおよびNSXTM、Citrix(R)Netscaler SDXTM、KVM/OpenStack(Centos/RHEL、Ubuntu(R))、および、Amazon Web Services(AWS)を含む、様々な商用仮想化環境をサポートしている)。例えば、仮想化ファイアウォールは、物理的フォームファクタ機器で利用可能な、同様の、または、完全に同一の次世代ファイアウォールおよび先進的な脅威防止機能をサポートすることができ、企業は、プライベート、パブリック、およびハイブリッドなクラウドコンピューティング環境へのアプリケーションの流入を安全に可能にすることができる。VMモニタリング、ダイナミックアドレスグループ、およびRESTベースのAPIといった自動化機能により、企業は、VMの変化を動的にモニタすることができ、そのコンテキストをセキュリティポリシに反映させて、それにより、VMの変化時に生じ得るポリシの遅れ(lag)を排除している。 Advanced or next generation firewalls can also be implemented using virtualized firewalls. Examples of such next-generation firewalls are commercially available from Palo Alto Networks (Palo Alto Networks' firewalls include VMware(R) ESXi TM and NSX TM , Citrix(R) Netscaler SDX TM , KVM/OpenStack (Centos/RHEL , Ubuntu(R)), and Amazon Web Services (AWS)). For example, virtualized firewalls can support similar or even identical next-generation firewalls and advanced threat protection capabilities available in physical form factor devices, enabling enterprises to deploy private, public, and securely enable the influx of applications to hybrid cloud computing environments. Automation features such as VM monitoring, dynamic address groups, and REST-based APIs allow enterprises to dynamically monitor VM changes and reflect that context in security policies, thereby enabling Eliminates possible policy lag.
II.環境の実施例 II. Environmental Examples
図1は、悪意のあるアプリケーション(「マルウェア(“malware”)」)が検出され、被害を引き起こさない環境の例を示している。以下でさらに詳細に説明するように、マルウェア分類(例えば、セキュリティプラットフォーム122によって作成される)は、図1に示される環境に含まれる様々なエンティティ間で様々に共有及び/又は改良することができ、ここにおいて説明される技術を用いて、エンドポイントクライアント装置104-110といった装置を、そうしたマルウェアから保護することができる。 Figure 1 shows an example of an environment in which a malicious application (“malware”) is detected and does not cause damage. As described in further detail below, malware taxonomies (eg, created by security platform 122) can be shared and/or refined in various ways among various entities included in the environment shown in FIG. , the techniques described herein can be used to protect devices, such as endpoint client devices 104-110, from such malware.
「アプリケーション(“application”)」という用語は、形式/プラットフォームにかかわらず、プログラム、プログラムのバンドル、マニフェスト、パッケージ、等を総称して指すために、本仕様書の全体を通して使用されている。「アプリケーション」(ここにおいては「サンプル」とも呼ばれる)は、スタンドアロン(standalone)ファイル(例えば、ファイル名「calculator.apk」または「calculator.exe」を有する計算アプリケーション)であってもよく、または、別のアプリケーションの独立したコンポーネント(例えば、モバイル広告SDKまたは計算アプリケーション内に埋め込まれたライブラリ)であってよい。 The term "application" is used throughout this specification to refer generically to programs, bundles of programs, manifests, packages, etc., regardless of format/platform. An "application" (also referred to herein as a "sample") may be a standalone file (eg, a calculator application with the file name "calculator.apk" or "calculator.exe"), or another application (e.g., a mobile advertising SDK or a library embedded within a computational application).
ここにおいて使用される「マルウェア」とは、秘密裡であろうとなかろうと(かつ、違法であろうとなかろうと)、完全な情報を得た場合にはユーザが承認しない/承認しないであろう挙動に関与する。マルウェアの例は、トロイの木馬、ウイルス、ルートキット、スパイウェア、ハッキングツール、キーロガー、等を含む。マルウェアの一つの例は、デスクトップ・アプリケーションであり、それは、エンドユーザの場所を収集し、かつ、リモート・サーバに報告する(しかし、ユーザには、マッピング・サービスといった、場所ベースのサービスを提供しない)。マルウェアのもう別の例は、悪意のあるアンドロイド(登録商標)(Android)アプリケーションパッケージ.apk(APK)であり、それは、エンドユーザにとっては無料ゲームのように見えるが、密かにSMSプレミアムメッセージ(例えば、各10ドルの費用)を送信し、エンドユーザの電話料金請求書を膨らませる。マルウェアの別の例は、アップルのiOSフラッシュライトアプリケーションであり、それは、ユーザの連絡先を密かに収集し、かつ、それらの連絡先をスパマー(spammer)に送信する。他の形態のマルウェアも、ここにおいて説明される技術(例えば、ランサムウェア)を用いて検出/阻止することができる。さらにnグラム(n-gram)/特徴ベクトル/出力蓄積変数は、悪意のあるアプリケーションについて生成されるものとしてここにおいて説明されているが、ここにおいて説明される技術は、また、他の種類のアプリケーション(例えば、アドウェア・プロファイル、グッドウェア・プロファイル、等)のためのプロファイルを生成するために、様々な実施形態でも使用することができる。 "Malware," as used herein, means any behavior, whether covert or not (and illegal or not), that the user would not/would not approve of if fully informed. Involved. Examples of malware include Trojan horses, viruses, rootkits, spyware, hacking tools, keyloggers, and the like. One example of malware is a desktop application that collects and reports the end-user's location to a remote server (but does not provide users with location-based services, such as mapping services). ). Another example of malware is a malicious Android application package .apk (APK) that appears to be a free game to the end user but secretly sends SMS premium messages (e.g. , cost $10 each) and inflate the end user's phone bill. Another example of malware is Apple's iOS Flashlight application, which secretly collects users' contacts and sends them to spammers. Other forms of malware can also be detected/blocked using the techniques described herein (eg, ransomware). Furthermore, although n-grams/feature vectors/output accumulation variables are described herein as being generated for malicious applications, the techniques described herein are also applicable to other types of applications. Various embodiments can also be used to generate profiles for (eg, adware profiles, goodware profiles, etc.).
ここにおいて説明される技術は、種々のプラットフォーム(例えば、デスクトップ、モバイルデバイス、ゲームプラットフォーム、エンベッドシステム、等)及び/又は種々のタイプのアプリケーション(例えば、Android apkファイル、iOSアプリケーション、Windows PEファイル、Adobe Acrobat PDFファイル、等)と組み合わせて使用することができる。図1に示す例示的な環境において、クライアント装置104-108は、ラップトップコンピュータ、デスクトップコンピュータ、およびエンタープライズネットワーク140に存在するタブレットである。クライアント装置110は、エンタープライズネットワーク140の外部に存在するラップトップコンピュータである。
The techniques described herein can be used on different platforms (eg, desktops, mobile devices, gaming platforms, embedded systems, etc.) and/or different types of applications (eg, Android apk files, iOS applications, Windows PE files, Adobe Acrobat PDF files, etc.). In the exemplary environment shown in FIG. 1, client devices 104 - 108 are laptop computers, desktop computers, and tablets residing on
データ機器102は、クライアント装置104および106といった、クライアント装置と、エンタープライズネットワーク140外のノード(例えば、外部ネットワーク118を介して到達可能)との間の通信に関するポリシを実施するように構成されている。そうしたポリシの例は、トラフィックシェーピング、サービスの品質、およびトラフィックのルーティングを管理するポリを含む。ポリシの他の例は、受信(および送信)メールの添付ファイル、ウェブサイトのコンテンツ、インスタントメッセージングプログラムを介して交換されるファイル、及び/又は、他のファイル転送、における脅威についてスキャニング(scanning)を要求するといった、セキュリティポリシを含む。いくつかの実施形態において、データ機器102は、また、エンタープライズネットワーク140内に留まるトラフィックに関するポリシを実施するように構成される。
データ機器の一つの実施形態が図2Aに示されている。示される例は、種々の実施形態において、データ機器102に含まれる物理的コンポーネントの表現である。具体的に、データ機器102は、高性能マルチコア中央処理ユニット(CPU)202およびランダムアクセスメモリ(RAM)204を含んでいる。データ機器102は、また、ストレージ210(1つ以上のハードディスクまたはソリッドステート・ストレージユニット、といったもの)を含む。様々な実施形態において、データ機器102は、エンタープライズネットワーク140をモニタリングすること、および、開示された技術を実装することに使用される情報を(RAM204、ストレージ210、及び/又は、他の適切なロケーション、のいずれかに)保管する。そうした情報の例は、アプリケーション識別子、コンテンツ識別子、ユーザ識別子、要求されたURL、IPアドレスマッピング、ポリシおよび他のコンフィグレーション情報、署名、ホスト名/URL分類情報、マルウェアプロファイル、および機械学習モデル、を含む。データ機器102は、また、1つ以上の任意的なハードウェアアクセラレータを含み得る。例えば、データ機器102は、暗号化および復号動作を実行するように構成された暗号エンジン206、および、照合器(matching)を実行し、ネットワークプロセッサとして動作し、かつ/あるいは、他のタスクを実行するように構成された、1つ以上のフィールドプログラマブルゲートアレイ208を含み得る。
One embodiment of a data appliance is shown in FIG. 2A. The examples shown are representations of physical components included in
データ機器102によって実行されるものとしてここにおいて説明される機能性は、種々の方法で提供/実装することができる。例えば、データ機器102は、専用のデバイスまたはデバイスセットであってよい。データ機器102によって提供される機能は、汎用コンピュータ、コンピュータサーバ、ゲートウェイ、及び/又は、ネットワーク/ルーティング・デバイス上のソフトウェアとして統合され、または、実行され得る。いくつかの実施形態において、データ機器102によって提供されるものとして説明される少なくともいくつかのサービスが、代わりに(または、これに加えて)、クライアント装置において実行するソフトウェアによって、クライアント装置(例えば、クライアント装置104またはクライアント装置110)に提供される。
The functionality described herein as being performed by
データ機器102がタスクを実行するものとして記述されるときはいつでも、単一のコンポーネント、コンポーネントのサブセット、またはデータ機器102の全てのコンポーネントは、タスクを実行するために協働することができる。同様に、データ機器102のコンポーネントがタスクを実行するものとして説明されるときはいつでも、サブコンポーネントは、タスクを実行することができ、かつ/あるいは、コンポーネントは、他のコンポーネントと共にタスクを実行することができる。様々な実施形態において、データ機器102の一部は、1つ以上の第三者によって提供される。データ機器102に利用可能な計算リソースの量といった要因に応じて、データ機器102の種々の論理コンポーネント及び/又は特徴は省略されてよく、そして、ここにおいて説明される技術はそれに応じて適合される。同様に、追加の論理コンポーネント/特徴を、データ機器102の実施形態に、適用可能なように含めることができる。種々の実施形態におけるデータ機器102に含まれるコンポーネントの一つの例は、(例えば、パケットフロー解析に基づいてアプリケーションを識別するために種々のアプリケーション署名を使用して)アプリケーションを識別するように構成されているアプリケーション識別エンジンである。例えば、アプリケーション識別エンジンは、セッションが関与するトラフィックのタイプを決定することができる。Webブラウジング-ソーシャルネットワーキング、Webブラウジング-ニュース、SSH、等といったものである。
Whenever
図2Bは、データ機器の一つの実施形態の論理コンポーネントの機能図である。示される例は、種々の実施形態においてデータ機器102に含まれ得る論理コンポーネントの表現である。別段の規定がない限り、データ機器102の種々の論理コンポーネントは、一般的に、1つ以上のスクリプト(例えば、該当する場合、Java、python、等で書かれたもの)のセット(set)を含む種々の方法で実装可能である。
Figure 2B is a functional diagram of the logical components of one embodiment of a data appliance. The example shown is a representation of logical components that may be included in
図示のように、データ機器102はファイアウォールを備え、かつ、管理プレーン232およびデータプレーン234を含んでいる。管理プレーンは、ポリシの設定およびログデータの表示のめのユーザインターフェイスを提供するといったことにより、ユーザインタラクション(user interaction)の管理について責任を負う。データプレーンは、パケット処理およびセッション処理を実行するといったことにより、データ管理について責任を負う。
As shown,
ネットワークプロセッサ236は、クライアント装置108といった、クライアント装置からパケットを受信し、そして、それらを処理のためにデータプレーン234に提供するように構成されている。フローモジュール238は、新しいセッションの一部としてパケットを識別するときはいつでも、新しいセッションフローを生成する。その後のパケットは、フロールックアップに基づいて、セッションに属しているものとして識別される。該当する場合、SSL復号エンジン240によってSSL復号化が適用される。そうでなければ、SSL復号エンジン240による処理は省略される。復号エンジン240は、データ機器102がSSL/TLSおよびSSHの暗号化トラフィックを検査および制御することを助け、そして、従って、そうでなければ暗号化トラフィック内に隠されたままであり得る脅威を停止することを助ける。復号エンジン240は、また、機密性の高いコンテンツがエンタープライズネットワーク140から去るのを防止することを助けることができる。復号は、URLカテゴリ、トラフィック元、トラフィック宛先、ユーザ、ユーザグループ、およびポート、といったパラメータに基づいて選択的に制御することができる(例えば、イネーブルされ、または、ディセーブルされる)。復号ポリシ(例えば、復号するセッションを指定するもの)に加えて、復号プロファイルは、ポリシによって制御されるセッションの様々なオプションを制御するために割り当てることができる。例えば、特定の暗号スイートおよび暗号化プロトコルバージョンの使用が要求され得る。
アプリケーション識別(APP-ID)エンジン242は、セッションが関与するトラフィックのタイプを決定するように構成されている。一つの例として、アプリケーション識別エンジン242は、受信データ内のGETリクエストを認識し、そして、セッションがHTTPデコーダを必要とすると結論付けることができる。場合によって、例えば、ウェブブラウジングセッションにおいて、識別されたアプリケーションは変更することができ、そして、そうした変更はデータ機器102によって書き留め(noted)られる。例えば、ユーザは、まず、企業のWiki(訪問したURLに基づいて「Webブラウジング-生産性(“Web Browsing-Productivity”)」として分類される)を閲覧し、次に、ソーシャルネットワーキングサイト(訪問したURLに基づいて「Webブラウジング-ソーシャルネットワーキング(“Web Browsing-Social Networking”)」として分類される)を閲覧することができる。異なるタイプのプロトコルは、対応するデコーダを有している。
Application identification (APP-ID)
アプリケーション識別エンジン242によって行われた決定に基づいて、パケットを正しい順序に組み立て、トークン化を実行し、情報を抽出するように構成された、適切なデコーダに対して、脅威エンジン244によって、パケットが送信される。脅威エンジン244は、また、パケットに何が起こるべきかを決定するために、署名照合(signature matching)を実行する。必要に応じて、SSL暗号化エンジン246は、復号されたデータを再び暗号化することができる。パケットは、転送のために(例えば、宛先へ)転送モジュール248を使用して転送される。
Based on decisions made by
図2Bにも、また、示されるように、ポリシ252は、受信され、そして、管理プレーン232に保管される。ポリシは、ドメイン名及び/又はホスト/サーバ名を使用して指定することができる、1つ以上のルールを含むことができ、そして、ルールは、モニタリングされるセッショントラフィックフローからの様々な抽出されたパラメータ/情報に基づいて、加入者/IPフローに対するセキュリティポリシ実施のためといった、1つ以上の署名または他の照合基準または発見的方法を適用することができる。インターフェイス(I/F)通信器250が、管理通信(例えば、(REST)API、メッセージ、またはネットワークプロトコル通信、もしくは他の通信メカニズムを介して)について提供されている。
Also shown in FIG. 2B,
III.セキュリティプラットフォーム III. Security Platform
図1に戻り、悪意のある(システム120を使用する)個人がマルウェア130を作成したと仮定する。悪意のある個人は、クライアント装置104といった、クライアント装置がマルウェア130のコピーを実行することを望んでおり、クライアント装置を危険にさらし(compromising)、そして、例えば、クライアント装置をボットネットにおけるボット(bot)にさせる。危険にさらされたクライアント装置は、次いで、タスク(例えば、暗号通貨のマイニング、または、サービス妨害攻撃への参加)を実行し、そして、コマンドおよび制御(C&C)サーバ150といった、外部エンティティに情報を報告するように、並びに、必要に応じて、C&Cサーバ150からの命令を受信するように、指示され得る。
Returning to FIG. 1, assume that a malicious individual (using system 120) created
データ機器102が、クライアント装置104を操作するユーザ「アリス(“Alice”)」に対して送信された電子メールをインターセプトしたと想定する。マルウェア130のコピーは、システム120によってメッセージに添付されている。代替的であるが、類似のシナリオとして、データ機器102は、クライアント装置104による(例えば、ウェブサイトからの)マルウェア130のダウンロードの試みをインターセプトすることができる。いずれのシナリオにおいても、データ機器102は、ファイルの署名(例えば、eメールの添付またはマルウェア130のウェブサイトダウンロード)がデータ機器102上に存在するか否かを決定する。署名は、存在する場合に、ファイルが安全であると知られている(例えば、ホワイトリストに在る)ことを示すことができ、そして、また、そのファイルが悪意のものであると知られている(例えば、ブラックリストに在る)ことを示すこともできる。
Assume that
様々な実施形態において、データ機器102は、セキュリティプラットフォーム122と協働して動作するように構成されている。一つの例として、セキュリティプラットフォーム122は、データ機器102に、既知の悪意のあるファイルの署名のセットを(例えば、サブスクリプションの一部として)提供することができる。マルウェア130に対する署名がセットに含まれる場合(例えば、マルウェア130のMD5ハッシュ)、データ機器102は、それに応じて(例えば、クライアント装置104に送られる電子メール添付のMD5ハッシュがマルウェア130のMD5ハッシュに一致することを検出することによって)、クライアント装置104へのマルウェア130の送信を防止することができる。セキュリティプラットフォーム122は、また、データ機器102に既知の悪意のあるドメイン及び/又はIPアドレスのリストを提供することができ、データ機器102がエンタープライズネットワーク140とC&Cサーバ150(例えば、C&Cサーバ150が悪意であることが知られている場合)との間のトラフィックをブロックすることを可能にする。悪意のあるドメイン(及び/又はIPアドレス)のリストは、また、データ機器102が、そのノードの1つがいつ侵害されたかを判断するのに役立つ。例えば、クライアント装置104がC&Cサーバ150へのコンタクトを試みる場合、そうした試みは、クライアント104がマルウェアによって危険にさらされたこと(従って、クライアント装置104がエンタープライズネットワーク140内の他のノードと通信するのを隔離するなどの是正措置を講じる必要があること)を示す強力な指標(indicator)である。以下でより詳細に説明されるように、セキュリティプラットフォーム122は、また、ファイルのインライン解析を行うためにデータ機器102によって使用可能な機械学習モデルのセットといった、他のタイプの情報を、データ機器102に(例えば、予約の一部として)提供することができる。
In various embodiments,
様々な実施形態において、添付(attachment)に対する署名が見つからない場合、データ機器102は、様々な措置を講じることができる。第1例として、データ機器102は、良性(benign)としてホワイトリストに掲載されていない(例えば、既知の良好なファイルの署名と一致しない)添付の送信をブロックすることによって、フェールセーフ(fail-safe)にすることができる。このアプローチの欠点は、実際に良性である場合にも、潜在的にマルウェアとして不必要にブロックされる正規の添付が多く存在し得ることである。第2例として、データ機器102は、悪意のあるものとしてブラックリストに掲載されていない添付ファイル(例えば、既知の悪意のあるファイルの署名と一致しないもの)の送信を可能にすることによって、故障の危険(fail-danger)をもたらし得る。このアプローチの欠点は、新たに作成されたマルウェア(プラットフォーム122によって以前は見えなかったもの)が、危害を引き起こすのを妨げられないことである。
In various embodiments,
第3例として、データ機器102は、静的/動的解析のためにセキュリティプラットフォーム122にファイル(例えば、マルウェア130)を提供し、それが悪意であるか否かを判断し、かつ/あるいは、それを分類するように構成することができる。添付のセキュリティプラットフォーム122(署名がまだ存在しない)による解析が実行される間に、データ機器102は様々なアクションをとることができる。第1例として、データ機器102は、セキュリティプラットフォーム122から応答が受信されるまで、電子メール(および添付ファイル)がアリスに配信されるのを妨げることができる。プラットフォーム122がサンプルを完全に解析するのに約15分かかると仮定すると、これは、アリスへの受信メッセージが15分遅れることを意味する。この例では、添付は悪意があるため、そうした遅延はアリスにマイナスの影響を与えない。別の例においては、誰かが、署名も存在しない良性の添付を伴う時間に敏感な(time sensitive)メッセージをアリスに送ったものと想定する。アリスへのメッセージの配送を15分遅らせることは(例えば、アリスによって)受け入れられないと見なされる可能性が高い。以下でより詳細に説明されるように、代替的アプローチは、データ機器102において添付について(例えば、プラットフォーム122からの裁決を待つ間に)少なくともある程度のリアルタイム解析を行うことである。データ機器102が、添付が悪意のあるものか良性のものかを独立して決定することができれば、初期アクション(例えば、アリスへの配送をブロックする、または、許可する)をとることができ、そして、セキュリティプラットフォーム122から裁決(verdict)を受信した後で、必要に応じて、追加アクションを調整/実行することができる。
As a third example,
セキュリティプラットフォーム122は、受信したサンプルのコピーをストレージ142に保管し、そして、解析が開始される(または、適宜、予定される)。ストレージ142の一つの例は、アパッチハデュープ(Apache Hadoop)クラスタである。解析の結果(および、アプリケーションに関連する追加情報)は、データベース146に保管される。アプリケーションが不正であると判断された場合、データ機器は、解析結果に基づいて、ファイルダウンロードを自動的にブロックするように設定することができる。さらに、悪意があると判断されたファイルをダウンロードする将来のファイル転送要求を自動的にブロックするために、マルウェアについて署名を生成し、そして、(例えば、データ機器102、136、148といったデータ機器に対して)配布することができる。
様々な実施形態において、セキュリティプラットフォーム122は、典型的なサーバ-クラス・オペレーティングシステム(例えば、Linux(登録商標))を実行する1つ以上の専用の市販のハードウェアサーバを含む(例えば、マルチコアプロセッサ、RAMの32G+、ギガビット・ネットワークインターフェイス・アダプタ、および、ハードドライブを有しているもの)。セキュリティプラットフォーム122は、複数のそうしたサーバ、ソリッドステートドライブ、及び/又は、他の適用可能な高性能ハードウェアを含むスケーラブル・インフラストラクチャにわたり、実装され得る。セキュリティプラットフォーム122は、1つ以上の第三者によって提供されるコンポーネントを含む、複数の分散コンポーネントを有することができる。例えば、セキュリティプラットフォーム122の一部または全部を、Amazon Elastic Compute Cloud(EC2)及び/又はAmazon Simple Storage Service(S3)を使用して実装することができる。さらに、データ機器102の場合と同様に、セキュリティプラットフォーム122が、データの保管またはデータの処理といった、タスクを実行するように言及されるときはいつでも、セキュリティプラットフォーム122のサブコンポーネントまたは複数のサブコンポーネントは、(個々に、または、第三者のコンポーネントと協力して)そのタスクを実行するために協働し得ることができることが理解されるべきである。一つの例として、セキュリティプラットフォーム122は、任意的に、VMサーバ124といった、1つ以上の仮想マシン(VM)サーバと協力して、静的/動的分解析を実行することができる。
In various embodiments,
仮想マシンサーバの一つの例は、VMware ESXi、Citrix XenServer、またはMicrosoft Hyper-Vといった、市販の仮想化ソフトウェアを実行する、市販のサーバ-クラスのハードウェア(例えば、マルチコアプロセッサ、RAMの32G+、および1つ以上のギガビット・ネットワークインターフェイス・アダプタ)を含む物理マシンである。いくつかの実施形態において、仮想マシンサーバは省略されている。さらに、仮想マシンサーバは、セキュリティプラットフォーム122を管理するのと同じエンティティの制御下にあってよいが、また、第三者によって提供されてもよい。一つの例として、仮想マシンサーバは、EC2に依存することができ、セキュリティプラットフォーム122のオペレータによって所有され、かつ、その制御下にある専用ハードウェアによって提供されるセキュリティプラットフォーム122の残りの部分を伴う。VMサーバ124は、クライアント装置をエミュレートするために1つ以上の仮想マシン126-128を提供するように構成さていれる。仮想マシンは、様々なオペレーティングシステム及び/又はそのバージョンを実行することができる。仮想マシンでアプリケーションを実行した結果として生じる、観察された動作がログに記録され、そして、解析される(例えば、アプリケーションが悪意を持っていることを示す場合)。いくつかの実施形態において、ログ解析は、VMサーバ(例えば、VMサーバ124)によって実行される。他の実施形態において、解析は、少なくとも部分的に、コーディネータ144といった、セキュリティプラットフォーム122の他のコンポーネントによって実行される。
One example of a virtual machine server is off-the-shelf server-class hardware (e.g., multi-core processor, 32G+ of RAM, and A physical machine that contains one or more gigabit network interface adapters). In some embodiments, virtual machine servers are omitted. Further, virtual machine servers may be under the control of the same entity that manages
様々な実施形態において、セキュリティプラットフォーム122は、サブスクリプション(subscription)の一部として、署名(及び/又は、他の識別子)のリストを介して、データ機器102に対してサンプルの解析の結果を利用可能にする。例えば、セキュリティプラットフォーム122は、マルウェアアプリケーションを識別するコンテンツパッケージを周期的に送信することができる(例えば、毎日、毎時、または他の間隔、及び/又は、1つ以上のポリシによって構成されたイベントに基づいて)。コンテンツパッケージの例は、識別されたマルウェアアプリケーションのリストを含み、パッケージ名、アプリケーションを一意に識別するためのハッシュ値、および、識別された各マルウェアアプリケーションのマルウェア名(及び/又は、マルウェアファミリ名)といった情報を伴う。サブスクリプションは、データ機器102によってインターセプトされ、データ機器102によってセキュリティプラットフォーム122に送信されるファイルの解析のみをカバーすることができ、そして、また、セキュリティプラットフォーム122(または、そのサブセット、単なるモバイルマルウェアであるが、マルウェアの他の形態ではないもの(例えば、PDFマルウェア))に対して知られている全てのマルウェアの署名をカバーすることもできる。以下でより詳細に説明されるように、プラットフォーム122は、また、データ機器102がマルウェアを検出するのを助けることができる機械学習モデルといった、他のタイプの情報を利用可能にすることができる。
In various embodiments,
様々な実施形態において、セキュリティプラットフォーム122は、データ機器102のオペレータに加えて(または、該当する場合は、その代わりに)、様々なエンティティに対してセキュリティサービスを提供するように構成されている。例えば、自身のそれぞれのエンタープライズネットワーク114および116、並びに、それら自身のそれぞれのデータ機器136および148を有している、他のエンタープライズは、セキュリティプラットフォーム122のオペレータと契約(contract)することができる。他のタイプのエンティティは、また、セキュリティプラットフォーム122のサービスを利用することもできる。例えば、クライアント装置110にインターネットサービスを提供するインターネットサービスプロバイダは、クライアント装置110がダウンロードを試みるアプリケーションを解析するために、セキュリティプラットフォーム122と契約することができる。別の例として、クライアント装置110のオーナーは、セキュリティプラットフォーム122と通信するクライアント装置110上にソフトウェアをインストールすることができる(例えば、セキュリティプラットフォーム122からコンテンツパッケージを受信し、受信したコンテンツパッケージを使用して、ここにおいて説明される技術に従って添付をチェックし、そして、解析のためにアプリケーションをセキュリティプラットフォーム122に送信する)。
In various embodiments,
IV. 静的/動的解析を使用するサンプル解析 IV. SAMPLE ANALYSIS USING STATIC/DYNAMIC ANALYSIS
図3は、サンプルを解析するためのシステムに含めることができる論理コンポーネントの例を示している。解析システム300は、単一の装置を使用して実施することができる。例えば、解析システム300の機能は、データ機器102の中に組み込まれたマルウェア解析モジュール112に実装することができる。解析システム300は、また、複数の別個の装置にわたり、集合的に、実施することができる。例えば、解析システム300の機能は、セキュリティプラットフォーム122によって提供され得る。
Figure 3 shows an example of the logical components that can be included in a system for analyzing samples.
様々な実施形態において、解析システム300は、既知の安全コンテンツ及び/又は既知の不良コンテンツのリスト、データベース、または、他のコレクション(コレクション314として図3において集合的に示されている)を使用する。コレクション314は、サブスクリプションサービス(例えば、第三者によって提供されるもの)を介すること、及び/又は、他の処理 (例えば、データ機器102及び/又はセキュリティプラットフォーム122によって実行されるもの)の結果として、様々な方法で獲得され得る。コレクション314に含まれる情報の例は、既知の悪意のあるサーバのURL、ドメイン名、及び/又は、IPアドレス、既知の安全なサーバのURL、ドメイン名、及び/又は、IPアドレス、既知のコマンドおよび制御(C&C)ドメインのURL、ドメイン名、及び/又は、IPアドレス、既知の悪意のあるアプリケーションの署名、ハッシュ、及び/又は、他の識別子、既知の安全なアプリケーションの署名、ハッシュ、及び/又は、他の識別子、既知の悪意のあるファイルの署名、ハッシュ、及び/又は、他の識別子(例えば、Android exploitファイル)、既知の安全なライブラリの署名、ハッシュ、及び/又は、他の識別子、および、既知の悪意のあるライブラリの署名、ハッシュ、及び/又は、他の識別子、である。
In various embodiments,
A. 摂取(ingestion) A. ingestion
様々な実施形態においては、解析のための新しいサンプルが受信されると(例えば、サンプルに関連する既存の特徴が解析システム300に存在しない)、それはキュー302に追加される。図3に示すように、アプリケーション130は、システム300によって受信され、そして、キュー302に追加される。
In various embodiments, when a new sample is received for analysis (eg, no existing feature associated with the sample exists in analysis system 300), it is added to
B. 静的解析 B. Static analysis
コーディネータ304は、キュー302をモニタリングし、そして、リソース(例えば、静的解析ワーカー(worker))が利用可能になると、コーディネータ304は、処理のためにキュー302からサンプルを取り出す(例えば、マルウェア130のコピーをフェッチ(fetch)する)。特に、コーディネータ304は、最初に、静的解析のためにサンプルを静的解析エンジン306に供給する。いくつかの実施形態においては、1つ以上の静的解析エンジンが解析システム300内に含まれており、ここで、解析システム300は、単一の装置である。他の実施形態において、静的解析は、複数のワーカー(すなわち、静的解析エンジン306の複数のインスタンス)を含む別個の静的解析サーバによって実行される。
静的解析エンジンは、サンプルに関する一般的な情報を獲得し、そして、それを静的解析レポート308内に(適宜、発見的情報および他の情報と共に)含める。レポートは、静的解析エンジンによって、または、静的解析エンジン306から情報を受信するように構成され得るコーディネータ304によって(または、別の適切なコンポーネントによって)作成され得る。いくつかの実施形態において、収集された情報は、作成される別個の静的解析レポート308(すなわち、レポート308からのデータベースレコードの部分)の代わりに、または、それに加えて、サンプルのデータベースレコード(例えば、データベース316)に保管される。いくつかの実施形態において、静的解析エンジンは、また、アプリケーション(例えば、「安全な(“safe”)」、「疑わしい(“suspicious”)」、または「悪意のある(“malicious”)」もの)に関する裁決を形成する。一つの例として、たとえ1つの「悪意のある」静的機能がアプリケーションに存在する場合(例えば、アプリケーションが既知の悪意のあるドメインへのハードリンクを含んでいる)、裁決は「悪意のある」ものであり得る。別の例として、各特徴にポイントを割り当てることができ(例えば、発見された場合の重大度に基づいて、悪意を予測するための特徴の信頼性に基づいて、等)、裁決は、静的解析結果に関連するポイントの数に基づいて、静的解析エンジン306(または、該当する場合は、コーディネータ304)によって割り当てることができる。
The static analysis engine obtains general information about the sample and includes it in the static analysis report 308 (along with heuristics and other information as appropriate). The report may be generated by the static analysis engine or by coordinator 304 (or another suitable component), which may be configured to receive information from
C. 動的解析 C. Dynamic analysis
一旦、静的解析が完了すると、コーディネータ304は、アプリケーションにおいて動的解析を実行するために、利用可能な動的解析エンジン310を配置する。静的解析エンジン306と同様に、解析システム300は、1つ以上の動的解析エンジンを直接的に含むことができる。他の実施形態において、動的解析は、複数のワーカー(すなわち、動的解析エンジン310の複数のインスタンス)を含む別個の動的解析サーバによって実行される。
Once static analysis is complete,
各ダイナミック解析ワーカーは、仮想マシンインスタンスを管理する。いくつかの実施形態において、静的解析の結果(例えば、静的解析エンジン306によって実行されるもの)は、レポート形式(308)であるか、かつ/あるいは、データベース316に保管されているか、または、別の方法で保管されているかのいずれかで、動的解析エンジン310に対する入力として提供される。例えば、動的解析エンジン310によって使用される仮想マシンインスタンス(例えば、Microsoft Windows7 SP2 vs. Microsoft Windows10 Enterprise、または、iOS 11.0 vs. iOS 12.0)の選択/カスタマイズを助けるために、静的レポート情報を使用することができる。複数の仮想マシンインスタンスが同時に実行される場合、単一の動的解析エンジンが全てのインスタンスを管理することができ、または、必要に応じて、複数の動的解析エンジンを(例えば、それ自身の仮想マシンインスタンスの各管理と共に)使用することができる。以下でより詳細に説明するように、解析の動的部分の最中に、アプリケーション(ネットワークアクティビティを含む)によって取られたアクションが解析される。
Each dynamic analysis worker manages a virtual machine instance. In some embodiments, static analysis results (eg, those performed by static analysis engine 306) are in report form (308) and/or stored in
様々な実施形態において、サンプルの静的解析は、省略されるか、または、該当する場合、別個のエンティティによって実施される。一つの例として、従来の静的及び/又は動的解析は、第1エンティティによってファイルにおいて実行され得る。一旦(例えば、第1エンティティによって)所与のファイルが悪意のものであると決定されると、そのファイルは、特に、マルウェアのネットワーク活動の使用に関連する追加的な解析のために(例えば、動的解析エンジン310によって)、第2エンティティ(例えば、セキュリティプラットフォーム122のオペレータ)に提供され得る。 In various embodiments, static analysis of samples is omitted or, where applicable, performed by a separate entity. As one example, conventional static and/or dynamic analysis may be performed on the file by the first entity. Once it is determined (e.g., by a first entity) that a given file is malicious, that file may be used for additional analysis (e.g., by the dynamic analysis engine 310) to a second entity (eg, an operator of the security platform 122).
解析システム300によって使用される環境は、アプリケーションが実行されている間に観察された挙動が、それらが発生したときにログに記録されるように(例えば、フッキング(hooking)およびログキャット(logcat)をサポートするカスタマイズされたカーネルを使用して)、計装され/フックされる。エミュレータに関連するネットワークトラフィックも、また、(例えば、pcapを使用して)キャプチャされる。ログ/ネットワークデータは、解析システム300上に一時ファイルとして保管することができ、そして、また、より永続的に(例えば、HDFS、または他の適切なストレージ技術、もしくは、MongoDBといった、技術の組み合わせを使用して)保管することもできる。動的解析エンジン(または、別の適切なコンポーネント)は、サンプルによって行われた接続をドメイン、IPアドレス、等のリスト(314)と比較し、そして、サンプルが悪意のあるエンティティと通信したか(または、通信を試みたか)否かを決定することができる。
The environment used by the
静的解析エンジンと同様に、動的解析エンジンは、その解析の結果を、テストされるアプリケーションに関連するレコードにおけるデータベース316に保管する(かつ/あるいは、該当する場合、結果をレポート312に含める)。いくつかの実施形態において、動的解析エンジンは、また、アプリケーションに関する裁決(例えば、「安全な」、「疑わしい」、または「悪意のある」)も形成する。一つの例として、たとえ1つの「悪意のある」行為がアプリケーションによって取られたとしても(例えば、既知の悪意のあるドメインにコンタクトする試み、または、機密情報を除去しようとする試みが観察される)、裁決は「悪意のある」であり得る。別の例として、実施されたアクションに対してポイントを割り当てることができ(例えば、発見された場合の重大性に基づいて、悪意を予測するための行為の信頼性に基づいて、等)、そして、動的解析エンジン310(または、該当する場合は、コーディネータ304)によって、動的解析結果に関連するポイントの数に基づいて、裁決を指定することができる。いくつかの実施態様において、サンプルに関連する最終的な裁決は、レポート308とレポート312の組み合わせに基づいて、(例えば、コーディネータ304によって)行われる。
Like static analysis engines, dynamic analysis engines store the results of their analysis in
V. インラインマルウェア検出 V. Inline Malware Detection
図1の環境に戻ると、何百万もの新しいマルウェアサンプルが毎月生成され得る(例えば、システム120のオペレータといった不正な個人によるものであり、既存のマルウェアに微妙な変更を加えるか、または、新しいマルウェアを作成するかいずれかによる)。従って、セキュリティプラットフォーム122が(少なくとも初期に)署名を有していない多くのマルウェアサンプルが存在している。さらに、セキュリティプラットフォーム122が新たに作成されたマルウェアの署名を生成した場合でも、リソースの制約により、データ機器102といった、データ機器は、任意の時点で、全ての既知の署名のリスト(例えば、プラットフォーム122上に保管されたもの)を有すること/使用することができない。
Returning to the environment of Figure 1, millions of new malware samples can be generated each month (e.g., by rogue individuals, such as operators of
ときどき、マルウェア130といった、マルウェアは成功裡にネットワーク140に侵入する。この理由の1つは、データ機器102が「初回許可(“first-time allow”)」原則に基づいて動作する場合である。データ機器102が、サンプル(例えば、サンプル130)についての署名を有しておらず、そして、解析のためにそれをセキュリティプラットフォーム122に提出する場合、裁決(例えば、「良性」、「悪意のある」、「不明」、等)を返すのに、セキュリティプラットフォーム122が概ね5分を要するものと仮定する。その5分間の最中にシステム120とクライアント装置104との間の通信をブロックする代わりに、初回許可の原則の下で、通信が許可されている。裁決が返された場合(例えば、5分後)、データ機器102は、裁決を使用して、ネットワーク140へのマルウェア130のその後の送信を阻ブロックすることができ、システム120とネットワーク140との間の通信を阻止することができる、等。様々な実施形態において、データ機器102がセキュリティプラットフォーム122からの裁決を待っている間に、サンプル130の第2コピーがデータ機器102に到着した場合、サンプル130の第2コピー(および、それに続く任意のコピー)は、セキュリティプラットフォーム122からの応答を待つ間、システム120によって保持される。
Occasionally, malware, such as
残念ながら、データ機器102がセキュリティプラットフォーム122からの裁決を待つ5分間に、クライアント装置104のユーザはマルウェア130を実行し、クライアント装置104またはネットワーク140内の他のノードを危険にさらす可能性があった。上述のように、様々な実施形態において、データ機器102はマルウェア解析モジュール112を含んでいる。マルウェア解析モジュール112が実行できるタスクの1つは、インラインマルウェア検出である。特に、以下でさらに詳細に説明するように、ファイル(サンプル130といったもの)がデータ機器102を通過する際に、データ機器102上のファイルの効率的な解析を実行するために機械学習技術を適用することができ(例えば、データ機器102によってファイルにおいて実行される他の処理と並行して)、そして、初期の悪意裁定は、(例えば、セキュリティプラットフォーム122からの最低を待つ間に)データ機器102によって決定することができる。
Unfortunately, during the five minutes that
データ機器102といったリソース制約付きの(resource constrained)機器においてでそうした解析を実施する際には、様々な困難が生じ得る。機器102における1つの主要なリソースは、セッションメモリである。セッションは、情報のネットワーク転送であり、ここにおいて説明される技術に従って機器102が解析するファイルを含んでいる。単一の機器は、何百万もの同時セッションを有することがあり、そして、所与のセッションの最中に持続することができるメモリは極めて限られている。データ機器102といった、データ機器においてインライン解析を実行することにおける第1の困難は、そうしたメモリ上の制約のせいで、データ機器102が、典型的には、ファイル全体を一度に処理することはできず、代わりに、パケット毎に処理する必要がある一連のパケットを受信することである。従って、データ機器102によって使用される機械学習アプローチは、様々な実施形態においてパケットストリームを収容(accommodate)する必要がある。第2の問題は、場合によっては、データ機器102が、処理される所与のファイルエンドがどこで生じるか(例えば、ストリームにおけるサンプル130の終端)を決定できないことである。データ機器102によって使用される機械学習アプローチは、従って、種々の実施形態において潜在的に途中(midstream)(例えば、サンプル130の受領/処理の途中、または、そうでなければ実際のファイル終了の前)の所与のファイルに関して裁決を下すことができる必要がある。
Various difficulties can arise in performing such analysis on a resource constrained device, such as
A. 機械学習モデル A. Machine learning model
以下でさらに詳細に説明するように、様々な実施形態において、セキュリティプラットフォーム122は、インラインマルウェア検出と共に使用するデータ機器102のために、データ機器102に対して一式の機械学習モデルを提供する。モデルは、悪意のあるファイルに対応している、セキュリティプラットフォーム122によって決定される特徴(例えばnグラム(n-grams)または他の特徴)を組み込んでいる。そうしたモデルの2つのタイプの例は、線形分類モデルおよび非線形分類モデルを含む。データ機器102によって使用され得る線形分類モデルの例は、ロジスティック回帰および線形サポートベクトルマシンを含む。データ機器102によって使用され得る非線形分類モデルの一つの例は、勾配ブースティングツリー(例えば、eXtreme Gradient Boosting(XGBoost))を含む。非線形モデルは、より正確である(そして、難読化された/偽装されたマルウェアをより良好に検出することができる)が、線形モデルは、機器102においてかなり少ないリソースを使用する(そして、JavaScriptまたは類似のファイルを効率的に解析するのにより適している)。
As described in further detail below, in various embodiments,
以下でさらに詳細に説明するように、解析される所与のファイルに使用される分類モデルのタイプは、そのファイルに関連付けられたファイルタイプに基づくことができる(そして、例えば、マジックナンバーによって、決定することができる)。 As described in further detail below, the type of classification model used for a given file being parsed can be based on the file type associated with that file (and determined, for example, by a magic number). can do).
1. 脅威エンジンについて追加的な詳細 1. Additional details about the threat engine
様々な実施形態において、データ機器102は脅威エンジン244を含む。脅威エンジンは、それぞれのデコーダステージおよびパターンマッチステージの最中に、プロトコルデコーディングおよび脅威署名マッチングの両方を組み込んでいる。2つのステージの結果は、検出器ステージによって併合される。
In various embodiments,
データ機器102がパケットを受信すると、データ機器102はセッションマッチを実行して、そのパケットがどのセッションに属するかを決定する(データ機器102が同時セッションをサポートすることを可能にしている)。各セッションは、特定のプロトコルデコーダ(例えば、Webブラウジングデコーダ、FTPデコーダ、またはSMTPデコーダ)を意味するセッション状態を有している。ファイルがセッションの一部として送信されるとき、適用可能なプロトコルデコーダは、適切なファイル特有のデコーダ(例えば、PEファイルデコーダ、JavaScriptデコーダ、またはPDFデコーダ)を使用することができる。
When
脅威エンジン244の一つの例示的な実施形態の部分が図4に示されている。所与のセッションに対して、デコーダ402は、対応するプロトコルおよびマーキングのコンテキスト(marking context)に従って、トラフィックバイトストリームを進む(walk)。コンテキストの一つの例は、エンドオブファイル(end-of-file)コンテキストである(例えば、JavaScriptファイルの処理中に</script>に出会うこと)。デコーダ402は、パケット内のエンドオブファイルコンテキストをマーク付けすることができ、次いで、ファイルの観察された特徴を使用して、適切なモデルの実行をトリガするために使用することができる。ある場合(例えば、FTPトラフィック)では、コンテキストを識別/マーク付けする、デコーダ402のための明示的なプロトコルレベルのタグが存在しないことがある。以下でさらに詳細に説明するように、様々な実施形態において、デコーダ402は、他の情報(例えば、ヘッダで報告されたファイルサイズ)を使用して、ファイルの特徴抽出がいつ終了すべきか(例えば、オーバーレイセクションを開始する)、そして、適切なモデルを使用する実行が開始すべきかを判断する。
Portions of one exemplary embodiment of
デコーダ402は、2つの部分から構成される。デコーダ402の第1部分は、状態マシン言語を使用して状態マシンとして実装することができる仮想マシン部分(404)である。デコーダ402の第2部分は、トラフィックが一致したときに状態マシン遷移およびアクションをトリガするためのトークン406のセットである。脅威エンジン244は、また、(例えば、脅威パターンに対して)パターンマッチングを実行する脅威パターン照合器408(例えば、正規表現を使用している)を含む。一つの例として、脅威パターン照合器(matcher)408は、(例えば、セキュリティプラットフォーム122によって)照合する文字列(的確な(exact)文字列またはワイルドカード文字列のいずれか)のテーブル、および、照合する文字列が見つかった場合に行う対応するアクションを備えることができる。検出器410は、デコーダ402および脅威パターン照合器408によって提供される出力を処理して、様々なアクションを行う。
2. Nグラム(n-grams) 2. n-grams
セッション内のデータは、一連のnグラム(n-grams)へと分割することができる-一連のバイト文字列。一つの例として、セッションにおける16進数データの一部が「1023ae42f6f28762aab」であると仮定する。とすると、シーケンスにおける2グラム(2-gram)は、「1023」、「23ae」、「ae42」、「42f6」、等といった、隣接する文字の全てのペアである。様々な実施形態において、脅威エンジン244は、8グラム(8-gram)を使用してファイルを解析するように構成されている。他のnグラムも、また、使用することができる、7グラムまたは4グラムといったもの。上記の文字列の例において、「1023ae42f6f28762」は8グラムであり、「23ae42f6f28762aa」は8グラムである、等。バイトシーケンスで可能な異なる8グラムの総数は、2の64乗(18,446,744,073,709,551,616)である。バイトシーケンス内の可能な8グラムの全てを検索することは、データ機器102のリソースを容易に超えるだろう。代わりに、以下でより詳細に説明されるように、セキュリティプラットフォーム122によって、脅威エンジン244による使用のためのデータ機器102に対して、大幅に低減された8グラムのセットが提供される。
Data within a session can be divided into a series of n-grams - a series of byte strings. As an example, assume that a portion of the hexadecimal data in the session is "1023ae42f6f28762aab". Then the 2-grams in the sequence are all pairs of adjacent characters, such as "1023", "23ae", "ae42", "42f6", and so on. In various embodiments,
ファイルに対応するセッションパケットが脅威エンジン244によって受信されると、脅威パターン照合器408は、テーブル内の文字列に対する一致についてパケットを解析する(例えば、正規表現及び/又は的確な文字列一致を実行することによる)。一致(例えば、対応するパターンIDによって識別される一致の各インスタンス)、および、各一致がどのオフセットで発生したかのリストが生成される。これらの一致に対するアクションは、オフセットの順序(例えば、下から上へ)で行われる。所与の一致に対して(すなわち、特定のパターンIDに対応して)、行われるべき1つ以上のアクションのセットが(例えば、アクションをパターンIDにマッピングするアクションテーブルを介して)指定される。
When a session packet corresponding to a file is received by
セキュリティプラットフォーム122によって提供される8グラムのセットは、脅威パターン照合器408がすでに実行している一致(例えば、JavaScriptファイルがパスワードストレージにアクセスする場所、または、PEファイルがLocal Security Authority Subsystem Service(LSASS)APIを呼び出す場所といった、マルウェアの特定の指標を探す発見的一致(heuristic matches))のテーブルへの追加として、(例えば、的確な文字列一致として)追加され得る。このアプローチの1つの利点は、パケットを通過する複数のパスを実行する代わりに(例えば、最初に発見的一致を評価し、そして、次いで、8グラム一致を評価する)、脅威パターン照合器408によって実行される他の検索と並行して8グラムを検索できることである。
The 8-gram set provided by the
以下でより詳細に説明されるように、8グラム一致は、種々の実施形態において、線形および非線形の両方の分類モデルによって使用されるnグラム一致に対して指定可能なアクションの例は、(例えば、線形分類器について)重み付きカウンタを増加させること(incrementing)、および、(例えば、非線形分類器について)特徴ベクトル内の一致の保存を含む。どのアクションが行われるかは、(どのタイプのモデルを使用するかを決定する)パケットに関連付けられたファイルタイプに基づいて指定され得る。 As described in more detail below, 8-gram matching is used by both linear and non-linear classification models in various embodiments. Examples of actions that can be specified for n-gram matching are (e.g. , for linear classifiers) and storing matches in feature vectors (eg, for non-linear classifiers). Which action to take may be specified based on the file type associated with the packet (which determines which type of model to use).
3. モデルの選択 3. Model selection
場合によっては、ファイルのヘッダの中で特定のファイルタイプが指定される(例えば、ファイル自体の最初の7バイト内に現れるマジックナンバーとして)。そうしたシナリオにおいて、脅威エンジン244は、(例えば、ファイルタイプおよび対応するモデルを列挙するセキュリティプラットフォーム122によって提供されるテーブルに基づいて)指定されたファイルタイプに対応する適切なモデルを選択することができる。JavaScriptといった、他の場合において、マジックナンバーまたは他のファイルタイプ識別子(ヘッダに存在する場合)は、どの分類モデルを使用すべきかを証明するものではない。一つの例として、JavaScriptは「textfile」のファイルタイプを有するだろう。JavaScriptといったファイルタイプを識別するために、デコーダ402が使用され、確定的有限状態オートマトン(deterministic finite state automaton、DFA)パターンマッチングを実行し、そして、発見的手法(例えば、ファイルがJavaScriptであることを識別する<script>および他のインジケータ)を適用することができる。決定されたファイルタイプ及び/又は選択された分類モデルは、セッション状態に保存される。セッションに関連付けられたファイルタイプは、セッションの進行につれて、更新することができる。例えば、テキストストリームにおいて、<script>タグに出会うとき、JavaScriptファイルタイプをセッションに割り当てることができる。対応する</script>出会うときは、ファイルタイプを変更することができる(例えば、平文に戻る)。
In some cases, a particular file type is specified in the file's header (eg, as a magic number that appears within the first 7 bytes of the file itself). In such scenarios,
4. 線形分類モデル 4. Linear classification model
線形モデルを表現する1つの方法は、以下の線形方程式を使用することである。 One way to express the linear model is to use the following linear equations.
Σ(βixi)<C,i=1,2,3…,P
ここで、Pは特徴の総数であり、xiはi番目の特徴であり、βiは特徴xiの係数(重み付け)であり、そして、Cは閾値定数である。この例において、Cは悪意の裁決に対する閾値であり、所与のファイルについて合計がCより小さい場合に、そのファイルには良性の裁定が割り当てられ、かつ、合計がC以上の場合には、そのファイルに悪意の裁定が割り当てられることを意味している。
Σ(β i x i )<C, i=1,2,3...,P
where P is the total number of features, x i is the ith feature, β i is the coefficient (weighting) of feature x i and C is the threshold constant. In this example, C is the threshold for bad faith verdicts, and if the sum is less than C for a given file, then the file is assigned a benign verdict, and if the sum is greater than or equal to C, then the Means that the file is assigned a verdict of bad faith.
データ機器102による線形分類モデルを使用するための1つのアプローチは、以下の通りである。入力ファイルのスコアを追跡するために単一のフロート(d)を使用され、そして、観察されたnグラムおよび対応する係数(すなわち、xiおよびβi)を保管するためにハッシュテーブルが使用される。それぞれ入ってくるパケットに対して、n-gram特徴(例えば、セキュリティプラットフォーム122によって提供されるようなもの)それぞれがチェックされる。ハッシュテーブルの特徴(xi)について一致が見つかると、いつでも、ハッシュテーブル内でその特徴に一致する単一のフロート(βi)が追加される(例えば、dに対して)。ファイルエンドに到達すると、単一フロート(d)が閾値(C)に対して比較され、ファイルについて裁決を決定する。
One approach for using a linear classification model by
nグラムカウントについて、特徴xiは、i番目のnグラムが観察される回数に等しい。特定のファイルについてi番目のn-gramが4回観測されたと仮定する。4*βiは、βi+βi+βi+βiに書き換えることができる。i番目のnグラムが何回を観察されるかをカウントし(すなわち4回)、そして、βiを乗算することの代わりに、別のアプローチは、i番目のnグラム観察されるたびにβiを加算することである。さらに、ファイルについてj番目のnグラムが3回観測されたと仮定する。3*βiは、同様に、βi+βi+βiとして書くことができ、βiが何回観察されたかをカウントする代わりに、毎回βiを加算し、そして、次いで、最後に加算する。 For n-gram counts, feature x i is equal to the number of times the i-th n-gram is observed. Suppose the i-th n-gram was observed 4 times for a particular file. 4*β i can be rewritten as β i +β i +β i +β i . Instead of counting how many times the ith n-gram is observed (i.e. 4 times) and multiplying by β i , another approach is to use β adding i . Further assume that the jth n-gram was observed 3 times for the file. 3*β i can similarly be written as β i +β i +β i , and instead of counting how many times β i is observed, add β i each time and then add at the end .
Σ(βixi)を見つけるために、βixi、βjxj、...それぞれが加算される(ここで、...は他の特徴/重み付けの全てに対応する)。これは、βi+βi+βi+βj+βj+βj+βjとして書き換えることができる。加算は累積的であるため、値の加算は任意の順序(例えば、βi+βj+βi+βj+βi+βi+βj、等)で加えられ、そして、単一のフロートへと累積される。ここで、フロート(d)が0.0で始まるものと仮定する。特徴xiが観察される度に、βiがフロートdに対して追加され、そして、xjが観察される度に、βjがフロートdに対して追加され得る。このアプローチは、4バイトのフロートをセッション毎のメモリ全体として使用することを可能にし、そして、セッション毎のメモリが特徴の数に比例するアプローチとは対照的である。ここでは、特徴ベクトル全体が重み付けベクトルによって乗算されるように、メモリに保管される。4バイト*1,000の4Kバイトの特徴の例を使用すると、ストレージについて4Kが必要とされるだろう(単一の4バイトフロートと比較して)。これは、1,000倍高価である。 To find Σ(β i x i ), each of β i x i , β j x j , ... is added (where ... corresponds to all other features/weightings). This can be rewritten as β i +β i +β i +β j +β j +β j +β j . Additions are cumulative, so the addition of values can be added in any order (e.g., βi + βj + βi + βj + βi + βi + βj , etc. ) and accumulated into a single float. . Now assume that float (d) starts at 0.0. Each time feature x i is observed, β i can be added to float d, and each time x j is observed, β j can be added to float d. This approach allows a 4-byte float to be used as the total per-session memory, as opposed to approaches where the per-session memory is proportional to the number of features. Here, the entire feature vector is stored in memory to be multiplied by the weighting vector. Using the 4K byte feature example of 4 bytes * 1,000, 4K of storage would be required (compared to a single 4 byte float). This is 1,000 times more expensive.
5. 非線形分類モデル 5. Nonlinear Classification Model
種々の非線形分類アプローチを、ここにおいて説明される技術と共に使用することができる。非線形分類モデルの一つの例は、勾配ブースティングツリーである。この例において、特徴ベクトルは、オールゼロ(all-zero)ベクトルに初期化される。不運にも、(線形モデルとは異なり)非線形モデルでは、存在が検出されている特徴のセット全体(例えば、1000個の特徴)がセッションの全持続期間について持続される。このことは、線形アプローチにおけるほど効率的ではないが、完全な4バイトのフロートではなく、1バイト(0-255)のフロートになるように特徴をダウンサンプリングすることによって、ある程度の効率が未だに得られる(メモリが制約されていないデバイスで使用され得る)。 Various non-linear classification approaches can be used with the techniques described herein. One example of a non-linear classification model is a gradient boosted tree. In this example, the feature vector is initialized to an all-zero vector. Unfortunately, in nonlinear models (unlike linear models) the entire set of features whose presence is being detected (eg, 1000 features) persists for the entire duration of the session. This is not as efficient as in a linear approach, but some efficiency can still be gained by downsampling the features to be a 1-byte (0-255) float instead of a full 4-byte float. (can be used on devices that are not memory constrained).
データ機器102がファイルの全体をスキャンする際、特徴が観察される度に、その特徴の値が特徴ベクトル内で1だけ増加される。一旦ファイルエンドに到達すると(または、そうでなければ特徴観察の終了が発生する)、構築された特徴ベクトルは、勾配ブースティングツリーモデルへと供給される(例えば、セキュリティプラットフォーム122から受信される)。以下でより詳細に説明されるように、非線形分類モデルはnグラム(例えば、8グラム)および非nグラム特徴の両方を使用して構築され得る。非nグラム特徴の一つの例は、ファイルの意図された(purported)サイズである(ファイルのヘッダを含むパケットから値として読み取ることができる)。(例えば、ヘッダで指定されたファイルサイズに基づいて)意図されたエンドオブファイルの後に現れるファイルデータは、オーバーレイと呼ばれる。特徴として機能することに加えて、意図されたファイル長は、そのファイルがどれだけ長いと予想されるかについてプロキシとして使用され得る。非線形分類子(classifier)は、意図されたファイル長に到達するまで、ファイルのパケットストリームに対して実行され得る。そして、次いで、ファイルエンドに実際に到達したか否かにかかわりなく、ファイルに対して裁決を形成することができる。所与のファイルがオーバーレイを含むことは、また、非線形分類モデルの一部として使用され得る特徴の例でもある。種々の実施形態において、ファイルのオーバーレイ部分は解析されず、再度、-実際のファイルエンドの以前に解析を行うことができる。他の実施形態においては、特徴抽出が行われ、そして、実際のファイルエンドに到達するまで、悪意について裁決+が形成されない。
As the
一つの例示的な実施形態において、ツリーモデルは、5000個のバイナリツリーを含む。各ツリー上の全てのノードは、特徴および対応する閾値を含んでいる。ツリーの一部の例を図5に示されている。図5に示される例において、特徴(例えば、特徴F4)の値がその閾値(例えば、30)より小さい場合、左分岐がとられる(502)。特徴の値が閾値以上である場合、右分岐がとられる(504)。ツリーは、関連する値(例えば、0.7)を有する、リーフノード(例えば、ノード506)に到達するまで進む。到達した各リーフの値は(ツリーそれぞれについて)合計され(乗算されるのではなく)、裁決を計算するための最終スコアを得る。スコアが閾値を下回る場合、ファイルは良性とみなされ、そして、閾値以上である場合、ファイルは悪意があるとみなされる。最終スコアを得る際の乗算の欠如は、データ機器102のリソース制約環境においてモデルをより効率的に使用する助けとなる。
In one exemplary embodiment, the tree model contains 5000 binary trees. Every node on each tree contains features and corresponding thresholds. An example of part of the tree is shown in Figure 5. In the example shown in FIG. 5, if the value of a feature (eg, feature F4) is less than its threshold (eg, 30), the left branch is taken (502). If the value of the feature is greater than or equal to the threshold, the right branch is taken (504). The tree progresses until it reaches a leaf node (eg, node 506) that has an associated value (eg, 0.7). The values of each leaf reached (for each tree) are summed (rather than multiplied) to get the final score for computing the adjudication. If the score is below the threshold, the file is considered benign, and above the threshold the file is considered malicious. The lack of multiplication in obtaining the final score helps the model to be used more efficiently in resource constrained environments of
様々な実施形態において、ツリー自身は、(更新されたモデルが受信されるまで)データ機器102において固定され、そして、同時に複数のセッションによってアクセスされ得る共有メモリ内に保管され得る。セッション当たりのコストは、セッションの特徴ベクトルを保管するコストであり、一旦セッションの解析が完了するとゼロにすることができる。 In various embodiments, the tree itself may be stored in a shared memory that is fixed in the data appliance 102 (until an updated model is received) and can be accessed by multiple sessions at the same time. The cost per session is the cost of storing the session's feature vector and can be zero once the session's analysis is complete.
6. プロセスの実施例 6. Example Process
図6は、データ機器においてインラインマルウェア検出を実行するためのプロセスについて一つの例を示している。様々な実施形態において、プロセス600は、データ機器102によって、そして、特には、脅威エンジン244によって実行される。脅威エンジン244は、適切なスクリプト言語(例えば、Python)で作成されたスクリプト(または、スクリプトのセット)を使用して実装することができる。プロセス600は、また、クライアント装置110といった、エンドポイントにおいても(例えば、クライアント装置110において実行するエンドポイント保護アプリケーションによって)実行され得る。
FIG. 6 shows one example of a process for performing inline malware detection on a data appliance. In various embodiments,
プロセス600は、ファイルがセッションの一部として送信されている旨の指示(indication)が機器102によって受信されると、602で開始する。602で実行される処理の一つの例として、所与のセッションについて、関連するプロトコルデコーダは、プロトコルデコーダによってファイルの開始が検出されるとき、適切なファイル特有のデコーダを呼び出すか、または、そうでなければ使用することができる。上述のように、ファイルタイプは(例えば、デコーダ402によって)決定され、そして、セッションに関連付けられる(例えば、ファイルタイプが変化するか、または、ファイルパケットが送信されなくなるまで、後続のファイルタイプ解析を行う必要がないようにする)。
604において、nグラム解析が、受信パケットのシーケンスに対して実行される。上述のように、nグラム解析は、機器102によってセッションにおいて実行されている他の解析とインラインで行うことができる。例えば、機器102が特定のパケットについて(例えば、特定の発見的方法の存在をチェックするために)解析を実行している間に、それは、また、パケット内の8グラムがセキュリティプラットフォーム122によって提供される8グラムと一致するか否かを決定することもできる。604で実行される処理の最中に、nグラム一致が見つかったときは、条件をファイルタイプ(filetype)に基づいてアクションにマッピングするために対応するパターンIDが使用される。このアクションは、重み付けされたカウンタをインクリメントするか(例えば、ファイルタイプが線形分類子に関連付けられている場合)、または、一致を説明するために特徴ベクトルを更新するか(例えば、ファイルタイプが非線形分類子に関連付けられている場合)のいずれかである。
At 604, n-gram analysis is performed on the sequence of received packets. As noted above, n-gram parsing can be done in-line with other parsing being performed by
nグラム解析は、エンドオブファイル条件またはチェックポイントのいずれかが到達されるまで、パケットごとに、継続する。その時点(606)で、適切なモデルが、ファイルの裁決を決定するために使用される(すなわち、モデルを使用して得られた最終値を悪意の閾値と比較する)。上述のように、モデルは、nグラム特徴を組み込み、そして、また、他の特徴を(例えば、非線形分類器の場合に)組み込むこともできる。 N-gram parsing continues, packet by packet, until either an end-of-file condition or a checkpoint is reached. At that point (606), the appropriate model is used to determine the file's verdict (ie, the final value obtained using the model is compared to the bad faith threshold). As noted above, the model incorporates n-gram features and may also incorporate other features (eg, in the case of non-linear classifiers).
最終的に、608では、606でなされた決定に応答してアクションがとられる。応答アクションの一つの例は、セッションの終了である。応答アクションの別の例は、セッションを継続させるが、ファイルが送信されないようにする(代わりに、隔離エリアに置く)ことである。様々な実施形態において、機器102は、その裁決(良性の裁決、悪性の裁決、または、その両方のいずれか)をセキュリティプラットフォーム122と共有するように構成されている。セキュリティプラットフォーム122は、ファイルの独立した解析を完了すると、裁決を形成したモデルの性能の評価を含む、様々な目的のために、機器102によって報告された裁決を使用することができる。
Finally, at 608, action is taken in response to the decision made at 606. One example of a response action is terminating a session. Another example of a response action is to allow the session to continue, but prevent the file from being sent (instead put it in quarantine). In various embodiments,
サンプルについて脅威署名(threat signature)の例を図7Bに示す。特に、「4d73f42438fb5a8579219cdfa9cbbb4ce3f771ffed93af81b052831e4813f8」のSHA-256ハッシュを有するサンプルについて、各ペアにおける第1値は特徴に対応し、そして、第2値はカウントに対応している。図7Bに示される例において、数字を含む特徴(例えば、特徴「3905」)は、nグラム特徴に対応し、そして、「J」と数字を含む特徴(例えば、特徴「J18」)は、非nグラム特徴に対応している。 An example threat signature for the sample is shown in FIG. 7B. Specifically, for a sample with a SHA-256 hash of "4d73f42438fb5a8579219cdfa9cbbb4ce3f771ffed93af81b052831e4813f8", the first value in each pair corresponds to the feature and the second value corresponds to the count. In the example shown in FIG. 7B, features containing numbers (e.g., feature "3905") correspond to n-gram features, and features containing "J" and numbers (e.g., feature "J18") correspond to non-n-gram features. It corresponds to n-gram features.
一つの例示的な実施形態において、セキュリティプラットフォーム122は、データ機器102といった機器による使用のためのモデルを生成するときに、特定の偽陽性率(false positive ratio)(例えば、0.001)を目標とするように構成されている。従って、ある場合には(例えば、1000個のファイルのうち1個)、ここにおいて説明される技術に従ったモデルを使用してインライン解析を実行している際に、データ機器102は、良性のファイルが悪意あるものと誤って判断し得る。そうしたシナリオでは、セキュリティプラットフォーム122が、ファイルが実際には良性であると後に続いて決定した場合に、後で(例えば、別の機器によって)悪意あるものとしてフラグ付けされないように、それをホワイトリストに追加することができる。
In one exemplary embodiment,
ホワイトリスト(whitelisting)に対する1つのアプローチは、そのファイルを機器102に保管されたホワイトリストに追加するように、セキュリティプラットフォーム122に対して指示することである。別のアプローチは、セキュリティプラットフォーム122について、偽陽性のホワイトリストシステム154を指示し、そして、ホワイトリストシステム154について、順に、機器102といった機器を偽陽性情報で最新の状態に保つことである。上述のように、機器102といった機器の1つの問題は、リソース制約されていることである。機器でホワイトリストを維持することに使用されるリソースを最小化する1つのアプローチは、最近最も使われなかった(Least Recently Used、LRU)キャッシュを使用してホワイトリストを維持することである。ホワイトリストは、ファイルハッシュを含むことができ、そして、また、特徴ベクトルまたは特徴ベクトルのハッシュといった、他の要素に基づくこともできる。
One approach to whitelisting is to instruct
VI. モデルの構築 VI. Model building
図1に示された環境に戻ると、先に説明したように、セキュリティプラットフォーム122は、受信したサンプルについて静的および動的解析を実行するように構成さていれる。セキュリティプラットフォーム122は、種々のソースから解析のためのサンプルを受信することができる。上述のように、サンプルソースの一つの例示的なタイプは、データ機器(例えば、データ機器102、136、および148)である。他のソース(例えば、他のセキュリティ機器ベンダー、セキュリティ研究者、等といった、サンプルの1つ以上の第三者プロバイダ)も、また、必要に応じて使用することができる。以下でより詳細に説明されるように、セキュリティプラットフォーム122は、モデルを構築するために、受信するサンプルのコーパス(corpus)を使用することができる(例えば、モデルは、ここにおいて説明される技術の実施形態に従って、次いで、セキュリティ機器102によって使用され得る)。
Returning to the environment shown in FIG. 1,
様々な実施形態において、静的解析エンジン306は、受信したサンプルに対して特徴抽出を実行するように構成されている(例えば、上述のように他の静的解析機能を実行している間にも)。特徴抽出(例えば、セキュリティプラットフォーム122による)を実行するための一つの例示的なプロセスが、図8Aに示されている。プロセス800は、サンプルの静的解析が開始されると、802で開始する。特徴抽出(804)の最中に、処理されるサンプル(例えば、図3のサンプル130)から、全ての8グラム(または、8グラムが使用されていない実施形態における他の適用可能なnグラム)が抽出される。特に、解析されているサンプル内の8グラムのヒストグラムが(例えば、ハッシュテーブルに)抽出され、これは、処理されているサンプル内で所与の8グラムが観察された回数を示す。静的解析エンジン306による特徴解析の最中に8グラムを抽出することの1つの利点は、(例えば、モデルを構築する際に)第三者から得られたサンプルの使用における潜在的なプライバシーおよび契約上の問題を軽減できることである。結果として得られるヒストグラムからオリジナルのファイルを再構成することができないからである。抽出されたヒストグラムは806で保管される。
In various embodiments,
様々な実施形態において、静的解析エンジン306は、所与のサンプルについて抽出されたヒストグラム(例えば、ハッシュテーブルを使用して表される)を、他のサンプルから抽出されたヒストグラムと共にストレージ142(例えば、ハドゥープ(Hadoop)クラスタ)に保管する。ハドゥープ内のデータは圧縮され、そして、ハドゥープデータについて操作が実行されると、必要なデータはオンザフライ(on the fly)圧縮解除される。ファイルについて一つの例示的なハッシュテーブル(JSONで表される)の例が図7Aに示されている。行(line)702はファイルのSHA-256ハッシュを示している。行704は、サンプル130がセキュリティプラットフォーム122に到着するUNIX(登録商標)時間を示している。行706は、オーバーレイ部分におけるnグラムのカウントを示している(例えば、'd00fbf4e08bc366':1は、'd00fbf4e08bc366'の1つのインスタンスがオーバーレイセクション内で見つかったことを示す)。行708は、ファイル内に存在する8グラムそれぞれのカウントを示している。行710は、ファイルがオーバーレイを有することを示している。行712は、ファイルのファイルタイプが「.exe」であることを示している。行714は、セキュリティプラットフォーム122がサンプル130の処理を終了したUNIX時間を示している。行716は、ファイルがヒットした非8グラム特徴それぞれのカウントを示している。最後に、行718は、ファイルが(例えば、セキュリティプラットフォーム122によって)悪意があるものと決定されたことを示している。
In various embodiments,
一つの例示的な実施形態において、ハドゥープクラスタに保管された8グラムのヒストグラムのセットは、1日あたり、概ね3テラバイトの8グラムのヒストグラムデータによって成長する。ヒストグラムは、悪意のあるサンプルおよび良性サンプルの両方に対応している(例えば、上述のようにセキュリティプラットフォーム122によって実行される他の静的および動的解析の結果に基づいて、そのようにラベル付けされる。)
In one exemplary embodiment, the set of 8-gram histograms stored in the hadoop cluster grows by approximately 3 terabytes of 8-gram histogram data per day. Histograms accommodate both malicious and benign samples (e.g., labeled as such based on the results of other static and dynamic analyzes performed by
解析されるサンプルから抽出される8グラムのヒストグラムは、ファイル自身よりも概ね10%大きく、そして、典型的なサンプルは、概ね100万個の異なる8グラムを含むヒストグラムを有する。異なる可能な8グラムの総数は、2の64乗(264)である。上述のように、対照的に、セキュリティプラットフォーム122によって(例えば、サブスクリプションの一部として)データ機器102といったデバイスに送信される分類モデルは、様々な実施形態において、数千個の特徴(例えば、1000個の特徴)だけを含む。潜在的に最大264個の機能のセットを、モデルで使用するために最も重要な1000個の特徴まで削減する一つの例示的な方法は、相互情報技術を使用することである。他のアプローチ(例えば、カイ二乗スコア)も、また、適用可能である。4つの必要とされるパラメータは、所与の機能を有する悪意のあるサンプルの数、所与の機能を有する良性サンプルの数、悪意のあるサンプルの総数、および良性サンプルの総数を含む。相互情報の利点の1つは、非常に大きなデータセットにおいて効率的に使用できることである。ハドゥープにおいて、相互情報アプローチは、複数のマッパー(mapper)にわたりタスクを分散することによって、単一のパスで(すなわち、所与のファイルタイプについてハドゥープクラスタデータセット内に保管された8グラムのヒストグラム全てを通じて)実行することができ、それぞれが特定の機能を処理する責任を負う。最も高い相互情報を有するこれらの特徴は、悪意を最も示す、かつ/あるいは、良性を最も示す特徴のセットとして、該当する場合、選択することができる。結果として生じた1000個の特徴は、次いで、該当する場合、モデル(例えば、線形分類モデルおよび非線形分類モデル)を構築するために使用することができる。例えば、線形分類モデルを構築するために、モデルビルダ(builder)152(pythonといった適切な言語で作成されたオープンソースツール及び/又はスクリプトのセットを使用して実装されるもの)は、上位1000個の特徴、および、適用可能な重み付けを、機器102がチェックするためのnグラム特徴のセットとして保存する(例えば、上記のセクションV.A.4に記載されているように)。
An 8-gram histogram extracted from the analyzed sample is approximately 10% larger than the file itself, and a typical sample has a histogram containing approximately 1 million different 8-grams. The total number of different possible 8-grams is 2 to the 64th power (2 64 ). As noted above, by contrast, a classification model transmitted by
いくつかの実施形態において、非線形分類モデルは、また、特徴の上位1000個(または、他の所望の数)を使用して、モデルビルダ152によっても構築される。他の実施形態において、非線形分類モデルは、上位の(top)特徴(例えば、950)を主に使用して構築されるが、パケット毎の特徴抽出および解析の最中に検出され得る、他の非グラム特徴(例えば、50個のそうした特徴)も、また、組み込む。非線形分類モデルに組み込むことができる非nグラム特徴のいくつかの例は、(1)ヘッダのサイズ、(2)ファイル内のチェックサムの存否、(3)ファイル内のセクションの数、(4)ファイルの意図された長さ(PEファイルのヘッダに示されるように)、(5)ファイルがオーバーレイ部分を含むか否か、および(6)PEを実行するためにファイルがWindows EFIサブシステムを必要とするか否か、を含む。
In some embodiments, a non-linear classification model is also built by
いくつかの実施態様においては、上位1000個の特徴を選択するために相互情報を使用するのではなく、特徴のより大きなセット(過剰に生成された特徴のセット)が決定される。一つの例として、上位5000個の機能は、相互情報を使用して最初に選択することができる。5000個のセットは、次いで、従来の特徴選択技法(例えば、バギング(bagging))への入力として使用することができる。それは、非常に大きなデータセット(例えば、ハドゥープデータセット全体)には上手くスケールできないが、縮小されたセット(例えば、5000個の特徴)ではより効果的である。相互情報を使用して識別された5000個の特徴のセットから最終的な1000個の特徴を選択するために、従来の特徴選択技術が使用され得る。 In some embodiments, rather than using mutual information to select the top 1000 features, a larger set of features (the set of over-generated features) is determined. As an example, the top 5000 features can be selected first using mutual information. The 5000 sets can then be used as input to conventional feature selection techniques (eg, bagging). It does not scale well for very large datasets (eg the entire Hadoop dataset), but is more effective for reduced sets (eg 5000 features). Conventional feature selection techniques can be used to select the final 1000 features from the set of 5000 features identified using mutual information.
一旦最終的な1000個の特徴が選択されると、非線形モデルを構築するための一つの例示的な方法は、scikit-learnまたはXGBoostといったオープンソースツールを使用することである。該当する場合、パラメータチューニングは、交差検証(cross-validation)を使用することなどにより、実行することができる。 Once the final 1000 features are selected, one exemplary method for building the nonlinear model is to use open source tools such as scikit-learn or XGBoost. If applicable, parameter tuning can be performed, such as by using cross-validation.
モデルを生成するための一つの例示的なプロセスが図8Bに示されている。様々な実施形態において、プロセス850は、セキュリティプラットフォーム122によって実行される。プロセス850は、抽出された特徴(例えば、nグラム特徴を含む)のセットが受信されると、852で開始する。特徴のセットを受信することができる一つの例字的な方法は、プロセス800の結果として保管された特徴を読み取ることによるものである。854では、852で受信された特徴から、特徴の削減されたセットが決定される。上述のように、特徴の削減されたセットを決定する一つの例示的な方法は、相互情報を使用することによるものである。他のアプローチ(例えば、カイ二乗スコア)も、また、使用することができる。さらに、また、上述のように、相互情報を用いて特徴の初期セットを選択し、バギングまたは他の適切な技術を使用して特徴の初期セットを精緻化するといった、技術の組み合わせも、また、852/854で使用することができる。最終的に、上述のように、一旦(例えば、854で)特徴が選択されると、856で適切なモデルが構築される(例えば、オープンソースまたは他のツールを使用し、そして、該当する場合は、パラメータチューニングを実行する)。モデル(例えば、プロセス850を使用してモデルビルダ152によって生成されるもの)は、データ機器102および他の適用可能な受信者(例えば、データ機器136および148)に対して(例えば、加入サービスの一部として)送信され得る。
One exemplary process for generating models is shown in FIG. 8B. In various embodiments,
様々な実施形態において、モデルビルダ152は、毎日(または他の適用可能な)ベースでモデル(例えば、線形および非線形分類モデル)を生成する。プロセス850を実行することにより、または、そうでなければ定期的にモデルを生成することによって、セキュリティプラットフォーム122は、機器102といった機器によって使用されるモデルが、最新のタイプのマルウェア脅威(例えば、悪意のある個人によって最新に展開された脅威)を検出することを確保するように助けることができる。
In various embodiments,
新しく生成されたモデルが、(例えば、閾値を超える一連の品質評価メトリックスに基づいて決定されるように)既存のモデルよりも良好であると決定されるときはいつも、更新されたモデルは、データ機器102といったデータ機器に送信され得る。場合によって、そうした更新は、特徴に割り当てられた重み付けを調整する。そうした更新は、機器に容易に展開され、(例えば、リアルタイムアップデートとして)機器に採用される。他の事例において、そうした更新は、特徴自身を調整する。そうした更新は、デコーダといった、機器のコンポーネントに対するパッチを必要とし得るので、展開がより複雑になり得る。モデル生成の最中にオーバートレーニングを使用する1つの利点は、デコーダが特定の特徴を検出することができるか否かを、モデルが考慮できることである。
Whenever a newly generated model is determined to be better than an existing model (e.g., as determined based on a set of quality assessment metrics exceeding a threshold), the updated model is It may be transmitted to a data device such as
様々な実施形態において、機器は、受信された際に、更新をモデルに対して展開するために(例えば、セキュリティプラットフォーム122によって)必要とされる。他の実施形態において、機器は、選択的に(少なくとも一定期間)更新を展開することが可能である。一つの例として、新しいモデルが機器102によって受信された場合、既存のモデルおよび新たなモデルは、両方が、機器102においてある期間について並列に実行され得る(例えば、既存のモデルが生産において使用され、かつ、新たなモデルは、実際には実行することなく行われるであろうアクションについてレポートする)。機器の管理者は、機器におけるトラフィックを処理するために既存のモデルまたは新たなモデルのいずれが使用されるべきかを示すことができる(例えば、どのモデルがより良好なパフォーマンスを示すかに基づいて)。様々な実施形態において、機器102は、どのモデルが機器102において動作しているか、および、そのモデルがどの程度有効であるか(例えば、偽陽性の統計情報)といった、情報を示すテレメトリ(telemetry)をセキュリティプラットフォーム122に戻す。
In various embodiments, a device is required (eg, by security platform 122) to deploy updates to the model as they are received. In other embodiments, the device can selectively deploy updates (at least for a period of time). As one example, when a new model is received by the
上述の実施形態は、理解を明確にするためにある程度詳細に説明されているが、本発明は、提供される詳細について限定されるものではない。本発明を実施するための多くの代替的な方法が存在している。開示された実施形態は、例示的なものであり、かつ、限定的なものではない。 Although the above embodiments have been described in some detail for clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are exemplary and non-limiting.
Claims (40)
プロセッサであり、
1つ以上のサンプル分類モデルを含むセットをネットワーク装置に保管すし、
受信したファイルに関連付けられた受信パケットのシーケンスについてnグラム解析を実行し、前記nグラム解析の実行は、少なくとも1つの保管されたサンプル分類モデルを使用することを含み、
前記受信パケットのシーケンスの前記nグラム解析に少なくとも部分的に基づいて、前記受信したファイルが悪意のものであると決定し、かつ、前記ファイルが悪意のものであるとの決定に応じて、前記受信したファイルの伝搬を防止する、
ように構成されている、プロセッサと、
前記プロセッサに結合され、かつ、前記プロセッサに命令を提供するように構成されている、メモリと、
を含む、システム。 a system,
is a processor;
storing a set containing one or more sample classification models on a network device;
performing n-gram analysis on a sequence of received packets associated with a received file, said performing n-gram analysis comprising using at least one stored sample classification model;
determining, based at least in part on the n-gram analysis of the sequence of received packets, that the received file is malicious; and in response to determining that the file is malicious, prevent propagation of received files,
a processor configured to;
a memory coupled to the processor and configured to provide instructions to the processor;
system, including
前記受信パケットにおけるnグラムをnグラムの既定のリストに対して比較することによって、前記nグラム解析を少なくとも部分的に実行する、
ように構成されている、請求項1に記載のシステム。 The processor
performing the n-gram analysis, at least in part, by comparing n-grams in the received packet against a predefined list of n-grams;
2. The system of claim 1, configured to:
請求項2に記載のシステム。 the default list of n-grams was generated using a plurality of pre-collected malware samples;
3. The system of claim 2.
前記ファイルに関連付けられたファイルタイプを決定する、
ように構成されている、請求項1に記載のシステム。 The processor further
determining a file type associated with said file;
2. The system of claim 1, configured to:
前記1つ以上のサンプル分類モデルのセットから、前記ファイルに関連付けられた前記決定されたファイルタイプに基づいて、線形分類モデルを選択する、
ように構成されている、請求項4に記載のシステム。 The processor
selecting a linear classification model from the set of one or more sample classification models based on the determined file type associated with the file;
5. The system of claim 4, configured to:
請求項5に記載のシステム。 performing the n-gram analysis includes accumulating a set of weights corresponding to observed n-grams;
6. The system of claim 5.
請求項6に記載のシステム。 the weighting is accumulated over a single float value;
7. A system according to claim 6.
前記1つ以上のサンプル分類モデルのセットから、前記ファイルに関連付けられた前記決定されたファイルタイプに基づいて、非線形分類モデルを選択する、
ように構成されている、請求項4に記載のシステム。 The processor
selecting a nonlinear classification model from the set of one or more sample classification models based on the determined file type associated with the file;
5. The system of claim 4, configured to:
請求項8に記載のシステム。 the non-linear classification model includes n-gram features and non-n-gram features;
9. System according to claim 8.
請求項9に記載のシステム。 at least one non-n-gram feature is associated with file size;
10. System according to claim 9.
請求項9に記載のシステム。 at least one non-n-gram feature is associated with the presence of the overlay;
10. System according to claim 9.
請求項8に記載のシステム。 performing the n-gram analysis includes updating values for features in a feature vector whenever the features match;
9. System according to claim 8.
請求項1に記載のシステム。 using the at least one stored sample classification model includes running a non-linear classifier on the packet stream until an intended file length is reached;
The system of claim 1.
請求項13に記載のシステム。 the intended file length is not the actual file length, and the ruling is determined before reaching the actual end of the file;
14. The system of claim 13.
少なくとも1つの更新された分類モデルを受信する、
ように構成されている、請求項1に記載のシステム。 The processor further
receiving at least one updated classification model;
2. The system of claim 1, configured to:
請求項1に記載のシステム。 the n-gram analysis is performed inline with other packet analysis as a single pass analysis of the traffic stream;
The system of claim 1.
前記nグラム解析を実行する際に、ホワイトリストにあるnグラムのセット使用する、
ように構成されている、請求項1に記載のシステム。 The processor further
using a whitelisted set of n-grams when performing the n-gram analysis;
2. The system of claim 1, configured to:
前記受信したファイルのコピーをセキュリティプラットフォームに送信し、かつ、前記セキュリティプラットフォームからの裁決を待つ間に、前記nグラム解析を実行する、
ように構成されている、請求項1に記載のシステム。 The processor further
sending a copy of the received file to a security platform and performing the n-gram analysis while awaiting adjudication from the security platform;
2. The system of claim 1, configured to:
受信したファイルに関連付けられた受信パケットのシーケンスについてnグラム解析を実行するステップであり、前記nグラム解析の実行は、少なくとも1つの保管されたサンプル分類モデルを使用することを含む、ステップと、
前記受信パケットのシーケンスの前記nグラム解析に少なくとも部分的に基づいて、前記受信したファイルが悪意のものであると決定し、かつ、前記ファイルが悪意のものであるとの決定に応じて、前記受信したファイルの伝搬を防止する、ステップと、
を含む、方法。 storing a set containing one or more sample classifications on a network device;
performing n-gram analysis on a sequence of received packets associated with a received file, said performing n-gram analysis comprising using at least one stored sample classification model;
determining, based at least in part on the n-gram analysis of the sequence of received packets, that the received file is malicious; and in response to determining that the file is malicious, preventing propagation of the received file;
A method, including
コンピュータ命令が実行されると、コンピュータに、
1つ以上のサンプル分類を含むセットをネットワーク装置に保管するステップと、
受信したファイルに関連付けられた受信パケットのシーケンスについてnグラム解析を実行するステップであり、前記nグラム解析の実行は、少なくとも1つの保管されたサンプル分類モデルを使用することを含む、ステップと、
前記受信パケットのシーケンスの前記nグラム解析に少なくとも部分的に基づいて、前記受信したファイルが悪意のものであると決定し、かつ、前記ファイルが悪意のものであるとの決定に応じて、前記受信したファイルの伝搬を防止する、ステップと、
を実施させる、コンピュータプログラム。 A computer program stored on a tangible computer-readable storage medium and comprising a plurality of computer instructions,
When the computer instructions are executed, the computer
storing a set containing one or more sample classifications on a network device;
performing n-gram analysis on a sequence of received packets associated with a received file, said performing n-gram analysis comprising using at least one stored sample classification model;
determining, based at least in part on the n-gram analysis of the sequence of received packets, that the received file is malicious; and in response to determining that the file is malicious, preventing propagation of the received file;
A computer program that causes the
プロセッサであり、
ファイルのセットから抽出された、複数のnグラムを含む、特徴のセットを受信し、
前記複数のnグラムのうち少なくとも一部を含む特徴の縮小セットを決定し、かつ、
インラインマルウェア解析を実行するように、データ機器によって使用可能なモデルを生成するために、前記特徴の縮小セットを使用する、
プロセッサと、
前記プロセッサに結合され、かつ、前記プロセッサに命令を提供するように構成されている、メモリと、
を含む、システム。 a system,
is a processor;
receiving a set of features, including a plurality of n-grams, extracted from a set of files;
determining a reduced set of features that includes at least some of the plurality of n-grams; and
using said reduced set of features to generate a model usable by a data appliance to perform inline malware analysis;
a processor;
a memory coupled to the processor and configured to provide instructions to the processor;
system, including
請求項1に記載のシステム。 the set of features includes features extracted from a set of known malicious files;
The system of claim 1.
請求項1に記載のシステム。 the set of features includes features extracted from a set of known benign files;
The system of claim 1.
請求項1に記載のシステム。 the reduced set of features is determined using mutual information;
The system of claim 1.
請求項1に記載のシステム。 the reduced set of features is determined using a chi-square score;
The system of claim 1.
請求項21に記載のシステム。 the generated model includes n-gram features;
22. The system of claim 21.
請求項26に記載のシステム。 the generated model further includes non-n-gram features;
27. The system of claim 26.
請求項7に記載のシステム。 at least one non-n-gram feature is associated with file size;
8. The system of claim 7.
請求項7に記載のシステム。 at least one non-n-gram feature is associated with a header size;
8. System according to claim 7.
請求項7に記載のシステム。 the at least one non-n-gram feature is associated with at least one of the presence or absence of a checksum in the file;
8. The system of claim 7.
請求項7に記載のシステム。 at least one non-n-gram feature is associated with the number of sections in the file;
8. The system of claim 7.
請求項7に記載のシステム。 at least one non-n-gram feature is associated with the length of the claimed file;
8. The system of claim 7.
請求項7に記載のシステム。 at least one non-n-gram feature is associated with whether the file contains an overlay;
8. System according to claim 7.
請求項21に記載のシステム。 the model is a linear model,
22. The system of claim 21.
請求項21に記載のシステム。 wherein the model is a non-linear model;
22. The system of claim 21.
請求項21に記載のシステム。 the plurality of n-grams are extracted during static analysis of the set of files;
22. The system of claim 21.
請求項21に記載のシステム。 a system in which the model is transmitted to a first data appliance;
22. The system of claim 21.
請求項37に記載のシステム。 In response to false positive results reported by a second data appliance, the processor is configured to generate an updated model and send the updated model to the first data appliance. ,
38. The system of claim 37.
前記複数のnグラムのうち少なくとも一部を含む特徴の縮小セットを決定する、ステップと、
インラインマルウェア解析を実行するように、データ機器によって使用可能なモデルを生成するために、前記特徴の縮小セットを使用する、ステップと、
を含む、方法。 receiving a feature set comprising a plurality of n-grams extracted from a set of files;
determining a reduced set of features that includes at least some of the plurality of n-grams;
using said reduced set of features to generate a model usable by a data appliance to perform inline malware analysis;
A method, including
コンピュータ命令が実行されると、コンピュータに、
ファイルのセットから抽出された、複数のnグラムを含む、特徴のセットを受信する、ステップと、
前記複数のnグラムのうち少なくとも一部を含む特徴の縮小セットを決定する、ステップと、
インラインマルウェア解析を実行するように、データ機器によって使用可能なモデルを生成するために、前記特徴の縮小セットを使用する、ステップと、
を実施させる、コンピュータプログラム。 A computer program stored on a tangible computer-readable storage medium and comprising a plurality of computer instructions,
When the computer instructions are executed, the computer
receiving a feature set comprising a plurality of n-grams extracted from a set of files;
determining a reduced set of features that includes at least some of the plurality of n-grams;
using said reduced set of features to generate a model usable by a data appliance to perform inline malware analysis;
A computer program that causes the
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023218442A JP2024023875A (en) | 2019-07-19 | 2023-12-25 | Inline malware detection |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/517,465 | 2019-07-19 | ||
US16/517,463 US11374946B2 (en) | 2019-07-19 | 2019-07-19 | Inline malware detection |
US16/517,465 US11636208B2 (en) | 2019-07-19 | 2019-07-19 | Generating models for performing inline malware detection |
US16/517,463 | 2019-07-19 | ||
PCT/US2020/040928 WO2021015941A1 (en) | 2019-07-19 | 2020-07-06 | Inline malware detection |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023218442A Division JP2024023875A (en) | 2019-07-19 | 2023-12-25 | Inline malware detection |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022541250A true JP2022541250A (en) | 2022-09-22 |
JP7411775B2 JP7411775B2 (en) | 2024-01-11 |
Family
ID=74193725
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022502913A Active JP7411775B2 (en) | 2019-07-19 | 2020-07-06 | Inline malware detection |
JP2023218442A Pending JP2024023875A (en) | 2019-07-19 | 2023-12-25 | Inline malware detection |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023218442A Pending JP2024023875A (en) | 2019-07-19 | 2023-12-25 | Inline malware detection |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3999985A4 (en) |
JP (2) | JP7411775B2 (en) |
KR (1) | KR20220053549A (en) |
CN (1) | CN114072798A (en) |
WO (1) | WO2021015941A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378747B (en) * | 2022-10-27 | 2023-01-24 | 北京六方云信息技术有限公司 | Malicious data detection method, terminal device and storage medium |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180293381A1 (en) * | 2017-04-07 | 2018-10-11 | Trustpath Inc. | System and method for malware detection on a per packet basis |
US20180300482A1 (en) * | 2017-04-18 | 2018-10-18 | Cylance Inc. | Protecting devices from malicious files based on n-gram processing of sequential data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010011411A1 (en) * | 2008-05-27 | 2010-01-28 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for detecting network anomalies |
US9742796B1 (en) * | 2015-09-18 | 2017-08-22 | Palo Alto Networks, Inc. | Automatic repair of corrupt files for a detonation engine |
US10200391B2 (en) * | 2015-09-23 | 2019-02-05 | AVAST Software s.r.o. | Detection of malware in derived pattern space |
US10902124B2 (en) * | 2017-09-15 | 2021-01-26 | Webroot Inc. | Real-time JavaScript classifier |
US20190096014A1 (en) * | 2017-09-27 | 2019-03-28 | Johnson Controls Technology Company | Building risk analysis system with risk decay |
-
2020
- 2020-07-06 JP JP2022502913A patent/JP7411775B2/en active Active
- 2020-07-06 WO PCT/US2020/040928 patent/WO2021015941A1/en unknown
- 2020-07-06 CN CN202080051255.4A patent/CN114072798A/en active Pending
- 2020-07-06 KR KR1020227001606A patent/KR20220053549A/en active IP Right Grant
- 2020-07-06 EP EP20843721.0A patent/EP3999985A4/en active Pending
-
2023
- 2023-12-25 JP JP2023218442A patent/JP2024023875A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180293381A1 (en) * | 2017-04-07 | 2018-10-11 | Trustpath Inc. | System and method for malware detection on a per packet basis |
US20180300482A1 (en) * | 2017-04-18 | 2018-10-18 | Cylance Inc. | Protecting devices from malicious files based on n-gram processing of sequential data |
Also Published As
Publication number | Publication date |
---|---|
CN114072798A (en) | 2022-02-18 |
WO2021015941A1 (en) | 2021-01-28 |
JP7411775B2 (en) | 2024-01-11 |
JP2024023875A (en) | 2024-02-21 |
KR20220053549A (en) | 2022-04-29 |
EP3999985A4 (en) | 2023-12-13 |
EP3999985A1 (en) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783035B2 (en) | Multi-representational learning models for static analysis of source code | |
US11816214B2 (en) | Building multi-representational learning models for static analysis of source code | |
US20190332771A1 (en) | System and method for detection of malicious hypertext transfer protocol chains | |
US10216931B2 (en) | Detecting an attempt to exploit a memory allocation vulnerability | |
US11374946B2 (en) | Inline malware detection | |
US11636208B2 (en) | Generating models for performing inline malware detection | |
JP2024023875A (en) | Inline malware detection | |
US20230344861A1 (en) | Combination rule mining for malware signature generation | |
US20240037231A1 (en) | Sample traffic based self-learning malware detection | |
US20240039893A1 (en) | Beacon and threat intelligence based apt detection | |
US20230342461A1 (en) | Malware detection for documents using knowledge distillation assisted learning | |
US20230344867A1 (en) | Detecting phishing pdfs with an image-based deep learning approach | |
Yan et al. | Anti‐virus in‐the‐cloud service: are we ready for the security evolution? | |
US20220245249A1 (en) | Specific file detection baked into machine learning pipelines | |
US20230412564A1 (en) | Fast policy matching with runtime signature update | |
US11770361B1 (en) | Cobalt strike beacon HTTP C2 heuristic detection | |
US20230082289A1 (en) | Automated fuzzy hash based signature collecting system for malware detection | |
US20240039951A1 (en) | Probing for cobalt strike teamserver detection | |
US20240039952A1 (en) | Cobalt strike beacon https c2 heuristic detection | |
US20230231857A1 (en) | Deep learning pipeline to detect malicious command and control traffic | |
US11863586B1 (en) | Inline package name based supply chain attack detection and prevention | |
US20230069731A1 (en) | Automatic network signature generation | |
US20230342460A1 (en) | Malware detection for documents with deep mutual learning | |
US20230244787A1 (en) | System and method for detecting exploit including shellcode | |
WO2024025705A1 (en) | Cobalt strike beacon http c2 heuristic detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230516 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230816 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231012 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231114 |
|
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: 20231128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7411775 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |