JP2020522808A - Real-time detection of malware and steganography in kernel mode and protection from malware and steganography - Google Patents

Real-time detection of malware and steganography in kernel mode and protection from malware and steganography Download PDF

Info

Publication number
JP2020522808A
JP2020522808A JP2019566622A JP2019566622A JP2020522808A JP 2020522808 A JP2020522808 A JP 2020522808A JP 2019566622 A JP2019566622 A JP 2019566622A JP 2019566622 A JP2019566622 A JP 2019566622A JP 2020522808 A JP2020522808 A JP 2020522808A
Authority
JP
Japan
Prior art keywords
file
processor
malware
instructions
size
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.)
Pending
Application number
JP2019566622A
Other languages
Japanese (ja)
Other versions
JP2020522808A5 (en
Inventor
ピー.マクロード スチュワート
ピー.マクロード スチュワート
パイク ロバート
パイク ロバート
Original Assignee
サイエンプティブ テクノロジーズ インコーポレイテッド
サイエンプティブ テクノロジーズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サイエンプティブ テクノロジーズ インコーポレイテッド, サイエンプティブ テクノロジーズ インコーポレイテッド filed Critical サイエンプティブ テクノロジーズ インコーポレイテッド
Publication of JP2020522808A publication Critical patent/JP2020522808A/en
Publication of JP2020522808A5 publication Critical patent/JP2020522808A5/ja
Priority to JP2022110573A priority Critical patent/JP7460696B2/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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

Abstract

カーネルモードにおけるマルウェアのリアルタイム検出のための方法が、ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求を検出することを含む。検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析が行われて、マルウェアの存在を示す挙動を検出する。マルウェアの存在を示す挙動を検出することに応答して、検出されたファイル操作要求を開始することを担当するプロセスが識別される。プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセスの検索が行われて、識別されたプロセスが信頼されたプロセスであるかどうかを決定する。識別されたプロセスが信頼されたプロセスではないと決定することに応答して、識別されたプロセスに対してマルウェア修正アクションが実行される。マルウェアを記述する情報がクライアントデバイスに送信される。A method for real-time detection of malware in kernel mode includes detecting file manipulation requests initiated by processes running in user mode. Malware detection analysis is performed on the file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware. In response to detecting the behavior indicative of the presence of malware, the process responsible for initiating the detected file manipulation request is identified. A search for the identified process in one or more of the program blacklist and the program whitelist is performed to determine if the identified process is a trusted process. In response to determining that the identified process is not a trusted process, a malware modifying action is performed on the identified process. Information describing the malware is sent to the client device.

Description

本開示は、一般にマルウェアの検出に関し、特に、カーネルモードにおけるマルウェアおよびステガノグラフィのリアルタイム検出ならびにマルウェアおよびステガノグラフィからの保護に関する。 The present disclosure relates generally to malware detection, and more particularly to real-time detection of malware and steganography in kernel mode and protection from malware and steganography.

関連出願の相互参照
本出願は、参照によりその全体が組み込まれている、2017年5月30日に出願された米国特許仮出願第62/512,659号の利益を主張するものである。
CROSS REFERENCE TO RELATED APPLICATIONS This application claims the benefit of US Provisional Application No. 62/512,659, filed May 30, 2017, which is incorporated by reference in its entirety.

マルウェア(malware)とは、所有者の認識または許可なしにコンピュータ、タブレット、またはデバイスに感染する可能性がある悪意のあるコンピュータソフトウェアプログラムを指す。ステガノグラフィは、デバイスおよびネットワークにマルウェアを感染させる1つのそのような方法である。 Malware refers to malicious computer software programs that can infect a computer, tablet, or device without the owner's knowledge or permission. Steganography is one such method of infecting devices and networks with malware.

マルウェアは、ウイルス、ワーム、トロイの木馬、ボットネット、スパイウェア、およびアドウェアを含むことがある。ウイルスは、実行可能プログラムにアタッチした後にそれら自体を複製する。ワームはネットワークにわたってそれら自体を複製して、多数のデバイスに急速に感染する。トロイの木馬はそれら自体を正当なソフトウェアとして偽装し、ユーザの識別情報、パスワード、および他の個人情報を盗もうとする。ボットネットは、リモート制御される感染されたデバイスのグループである。個々のボット(デバイス)が、スパム電子メールを送るかまたはサービス妨害攻撃に参加するように指示されることが可能である。スパイウェアは、キーストローク、クレジットカード番号、および他の個人情報を捕捉するように設計されている。アドウェアは、デバイスに感染し、必要とされない広告をダウンロードし表示する。 Malware may include viruses, worms, Trojan horses, botnets, spyware, and adware. Viruses replicate themselves after attaching to executable programs. Worms replicate themselves across networks, rapidly infecting many devices. Trojan horses disguise themselves as legitimate software and attempt to steal user identities, passwords, and other personal information. Botnets are groups of remotely controlled infected devices. Individual bots (devices) can be instructed to send spam emails or participate in denial of service attacks. Spyware is designed to capture keystrokes, credit card numbers, and other personal information. Adware infects devices and downloads and displays unwanted ads.

従来のマルウェア防止ツールは、署名を検出して、マルウェアを隔離および修復し、または除去しようとすることがある。しかしながら、マルウェアプログラムの数は劇的に増加しており、署名は通常、知られているマルウェアのみについて作成される。したがって、従来の署名ベースの手法は通常、未知のマルウェアを識別または検出することができない。 Traditional malware protection tools may detect signatures and try to quarantine and repair or remove the malware. However, the number of malware programs is increasing dramatically and signatures are usually created only for known malware. Therefore, traditional signature-based approaches typically cannot identify or detect unknown malware.

さらに、ルールを使用した実行時ヒューリスティックスキャンに基づく従来の手法は、多くの誤検出および検出漏れを発生することがある。仮想マシンにおいて疑わしいファイルを実行し悪意のある挙動を観察するサンドボックス化に基づく他の従来の手法では、サンドボックス(仮想マシンまたはコンテナ)内に自身があるかどうかを決定して検出を回避できるマルウェアを検出することが通常は不可能である。最後に、静的コード分析に基づく従来の手法もマルウェアを確実に検出することができない。 Moreover, traditional approaches based on runtime heuristic scanning with rules can result in many false positives and false negatives. Other traditional sandboxing-based methods of executing suspicious files and observing malicious behavior in a virtual machine can determine if they are in the sandbox (virtual machine or container) and avoid detection. It is usually impossible to detect malware. Finally, traditional methods based on static code analysis also cannot reliably detect malware.

開示される実施形態は、詳細な説明、添付の特許請求の範囲、および添付の図(または図面)からより容易に明らかになる利点および特徴を有している。図の簡単な紹介は以下の通りである。 The disclosed embodiments have advantages and features that become more readily apparent from the detailed description, the appended claims, and the accompanying drawings (or drawings). A brief introduction of the figure is as follows.

実施形態に従う、カーネルモードにおけるマルウェアおよびステガノグラフィのリアルタイム検出ならびにマルウェアおよびステガノグラフィからの保護のためのシステムの例示的なブロック図である。FIG. 2 is an exemplary block diagram of a system for real-time detection of malware and steganography in kernel mode and protection from malware and steganography, according to an embodiment. 実施形態に従う、プラットフォーム上のユーザモードにおいて実行されているアプリケーションに関するマルウェアのリアルタイム検出およびマルウェアからの保護の例示的なブロック図である。FIG. 3 is an exemplary block diagram of real-time malware detection and protection from malware for applications running in user mode on a platform, according to embodiments. 実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のための例示的なフィルタマネージャおよびミニフィルタドライバを示す図である。FIG. 6 illustrates an exemplary filter manager and mini filter driver for real-time detection of malware and protection from malware, according to embodiments. 実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のためのボリュームシャドウサービス(VSS)の例示的なコンポーネントを示す図である。FIG. 7 illustrates exemplary components of a Volume Shadow Service (VSS) for real-time detection of malware and protection from malware, according to embodiments. 実施形態に従う、モンテカルロパイ近似に関する例示的なデータ点を示す図である。FIG. 6 illustrates example data points for a Monte Carlo pie approximation, according to an embodiment. 実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のための例示的なプロセスを示す図である。FIG. 6 illustrates an exemplary process for real-time detection of malware and protection from malware according to embodiments. 実施形態に従う、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための例示的なポータブル実行可能(PE)ファイルのコンポーネントを示す図である。FIG. 6 illustrates components of an exemplary portable executable (PE) file for real-time steganographic detection and protection from steganography in kernel mode, according to an embodiment. 実施形態に従う、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための例示的なプロセスを示す図である。FIG. 6 illustrates an exemplary process for real-time steganographic detection and protection from steganography in kernel mode, according to an embodiment. マシン可読媒体から命令を読み取ってそれらをプロセッサまたはコントローラにおいて実行することができる例示的なマシンのコンポーネントを示すブロック図である。FIG. 3 is a block diagram illustrating components of an exemplary machine capable of reading instructions from a machine-readable medium and executing them on a processor or controller.

図面(図)および以下の説明は、単に例示のための好ましい実施形態に関する。以下の議論から、本明細書に開示される構造および方法の代替的実施形態が、特許請求の範囲の原理から逸脱することなく採用されてよい実施可能な代替形態として容易に認識されることに留意されたい。 The drawings (drawings) and the following description relate to preferred embodiments merely for purposes of illustration. It will be readily appreciated from the following discussion that alternative embodiments of the structures and methods disclosed herein are workable alternatives that may be employed without departing from the principles of the claims. Please note.

ここで、いくつかの実施形態が詳細に参照され、それらの例が添付の図面に示される。実現可能な限り、同様または類似の参照番号が図面において使用されてよく、同様または類似の機能性を示してよいことに留意されたい。図は、単に例示を目的として、開示されるシステム(または方法)の実施形態を示す。以下の説明から、本明細書に示される構造および方法の代替的実施形態が、本明細書に説明される原理から逸脱することなく採用されてよいことは当業者には容易に理解される。 Reference will now be made in detail to some embodiments, examples of which are illustrated in the accompanying drawings. It should be noted that like or similar reference numbers may be used in the figures and may indicate similar or similar functionality, where practicable. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. It will be readily appreciated by those skilled in the art from the following description that alternative embodiments of the structures and methods presented herein may be employed without departing from the principles described herein.

序論
従来のセキュリティ製品は、疑わしいアプリケーションプログラムインターフェース(API)コールおよびアクションを探すことによって未知のマルウェアからデバイスを保護するために、挙動分析および実行時ヒューリスティックスを含んでよい。マルウェアは、コンピュータおよびコンピュータシステムを損傷させまたは無効にすることが意図されたソフトウェアを指す。マルウェアは、ポリモーフィックまたはメタモーフィックなマルウェアを作成することによってセキュリティ製品による検出を回避する洗練されたプログラムが含むことがある。ポリモーフィックマルウェアは、異なる実行で新しい「署名」を生成する変異エンジンを使用して破壊的なコードを暗号化することによって変異する。メタモーフィックマルウェアは、実行可能コードを動的に再構築して悪意を分かりにくくする。検出を回避するために、マルウェアは、プッシュ、ポップ、NOP、およびジャンプ命令などの冗長なプロセッサオペコードを追加して、実行ファイルの署名を変更するが、機能性に影響しないことが可能である。
Introduction Conventional security products may include behavioral analysis and run-time heuristics to protect devices from unknown malware by looking for suspicious application program interface (API) calls and actions. Malware refers to software intended to damage or disable computers and computer systems. Malware may include sophisticated programs that avoid detection by security products by creating polymorphic or metamorphic malware. Polymorphic malware mutates by encrypting subversive code using a mutation engine that produces new "signatures" in different executions. Metamorphic malware dynamically rebuilds executable code to obscure malicious intent. To avoid detection, malware may add redundant processor opcodes such as push, pop, NOP, and jump instructions to change the signature of the executable, but without affecting functionality.

ランサムウェアは、急成長しているマルウェアのカテゴリである。ランサムウェアは、ユーザのデバイスまたは個人データに対するアクセスを回復するために「身代金を支払う」ようにユーザに強制することを目的に、コンピュータ、タブレット、デバイス、またはスマートフォンに感染する種類のマルウェアである。いくつかの種類のランサムウェアは、ユーザデバイスまたはシステムをロックして、それらのデバイスまたはシステムにユーザがアクセスするのを防止することがある。他の種類のランサムウェアは、暗号化ソフトウェアを使用して、ワープロ文書、写真、音楽、ビデオ、電子メールなどのユーザの個人データを暗号化することがある。そのような場合、ユーザは、アクセスを回復するために身代金を支払うことを要求されることがある。ステガノグラフィは、デバイスおよびネットワークにランサムウェアを感染させる1つのそのような方法である。 Ransomware is a fast-growing category of malware. Ransomware is a type of malware that infects computers, tablets, devices, or smartphones with the purpose of forcing users to "pay" to restore access to their devices or personal data. Some types of ransomware may lock user devices or systems to prevent users from accessing those devices or systems. Other types of ransomware may use encryption software to encrypt user personal data such as word processing documents, photos, music, videos, emails, and so on. In such cases, the user may be required to pay a ransom to regain access. Steganography is one such method of infecting devices and networks with ransomware.

ステガノグラフィは、コンピュータファイル、メッセージ、画像、またはビデオを別のコンピュータファイル、メッセージ、画像、またはビデオ内に隠す手法を指す。デジタルステガノグラフィにおいて、電子通信は、文書ファイル、画像ファイル、プログラム、またはプロトコルなどのトランスポート層内のステガノグラフィ符号化を含むことがある。メディアファイルは、それらのサイズが大きいのでステガノグラフィ送信のために使用されることがある。たとえば、送信者は、無害な画像ファイルから開始し、各百番目のピクセルの色をアルファベットの文字に対応するように調整することがある。 Steganography refers to the technique of hiding a computer file, message, image, or video within another computer file, message, image, or video. In digital steganography, electronic communication may include steganographic encoding within a transport layer such as a document file, image file, program, or protocol. Media files may be used for steganographic transmission because of their large size. For example, the sender may start with a harmless image file and adjust the color of each hundredth pixel to correspond to a letter of the alphabet.

ランサムウェアを検出するための従来の方法は、マルウェアファイル署名の検出、実行時ヒューリスティックスキャン、サンドボックス化、静的コード分析などに依拠してよい。しかしながら、マルウェアファイル署名を検出することに基づく従来の方法は、以前に識別されたマルウェアのみを検出することがあり、自己変形するランサムウェアなどの新しい形態のランサムウェアから保護をできないことがある。実行時ヒューリスティックスキャンに基づく従来の方法は、ルールのセットを使用して誤検出および検出漏れを発生することがある。サンドボックス化に基づく従来の方法は、仮想マシンにおける疑わしいファイルを実行し、悪意のある挙動を観察してよい。しかしながら、ランサムウェアは、それがサンドボックス(仮想マシンまたはコンテナ)内にあるかどうかを決定し検出を回避できることがある。静的コード分析に基づく従来の方法は、実行可能コードを逆アセンブルし、解析ツリーを作成して、疑わしいAPIコールを識別しようとしてよい。しかしながら、静的コード分析に基づくそのような従来の方法は、ランサムウェアを確実に検出することができない。 Conventional methods for detecting ransomware may rely on malware file signature detection, runtime heuristic scanning, sandboxing, static code analysis, and so on. However, conventional methods based on detecting malware file signatures may only detect previously identified malware and may not protect against new forms of ransomware, such as self-transforming ransomware. Traditional methods based on run-time heuristic scanning may use a set of rules to generate false positives and false negatives. Traditional methods based on sandboxing may execute suspicious files in virtual machines and observe malicious behavior. However, ransomware may be able to determine if it is in the sandbox (virtual machine or container) and avoid detection. Conventional methods based on static code analysis may try to disassemble the executable code and build a parse tree to identify suspicious API calls. However, such conventional methods based on static code analysis cannot reliably detect ransomware.

「パックされた」マルウェアおよび「隠されたマルウェア」は、従来は検出されず、ローカルデバイスのファイアウォール、ネットワークのファイアウォール、およびアンチウイルスソフトウェアを通過することがある。フィルタリングおよびディープパケット検査、侵入保護システム、アプリケーション認識などの従来のファイアウォール機能がしばしば使用される。しかしながら、従来のファイアウォールは、マルウェアを検出するためにポート割り当てに依拠する。したがって、実際のアプリケーション種類とアプリケーションについてのファイアウォールの仮定との間の関連付けが弱い。さらに、ディープパケット検査は、強力な暗号化のために終端点がファイアウォールではなく宛先であるときは価値が限られる。 "Packed" and "hidden malware" are traditionally undetected and may pass through local device firewalls, network firewalls, and antivirus software. Traditional firewall features such as filtering and deep packet inspection, intrusion protection systems, application awareness are often used. However, traditional firewalls rely on port assignments to detect malware. Therefore, there is a weak association between the actual application type and the firewall assumptions about the application. Moreover, deep packet inspection is of limited value when the endpoint is the destination rather than the firewall due to strong encryption.

構成概要
マルウェアのリアルタイム検出およびマルウェアからの保護のためのシステム、方法、および/またはコンピュータプログラム製品(たとえば、1つまたは複数の処理ユニットによって実行可能な命令を記憶するコンピュータ可読記憶媒体)が、例示的な実施形態によって開示される。コンピュータにおけるプロセッサは一般に、少なくとも2つの異なるモード、すなわちユーザモードとカーネルモードにおいて実行してよい。典型的には、アプリケーションはユーザモードにおいて実行してよく、コアオペレーティングシステムコンポーネントはカーネルモードにおいて実行してよい。
Configuration Overview A system, method, and/or computer program product (eg, a computer-readable storage medium storing instructions executable by one or more processing units) for real-time detection of malware and protection from malware is illustrated. Disclosed by an exemplary embodiment. A processor in a computer may generally run in at least two different modes: user mode and kernel mode. Typically, applications may run in user mode and core operating system components may run in kernel mode.

一実施形態において、ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求が検出される。検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析が行われて、マルウェアの存在を示す挙動を検出する。マルウェアの存在を示す挙動を検出することに応答して、検出されたファイル操作要求を開始することを担当するプロセスが識別される。プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセスの検索が行われて、識別されたプロセスが信頼されたプロセスであるかどうかを決定する。識別されたプロセスが信頼されたプロセスではないと決定することに応答して、識別されたプロセスに対してマルウェア修正アクションが実行される。マルウェアを記述する情報がクライアントデバイスに送信される。 In one embodiment, file manipulation requests initiated by processes running in user mode are detected. Malware detection analysis is performed on the file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware. In response to detecting the behavior indicative of the presence of malware, the process responsible for initiating the detected file manipulation request is identified. A search for the identified process in one or more of the program blacklist and the program whitelist is performed to determine if the identified process is a trusted process. In response to determining that the identified process is not a trusted process, a malware modifying action is performed on the identified process. Information describing the malware is sent to the client device.

開示されている実施形態は、悪意のある攻撃およびデータ損失からデバイスおよびネットワークを保護するために、セキュリティ脅威の統合されたリアルタイム検出を行う。静的分析が行われて、テストの配列を使用して、マルウェアに感染された可能性のあるファイルを求めて検索し、疑わしいプログラム命令を識別して、それがマルウェアであるかどうかを決めてよい。検出されると、バイトの一意のシーケンスが、実行を必要とせずに悪意のあるソフトウェアを識別し、それを正当なプログラムから区別する。動的分析は、実行中にアプリケーションの挙動を監視して、それがマルウェアを含むかどうかを決定する。マルウェアを直接識別することに加えて、システムの状態がリアルタイムにおいて監視される。 The disclosed embodiments provide integrated real-time detection of security threats to protect devices and networks from malicious attacks and data loss. A static analysis is performed that uses an array of tests to search for potentially infected files, identify suspicious program instructions, and determine if they are malware Good. When detected, the unique sequence of bytes identifies malicious software without requiring execution and distinguishes it from legitimate programs. Dynamic analysis monitors the behavior of an application during execution to determine if it contains malware. In addition to directly identifying malware, system status is monitored in real time.

現在のマルウェアはポリモーフィックまたはメタモーフィックである場合があるので、マルウェアはファイル署名を使用する従来のアンチウイルスソフトウェアによる検出を回避することがある。一実施形態では、一意の状態ベースのメカニズムを使用して、許可なしにファイルが暗号化されているかどうかを検出する。担当するプロセスが識別され、他のデバイスから隔離される。これにより、マルウェアを事前に知ることを不要にする。データの状態の変化がマルウェアの識別を迅速かつ確実にする。統合されたステガノグラフィ検出が、デバイス上の実行から隠されたデータおよびマルウェアの存在を識別する。システムは、ファイアウォール上でインラインを実行して、隠されたデータを有するマルウェアおよびファイルがネットワークに入るのを防止する。それは、一緒に、静的分析、動的分析、システム状態変化の強みを活用して、より少ない誤検知およびより少ない検出漏れでマルウェアをより正確に検出する統合されたエンドツーエンドシステムとして働く。 Since current malware may be polymorphic or metamorphic, it may evade detection by traditional antivirus software that uses file signatures. In one embodiment, a unique state-based mechanism is used to detect if a file is encrypted without permission. The responsible process is identified and isolated from other devices. This eliminates the need to know malware in advance. Changes in the state of the data make malware identification quick and reliable. Integrated steganographic detection identifies the presence of data and malware hidden from execution on the device. The system runs inline on the firewall to prevent malware and files with hidden data from entering the network. Together, it works as an integrated end-to-end system that leverages the strengths of static analysis, dynamic analysis, system state changes to more accurately detect malware with fewer false positives and fewer false negatives.

さらに、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のためのシステム、方法、および/またはコンピュータプログラム製品(たとえば、1つまたは複数の処理ユニットによって実行可能な命令を記憶するコンピュータ可読記憶媒体)が、例示的な実施形態によって開示される。ファイアウォール、オペレーティングシステム、または電子メールシステムを介するファイルの送信が検出される。ファイルのサイズが決定される。ファイルシステムからファイルの記憶されたファイルサイズが取り出される。ファイルの決定されたサイズは、ファイルの記憶されたファイルサイズと比較される。ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、ファイルについてステガノグラフィ検出分析が実行される。ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、ステガノグラフィ修正アクションが実行される。ステガノグラフィを記述する情報がクライアントデバイスに送信される。 Further, systems, methods, and/or computer program products for real-time steganographic detection and protection from steganography in kernel mode (eg, a computer-readable storage medium storing instructions executable by one or more processing units). Are disclosed by way of example embodiments. Detects sending files through a firewall, operating system, or email system. The size of the file is determined. The stored file size of the file is retrieved from the file system. The determined size of the file is compared to the stored file size of the file. Steganographic detection analysis is performed on the file in response to the determined size of the file being greater than the stored file size of the file. Steganographic correction actions are performed in response to the steganographic detection analysis indicating the presence of steganography in the file. Information describing steganography is sent to the client device.

開示されている実施形態は、許可されていないデータ暗号化、データ流出、ルートキットインストール、およびステガノグラフィを識別するために分析の組み合わせを統合することによって、既知と未知の両方のマルウェアおよびセキュリティ脅威から多くの種類のデバイスを保護することができる。このシステムおよび方法は、既存の技法と比較して、より少ない計算オーバヘッドおよびストレージ使用率で、より速くかつより正確にマルウェアを検出、隔離、分析、および除去するためのエンドツーエンド解決策をもたらす。ファイルシステムの状態変化のリアルタイム分析は、ユーザのデータが暗号化または削除される前にリアルタイム保護を可能にする。動的API監視ヒューリスティックス、動的コード分析、トリップワイヤおよびハニーポットの作成は、ほぼリアルタイムで疑わしい挙動を発見する助けとなる。 The disclosed embodiments combine both known and unknown malware and security threats by integrating a combination of analytics to identify unauthorized data encryption, data leakage, rootkit installation, and steganography. It can protect many types of devices. The system and method provide an end-to-end solution for faster, more accurate malware detection, isolation, analysis, and removal with less computational overhead and storage utilization compared to existing techniques. .. Real-time analysis of file system state changes enables real-time protection before user data is encrypted or deleted. The creation of dynamic API monitoring heuristics, dynamic code analysis, tripwires and honeypots helps discover suspicious behavior in near real time.

開示されている実施形態は、システム構成(MFT、MBR、レジストリ、およびWindowsタスクマネージャ)の改ざんを積極的にチェックし、悪意のある変更を修正して、ユーザがロックアウトされていないことを保証する。MFTは、マスタファイルテーブルを指す。MBRは、マスタブートレコードを指す。Windowsレジストリは、オペレーティングシステムについて、およびアプリケーション、デバイスドライバ、セキュリティアカウントマネージャ(SAM)に関する情報についての低レベル構成設定を記憶し、システムパフォーマンスカウンタにアクセスする。タスクマネージャは、プログラムの実行をスケジューリングする。集中化された詳細なロギングシステムは、システム管理者がそれらの環境におけるすべてのデバイスを管理し、様々なデータ分析の基盤を提供することを可能にする。 The disclosed embodiments proactively check for tampering with system configurations (MFT, MBR, Registry, and Windows Task Manager) and fix malicious changes to ensure users are not locked out. To do. MFT refers to the master file table. MBR refers to the master boot record. The Windows registry stores low-level configuration settings about the operating system and about applications, device drivers, security account managers (SAMs), and access system performance counters. The task manager schedules the execution of programs. A centralized, detailed logging system allows system administrators to manage all devices in their environment and provide the basis for various data analysis.

開示されている実施形態の利益および利点は、ランサムウェアが存在する場所の知識なしにシステムを継続的に洗浄することを含む。このアプローチの一部として、方法は、サーバ、たとえばDNSサーバをデコミッションしてよい。結果は、ランサムウェアのエビデンスである状態変化の隔離および検出アプローチである。ポリモーフィックランサムウェアは、コンテナ内のペイロードを暗号化し、従来の方法によって検出不可能である署名を変更することができる。メタモーフィックランサムウェアは、意味のないマシン命令をコードに挿入することによってその署名を変更する。知られているマルウェアを検索する代わりに、開示されている実施形態はシステムにおける状態変化を探す。さらなる利点および利益は、マルウェアを識別するためにプログラムのブラックリストを使用する際の簡潔性を含む。したがって、開示されている実施形態は、開示されているシステムおよびその関係付けられたデータベースまたはサードパーティの脅威インテリジェンス/サービスプロバイダがプログラムのブラックリストをコンパイルおよび更新するので、必要なメンテナンスが少ない。 Benefits and advantages of the disclosed embodiments include continuously cleaning the system without knowledge of where the ransomware is. As part of this approach, the method may decommission a server, eg a DNS server. The result is a ransomware evidence of state change isolation and detection approaches. Polymorphic ransomware can encrypt the payload in a container and modify signatures that are undetectable by conventional methods. Metamorphic ransomware modifies its signature by inserting meaningless machine instructions into the code. Instead of searching for known malware, the disclosed embodiments look for state changes in the system. Further advantages and benefits include the simplicity in using a program blacklist to identify malware. Accordingly, the disclosed embodiments require less maintenance as the disclosed system and its associated database or third party threat intelligence/service providers compile and update program blacklists.

したがって、開示されている実施形態は、静的状態分析(ディスクのスキャン)およびリアルタイム分析を行ってよい。マルウェア署名は使用されないが、ファイルが暗号化されたかどうかを検出するために計算が行われる。I/O要求パケット内の読み取りバッファおよび書き込みバッファの両方が使用されてよい。したがって、追加のメモリ割り当てまたは追加の読み取り/書き込み操作が必要とされない。追加のメモリおよび計算を必要とする後処理分析がない。別の実施形態において、開示されている方法およびシステムは、メモリベースの攻撃に対処するために使用されてよく、ファイルは、ディスク上ではなくメモリに記憶される。ファイル割り当てのメモリ内監視が行われ、ディスクに接触しないデータがスキャンされてよい。ファイアウォールとインラインで統合されたデバイス上での統計分析の組み合わせが、ネットワークおよびデバイスのための強力な保護を提供する。 Thus, the disclosed embodiments may perform static state analysis (disk scanning) and real-time analysis. Malware signatures are not used, but calculations are done to detect if a file has been encrypted. Both read and write buffers in the I/O request packet may be used. Therefore, no additional memory allocation or additional read/write operations are required. There is no post-processing analysis that requires additional memory and calculations. In another embodiment, the disclosed methods and systems may be used to combat memory-based attacks, where the files are stored in memory rather than on disk. In-memory monitoring of file allocations may be performed and data that does not touch the disk may be scanned. The combination of statistical analysis on the device, integrated inline with the firewall, provides strong protection for the network and the device.

マルウェアおよびステガノグラフィ検出および防止のための方法およびシステム
一実施形態において、カーネルモードにおけるマルウェアのリアルタイム検出およびマルウェアからの保護のための方法は、ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求を検出するステップを含む。検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析が行われて、マルウェアの存在を示す挙動を検出する。マルウェアの存在を示す挙動を検出することに応答して、検出されたファイル操作要求を開始することを担当するプロセスが識別される。プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセスの検索が行われて、識別されたプロセスが信頼されたプロセスであるかどうかを決定する。識別されたプロセスが信頼されたプロセスではないと決定することに応答して、識別されたプロセスに対してマルウェア修正アクションが実行される。マルウェアを記述する情報がクライアントデバイスに送信される。
Method and System for Malware and Steganography Detection and Prevention In one embodiment, a method for real-time detection of malware in kernel mode and protection from malware includes file manipulation requests initiated by processes running in user mode. Is detected. Malware detection analysis is performed on the file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware. In response to detecting the behavior indicative of the presence of malware, the process responsible for initiating the detected file manipulation request is identified. A search for the identified process in one or more of the program blacklist and the program whitelist is performed to determine if the identified process is a trusted process. In response to determining that the identified process is not a trusted process, a malware modifying action is performed on the identified process. Information describing the malware is sent to the client device.

一実施形態において、ファイル操作要求を検出するステップは、ファイル操作要求に対応するファイルハンドルから、ファイル操作要求が所定の動作に対応するかどうかを決定するステップを含む。ファイル操作要求が所定の動作に対応すると決定することに応答して、ファイル操作要求がインターセプトされる。 In one embodiment, detecting the file operation request includes determining from the file handle corresponding to the file operation request whether the file operation request corresponds to a predetermined operation. The file operation request is intercepted in response to determining that the file operation request corresponds to a predetermined action.

一実施形態において、ファイル操作要求をインターセプトするステップは、フィルタマネージャによって、ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されているかどうかを決定するステップを含む。ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されていると決定することに応答して、フィルタマネージャは、ファイル操作要求をミニフィルタドライバに送信する。 In one embodiment, the step of intercepting the file operation request includes determining by the filter manager whether the mini filter driver is registered to intercept the file operation request. In response to determining that the minifilter driver is registered to intercept the file manipulation request, the filter manager sends the file manipulation request to the minifilter driver.

一実施形態において、マルウェア検出分析を行うステップは、モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、ファイルバッファ内のデータが暗号化されているかどうかを決定するステップを含む。 In one embodiment, the step of performing malware detection analysis comprises one or more of Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision to determine whether the Included in determining if the data is encrypted.

一実施形態において、識別されたプロセスが信頼されたプロセスではないと決定するステップは、プログラムのブラックリスト上において識別されたプロセスを特定するステップをさらに含む。マルウェア修正アクションを実行するステップは、検出されたファイル操作要求に関連付けられた書き込み操作を終了するステップと、検出されたファイル操作要求をメモリから削除することによって、検出されたファイル操作要求を終了するステップと、識別されたプロセスに関連付けられたディスクファイルイメージを隔離するステップとをさらに含む。 In one embodiment, determining that the identified process is not a trusted process further comprises identifying the identified process on a blacklist of programs. Performing the malware fix action terminates the write operation associated with the detected file operation request and terminates the detected file operation request by deleting the detected file operation request from memory. The method further includes the steps of isolating a disk file image associated with the identified process.

一実施形態において、プログラムのホワイトリスト上において識別されたプロセスを特定することに応答して、ミニフィルタドライバは、検出されたファイル操作要求を無視する。 In one embodiment, in response to identifying the identified process on the program's whitelist, the minifilter driver ignores the detected file manipulation request.

一実施形態において、識別されたプロセスが信頼されたプロセスであるかどうかを決定するステップは、プログラムのブラックリストまたはプログラムのホワイトリスト上においてプロセスを特定しないことに応答して、識別されたプロセスを許可することを求める要求をクライアントデバイスに送信するステップをさらに含む。 In one embodiment, the step of determining whether the identified process is a trusted process includes identifying the identified process in response to not identifying the process on a program blacklist or program whitelist. The method further includes sending a request for authorization to the client device.

一実施形態において、識別されたプロセスが信頼されたプロセスではないと決定するステップは、識別されたプロセスを許可することを求める要求をクライアントデバイスに送信することに応答して、識別されたプロセスが許可されないというメッセージをクライアントデバイスから受信するステップをさらに含む。 In one embodiment, the step of determining that the identified process is not a trusted process is performed by the identified process in response to sending a request to the client device to authorize the identified process. The method further includes receiving a disallowed message from the client device.

一実施形態において、識別されたプロセスがプログラムのブラックリストに追加される。 In one embodiment, the identified process is added to the program's blacklist.

一実施形態において、識別されたプロセスが許可されたというメッセージをクライアントデバイスから受信することに応答して、識別されたプロセスがプログラムのホワイトリストに追加される。 In one embodiment, the identified process is added to the program's whitelist in response to receiving a message from the client device that the identified process is authorized.

一実施形態において、非一時的コンピュータ可読媒体が命令を記憶し、命令は、少なくとも1つのプロセッサによって実行されたとき、ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求を検出することを少なくとも1つのプロセッサに行わせる。検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析が行われて、マルウェアの存在を示す挙動を検出する。マルウェアの存在を示す挙動を検出することに応答して、検出されたファイル操作要求を開始することを担当するプロセスが識別される。プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセスの検索が行われて、識別されたプロセスが信頼されたプロセスであるかどうかを決定する。識別されたプロセスが信頼されたプロセスではないと決定することに応答して、識別されたプロセスに対してマルウェア修正アクションが実行される。マルウェアを記述する情報がクライアントデバイスに送信される。 In one embodiment, a non-transitory computer-readable medium stores instructions that, when executed by at least one processor, detect file operation requests initiated by a process executing in user mode. At least one processor. Malware detection analysis is performed on the file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware. In response to detecting the behavior indicative of the presence of malware, the process responsible for initiating the detected file manipulation request is identified. A search for the identified process in one or more of the program blacklist and the program whitelist is performed to determine if the identified process is a trusted process. In response to determining that the identified process is not a trusted process, a malware modifying action is performed on the identified process. Information describing the malware is sent to the client device.

一実施形態において、ファイル操作要求を検出することを少なくとも1つのプロセッサに行わせる命令は、ファイル操作要求に対応するファイルハンドルから、ファイル操作要求が所定の動作に対応するかどうかを決定することを少なくとも1つのプロセッサに行わせる命令をさらに含む。ファイル操作要求が所定の動作に対応すると決定することに応答して、ファイル操作要求がインターセプトされる。 In one embodiment, the instructions that cause at least one processor to detect a file operation request include determining from a file handle corresponding to the file operation request whether the file operation request corresponds to a predetermined operation. Further included are instructions for causing at least one processor to perform. The file operation request is intercepted in response to determining that the file operation request corresponds to a predetermined action.

一実施形態において、ファイル操作要求をインターセプトすることを少なくとも1つのプロセッサに行わせる命令は、フィルタマネージャによって、ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されているかどうかを決定することを少なくとも1つのプロセッサに行わせる命令をさらに含む。ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されていると決定することに応答して、フィルタマネージャは、ファイル操作要求をミニフィルタドライバに送信する。 In one embodiment, the instructions that cause the at least one processor to intercept the file manipulation request include at least determining by the filter manager whether a minifilter driver is registered to intercept the file manipulation request. It further includes instructions to cause one processor to perform. In response to determining that the minifilter driver is registered to intercept the file manipulation request, the filter manager sends the file manipulation request to the minifilter driver.

一実施形態において、マルウェア検出分析を行うことを少なくとも1つのプロセッサに行わせる命令は、モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、ファイルバッファ内のデータが暗号化されているかどうかを決定することを少なくとも1つのプロセッサに行わせる命令をさらに含む。 In one embodiment, the instructions that cause the at least one processor to perform malware detection analysis are one or more of a Monte Carlo approximation, entropy decision, series coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision. The method further includes instructions that cause the at least one processor to perform a plurality to determine whether the data in the file buffer is encrypted.

一実施形態において、識別されたプロセスが信頼されたプロセスではないと決定することを少なくとも1つのプロセッサに行わせる命令は、プログラムのブラックリスト上において識別されたプロセスを特定することを少なくとも1つのプロセッサに行わせる命令をさらに含む。マルウェア修正アクションを実行することを少なくとも1つのプロセッサに行わせる命令は、検出されたファイル操作要求に関連付けられた書き込み操作を終了することと、検出されたファイル操作要求をメモリから削除することによって、検出されたファイル操作要求を終了することと、識別されたプロセスに関連付けられたディスクファイルイメージを隔離することとを少なくとも1つのプロセッサに行わせる命令をさらに含む。 In one embodiment, the instruction causing at least one processor to determine that the identified process is not a trusted process is to identify the identified process on a blacklist of programs. It further includes an instruction to perform. The instructions that cause the at least one processor to perform the malware modification action include terminating the write operation associated with the detected file operation request and deleting the detected file operation request from memory. The instructions further include causing the at least one processor to terminate the detected file manipulation request and isolate the disk file image associated with the identified process.

一実施形態において、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、プログラムのホワイトリスト上において識別されたプロセスを特定することに応答して、ミニフィルタドライバによって、検出されたファイル操作要求を無視することを少なくとも1つのプロセッサに行わせる命令をさらに記憶する。 In one embodiment, a non-transitory computer readable medium is detected by a minifilter driver in response to identifying a process identified on a whitelist of programs when executed by at least one processor. Further storing instructions that cause the at least one processor to ignore the file operation request.

一実施形態において、識別されたプロセスが信頼されたプロセスであるかどうかを決定することを少なくとも1つのプロセッサに行わせる命令は、プログラムのブラックリストまたはプログラムのホワイトリスト上においてプロセスを特定しないことに応答して、識別されたプロセスを許可することを求める要求をクライアントデバイスに送信することを少なくとも1つのプロセッサに行わせる命令をさらに含む。 In one embodiment, the instructions that cause the at least one processor to determine whether the identified process is a trusted process do not identify the process on a blacklist of programs or a whitelist of programs. In response, the method further includes instructions that cause the at least one processor to send a request to the client device to authorize the identified process.

一実施形態において、識別されたプロセスが信頼されたプロセスではないと決定することを少なくとも1つのプロセッサに行わせる命令は、識別されたプロセスを許可することを求める要求をクライアントデバイスに送信することに応答して、識別されたプロセスが許可されないというメッセージをクライアントデバイスから受信することを少なくとも1つのプロセッサに行わせる命令をさらに含む。 In one embodiment, the instructions that cause the at least one processor to determine that the identified process is not a trusted process are to send a request to the client device to authorize the identified process. In response, the method further includes instructions that cause the at least one processor to receive a message from the client device that the identified process is not authorized.

一実施形態において、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、識別されたプロセスをプログラムのブラックリストに追加することを少なくとも1つのプロセッサに行わせる命令をさらに記憶する。 In one embodiment, the non-transitory computer readable medium further stores instructions that, when executed by the at least one processor, cause the at least one processor to add the identified process to a blacklist of programs.

一実施形態において、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、識別されたプロセスが許可されたというメッセージをクライアントデバイスから受信することに応答して、識別されたプロセスをプログラムのホワイトリストに追加することを少なくとも1つのプロセッサに行わせる命令をさらに記憶する。 In one embodiment, a non-transitory computer-readable medium, when executed by at least one processor, is responsive to receiving a message from a client device that the identified process is authorized, causes the identified process to be processed. Further storing instructions that cause the at least one processor to add to the program whitelist.

一実施形態において、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための方法が、ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出するステップを含む。ファイルのサイズが決定される。ファイルシステムからファイルの記憶されたファイルサイズが取り出される。ファイルの決定されたサイズは、ファイルの記憶されたファイルサイズと比較される。ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、ファイルに関してステガノグラフィ検出分析が実行される。ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、ステガノグラフィ修正アクションが実行され、ステガノグラフィを記述する情報がクライアントデバイスに送信される。 In one embodiment, a method for real-time steganographic detection and protection from steganography in kernel mode includes detecting transmission of a file through a firewall, operating system, or email system. The size of the file is determined. The stored file size of the file is retrieved from the file system. The determined size of the file is compared to the stored file size of the file. Steganographic detection analysis is performed on the file in response to the determined size of the file being greater than the stored file size of the file. In response to the steganographic detection analysis indicating the presence of steganography in the file, steganographic correction actions are performed and information describing steganography is sent to the client device.

一実施形態において、ファイルのサイズを決定するステップは、ファイルのセクションヘッダに対するポインタを取得するステップを含み、セクションヘッダはファイルの複数のセクションに関連付けられている。ファイルの複数のセクションの各セクションについて、セクションのサイズが決定される。ファイルの複数のセクションの各セクションのサイズが合計されて、ファイルのサイズを決定する。 In one embodiment, determining the size of the file includes obtaining a pointer to a section header of the file, the section header being associated with multiple sections of the file. A section size is determined for each section of the plurality of sections of the file. The size of each section of the multiple sections of the file is summed to determine the size of the file.

一実施形態において、ファイルのセクションヘッダに対するポインタを取得するステップは、ファイルのファイル名またはファイルのパスを使用してファイルを開くステップを含む。ファイルのヘッダが読み取られる。ヘッダからマジックナンバーが取り出される。マジックナンバーが検証されて、ファイルのセクションヘッダに対するポインタを取得する。 In one embodiment, obtaining the pointer to the section header of the file includes opening the file using the filename or path of the file. The file header is read. The magic number is retrieved from the header. The magic number is verified to get a pointer to the section header of the file.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行するステップは、ファイルにおける付加されたペイロードを識別するステップを含む。付加されたペイロードは分析されて、付加されたペイロードのファイルフォーマットを決定する。付加されたペイロードのファイルフォーマットに基づいて、ステガノグラフィ検出分析が実行される。 In one embodiment, performing steganographic detection analysis on the file includes identifying additional payloads in the file. The added payload is analyzed to determine the file format of the added payload. Steganography detection analysis is performed based on the file format of the added payload.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行するステップは、ファイルにおける付加されたペイロードを識別するステップを含む。モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数が行われて、付加されたペイロード内のデータが暗号化されているかどうかを決定する。 In one embodiment, performing steganographic detection analysis on the file includes identifying additional payloads in the file. One or more of Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision are made to determine if the data in the appended payload is encrypted. To do.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行するステップは、ファイルにおける付加されたペイロードを識別するステップと、付加されたペイロード内の許可されていないデータの存在を識別するステップとを含む。 In one embodiment, performing steganographic detection analysis on the file includes identifying additional payloads in the file and identifying the presence of unauthorized data in the additional payloads.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行するステップは、ファイルにおける付加されたペイロードを識別するステップと、付加されたペイロード内のアセンブリレベル命令またはマシンレベル命令の存在を識別するステップとを含む。 In one embodiment, performing steganographic detection analysis on the file includes identifying additional payloads in the file and identifying the presence of assembly or machine level instructions within the additional payloads. ..

一実施形態において、ステガノグラフィ修正アクションを実行するステップは、ファイルの処理および送信を終了するステップと、ファイルを隔離するステップとを含む。 In one embodiment, performing the steganographic correction action includes terminating the processing and transmission of the file and isolating the file.

一実施形態において、非一時的コンピュータ可読媒体が命令を含み、命令は、少なくとも1つのプロセッサによって実行されたとき、ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出することを少なくとも1つのプロセッサに行わせる。ファイルのサイズが決定される。ファイルシステムからファイルの記憶されたファイルサイズが取り出される。ファイルの決定されたサイズは、ファイルの記憶されたファイルサイズと比較される。ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、ファイルに関してステガノグラフィ検出分析が実行される。ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、ステガノグラフィ修正アクションが実行され、ステガノグラフィを記述する情報がクライアントデバイスに送信される。 In one embodiment, the non-transitory computer-readable medium includes instructions that, when executed by the at least one processor, detect the transmission of the file through a firewall, operating system, or email system. At least one processor. The size of the file is determined. The stored file size of the file is retrieved from the file system. The determined size of the file is compared to the stored file size of the file. Steganographic detection analysis is performed on the file in response to the determined size of the file being greater than the stored file size of the file. In response to the steganographic detection analysis indicating the presence of steganography in the file, steganographic correction actions are performed and information describing steganography is sent to the client device.

一実施形態において、ファイルのサイズを決定することを少なくとも1つのプロセッサに行わせる命令は、ファイルのセクションヘッダに対するポインタを取得することを少なくとも1つのプロセッサに行わせる命令を含み、セクションヘッダはファイルの複数のセクションに関連付けられている。ファイルの複数のセクションの各セクションについて、セクションのサイズが決定される。ファイルの複数のセクションの各セクションのサイズが合計されて、ファイルのサイズを決定する。 In one embodiment, the instructions that cause the at least one processor to determine the size of the file include instructions that cause the at least one processor to obtain a pointer to a section header of the file, the section header of the file. Associated with multiple sections. A section size is determined for each section of the plurality of sections of the file. The size of each section of the multiple sections of the file is summed to determine the size of the file.

一実施形態において、ファイルのセクションヘッダに対するポインタを取得することを少なくとも1つのプロセッサに行わせる命令は、ファイルのファイル名またはファイルのパスを使用してファイルを開くことを少なくとも1つのプロセッサに行わせる命令を含む。ファイルのヘッダが読み取られる。ヘッダからマジックナンバーが取り出される。マジックナンバーは検証されて、ファイルのセクションヘッダに対するポインタを取得する。 In one embodiment, the instructions that cause the at least one processor to obtain a pointer to a section header of the file cause the at least one processor to open the file using the filename or path of the file. Including instructions. The file header is read. The magic number is retrieved from the header. The magic number is verified to get a pointer to the section header of the file.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行することを少なくとも1つのプロセッサに行わせる命令は、ファイルにおける付加されたペイロードを識別することを少なくとも1つのプロセッサに行わせる命令を含む。付加されたペイロードは分析されて、付加されたペイロードのファイルフォーマットを決定する。付加されたペイロードのファイルフォーマットに基づいて、ステガノグラフィ検出分析が実行される。 In one embodiment, the instructions that cause the at least one processor to perform steganographic detection analysis on the file include instructions that cause the at least one processor to identify the added payload in the file. The added payload is analyzed to determine the file format of the added payload. Steganography detection analysis is performed based on the file format of the added payload.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行することを少なくとも1つのプロセッサに行わせる命令は、ファイルにおける付加されたペイロードを識別することを少なくとも1つのプロセッサに行わせる命令を含む。モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数が行われて、付加されたペイロード内のデータが暗号化されているかどうかを決定する。 In one embodiment, the instructions that cause the at least one processor to perform steganographic detection analysis on the file include instructions that cause the at least one processor to identify the added payload in the file. One or more of Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision are made to determine if the data in the appended payload is encrypted. To do.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行することを少なくとも1つのプロセッサに行わせる命令は、ファイルにおける付加されたペイロードを識別することと、付加されたペイロード内の許可されていないデータの存在を識別することとを少なくとも1つのプロセッサに行わせる命令を含む。 In one embodiment, the instructions that cause the at least one processor to perform steganographic detection analysis on the file identify the additional payload in the file and the presence of unauthorized data in the additional payload. Identifying at least one processor.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行することを少なくとも1つのプロセッサに行わせる命令は、ファイルにおける付加されたペイロードを識別することと、付加されたペイロード内のアセンブリレベル命令またはマシンレベル命令の存在を識別することとを少なくとも1つのプロセッサに行わせる命令を含む。 In one embodiment, the instructions that cause the at least one processor to perform steganographic detection analysis on the file include identifying an additional payload in the file, and assembly level instructions or machine level instructions within the additional payload. Of the presence of the at least one processor.

一実施形態において、ステガノグラフィ修正アクションを実行することを少なくとも1つのプロセッサに行わせる命令は、ファイルの処理および送信を終了することと、ファイルを隔離することとを少なくとも1つのプロセッサに行わせる命令を含む。 In one embodiment, the instructions that cause the at least one processor to perform the steganographic correction action include instructions that cause the at least one processor to finish processing and transmitting the file and quarantine the file. Including.

一実施形態において、コンピュータシステムが少なくとも1つのコンピュータプロセッサを備える。非一時的コンピュータ可読媒体が命令を記憶し、命令は、少なくとも1つのコンピュータプロセッサによって実行されたとき、ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出することを少なくとも1つのプロセッサに行わせる。ファイルのサイズが決定される。ファイルシステムからファイルの記憶されたファイルサイズが決定される。ファイルの決定されたサイズは、ファイルの記憶されたファイルサイズと比較される。ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、ファイルに関してステガノグラフィ検出分析が実行される。ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、ステガノグラフィ修正アクションが実行される。ステガノグラフィを記述する情報がクライアントデバイスに送信される。 In one embodiment, the computer system comprises at least one computer processor. A non-transitory computer-readable medium stores instructions that, when executed by at least one computer processor, detect at least one transmission of a file through a firewall, operating system, or email system. Let the processor do it. The size of the file is determined. The stored file size of the file is determined from the file system. The determined size of the file is compared to the stored file size of the file. Steganographic detection analysis is performed on the file in response to the determined size of the file being greater than the stored file size of the file. Steganographic correction actions are performed in response to the steganographic detection analysis indicating the presence of steganography in the file. Information describing steganography is sent to the client device.

一実施形態において、ファイルのサイズを決定することを少なくとも1つのコンピュータプロセッサに行わせる命令は、ファイルのセクションヘッダに対するポインタを取得することを少なくとも1つのコンピュータプロセッサに行わせる命令を含み、セクションヘッダはファイルの複数のセクションに関連付けられている。ファイルの複数のセクションの各セクションについて、セクションのサイズが決定される。ファイルの複数のセクションの各セクションのサイズが合計されて、ファイルのサイズを決定する。 In one embodiment, the instructions that cause the at least one computer processor to determine the size of the file include instructions that cause the at least one computer processor to obtain a pointer to a section header of the file, where the section header is Associated with multiple sections of the file. A section size is determined for each section of the plurality of sections of the file. The size of each section of the multiple sections of the file is summed to determine the size of the file.

一実施形態において、ファイルのセクションヘッダに対するポインタを取得することを少なくとも1つのコンピュータプロセッサに行わせる命令は、ファイルのファイル名またはファイルのパスを使用してファイルを開くことを少なくとも1つのコンピュータプロセッサに行わせる命令を含む。ファイルのヘッダが読み取られる。ヘッダからマジックナンバーが取り出される。マジックナンバーは検証されて、ファイルのセクションヘッダに対するポインタを取得する。 In one embodiment, the instructions that cause the at least one computer processor to obtain a pointer to the section header of the file causes the at least one computer processor to open the file using the filename or path of the file. Includes instructions to perform. The file header is read. The magic number is retrieved from the header. The magic number is verified to get a pointer to the section header of the file.

一実施形態において、ファイルに関してステガノグラフィ検出分析を実行することを少なくとも1つのコンピュータプロセッサに行わせる命令は、ファイルにおける付加されたペイロードを識別することを少なくとも1つのコンピュータプロセッサに行わせる命令を含む。付加されたペイロードは分析されて、付加されたペイロードのファイルフォーマットを決定する。付加されたペイロードのファイルフォーマットに基づいて、ステガノグラフィ検出分析が実行される。 In one embodiment, the instructions that cause the at least one computer processor to perform steganographic detection analysis on the file include instructions that cause the at least one computer processor to identify the added payload in the file. The added payload is analyzed to determine the file format of the added payload. Steganography detection analysis is performed based on the file format of the added payload.

カーネルモードにおけるマルウェアおよびステガノグラフのリアルタイム検出ならびにマルウェアおよびステガノグラフからの保護
図1は、実施形態に従う、カーネルモードにおけるマルウェアおよびステガノグラフィのリアルタイム検出ならびにマルウェアおよびステガノグラフィからの保護のためのシステムの例示的なブロック図を示す。システムは、管理ノード100、クラウドホスト105、およびセキュリティマネージャ115を含む。他の実施形態において、システムは、本明細書に説明されるものよりも、追加のまたは少ないコンポーネントを備える。同様に、機能は、ここで説明されるのと異なる方式でコンポーネントおよび/または異なるエンティティの間で分散されることが可能である。
Real-time Detection of Malware and Steganography in Kernel Mode and Protection from Malware and Steganography FIG. 1 illustrates an exemplary system for real-time detection of malware and steganography and protection from malware and steganography in kernel mode according to an embodiment. A block diagram is shown. The system includes a management node 100, a cloud host 105, and a security manager 115. In other embodiments, the system comprises additional or fewer components than those described herein. Similarly, functionality may be distributed among components and/or different entities in a different manner than described herein.

管理ノード100は、カーネルモードにおいてマルウェアおよびステガノグラフィから保護されるコンピュータシステムである。管理ノード100は、(たとえば、Windows、MacOS、もしくは別のオペレーティングシステムを実行している)コンピュータ、データセンタ、メインフレーム、またはストレージおよび計算能力を有する他の任意のデバイスであってよい。一実施形態において、管理ノード100は、I/Oマネージャ120、Windowsサービスマネージャ170、レジストリ175、静的分析モジュール180、ストレージデバイス155、カーネル165、およびハードウェア抽象化層160を含む。他の実施形態において、管理ノード100は、本明細書に説明されるものよりも、追加のまたは少ないコンポーネントを備える。同様に、機能は、ここで説明されるのと異なる方式でコンポーネントおよび/または異なるエンティティの間で分散されることが可能である。 The management node 100 is a computer system that is protected from malware and steganography in kernel mode. The management node 100 may be a computer (eg, running Windows, MacOS, or another operating system), a data center, a mainframe, or any other device having storage and computing power. In one embodiment, management node 100 includes I/O manager 120, Windows service manager 170, registry 175, static analysis module 180, storage device 155, kernel 165, and hardware abstraction layer 160. In other embodiments, management node 100 comprises additional or fewer components than those described herein. Similarly, functionality may be distributed among components and/or different entities in a different manner than described herein.

一実施形態において、管理ノード100はWindowsコンピュータである。カーネルドライバ130は、I/Oマネージャ120内のフィルタマネージャ125に動的にインストールされてよい。この実施形態は、Windowsプラットフォーム上でファイルシステムイベントをインターセプトするための高性能メカニズムを提供する。他の実施形態において、管理ノード100は、特定のデバイスの検出システム能力を利用する。たとえば、この例におけるストレージデバイス155は、NTFSファイルシステム、FAT16、またはFAT32用にフォーマットされたボリュームであってよい。 In one embodiment, the management node 100 is a Windows computer. The kernel driver 130 may be dynamically installed in the filter manager 125 within the I/O manager 120. This embodiment provides a high performance mechanism for intercepting file system events on the Windows platform. In other embodiments, the management node 100 utilizes the detection system capabilities of a particular device. For example, storage device 155 in this example may be a volume formatted for NTFS file system, FAT16, or FAT32.

管理ノード100は、外界との間で入力および出力(I/O)を提供する1つまたは複数のデバイスを含んでよい。そのようなデバイスは、キーボード、マウス、オーディオコントローラ、ビデオコントローラ、ディスクドライブ、およびネットワークポートなどを含んでよい。一実施形態において、デバイスドライバが、そのようなデバイスと管理ノード100上のオペレーティングシステムとの間のソフトウェア接続を提供してよい。カーネルモードI/Oマネージャ120は、アプリケーションとデバイスドライバによって提供されるインターフェースとの間の通信を管理する。デバイスはオペレーティングシステムと一致しなくてよい速度で動作することがあるため、オペレーティングシステムとデバイスドライバとの間の通信は、主にI/O要求パケットを通じて行われる。これらのパケットは、ネットワークパケットまたはWindowsメッセージパケットと同様であってよい。それらは、オペレーティングシステムから特定のドライバへ渡され、また1つのドライバから別のドライバへ渡される。 Management node 100 may include one or more devices that provide input and output (I/O) to and from the outside world. Such devices may include keyboards, mice, audio controllers, video controllers, disk drives, network ports and the like. In one embodiment, device drivers may provide software connections between such devices and the operating system on the management node 100. The kernel mode I/O manager 120 manages communication between applications and interfaces provided by device drivers. Communication between the operating system and device drivers occurs primarily through I/O request packets because the device may operate at a speed that does not have to match the operating system. These packets may be similar to network packets or Windows message packets. They are passed from the operating system to specific drivers, and from one driver to another.

一実施形態において、I/Oマネージャ120は、管理ノード100によって受信されたファイル操作要求(たとえば、読み取り、書き込み、ファイルオープンなど)を検出する。フィルタマネージャ125は、ファイル操作要求に対応するファイルハンドルから、ファイル操作要求が所定の動作に対応するかどうかを決定してよい。ファイルハンドルは、ファイルが開かれるときにオペレーティングシステムが一時的にファイルに割り当てる番号または識別子である。オペレーティングシステムは、ファイルをアクセスするときに内部でファイルハンドルを使用する。フィルタマネージャ125が、ファイル操作要求が所定の動作に対応すると決定した場合、フィルタマネージャ125は、マルウェア検出のためにファイル操作要求をインターセプトする。マルウェアの存在を示す挙動が見つけられた場合、I/Oマネージャ120は、検出されたファイル操作要求の開始を担当するユーザモードプロセスを識別してよい。 In one embodiment, I/O manager 120 detects file operation requests (eg, read, write, open files, etc.) received by management node 100. The filter manager 125 may determine from the file handle corresponding to the file operation request whether the file operation request corresponds to a predetermined operation. A file handle is a number or identifier that the operating system temporarily assigns to a file when the file is opened. The operating system uses the file handle internally when accessing the file. If the filter manager 125 determines that the file manipulation request corresponds to a predetermined action, the filter manager 125 intercepts the file manipulation request for malware detection. If a behavior is detected that indicates the presence of malware, I/O manager 120 may identify the user mode process responsible for initiating the detected file manipulation request.

一実施形態において、フィルタマネージャ125は、Windowsと共にインストールされる。それは、ミニフィルタドライバがロードされたときのみにアクティブにされる。ミニフィルタドライバは、ファイルシステム操作をフィルタリングするドライバを指す。ミニフィルタドライバは、I/Oマネージャ120とベースファイルシステムとの間に配置されてよい。フィルタマネージャ125は、ターゲットボリュームに関するファイルシステムスタックにアタッチしてよい。ミニフィルタドライバは、ミニフィルタドライバがフィルタリングすることを選択したI/O操作に関してフィルタマネージャ125に登録することによってファイルシステムスタックに間接的にアタッチしてよい。
一実施形態において、ファイル操作要求をインターセプトするために、フィルタマネージャ125は、ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されているかどうかを決定する。ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されていると決定することに応答して、フィルタマネージャ125は、ファイル操作要求をミニフィルタドライバにて送信する。ファイル操作要求の生成を担当するユーザプロセッサがI/Oマネージャ120によって識別されていると、フィルタマネージャ125は、プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセスの検索を行って、識別されたプロセスが信頼されたプロセスであるかどうかを決定してよい。
In one embodiment, the filter manager 125 is installed with Windows. It is activated only when the minifilter driver is loaded. A minifilter driver refers to a driver that filters file system operations. The mini filter driver may be located between the I/O manager 120 and the base file system. The filter manager 125 may attach to the file system stack for the target volume. The mini filter driver may indirectly attach to the file system stack by registering with the filter manager 125 for the I/O operations that the mini filter driver has chosen to filter.
In one embodiment, to intercept a file manipulation request, the filter manager 125 determines whether a mini filter driver is registered to intercept the file manipulation request. In response to determining that the minifilter driver is registered to intercept the file manipulation request, the filter manager 125 sends the file manipulation request at the minifilter driver. Once the user processor responsible for generating the file manipulation request has been identified by the I/O manager 120, the filter manager 125 causes the process identified in one or more of the program blacklist and program whitelist to be identified. May be performed to determine if the identified process is a trusted process.

カーネルドライバ130は、I/O、プラグアンドプレイメモリ、プロセスおよびスレッド、ならびにセキュリティなどを管理するカーネルモードオペレーティングシステムコンポーネントの一部としてカーネルモードにおいて実行される。オペレーティングシステムそれ自体と同様に、カーネルドライバ130は、必要とされる機能性の明確に定義されたセットを有する個別のモジュールコンポーネントとして実装されてよい。カーネルドライバ130は、システム定義された標準ドライバルーチンのセットを供給してもよい。カーネルドライバ130は、実行の前および後にI/O要求パケットをインターセプトしてよい。I/O要求パケットは、ドライバによって互いおよびオペレーティングシステムと通信するために使用されるカーネルモード構造である。(図3に関して示され以下に説明される)ミニフィルタカーネルドライバは、ファイル操作のためのルーチンをサポートする。したがって、カーネルドライバ130は、ファイルオープン、読み取り、書き込み、クローズ、および他の操作を受け取りおよび処理するための高性能メカニズムである。一実施形態において、カーネルドライバ130は、カーネルモード読み取りおよび書き込みバッファにアクセスして、プロセスが要求しているデータに対する迅速な統計分析を行う。 The kernel driver 130 runs in kernel mode as part of a kernel mode operating system component that manages I/O, plug and play memory, processes and threads, security and the like. Similar to the operating system itself, the kernel driver 130 may be implemented as a discrete module component with a well-defined set of required functionality. Kernel driver 130 may provide a set of system defined standard driver routines. Kernel driver 130 may intercept I/O request packets before and after execution. I/O request packets are kernel-mode structures used by drivers to communicate with each other and the operating system. The minifilter kernel driver (shown with respect to FIG. 3 and described below) supports routines for file operations. Thus, the kernel driver 130 is a high performance mechanism for receiving and processing file open, read, write, close, and other operations. In one embodiment, kernel driver 130 accesses kernel mode read and write buffers for quick statistical analysis on the data that the process is requesting.

Windowsサービスマネージャ170は、Windowsサービスに関係付けられた共通のタスクを単純化するために使用されてよい。Windowsサービスは、管理ノード100上でバックグラウンドにおいて動作する(デーモンに類似する)コンピュータプログラムである。Windowsサービスは、オペレーティングシステムが開始されバックグラウンドにおいて実行されるときに開始するように構成されてよく、それは、手動でまたはイベントによって開始されてよい。Windowsサービスマネージャ170は、Windowsを再起動することなくサービス(Win32とレガシドライバの両方)を作成し、既存のサービスを削除し、サービス構成を変更することができる。Windowsサービスマネージャ170は、GUIとコマンドラインモードの両方を有してよい。 Windows service manager 170 may be used to simplify common tasks associated with Windows services. The Windows service is a computer program (similar to a daemon) that runs in the background on the management node 100. The Windows service may be configured to start when the operating system is started and running in the background, which may be started manually or by an event. The Windows service manager 170 can create services (both Win32 and legacy drivers), delete existing services, and change service configurations without restarting Windows. Windows Services Manager 170 may have both GUI and command line modes.

レジストリ175は、オペレーティングシステムとレジストリ175を使用するアプリケーションとに関する低レベル設定を記憶する階層データストアである。カーネル165、デバイスドライバ、サービス、およびユーザインターフェースはすべて、レジストリ175を使用することができる。したがって、レジストリ175は、プログラムおよびハードウェア抽象化層160に関する情報、設定、オプション、および他の値を含む。プログラムがインストールされたとき、プログラムの場所、そのバージョン、およびプログラムの開始の仕方などの設定を含む新しいサブキーがすべてレジストリ175に追加される。レジストリ175は、マルウェアによってリブート後にそれらの実行をスケジューリングするために使用されるキーを含む可能性がある。 The registry 175 is a hierarchical data store that stores low-level settings for the operating system and applications that use the registry 175. The kernel 165, device drivers, services, and user interfaces can all use the registry 175. Therefore, the registry 175 contains information, settings, options, and other values about the program and the hardware abstraction layer 160. When the program is installed, new subkeys are added to the registry 175, including the location of the program, its version, and settings such as how the program starts. The registry 175 may contain keys used by the malware to schedule their execution after a reboot.

一実施形態において、静的分析モジュール180は、プログラムおよびカーネルモードドライバコードにおけるコーディングエラーを検出するコンパイル時静的検証ツールであってよい。Windowsサービスは、カーネルドライバ130の状態を監視してよく、レジストリキーおよび値を定期的に検証すること、隠されたプロセスを検索すること、およびシステム全体の静的スキャンを行うことなどのプロアクティブなマルウェア対策タスクを行ってよい。静的分析モジュール180は、すべてのファイルに関して分析を行うシステム全体のスキャンを管理してよい。これは、暗号化を検出すること、ステガノグラフィを識別すること、コンピュータ「ロックアウト」から保護すること、および改ざんのエビデンスに関するマスタファイルテーブル(NTFS MFT)およびマスタブートレコード(MBR)の状態を監視することを含むが、これらに限定されない。また、静的分析モジュール180は、Windows APIを使用して、許可されていないプロセスから(図4に関して示され以下に説明される)ボリュームシャドウコピーサービス(VSS)が無効にされているかどうかを決定してよい。実施形態において、未知のプロセスがVSSを改ざんしている場合、静的分析モジュール180は、未知のプロセスがマルウェアであると検出してよい。そして、静的分析モジュール180は、管理ツールを介して誤検出を回避するために未知のプロセスがシステムプロセスであるかどうかを決定してよい。 In one embodiment, static analysis module 180 may be a compile-time static verification tool that detects coding errors in programs and kernel mode driver code. The Windows service may monitor the status of the kernel driver 130 and is proactive, such as periodically verifying registry keys and values, looking for hidden processes, and performing static scans of the entire system. Various anti-malware tasks. The static analysis module 180 may manage system-wide scans that perform analysis on all files. It detects encryption, identifies steganography, protects against computer "lockouts", and monitors the status of the Master File Table (NTFS MFT) and Master Boot Record (MBR) for tamper evidence. Including, but not limited to. The static analysis module 180 also uses the Windows API to determine whether the Volume Shadow Copy Service (VSS) (shown below with respect to FIG. 4) has been disabled from unauthorized processes. You can do it. In an embodiment, if an unknown process is tampering with VSS, static analysis module 180 may detect that the unknown process is malware. Then, the static analysis module 180 may determine whether the unknown process is a system process to avoid a false detection via the management tool.

ストレージデバイス155は、管理ノード100上のデータおよびアプリケーションを記憶する管理ノード100のコンポーネントである。ストレージデバイス155は、RAM、キャッシュ、およびハードディスク、ならびに場合によっては光ディスクドライブおよび外部接続されたUSBドライブを含んでよい。ストレージデバイス155は、データがどのように記憶され取り出されるかを制御するファイルシステムのためにフォーマットされる。ファイルシステムは、NTFSファイルシステム、FAT16、FAT32などのいずれも含んでよい。NTFSファイルシステムは、Windows NTファミリのファイルシステムである。ファイルアロケーションテーブル(FAT)は、コンピュータファイルシステムアーキテクチャであり、業界標準ファイルシステムのファミリである。FATのファイルシステム変形例は、FAT16およびFAT32である。 The storage device 155 is a component of the management node 100 that stores data and applications on the management node 100. Storage devices 155 may include RAM, cache, and hard disks, and possibly optical disk drives and externally connected USB drives. Storage device 155 is formatted for a file system that controls how data is stored and retrieved. The file system may include any of the NTFS file system, FAT16, FAT32, and the like. The NTFS file system is a file system of the Windows NT family. The File Allocation Table (FAT) is a computer file system architecture, a family of industry standard file systems. File system variants of FAT are FAT16 and FAT32.

カーネル165は、管理ノード100に対する制御を有する、管理ノード100のオペレーティングシステムのコアであるコンピュータプログラムである。カーネル165は通常、起動時に(たとえば、ブートローダの後に)ロードされる。カーネル165は、起動の残り部分およびソフトウェアからの入出力要求を処理して、それらを管理ノード100のプロセッサのためのデータ処理命令に変換する。カーネル165はまた、メモリ、ならびにキーボード、モニタ、プリンタ、およびスピーカなどの周辺機器を取り扱う。 The kernel 165 is a computer program that has control over the management node 100 and is the core of the operating system of the management node 100. The kernel 165 is typically loaded at boot time (eg, after the boot loader). The kernel 165 processes the rest of the boot and I/O requests from the software and translates them into data processing instructions for the management node 100 processor. The kernel 165 also handles memory and peripherals such as keyboards, monitors, printers, and speakers.

ハードウェア抽象化層160は、管理ノード100のオペレーティングシステムが、詳細なハードウェアレベルでなくより一般的または抽象的レベルでハードウェアデバイス(たとえば、図3を参照して以下に説明されるプロセッサ310)と対話することを可能にする、プログラミングの層である。ハードウェア抽象化は、プラットフォーム固有の詳細をエミュレートするソフトウェアルーチンであり、ハードウェアリソースに対する直接アクセスをプログラムに与える。ハードウェア抽象化層160を使用して、デバイス非依存の高性能アプリケーションが、ハードウェアに標準オペレーティングシステムコールを発行してよい。たとえば、Windows2000は、ハードウェア抽象化層を含むいくつかのオペレーティングシステムのうちの1つである。 The hardware abstraction layer 160 allows the operating system of the management node 100 to provide hardware devices (eg, processor 310 described below with reference to FIG. 3) at a more general or abstract level than the detailed hardware level. ) Is the layer of programming that allows us to interact with. Hardware abstractions are software routines that emulate platform-specific details and give programs direct access to hardware resources. Using the hardware abstraction layer 160, device independent high performance applications may issue standard operating system calls to the hardware. For example, Windows 2000 is one of several operating systems that includes a hardware abstraction layer.

クラウドホスト105は、物理ウェブサーバの広範な基礎のネットワークからコンピューティングリソースを引き出す仮想サーバ上のホスティングを提供する。一実施形態において、クラウドホスト105は、クラウドベンダから仮想ハードウェア、ネットワーク、ストレージ、および複合ソリューションを使用してよい。クラウドホスティングは仮想化を通じて有効にされてよく、それにより、インフラストラクチャまたはデータセンタのコンピューティング容量全体が複数のユーザまたは管理ノードへ同時に分散され提供される。たとえば、物理サーバが仮想化および統合されて、いくつかのクラウドサーバをホストし、すべてがプロセッサ、メモリ、ストレージ、ネットワーク、および他のリソースを共有してよい。クラウドホスト105は、操作データに関して、ナイーブベイズ分類、線形回帰、ロジスティック回帰、およびビジネスインテリジェンス分析などの機械学習アルゴリズムを実行してよい。この情報は、マルウェア攻撃の範囲、感染されたデバイスを特定し、伝播を予測および防止するめに使用されることが可能である。 The cloud host 105 provides hosting on a virtual server that derives computing resources from a broad underlying network of physical web servers. In one embodiment, cloud host 105 may use virtual hardware, network, storage, and composite solutions from cloud vendors. Cloud hosting may be enabled through virtualization, whereby the entire computing capacity of an infrastructure or data center is distributed and provided to multiple users or managed nodes simultaneously. For example, physical servers may be virtualized and consolidated to host several cloud servers, all sharing processors, memory, storage, networks, and other resources. The cloud host 105 may execute machine learning algorithms such as naive Bayes classification, linear regression, logistic regression, and business intelligence analysis on the operational data. This information can be used to identify the extent of malware attacks, infected devices, predict and prevent propagation.

セキュリティマネージャ115は、管理ノード100の企業規模のビューおよびそのポリシを提供する。それは、デバイス、仮想マシン、およびコンテナを作成、管理、配置、および監視するために使用される。セキュリティマネージャ115は、オンプレミス分析を行ってもよい。一実施形態において、特定のファイル操作要求の開始を担当する識別されたプロセスは、信頼されたプロセスではないと決定されてよい。セキュリティマネージャ115は、識別されたプロセスに対してマルウェア修復アクションを実行するために、管理ノード100にてメッセージを送信してよい。管理ノード100は、マルウェアを記述する情報をクライアントデバイスに送信してもよい。 Security manager 115 provides an enterprise-wide view of managed node 100 and its policies. It is used to create, manage, deploy, and monitor devices, virtual machines, and containers. Security manager 115 may perform on-premises analysis. In one embodiment, the identified process responsible for initiating a particular file manipulation request may be determined not to be a trusted process. The security manager 115 may send a message at the management node 100 to perform a malware remediation action on the identified process. The management node 100 may send information describing the malware to the client device.

クライアントデバイスは、デジタルコンテンツを消費すること、ソフトウェアアプリケーションを実行すること、ネットワーク110上で管理ノード100にホストされまたは他の形式でそれと相互作用するウェブサイトを閲覧すること、およびファイルをダウンロードすることなどの機能を実行するために、ユーザによって使用される電子デバイスである。たとえば、クライアントデバイスは、スマートフォンもしくはタブレット、ノートブック、またはデスクトップコンピュータであってよい。さらに、クライアントデバイスは、家庭用電気製品のようなモノのインターネットに接続されたデバイス、またはさらに別のウェブサーバであってよい。クライアントデバイスは、表示デバイスを含んでよく、ユーザは、クライアントデバイスに記憶されまたは管理ノード100からダウンロードされたデジタルコンテンツを、表示デバイスで見てよい。さらに、クライアントデバイスは、物理的および/または画面上ボタンなどのユーザインターフェース(UI)を含んでよく、ユーザは、ユーザインターフェースを用いて対話して、デジタルコンテンツを消費すること、デジタルコンテンツを取得すること、およびデジタルコンテンツを送信することなどの機能を実行してよい。 The client device consumes digital content, executes software applications, browses websites hosted by or otherwise interacting with managed node 100 on network 110, and downloads files. An electronic device used by a user to perform functions such as. For example, the client device may be a smartphone or tablet, notebook, or desktop computer. Further, the client device may be a device connected to the Internet of Things, such as consumer electronics, or yet another web server. The client device may include a display device, and a user may view digital content stored on the client device or downloaded from the management node 100 on the display device. Further, the client device may include a physical and/or user interface (UI), such as an on-screen button, with which the user interacts to consume digital content and obtain digital content. And performing functions such as sending digital content.

一実施形態において、セキュリティマネージャ115は、マルウェア修正アクションを実行するために、信号またはメッセージを管理ノード100に送信してよい。マルウェア修正アクションは、検出されたファイル操作要求に関連付けられた書き込み操作を終了することを含んでよい。マルウェア修正アクションは、検出されたファイル操作要求をメモリから削除することによって、検出されたファイル操作要求を終了することを含んでよい。マルウェア修正アクションは、識別されたプロセスに関連付けられたディスクファイルイメージを隔離することを含んでよい。ディスクファイルイメージは、ディスク全体のすべてのコンテンツおよび構造を記憶するファイルである。ディスクは、光ディスク、ハードディスクドライブなどであってよい。ディスクファイルイメージは、ディスクボリュームまたは物理ディスクドライブ全体の正確なコピーであってよい。ディスクファイルイメージは、そのソースのすべてのプロパティ、すなわち、ファイル、フォルダ、プロパティ、ディスク名などを保持してよい。 In one embodiment, the security manager 115 may send a signal or message to the management node 100 to perform the malware remediation action. The malware modification action may include terminating the write operation associated with the detected file operation request. The malware modification action may include terminating the detected file manipulation request by deleting the detected file manipulation request from memory. The malware remediation action may include quarantining the disk file image associated with the identified process. A disc file image is a file that stores all the content and structure of the entire disc. The disc may be an optical disc, a hard disc drive, or the like. The disk file image may be an exact copy of the disk volume or the entire physical disk drive. A disk file image may hold all the properties of its source: files, folders, properties, disk name, etc.

一実施形態において、セキュリティマネージャ115は、ステガノグラフィ修正アクションを実行するために、信号またはメッセージを管理ノード100に送信してよい。ステガノグラフィ修正アクションは、ファイアウォールを通過しようとしているファイルの処理および送信を終了することを含んでよい。ステガノグラフィ修正アクションは、ファイルを隔離することを含んでよい。 In one embodiment, the security manager 115 may send a signal or message to the management node 100 to perform steganographic correction actions. Steganographic correction actions may include terminating the processing and transmission of files that are about to pass through the firewall. Steganographic modification actions may include quarantining the file.

ファイアウォール135は、セキュリティルールに基づいて着信および発信のネットワークトラフィックを監視および制御するネットワークセキュリティシステムである。ファイアウォール135は、信頼された内部管理ノード100と信頼されていない外部ネットワーク110との間のバリアを確立する。ファイアウォール135は、ネットワークファイアウォールまたはホストベースのファイアウォールであってよい。ファイアウォール135がホストベースのファイアウォールである場合、それは、管理ノード100の内外へのネットワークトラックを制御するために、管理ノード100内に配置されてよく、または管理ノード100上で実行されてよい。 Firewall 135 is a network security system that monitors and controls incoming and outgoing network traffic based on security rules. The firewall 135 establishes a barrier between the trusted internal management node 100 and the untrusted external network 110. Firewall 135 may be a network firewall or a host-based firewall. If the firewall 135 is a host-based firewall, it may be located within or run on the management node 100 to control network tracks in and out of the management node 100.

マルウェア分析モジュール140は、管理ノード100に対する着信ファイルに関して、または検出されたファイル操作に関連付けられたファイルに関してマルウェア検出分析を行う。マルウェア分析モジュール140は、管理ノード100内に配置されてよく、または管理ノード100上で実行されてよい。一実施形態において、マルウェア分析モジュール140は、検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析を行って、マルウェアの存在を示す挙動を検出してよい。同様に、マルウェア分析機能は、管理ノード100の他のエンティティの間で分散されることが可能である。 The malware analysis module 140 performs malware detection analysis on incoming files for the management node 100 or on files associated with detected file operations. The malware analysis module 140 may be located within the management node 100 or may be executed on the management node 100. In one embodiment, the malware analysis module 140 may perform malware detection analysis on the file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware. Similarly, malware analysis functionality can be distributed among other entities of the management node 100.

一実施形態において、マルウェア分析モジュール140は、カーネルモードにおいてステガノグラフィのリアルタイム検出およびステガノグラフィからの保護を行ってよい。ファイアウォール、オペレーティングシステム、または電子メールシステムを介するファイルの送信が検出されると、マルウェア分析モジュール140は、ファイルのサイズを決定してよい。ファイルのサイズは、ファイルが含むデータの大きさ、あるいはそれが消費するストレージの大きさの尺度である。ファイルのサイズは通常、バイトに基づく測定の単位で表される。 In one embodiment, the malware analysis module 140 may perform real-time steganographic detection and steganographic protection in kernel mode. Upon detecting the transmission of a file through a firewall, operating system, or email system, the malware analysis module 140 may determine the size of the file. The size of a file is a measure of how much data a file contains or how much storage it consumes. File size is usually expressed in units of measurement based on bytes.

一実施形態において、マルウェア分析モジュール140は、ファイルのセクションヘッダに対するポインタを取得することによってファイルのサイズを決定してよい。セクションヘッダは、ファイルの複数のセクションに関連付けられている。ファイルの複数のセクションの各セクションiについて、マルウェア分析モジュール140は、セクションiのサイズsiを決定してよい。マルウェア分析モジュール140は、ファイルの複数のセクションの各セクションiのサイズsiを合計して、ファイルのサイズをΣiiとして決定してよい。 In one embodiment, the malware analysis module 140 may determine the size of the file by obtaining a pointer to the section header of the file. Section headers are associated with multiple sections of a file. For each section i of the multiple sections of the file, the malware analysis module 140 may determine the size s i of the section i. The malware analysis module 140 may sum the size s i of each section i of multiple sections of the file to determine the size of the file as Σ i s i .

一実施形態において、マルウェア分析モジュール140は、ファイルのファイル名またはファイルのパスを使用してファイルを開くことによって、ファイルのセクションヘッダに対するポインタを取得してよい。ファイルのファイル名は、ファイルを一意に識別するために使用される名前である。ファイルシステムは、ファイル名長さ、およびファイル名内の許可される文字に制限を課すことがある。ファイル名は、ホスト名、デバイス名、ディレクトリ(またはパス)、ファイルの基底名、種類(フォーマットまたは拡張子)、およびファイルのバージョンのうちの1つまたは複数を含んでよい。 In one embodiment, the malware analysis module 140 may obtain the pointer to the section header of the file by opening the file using the filename or path of the file. The filename of a file is the name used to uniquely identify the file. The file system may impose restrictions on the filename length and the characters allowed in the filename. The file name may include one or more of a host name, device name, directory (or path), file base name, type (format or extension), and file version.

マルウェア分析モジュール140は、ファイルのヘッダを読み取る。ファイルのヘッダは、通常、ファイルの先頭に記憶されるメタデータを含んでよい。メタデータは、ファイルフォーマットまたは含まれるデータの種類に応じて、他の領域、たとえばファイルの最後などに存在してもよい。ファイルのヘッダは、文字ベース(テキスト)、バイナリヘッダなどであってよい。ファイルのヘッダは、ファイルフォーマットを識別するとともに、(画像ファイルに関して)画像フォーマット、サイズ、解像度、および色空間などに関する情報を記憶してよい。 The malware analysis module 140 reads the header of the file. The file header may typically include metadata stored at the beginning of the file. The metadata may reside in other areas, such as at the end of the file, depending on the file format or the type of data contained. The file header may be character-based (text), binary header, etc. The header of the file may identify the file format and store information about the image format (for the image file), size, resolution, color space, etc.

マルウェア分析モジュール140は、ヘッダからマジックナンバーを取り出してよい。マジックナンバーは、ファイルフォーマットまたはプロトコルを識別するために使用される数値またはテキスト値であってよい。たとえば、マジックナンバーは、ファイルのフォーマットを識別するために使用されるファイル内のバイトであってよい。通常、マジックナンバーは、ファイルの始まりに置かれた短いシーケンスのバイト(たとえば4バイト長)である。たとえば、ポータブル実行可能(PE)ファイルに関しては、16進数の署名が「4D 5A」であってよく、マジックナンバーは「MZ」であってよい。マルウェア分析モジュール140は、マジックナンバーを検証して、ファイルのセクションヘッダに対するポインタを取得してよい。 The malware analysis module 140 may retrieve the magic number from the header. The magic number may be a numeric or text value used to identify a file format or protocol. For example, the magic number may be a byte within the file used to identify the format of the file. The magic number is typically a short sequence of bytes (eg, 4 bytes long) placed at the beginning of the file. For example, for a portable executable (PE) file, the hexadecimal signature may be "4D 5A" and the magic number may be "MZ". Malware analysis module 140 may validate the magic number to obtain a pointer to the section header of the file.

ファイルシステムは、ファイルのファイルサイズであってよい。たとえば、ファイルシステムは、ファイルに関連付けられているストレージの大きさを示すファイルのバイト数を記憶してよい。記憶されたファイルサイズは、システム限界までの非負の整数バイトであってよい。別の例において、記憶されたファイルサイズは、物理ストレージデバイス上でファイルによって占有されたブロックまたはトラックの数であってよい。この例においては、ソフトウェアが正確なバイト数を追跡するために使用されてよい。マルウェア分析モジュール140は、管理ノード100のファイルシステムからファイルの記憶されたファイルサイズを取り出してよい。ファイルシステムがサポートする最大ファイルサイズは、ファイルシステムの容量だけでなく、ファイルサイズ情報の記憶用に予約されたビットの数にも依存してよい。FAT32ファイルシステムにおける最大ファイルサイズは、たとえば、4ギガバイトよりも1バイト少ない4,294,967,295バイトである。 The file system may be the file size of the file. For example, the file system may store the number of bytes in the file that indicates the amount of storage associated with the file. The stored file size may be a non-negative integer byte up to the system limit. In another example, the stored file size may be the number of blocks or tracks occupied by the file on the physical storage device. In this example, software may be used to keep track of the exact number of bytes. The malware analysis module 140 may retrieve the stored file size of the file from the management node 100 file system. The maximum file size supported by a file system may depend not only on the capacity of the file system, but also on the number of bits reserved for storage of file size information. The maximum file size in the FAT32 file system is, for example, 4,294,967,295 bytes, which is 1 byte smaller than 4 gigabytes.

マルウェア分析モジュール140は、ファイルの決定されたサイズをファイルの記憶されたファイルサイズと比較してよい。ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、マルウェア分析モジュール140は、ファイルに関してステガノグラフィ検出分析を実行してよい。一実施形態において、マルウェア分析モジュール140は、ファイルにおける付加されたペイロードを識別することによって、ステガノグラフィ検出分析を実行してよい。付加されたペイロードは、マルウェアの実際の悪意ある目的を実行する本体またはデータである。(識別され除去されない場合に)ペイロードは、速度低下もしくはフリーズ、スパムの送信、データの暗号化、ディスク上のファイルの削除、システムのクラッシュ、またはファイルの破損などを管理ノード100に行わせることがある。マルウェア分析モジュール140は、付加されたペイロードを分析して、付加されたペイロードのファイルフォーマットを決定してよい。付加されたペイロードのファイルフォーマットは、付加されたペイロードに情報が記憶(符号化)される方法の構造である。たとえば、付加されたペイロードは、画像もしくはラスタデータ用のJPEGもしくはTIFF、ベクタデータ用のAI(Adobe Illustrator)、または文書交換用のPDFであってよい。マルウェア分析モジュール140は、付加されたペイロードのファイルフォーマットに基づいて、ステガノグラフィ検出分析を実行してよい。 Malware analysis module 140 may compare the determined size of the file with the stored file size of the file. In response to the determined size of the file being greater than the stored file size of the file, malware analysis module 140 may perform steganographic detection analysis on the file. In one embodiment, the malware analysis module 140 may perform steganographic detection analysis by identifying the added payload in the file. The attached payload is the body or data that performs the actual malicious purpose of the malware. The payload (if not identified and removed) can cause the management node 100 to slow down or freeze, send spam, encrypt data, delete files on disk, crash the system, or corrupt files. is there. The malware analysis module 140 may analyze the attached payload to determine the file format of the attached payload. The file format of the added payload is the structure of the way information is stored (encoded) in the added payload. For example, the added payload may be JPEG or TIFF for image or raster data, AI (Adobe Illustrator) for vector data, or PDF for document exchange. The malware analysis module 140 may perform steganographic detection analysis based on the file format of the attached payload.

一実施形態において、マルウェア分析モジュール140は、モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、付加されたペイロード内のデータが暗号化されているかどうかを決定してよい。モンテカルロ近似の実行が、図5に関して示され以下に説明される。 In one embodiment, the malware analysis module 140 performs one or more of a Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision to determine whether within the appended payload. It may be determined whether the data is encrypted. A Monte Carlo approximation implementation is shown and described below with respect to FIG.

一実施形態において、マルウェア分析モジュール140は、エントロピ決定を行って、付加されたペイロード内のデータが暗号化されているかどうかを決定してよい。エントロピは、 In one embodiment, the malware analysis module 140 may make an entropy decision to determine if the data in the attached payload is encrypted. Entropy is

Figure 2020522808
Figure 2020522808

として、値の確率分布の負の対数を取って付加されたペイロードのエントロピを計算することによって、付加されたペイロードにおける情報コンテンツの量を測定する。 As, the amount of information content in the added payload is measured by taking the negative logarithm of the probability distribution of values and calculating the entropy of the added payload.

上記のエントロピ決定において、Hは、総エントロピであり、Piは、付加されたペイロードから読み取られたバイトの値である。暗号化および難読化されたファイルは通常、プレーンテキストまたは構造化データファイルよりもはるかに高いエントロピを有する。エントロピHは、エントロピ閾値と比較されてよい。閾値より上のエントロピは、付加されたペイロードが暗号化または圧縮されている可能性が高いことを示し、したがって、それはランサムウェアに影響されたおそれがある。マルウェア分析モジュール140は、セクション(バッファ)または付加されたペイロード全体に関してエントロピ計算を行って、付加されたペイロード内に隠された(「パックされた」)マルウェアの隠されたまたは暗号化されたコピーを検出してよい。 In the entropy determination above, H is the total entropy and P i is the value of the bytes read from the attached payload. Encrypted and obfuscated files typically have much higher entropy than plain text or structured data files. Entropy H may be compared to an entropy threshold. Entropy above the threshold indicates that the attached payload is likely to be encrypted or compressed, so it may have been affected by ransomware. The malware analysis module 140 performs entropy calculations on sections (buffers) or the entire attached payload to hide (or "pack") the hidden or encrypted copy of the malware in the attached payload. May be detected.

一実施形態において、マルウェア分析モジュール140は、系列係数分析を行って、付加されたペイロード内のデータが暗号化されているかどうかを決定してよい。系列係数分析は、特定の時間の期間にわたる同じ変数の観測値間の関係、この場合は、追加されたペイロードにおける各バイトの変化する値を記述する。系列係数分析は、付加されたペイロードにおけるバイトの値が相関されているかどうかを決定する。相関がない場合、それは、追加されたペイロードにおける後のバイトの値が前の値によって予測できないことを意味する。系列相関値が低いほど、強力な暗号化の確率が高い。変数の系列相関がゼロとして測定される場合、それは、相関が存在せず、観測値の各々が互いに独立していることを意味する。逆に、変数の系列相関が1に向かって傾斜する場合、それは、観測値が系列相関され、将来の観測値が過去の値によって影響されることを意味する。 In one embodiment, the malware analysis module 140 may perform a series coefficient analysis to determine if the data in the attached payload is encrypted. Sequence coefficient analysis describes the relationship between observations of the same variable over a specific time period, in this case the varying value of each byte in the added payload. Sequence coefficient analysis determines if the byte values in the added payload are correlated. If there is no correlation, it means that the value of the later byte in the added payload cannot be predicted by the previous value. The lower the serial correlation value, the higher the probability of strong encryption. If the serial correlation of a variable is measured as zero, it means that there is no correlation and each of the observations is independent of each other. Conversely, if the serial correlation of a variable slopes toward 1, it means that the observed values are serially correlated and future observed values are affected by past values.

一実施形態において、マルウェア分析モジュール140は、カイ二乗決定を行って、付加されたペイロード内のデータが暗号化されているかどうかを決定してよい。カイ二乗決定は、暗号化されたファイルから圧縮されたファイルを区別するために使用されてよい。カイ二乗決定は、観測されたデータを期待されたデータと比較するために一般的に使用される単純な統計的検定である。カイ二乗検定は、観測された分布が偶然による可能性を検定することが意図されている。それは、「適合度」統計とも呼ばれ、なぜならば、それは変数が独立である場合に観測された分布が期待された分布にいかに良く適合するかを測定するからである。圧縮されたペイロードは、高いエントロピおよび大きいカイ二乗値を有することになる。バイトの完全にランダムなペイロードの期待された値は、平均127.5(255/2)になるであろう。これは、暗号化されたファイル、圧縮されたファイル、および暗号化された圧縮されたファイルの決定を可能にする。カイ二乗値を計算するための公式は、 In one embodiment, the malware analysis module 140 may make a chi-square decision to determine if the data in the appended payload is encrypted. Chi-square determination may be used to distinguish compressed files from encrypted files. Chi-square decision is a simple statistical test commonly used to compare observed data with expected data. The chi-square test is intended to test the chance that an observed distribution is due to chance. It is also called the "goodness of fit" statistic, because it measures how well the observed distribution fits the expected distribution when the variables are independent. The compressed payload will have high entropy and large chi-square value. The expected value for a completely random payload of bytes would average 127.5 (255/2). This allows the determination of encrypted files, compressed files, and encrypted compressed files. The formula for calculating the chi-square value is

Figure 2020522808
Figure 2020522808

である。 Is.

一実施形態において、マルウェア分析モジュール140は、算術平均決定および標準偏差決定のうちの1つまたは複数を行って、付加されたペイロード内のデータが暗号化されているかどうかを決定する。付加されたペイロードが暗号化されている場合、付加されたペイロードのデータ値の算術平均は、およそ127.5(255/2)に等しいはずである。標準偏差σは、データ値の変動または分散の量を定量化するために使用される尺度である。算術平均および標準偏差は、付加されたペイロードの部分、および付加されたペイロード全体について計算される。マルウェア分析モジュール140は、オペレーティングシステムの内部I/Oバッファを直接読み取ってよいので、読み取りおよび書き込みオーバヘッドが低減される。これは、より多数の統計的決定が計算および分析されるのを可能にして、より少ないシステムリソースを使用して、より正確でより速い決定という結果となる。統計的決定は、データがアウトオブオーダで提供されても部分的および全体的値を提供することができる。そのようなアウトオブオーダ決定は、高性能、マルチスレッド、およびマルチプロセスの実施形態を可能にする。 In one embodiment, the malware analysis module 140 makes one or more of an arithmetic mean decision and a standard deviation decision to determine if the data in the appended payload is encrypted. If the added payload is encrypted, the arithmetic mean of the data values of the added payload should be approximately equal to 127.5 (255/2). Standard deviation σ is a measure used to quantify the amount of variation or variance in data values. The arithmetic mean and standard deviation are calculated for the portion of the payload added and for the entire payload added. Malware analysis module 140 may read the operating system's internal I/O buffers directly, thus reducing read and write overhead. This allows a greater number of statistical decisions to be calculated and analyzed, resulting in more accurate and faster decisions using less system resources. Statistical decisions can provide partial and global values even when the data is provided out of order. Such out-of-order decisions enable high performance, multi-threaded, and multi-process implementations.

一実施形態において、マルウェア分析モジュール140は、付加されたペイロード内の許可されていないデータの存在を識別することによって、ステガノグラフィ検出分析を実行してよい。たとえば、マルウェア分析モジュール140は、許可されていないルートキットインストールまたはデータ暗号化を検出してよい。データに対する許可されていない変更の検出が、図4に関して以下に詳細に説明される。一実施形態において、マルウェア分析モジュール140は、許可されていないシステムが機密情報を収集しているディスク上での命令を識別してよい(アウトバウンド実施形態)。したがって、データの許可されていない送信は防止されることが可能である。一実施形態において、静的分析が、プログラムの実行なしにファイルの分析でマルウェアからの保護をするために使用される。インバウンド実施形態において、企業環境に入って来る許可されていないコード、たとえば、インターネットからダウンロードされたmp3内に隠された悪意のあるコードのシーケンスが、検出されてよい。 In one embodiment, the malware analysis module 140 may perform steganographic detection analysis by identifying the presence of unauthorized data in the appended payload. For example, the malware analysis module 140 may detect unauthorized rootkit installations or data encryption. Detection of unauthorized changes to the data is described in detail below with respect to FIG. In one embodiment, the malware analysis module 140 may identify instructions on disk where an unauthorized system is collecting sensitive information (outbound embodiment). Therefore, unauthorized transmission of data can be prevented. In one embodiment, static analysis is used to protect against malware by analyzing files without program execution. In an inbound embodiment, unauthorized code coming into the corporate environment may be detected, for example a sequence of malicious code hidden in mp3 downloaded from the Internet.

一実施形態において、マルウェア分析モジュール140は、付加されたペイロード内のアセンブリレベル命令またはマシンレベル命令の存在を識別することによって、ステガノグラフィ検出分析を実行してよい。アセンブリレベル命令は、低水準プログラム言語を指し、これは、言語とアーキテクチャのマシンレベル命令との間に強い対応関係(ただし、しばしば一対一ではない)がある。マルウェア分析モジュール140は、疑わしい命令セット、たとえば、マシンまたはアセンブリレベル言語のインジケーションを識別する。実施形態において、方法は、部分的にファイルを逆アセンブルし、そのような疑わしい命令セットを探す。 In one embodiment, malware analysis module 140 may perform steganographic detection analysis by identifying the presence of assembly-level or machine-level instructions in the appended payload. Assembly-level instructions refer to low-level programming languages, which have strong (but often not one-to-one) correspondence between languages and architectural machine-level instructions. The malware analysis module 140 identifies suspicious instruction sets, eg, machine or assembly level language indications. In an embodiment, the method partially disassembles the file and looks for such suspicious instruction sets.

ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、マルウェア分析モジュール140は、信号を管理ノード100に送信してステガノグラフィ修正アクションを実行してよい。マルウェア分析モジュール140は、ステガノグラフィを記述する情報をクライアントデバイスに送信してよい。 In response to the steganographic detection analysis indicating the presence of steganography in the file, the malware analysis module 140 may send a signal to the management node 100 to perform steganographic correction actions. Malware analysis module 140 may send information describing steganography to client devices.

ルータ145は、管理ノード100とネットワーク110との間でデータパケットを転送するネットワーキングデバイスである。ルータ145は、トラフィック検出機能を実行してもよい。ネットワーク110からデータパケットが入って来ると、ルータ145は、パケットにおけるネットワークアドレス情報を読み取って、最終的宛先を決定する。スイッチ150は、データの受信、処理、および宛先デバイスに対する転送のために、パケット交換を使用することによってネットワーク上でデバイス同士を接続するコンピュータネットワーキングデバイスである。一実施形態において、スイッチ150は、OSIモデルのデータリンク層(レイヤ2)でデータを処理および転送するためにハードウェアアドレスを使用するマルチポートネットワークブリッジである。 The router 145 is a networking device that transfers data packets between the management node 100 and the network 110. The router 145 may perform a traffic detection function. When a data packet comes in from the network 110, the router 145 reads the network address information in the packet to determine the final destination. Switch 150 is a computer networking device that connects devices over a network by using packet switching to receive, process, and transfer data to a destination device. In one embodiment, the switch 150 is a multi-port network bridge that uses hardware addresses to process and transfer data at the data link layer (Layer 2) of the OSI model.

ネットワーク110は、クライアントデバイスおよび管理ノード100の間の通信を可能にする。この目的のために、ネットワーク110は、要求および対応するデータ(たとえば、ウェブページ上にポストされるべきファイルのコンテンツ)をクライアントデバイスから受信し、要求を管理ノード100に転送する。同様に、ネットワーク110は、管理ノード100から応答を受信し、応答をクライアントデバイスに転送する。 The network 110 enables communication between client devices and the management node 100. To this end, the network 110 receives the request and the corresponding data (eg, the content of the file to be posted on the web page) from the client device and forwards the request to the management node 100. Similarly, the network 110 receives the response from the management node 100 and forwards the response to the client device.

ネットワーク110は、インターネットおよび携帯電話ネットワークを含むことができる。一実施形態において、ネットワーク110は、標準的な通信技術および/またはプロトコルを使用する。したがって、ネットワーク110は、イーサネット、802.11、ロングタームエボリューション(LTE)などの技術を使用するリンクを含むことができる。ネットワーク110上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、HTTP、簡易メール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含むことができる。ネットワーク110上で交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)などを含む技術および/またはフォーマットを使用して表されることが可能である。また、リンクの全部または一部は、セキュアソケットレイヤ(SSL)、トランスポート層セキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化されることが可能である。別の実施形態において、エンティティは、上記に説明されたものに代えてまたは加えて、カスタムおよび/または専用データ通信技術を使用することができる。 The network 110 may include the Internet and mobile phone networks. In one embodiment, the network 110 uses standard communication technologies and/or protocols. As such, the network 110 may include links using technologies such as Ethernet, 802.11, Long Term Evolution (LTE), and so on. The networking protocols used on the network 110 are Multi-Protocol Label Switching (MPLS), Transmission Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), HTTP, Simple Mail Transfer Protocol (SMTP), File. It may include a transfer protocol (FTP) or the like. The data exchanged over network 110 can be represented using technologies and/or formats including Hypertext Markup Language (HTML), Extensible Markup Language (XML), and so on. In addition, all or part of the link is encrypted using conventional encryption techniques such as Secure Socket Layer (SSL), Transport Layer Security (TLS), Virtual Private Network (VPN), Internet Protocol Security (IPsec). Can be converted to. In another embodiment, the entity may use custom and/or proprietary data communication techniques in place of or in addition to those described above.

プラットフォーム上のユーザモードおよびカーネルモードにおいて実行されているアプリケーションに関するマルウェアの検出
図2は、実施形態に従う、プラットフォーム上のユーザモード235において実行されているアプリケーション225に関するマルウェアのリアルタイム検出およびマルウェアからの保護の例示的なブロック図を示す。示されているプラットフォームは、たとえば、Intel、AMD、またはARMによって製造されたプロセッサに基づいている。プラットフォーム上のオペレーティングシステムは、ユーザモード235およびカーネルモード240を含む。
Malware Detection for Applications Running in User Mode on Platform and Kernel Mode FIG. 2 illustrates real-time detection of malware and protection from malware for applications 225 running in user mode on platform 235, according to an embodiment. 3 shows an exemplary block diagram. The platform shown is based on a processor manufactured by, for example, Intel, AMD, or ARM. The operating system on the platform includes user mode 235 and kernel mode 240.

一実施形態において、カーネルモード240は、オペレーティングシステムの最も低いレベルの最も信頼された機能に予約される。カーネルモード240において実行されるコードは、単一の仮想アドレス空間を共有する。したがって、カーネルモードドライバ(たとえば200)は、他のドライバ(たとえば205)およびオペレーティングシステムそれ自体から隔離される。カーネルモード240において、実行中のコードは、基礎となるハードウェア(たとえば、図3を参照して以下に説明されるプロセッサ310)に対するアクセスを有する。それは、CPU命令および参照メモリアドレスを実行する。 In one embodiment, kernel mode 240 is reserved for the lowest level, most trusted features of the operating system. Code executed in kernel mode 240 shares a single virtual address space. Thus, the kernel mode driver (eg 200) is isolated from other drivers (eg 205) and the operating system itself. In kernel mode 240, the executing code has access to the underlying hardware (eg, processor 310 described below with reference to FIG. 3). It executes CPU instructions and reference memory addresses.

プロセッサは、プロセッサ上で実行されているコードの種類に応じて2つのモード間で切り替わってよい。たとえば、アプリケーション225はユーザモードにおいて実行されてよく、コアオペレーティングシステムコンポーネントはカーネルモード240において実行されてよい。ドライバは、カーネルモード240またはユーザモード235において実行されてよい。他の実施形態において、プラットフォームは、本明細書に説明されるものよりも追加のまたは少ないコンポーネントを備える。同様に、機能は、ここで説明されるのと異なる方式でコンポーネントおよび/または異なるエンティティの間で分散されることが可能である。 The processor may switch between the two modes depending on the type of code executing on the processor. For example, application 225 may run in user mode and core operating system components may run in kernel mode 240. The driver may run in kernel mode 240 or user mode 235. In other embodiments, the platform comprises additional or fewer components than those described herein. Similarly, functionality may be distributed among components and/or different entities in a different manner than described herein.

サービス220は、バックグラウンドにおいて動作するプログラムを指す(概念がデーモンに類似する)。ユーザモード235は、多くの異なる種類のオペレーティングシステム用に書かれたアプリケーション225を実行するサブシステム230を含む。ユーザモード235におけるサブシステム230は特定のシステムリソースに限定されるが、カーネルモード240は通常、システムメモリおよび外部デバイスに対する制限されないアクセスを有する。ユーザモード235は、I/Oマネージャ120を使用することによってI/O要求を適切なカーネルモードデバイスドライバ200に渡すことができるサブシステムを含む。 Service 220 refers to a program that runs in the background (similar in concept to a daemon). User mode 235 includes subsystem 230 that executes applications 225 written for many different types of operating systems. While the subsystem 230 in user mode 235 is limited to certain system resources, kernel mode 240 typically has unrestricted access to system memory and external devices. User mode 235 includes a subsystem that can pass I/O requests to the appropriate kernel mode device driver 200 by using I/O manager 120.

オペレーティングシステムは、ダイナミックリンクライブラリとして知られる共有ライブラリをサポートし、このライブラリは、1つのみのコピーがメモリにロードされた状態で複数のプロセスによって使用されることが可能であるコードライブラリである。たとえば、NTDLL.DLL215は、WindowsネイティブAPI(Win32または他のAPIサブシステムからのサポートなしに実行しなければならないオペレーティングシステムのユーザモードコンポーネントによって使用されるインターフェース)をエクスポートする。NTDLL.DLL215は、「NT Layer DLL」の記述を有するオペレーティングシステムによって作成されたファイルであり、NTカーネル機能を含むファイルである。一実施形態において、NTDLL.DLL215は、c:\Windows\system32またはc:\winnt\system32ディレクトリに配置されてよく、c:\i386ディレクトリに見出されることもある。 The operating system supports a shared library, known as a dynamic link library, which is a code library that can be used by multiple processes with only one copy loaded in memory. For example, NTDLL. DLL 215 exports Windows native APIs (the interfaces used by operating system user mode components that must run without support from Win32 or other API subsystems). NTDLL. The DLL 215 is a file created by an operating system having a description of "NT Layer DLL", and is a file including an NT kernel function. In one embodiment, NTDLL. DLL 215 may be located in the c:\Windows\system32 or c:\winnt\system32 directory, and may be found in the c:\i386 directory.

カーネルモードAPI210は、(図1に関して上記に説明されている)I/Oマネージャ120およびフィルタマネージャ125とインターフェースする。カーネルモードデバイスドライバ200は、管理ノード100にアタッチされた特定の種類のデバイスを操作および制御するプログラムである。カーネルは、図1に関して上記に説明されている。グラフィックスドライバ205は、特定のグラフィックデバイスと通信するためにカーネルモード240においてオペレーティングシステムよって使用されるソフトウェアを指す。ハードウェア抽象化層は図1に関して上記に説明されている。 Kernel mode API 210 interfaces with I/O manager 120 (described above with respect to FIG. 1) and filter manager 125. The kernel mode device driver 200 is a program for operating and controlling a specific type of device attached to the management node 100. The kernel is described above with respect to FIG. Graphics driver 205 refers to software used by the operating system in kernel mode 240 to communicate with a particular graphics device. The hardware abstraction layer is described above with respect to FIG.

一実施形態において、アプリケーション225は、1つまたは複数の実行スレッドを含んでよい。リング3において実行されているとき(ユーザモード235)、アプリケーション225(スレッド)は、WriteFile()などのシステムサービスを要求してよい。NTDLL.DLL215は、SysEnter x86命令を呼び出してよく、スレッドのコンテキストがユーザモード235からカーネルモード240に変わる。コンテキストスイッチは、カーネルスケジューラがプロセッサ(またはコア)を1つのスレッドから別のスレッドに切り替えるときに発生してよい。この場合、スレッドは、リング3からリング0に変更されているだけである。それは、同じプロセッサまたはコア上に留まっている。より高い優先度のスレッドが、前のスレッドのプロセッサに割り当てられてよい(コンテキストスイッチ)。一実施形態において、コンテキストスイッチは、2つのスレッドが状態を変更したときに発生する。他のアーキテクチャ上では、割り込みが生成されてよい。各スレッドは、2つのスタックを有し、1つはユーザモード235に使用されるもので、もう1つはカーネルモード240に使用されるものである。割り込みが生成され、次いで、スレッドカーネルが、NtWriteFile()またはZwWriteFile()などのカーネルモードネイティブAPI210を実行する。 In one embodiment, application 225 may include one or more threads of execution. When running on ring 3 (user mode 235), application 225 (thread) may request system services such as WriteFile(). NTDLL. DLL 215 may call the SysEnter x86 instruction, changing the thread's context from user mode 235 to kernel mode 240. A context switch may occur when the kernel scheduler switches the processor (or core) from one thread to another thread. In this case, the thread is only changed from ring 3 to ring 0. It stays on the same processor or core. The higher priority thread may be assigned to the processor of the previous thread (context switch). In one embodiment, a context switch occurs when two threads change state. Interrupts may be generated on other architectures. Each thread has two stacks, one for user mode 235 and one for kernel mode 240. An interrupt is generated and then the thread kernel executes a kernel mode native API 210 such as NtWriteFile() or ZwWriteFile().

一実施形態において、アプリケーション225がユーザモード235において実行されるとき、オペレーティングシステムがアプリケーション225のためのプロセスを作成してよい。プロセスは、プライベート仮想アドレス空間およびプライベートハンドルテーブルをアプリケーション225に提供する。アプリケーションの仮想アドレス空間はプライベートであるため、1つのアプリケーションが別のアプリケーションに属するデータを変更することはできない。各アプリケーション225は隔離されて実行され、ユーザモードアプリケーションがクラッシュした場合、クラッシュはその1つのアプリケーションに限定される。他のアプリケーションおよびオペレーティングシステムは、クラッシュによって影響されない。一実施形態において、カーネルモード240における各スレッドは、単一の仮想アドレス空間を共有する。したがって、すべてのカーネルモードスレッドおよびユーザモードスレッドが可視である。 In one embodiment, the operating system may create processes for the application 225 when the application 225 executes in the user mode 235. The process provides the application 225 with a private virtual address space and a private handle table. Since the virtual address space of an application is private, one application cannot change the data belonging to another application. Each application 225 runs in isolation and if a user mode application crashes, the crash is limited to that one application. Other applications and operating systems are unaffected by the crash. In one embodiment, each thread in kernel mode 240 shares a single virtual address space. Therefore, all kernel mode threads and user mode threads are visible.

一実施形態において、プロセッサは、複数のレベルのセキュリティを提供してよい。32ビットおよび64ビットIntelおよびAMDプロセッサの場合、カーネル165は、最も特権が与えられたリング0において実行されてよい。すべてのユーザアプリケーション225は、リング3において実行され、ダイナミックリンクライブラリ(DLL)システムを介してカーネルサービスを要求する。すべてのユーザモード235要求は、NTDLL.DLL215を使用して、特定の関数パラメータを修正し、SysEnterを使用して要求スレッドをリング3からリング0に切り替える。ディスパッチャが要求を受信し、それをエグゼクティブのサービスに渡す。スケジューラは、実行する準備ができているスレッドを再検査する。コンテキストスイッチを引き起こすユーザからの特権モード要求の間に、より低い優先度のスレッドが優先割り込みされてよい。 In one embodiment, the processor may provide multiple levels of security. For 32-bit and 64-bit Intel and AMD processors, the kernel 165 may execute in the most privileged ring 0. All user applications 225 run in ring 3 and request kernel services via the dynamic link library (DLL) system. All user mode 235 requests are NTDLL. The DLL 215 is used to modify certain function parameters and SysEnter is used to switch the requesting thread from ring 3 to ring 0. The dispatcher receives the request and passes it to the executive's service. The scheduler rechecks threads that are ready to run. A lower priority thread may be preempted during a privileged mode request from a user that causes a context switch.

例示的なフィルタマネージャおよびミニフィルタドライバ
図3は、実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のための例示的なフィルタマネージャ125ならびにミニフィルタドライバ320、325、および330を示す。他の実施形態において、構成は、本明細書に説明されるものよりも追加のまたは少ないコンポーネントを備える。同様に、機能は、ここで説明されるのと異なる方式でコンポーネントおよび/または異なるエンティティの間で分散されることが可能である。
Exemplary Filter Manager and Mini Filter Driver FIG. 3 illustrates an exemplary filter manager 125 and mini filter drivers 320, 325, and 330 for real-time detection of malware and protection from malware, according to an embodiment. In other embodiments, the configuration comprises additional or fewer components than those described herein. Similarly, functionality may be distributed among components and/or different entities in a different manner than described herein.

プロセッサ310上でユーザモード235において実行されているアプリケーション225またはプロセスは、ユーザ要求300(たとえば、ファイルオープン要求などのファイル操作要求)を生成してよい。一実施形態において、ユーザモード235におけるプロセス225は、Windows APIでファイルを作成するためにコールを行う。このコールは、ファイルI/Oを求めるユーザ要求300をトリガする(たとえば、Windows NT APIコール)。要求300は、NTDLL.DLL215を通じて進む。I/Oマネージャ120は、ユーザモード235において実行されているプロセス225によって開始されたファイル操作要求300を検出する。一実施形態において、I/Oマネージャ120は、Windowsオペレーティングシステムの一部であってよい。I/Oマネージャ120は、ターゲットファイルがどこに配置されているか(たとえば、D:\drive)を特定し、ファイルオープン要求300をインターセプトすることにドライバが関心を有するかどうかを決定するためにフィルタマネージャ125にメッセージを送信する。フィルタマネージャ125は、特定のファイルシステムおよび特定のボリュームにアタッチされる。 An application 225 or process running in user mode 235 on processor 310 may generate user request 300 (eg, a file operation request such as a file open request). In one embodiment, the process 225 in user mode 235 makes a call to create a file with the Windows API. This call triggers a user request 300 for file I/O (eg, Windows NT API call). Request 300 is NTDLL. Proceed through DLL 215. The I/O manager 120 detects the file operation request 300 initiated by the process 225 executing in the user mode 235. In one embodiment, I/O manager 120 may be part of the Windows operating system. The I/O manager 120 identifies where the target file is located (eg, D:\drive) and determines whether the driver is interested in intercepting the file open request 300. Send the message to 125. The filter manager 125 is attached to a particular file system and a particular volume.

一実施形態において、フィルタマネージャ125はカーネルモード240において初期化される。フィルタマネージャ125は、ファイル操作要求300に対応するファイルハンドルから、ファイル操作要求300が所定の操作たとえばファイルオープン要求に対応するかどうかを決定してよい。フィルタマネージャ125は、ファイルシステムフィルタドライバにおいて一般的に必要な機能性を提示するカーネルモードドライバである。ミニフィルタドライバ(たとえばミニフィルタドライバA320)は、この機能性を使用するように書かれてよく、それによって、より高品質でより堅牢なドライバを作成するとともに開発プロセスを短縮する。ファイルハンドル(ファイル記述子と呼ばれることもある)は、パイプまたはネットワークソケットなどのファイルまたは他の入出力リソースにアクセスするために使用される抽象的インジケータ(たとえば数)である。ファイルが開かれるとき、要求されるファイルアクセスの種類、たとえば、読み取り、書き込み、共有、および排他などが決定される。ミニフィルタドライバA320またはC330が、ハンドル追加ステップを行う。ハンドル追加ステップは、ファイルハンドルが所定のものであるかどうかを決定し、それをツリーに格納する。それが強力な暗号化を用いてバッファを書き込んでいる場合は、所定のものである。ハンドルが所定のものでない場合、それは無視されることができる。 In one embodiment, the filter manager 125 is initialized in kernel mode 240. From the file handle corresponding to the file operation request 300, the filter manager 125 may determine whether the file operation request 300 corresponds to a predetermined operation, such as a file open request. Filter manager 125 is a kernel-mode driver that presents the functionality typically required in file system filter drivers. Mini filter drivers (eg, mini filter driver A320) may be written to use this functionality, thereby creating higher quality, more robust drivers and shortening the development process. A file handle (sometimes called a file descriptor) is an abstract indicator (eg, number) used to access a file or other I/O resource such as a pipe or network socket. When a file is opened, the type of file access required, such as read, write, share, and exclusive is determined. The mini-filter driver A320 or C330 performs the handle addition step. The handle addition step determines whether the file handle is a predetermined one and stores it in the tree. If it's writing the buffer with strong encryption, it's expected. If the handle is not the given one, it can be ignored.

ファイル操作要求300が所定の操作に対応すると決定することに応答して、ファイル操作要求300がインターセプトされる。一実施形態において、フィルタマネージャ125は、ファイル操作要求をインターセプトするためにミニフィルタドライバ(たとえばミニフィルタドライバA320)が登録されているかどうかを決定することによって、ファイル操作要求300をインターセプトする。ミニフィルタドライバA320は、所定のイベント(たとえば、ファイルオープン(fopen)、読み取り、書き込み、クローズ、名前変更)についてフィルタマネージャ125に事前に登録されていてよい。ファイル操作要求をインターセプトするためにミニフィルタドライバA320が登録されていると決定することに応答して、フィルタマネージャ125は、ファイル操作要求300をミニフィルタドライバA320に送信する。 The file operation request 300 is intercepted in response to determining that the file operation request 300 corresponds to a predetermined operation. In one embodiment, the filter manager 125 intercepts the file operation request 300 by determining whether a mini filter driver (eg, mini filter driver A320) is registered to intercept the file operation request. The mini-filter driver A320 may be pre-registered with the filter manager 125 for certain events (eg file open (fopen), read, write, close, rename). In response to determining that the mini filter driver A 320 is registered to intercept the file manipulation request, the filter manager 125 sends a file manipulation request 300 to the mini filter driver A 320.

一例において、フィルタマネージャ125は、ミニフィルタドライバ(たとえばミニフィルタドライバA320)が要求300をインターセプトすることに関心があるかどうかをチェックする。フィルタマネージャ125は、コールバックによってミニフィルタドライバA320を識別してよい。まず、ミニフィルタドライバA320は登録を行い、次いで、それは、どのイベントが関心を持たれているかを識別する。操作は、以下のように実装されてよい。 In one example, the filter manager 125 checks if a mini filter driver (eg, mini filter driver A320) is interested in intercepting the request 300. The filter manager 125 may identify the mini filter driver A320 by a callback. First, the mini-filter driver A320 does registration, which then identifies which event is of interest. The operation may be implemented as follows.

Figure 2020522808
Figure 2020522808

マルウェア検出分析は、検出されたファイル操作要求300に関連付けられたファイルバッファに関して行われて、マルウェアの存在を示す挙動を検出する。カーネルモード240におけるミニフィルタドライバは、ファイルバッファに対するマルウェア検出分析を行って、許可されていない/疑わしい挙動を検出する。マルウェア検出分析は、モンテカルロ近似、エントロピ、および/または系列係数分析を含んでよい。分析は、ファイルバッファにおけるデータが暗号化されているかどうかを決定することを含む。たとえば、疑わしい書き込み操作が検出されることがある。ミニフィルタドライバは、オペレーティングシステムバッファからデータを直接読み取って、性能を増大し、統計分析のオーバヘッドを低減してよい。マルウェア分析は、上記で図1に関して説明された統計的技法を使用して、ファイルが暗号化されているかどうかを決定する。「カーネルバッファ分析」ステップは、ランサムウェアおよびマルウェア分析を行ってよい。ステガノグラフィ分析の一部が行われてもよい。したがって、ステガノグラフィは、複数のエンティティ、たとえば、静的(スキャン)、動的(リアルタイム)、ファイアウォール、smtpサーバなどによって行われることがある。 Malware detection analysis is performed on the file buffer associated with the detected file manipulation request 300 to detect behavior indicative of the presence of malware. The minifilter driver in kernel mode 240 performs malware detection analysis on the file buffer to detect unauthorized/suspicious behavior. Malware detection analysis may include Monte Carlo approximation, entropy, and/or sequence coefficient analysis. The analysis includes determining whether the data in the file buffer is encrypted. For example, suspicious write operations may be detected. The minifilter driver may read data directly from the operating system buffer to increase performance and reduce statistical analysis overhead. Malware analysis uses the statistical techniques described above with respect to FIG. 1 to determine if a file is encrypted. The "kernel buffer analysis" step may perform ransomware and malware analysis. Part of the steganographic analysis may be performed. Therefore, steganography may be performed by multiple entities, such as static (scan), dynamic (real-time), firewall, smtp server, etc.

マルウェアの存在を示す挙動を検出することに応答して、検出されたファイル操作要求300を開始することを担当するプロセス225が識別される。ミニフィルタドライバA320は、書き込み操作に関するマルウェア分析を行う。ミニフィルタドライバA320は、ファイルアクセス前操作(ファイル読み取り/書き込み要求)を取り扱う。フィルタマネージャ125は、ミニフィルタドライバA320にコールを送信し、ミニフィルタドライバA320は、カイ二乗、エントロピ、系列係数相関、およびモンテカルロパイ近似の組み合わせを決定して、それがファイルオープン操作300を進めるべきか否かを決める。ミニフィルタドライバA320は、それがオペレーティングシステムカーネルI/Oバッファにおける書き込みデータを既に有するので、書き込みを分析することができる。ミニフィルタドライバA320は、マルウェア状態変化に関して書き込みバッファを分析する。主要なマルウェア検出分析が行われ、データが暗号化されていないと決定されたときのみにデータが書き込まれる。マルウェア分析が強力な暗号化を示さない場合、FileWrite()操作の成功が可能にされる。 In response to detecting the behavior indicative of the presence of malware, the process 225 responsible for initiating the detected file manipulation request 300 is identified. The mini filter driver A320 performs malware analysis regarding the write operation. The mini-filter driver A320 handles pre-file access operations (file read/write requests). The filter manager 125 sends a call to the mini filter driver A 320, which determines the combination of chi-square, entropy, sequence coefficient correlation, and Monte Carlo pie approximation, which should proceed with the file open operation 300. Decide whether or not. The mini-filter driver A320 can analyze the write as it already has the write data in the operating system kernel I/O buffer. The mini-filter driver A320 analyzes the write buffer for malware state changes. Data is written only when a major malware detection analysis is done and it is determined that the data is not encrypted. If the malware analysis does not show strong encryption, then a successful FileWrite() operation is allowed.

ミニフィルタドライバC330は、読み取りに関するマルウェア分析を行う。ミニフィルタドライバC330は、ファイルアクセス後操作も取り扱う。それは、マルウェア状態変化に関して読み取りバッファを分析する。要求300がミニフィルタドライバC330に到達する前に、システムに対する状態変化(書き込み)がない。ミニフィルタドライバA320またはC330がマルウェアを示す状態変化を検出した場合、それらは、ファイル操作330を停止することができる。ミニフィルタドライバC330が「ファイル読み取り(fread)」操作を承認する場合、フィルタマネージャ215は、ファイルシステムドライバ305に要求を送信し、ファイルシステムドライバ305は、I/O要求パケットをストレージドライバスタック315に送る。ファイルシステムドライバ305は、リムーバブルメディア(たとえばCD−ROM)用のファイルシステムドライバ、新しいファイルシステムのためのモデルとして使用されるWindows inbox FastFATファイルシステムに基づくファイルシステムドライバ、ファイル内のデータを検査するトランザクション対応ファイルスキャナなどであってよい。ミニフィルタドライバC330が再び呼び出され、バッファを検査し、フィルタマネージャ125に承認を送る。 The mini filter driver C330 performs malware analysis regarding reading. The mini filter driver C330 also handles post file access operations. It analyzes the read buffer for malware state changes. There is no state change (write) to the system before the request 300 reaches the mini filter driver C330. If the minifilter driver A320 or C330 detects a state change indicative of malware, they can stop the file operation 330. If the mini-filter driver C330 approves the "fread" operation, the filter manager 215 sends a request to the file system driver 305, which sends the I/O request packet to the storage driver stack 315. send. The file system driver 305 is a file system driver for removable media (for example, a CD-ROM), a file system driver based on the Windows inbox FastFAT file system used as a model for a new file system, a transaction for inspecting data in a file. It may be a compatible file scanner or the like. The minifilter driver C330 is called again to inspect the buffer and send an acknowledgment to the filter manager 125.

プロセッサ310を使用してデータが読み取られると、IRPがフィルタマネージャに戻される。ミニフィルタCは、IRPにおけるデータを調べる。たとえば、書き込み操作の前に、ドライバが書き込みバッファを分析する場合、それは、エントロピ、カイ二乗、モンテカルロPi近似、系列相関係数、平均、標準偏差、および他の統計値を計算して、許可されていないデータ暗号化、データ削除、または疑わしい挙動を検出する。ミニフィルタAは、これらの統計に基づいて、暗号化されたデータをディスク155上のファイルに書き込むマルウェアからの保護をする。ミニフィルタCは、以前に暗号化されたデータを識別し、データを読み取るプロセスからホワイトリストおよびブラックリストを構築することを助ける。ミニフィルタAは、データが暗号化されないように保護をするが、ミニフィルタCは、暗号化されたデータを復号することはできないので、それは、ファイルを使用しているプロセスを識別する。ミニフィルタAは書き込み前操作検出として、ミニフィルタCは読み取り後操作検出として最も良く説明される可能性がある。システムは、前および後操作についてそのデータ構造を更新し維持するように登録をする。 When the data is read using the processor 310, the IRP is returned to the filter manager. Minifilter C examines the data at the IRP. For example, if the driver analyzes the write buffer before a write operation, it will allow entropy, chi-square, Monte Carlo Pi approximations, serial correlation coefficients, means, standard deviations, and other statistical values to allow it. Not detect data encryption, data deletion, or suspicious behavior. Minifilter A protects against malware that writes encrypted data to files on disk 155 based on these statistics. Minifilter C helps identify previously encrypted data and builds whitelists and blacklists from the process of reading the data. Minifilter A protects the data from being encrypted, but minifilter C cannot decrypt the encrypted data, so it identifies the process that is using the file. Minifilter A may best be described as pre-write operation detection and minifilter C as post-read operation detection. The system registers to update and maintain its data structure for pre and post operations.

ミニフィルタドライバB325は、サードパーティドライバである。開示されている実施形態は、ミニフィルタドライバB325を使用して、ファイルの削除、ファイルの名前変更、またはディクトリの変更を試みるマルウェアを検出してもよい。 The mini filter driver B325 is a third party driver. The disclosed embodiments may use the minifilter driver B325 to detect malware that attempts to delete files, rename files, or change directories.

識別されたプロセス225の検索は、プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において行われて、識別されたプロセス225が信頼されたプロセスであるかどうかを決定する。プログラムのブラックリストは、アクセスまたは実行する(実行)権限を与えられるべきではない知られている悪意のあるまたは疑わしいプログラムを含んでよい。これらのプログラムは通常、ウイルス、トロイの木馬、ワーム、スパイウェア、キーロガー、および他のマルウェア形態など、悪意のあるソフトウェアを含む。ブラックリストに載せられるプログラムは、企業または個人に脅威を与えることが知られているユーザ、ビジネスアプリケーション、プロセス、IPアドレス、および組織も含む。 A search for the identified process 225 is performed in one or more of the program blacklist and the program whitelist to determine if the identified process 225 is a trusted process. A program blacklist may include known malicious or suspicious programs that should not be authorized to access or execute (execute). These programs typically include malicious software such as viruses, Trojan horses, worms, spyware, keyloggers, and other forms of malware. Programs that are blacklisted also include users, business applications, processes, IP addresses, and organizations known to pose a threat to businesses or individuals.

プログラムのホワイトリストは、管理ノード100に対するアクセスを可能にされる許容可能なエンティティ(ソフトウェアアプリケーション、電子メールアドレス、ユーザ、プロセス、デバイスなど)のリストを含んでよい。ホワイトリストは、アプリケーション225を、それらのファイル名、サイズ、およびディレクトリパスに基づいて識別してよい。一実施形態において、ホワイトリストは、各コンポーネントまたは各ソフトウェア225の製造者または開発者に関連付けられた暗号学的ハッシュ技法およびデジタル署名の組み合わせを使用してよい。 The program white list may include a list of acceptable entities (software applications, email addresses, users, processes, devices, etc.) that are allowed access to the management node 100. The whitelist may identify the applications 225 based on their filename, size, and directory path. In one embodiment, the whitelist may use a combination of cryptographic hashing techniques and digital signatures associated with the manufacturer or developer of each component or software 225.

一例において、管理ノード100は、プログラムのブラックリスト上において識別されたプロセス225を特定することによって、識別されたプロセス225が信頼されたプロセスではないと決定することがある。管理ノード100は、マルウェアを記述する情報をクライアントデバイスに送信する。一例において、管理ノード100は、プログラムのホワイトリスト上において識別されたプロセス225を特定することによって、識別されたプロセス225が信頼されたプロセスであると決定することがある。その場合、ミニフィルタドライバは、検出されたファイル操作要求を無視する。 In one example, the management node 100 may determine that the identified process 225 is not a trusted process by identifying the identified process 225 on the program's blacklist. The management node 100 sends information describing the malware to the client device. In one example, the management node 100 may determine that the identified process 225 is a trusted process by identifying the identified process 225 on the whitelist of programs. In that case, the mini-filter driver ignores the detected file operation request.

ミニフィルタドライバA320およびミニフィルタドライバB330はカーネルモード240において実行されるので、それらは、どのプロセスがファイルの状態を変更しているかを決定することができる。ファイルが暗号化されている、または大量のデータが削除されている場合、管理ノード100は、ユーザに、ファイルシステムの状態をプロセス225が変更することを可能にしたいかどうかを尋ねてよい。ユーザが操作を承認した場合、それは許容され、処理されたイメージのSHA256ハッシュが任意選択でホワイトリストに記憶される。プロセスがマルウェアである場合、SHA256ハッシュはブラックリストに追加される。プロセスが実行されたとき、ドライバはブラックリストをチェックし、ブラックリストに載せられている場合は実行を防止する。 Since minifilter driver A320 and minifilter driver B330 execute in kernel mode 240, they can determine which process is changing the state of the file. If the file is encrypted or a large amount of data has been deleted, the management node 100 may ask the user if he wants to allow the process 225 to change the state of the file system. If the user approves the operation, it is accepted and the SHA256 hash of the processed image is optionally stored in a whitelist. If the process is malware, the SHA256 hash is blacklisted. The driver checks the blacklist when the process is executed and prevents execution if it is blacklisted.

一実施形態において、管理ノード100は、識別されたプロセス225が信頼されたプロセスであるかどうかを以下のように決定してよい。プログラムのブラックリストまたはプログラムのホワイトリスト上においてプロセス225を特定しないことに応答して、管理ノード100は、クライアントデバイスに、識別されたプロセスを許可することを求める要求を送信してよい。管理ノード100は、プロセス300が許可されているかどうかを問い合わせるために、プロンプトがクライアントデバイスへ提示されるようにするデータを生成してよく、たとえば、プロンプトはCAPTCHAを含んでよい。 In one embodiment, the management node 100 may determine if the identified process 225 is a trusted process as follows. In response to not identifying the process 225 on the blacklist of programs or the whitelist of programs, the management node 100 may send a request to the client device asking to authorize the identified process. The management node 100 may generate data that causes the prompt to be presented to the client device in order to query whether the process 300 is authorized, eg, the prompt may include CAPTCHA.

識別されたプロセス225を許可することを求める要求をクライアントデバイスに送信することに応答して、管理ノード100は、識別されたプロセス225が許可されないというメッセージをクライアントデバイスから受信することがある。その場合、識別されたプロセス225は、マルウェア検出のためにプログラムのブラックリストに追加される。識別されたプロセス225が許可されたというメッセージをクライアントデバイスから受信することに応答して、識別されたプロセス225は、プログラムのホワイトリストに追加されてよい。 In response to sending a request to the client device to authorize the identified process 225, the management node 100 may receive a message from the client device that the identified process 225 is not authorized. In that case, the identified process 225 is added to the program's blacklist for malware detection. In response to receiving from the client device a message that the identified process 225 is authorized, the identified process 225 may be added to the program's whitelist.

識別されたプロセス225が信頼されたプロセスではないと決定することに応答して、識別されたプロセス225に対してマルウェア修正アクションが実行される。攻撃詳細はローカルにログ記録される。たとえば、ミニフィルタドライバA320は、ファイル操作要求300を停止、一時停止、または許可するためにメッセージをフィルタマネージャ215に送信してよい。一実施形態において、同様の技法が、ファイアウォール135とインラインでインバウンドファイルを検査するために使用される。マルウェア分析は、マルウェアがファイアウォール135を通過してネットワークのルータ145およびスイッチ150に達するのを防止するために使用される。インライン実施形態はステガノグラフィを検出してもよい。あらゆる疑わしいファイルがログ記録され隔離されるので、ユーザは、それが誤検出であった場合にファイルを復元することができる。 In response to determining that the identified process 225 is not a trusted process, a malware modifying action is performed on the identified process 225. Attack details are logged locally. For example, the mini filter driver A 320 may send a message to the filter manager 215 to stop, suspend, or allow the file operation request 300. In one embodiment, similar techniques are used to inspect inbound files inline with firewall 135. Malware analysis is used to prevent malware from passing through firewall 135 to reach router 145 and switch 150 in the network. In-line embodiments may detect steganography. Any suspicious files are logged and quarantined so the user can restore the files if it was a false positive.

ボリュームシャドウサービスの例示的なコンポーネント
図4は、実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のためのボリュームシャドウサービス(VSS)の例示的なコンポーネントを示す。VSSは、VSSコピーサービス400、VSSリクエスタ405、VSSライタ410、ならびにVSSプロバイダ415、420、および425を含む。他の実施形態において、VSSは、本明細書に説明されるものよりも追加のまたは少ないコンポーネントを備える。同様に、機能は、ここで説明されるのと異なる方式でコンポーネントおよび/または異なるエンティティの間で分散されることが可能である。
Exemplary Components of Volume Shadow Service FIG. 4 illustrates exemplary components of the Volume Shadow Service (VSS) for real-time detection of malware and protection from malware, according to embodiments. The VSS includes a VSS copy service 400, a VSS requestor 405, a VSS writer 410, and VSS providers 415, 420 and 425. In other embodiments, the VSS comprises additional or fewer components than those described herein. Similarly, functionality may be distributed among components and/or different entities in a different manner than described herein.

ランサムウェアは、感染または暗号化されたファイルの回復を防止するためにVSSを無効にしようとすることがある。本明細書に開示されている実施形態は、特定のデータ回復APIを使用して、有用なバックアップが復元されてデータ損失を防止できることを確実にする。VSSは、許可されていない変更から保護をするために暗号化される構成データベースに読み取りおよび書き込みをする。VSSは、デバイスを分析し、コアおよびプロセッサ種類ならびに現在のワークロードに基づいて、そのデバイスに最適なリソース構成を自動的に作成する。プロセッサ情報およびメモリ情報が、スレッドプールのサイズを構成するために使用される。 Ransomware may try to disable VSS to prevent the recovery of infected or encrypted files. The embodiments disclosed herein use specific data recovery APIs to ensure that a useful backup can be restored to prevent data loss. VSS reads and writes to a configuration database that is encrypted to protect against unauthorized modification. VSS analyzes the device and automatically creates an optimal resource configuration for the device based on core and processor type and current workload. Processor information and memory information are used to configure the size of the thread pool.

マルウェア検出および除去などのイベントが、ローカルログに書き込まれる。ローカルログは、管理ノード100およびファイアウォール135から、セキュリティマネージャポリシによって指定された中央ログサーバに定期的に複製される。 Events such as malware detection and removal are written to the local log. Local logs are regularly replicated from the management node 100 and the firewall 135 to a central log server specified by the security manager policy.

モンテカルロパイ近似のための例示的なデータ点
図5は、実施形態に従う、モンテカルロパイ近似に関する例示的なデータ点を示す図である。モンテカルロパイ近似は、暗号化されたファイルから圧縮されたファイルを区別するために使用されてよい。モンテカルロシミュレーションは、ファイルにおける値のランダム性の測定を可能にする。モンテカルロシミュレーションの1つのアプリケーションは、ファイルにおけるデータに基づいてPi(π)の値を近似することである。ファイルに含まれる値がランダムであるほど、πの推定される値がより正確である。Pi(π)の値は、正方形におけるデータ点510の総数に対する内接単位円におけるデータ点500の比によって計算される。
Exemplary Data Points for Monte Carlo Pi Approximation FIG. 5 is a diagram illustrating exemplary data points for Monte Carlo pie approximation, according to an embodiment. The Monte Carlo pie approximation may be used to distinguish compressed files from encrypted files. Monte Carlo simulation allows measurement of the randomness of the values in the file. One application of Monte Carlo simulation is to approximate the value of Pi(π) based on the data in the file. The more random the values contained in the file, the more accurate the estimated value of π. The value of Pi(π) is calculated by the ratio of the data points 500 in the inscribed unit circle to the total number of data points 510 in the square.

図5は、内接単位円におけるデータ点500、および正方形におけるデータ点510の総数を示す。計算された近似値がPiの知られている値に近いほど、それがデータ値のランダム性をより良く表す。完全な暗号化アルゴリズムは完全にランダムな値を有することになり、Piの正確な近似値を提供する。一実施形態において、システムは以下の決定を行う。
円面積(AreaCircle)=πr2
正方形面積(AreaSquare)=(2r)2=4r2
FIG. 5 shows the total number of data points 500 in the inscribed unit circle and data points 510 in the square. The closer the calculated approximation is to the known value of Pi, the better it represents the randomness of the data values. The perfect encryption algorithm will have completely random values, providing an accurate approximation of Pi. In one embodiment, the system makes the following decisions.
Area of circle (AreaCircle)=πr 2
Square area (AreaSquare)=(2r) 2 =4r 2

半径505が1単位であり、円における点500が(x2+y2<=1)によって与えられると仮定する。円の面積/正方形の面積=(Pi×半径2)/(4×半径2)=Pi/4となる。したがって、点510の総数によって割られた円内部の点500の数は、Pi/4によって与えられる。 Suppose radius 505 is one unit and point 500 in the circle is given by (x 2 +y 2 <=1). Area of circle/area of square=(Pi×radius 2 )/(4×radius 2 )=Pi/4. Therefore, the number of points 500 inside the circle divided by the total number of points 510 is given by Pi/4.

マルウェアのリアルタイム検出およびマルウェアからの保護のための例示的なプロセス
図6は、実施形態に従う、マルウェアのリアルタイム検出およびマルウェアからの保護のための例示的なプロセスを示す。一実施形態において、図6のプロセスは管理ノード100によって行われる。他のエンティティ(たとえばマルウェア分析モジュール140)が、他の実施形態においてプロセスのステップの一部または全部を行ってよい。同様に、実施形態は、異なるおよび/もしくは追加のステップを含み、または異なる順序でステップを行ってよい。
Exemplary Process for Real-Time Detection of Malware and Protection from Malware FIG. 6 illustrates an exemplary process for real-time detection of malware and protection from malware according to an embodiment. In one embodiment, the process of FIG. 6 is performed by management node 100. Other entities (eg, malware analysis module 140) may perform some or all of the steps of the process in other embodiments. Similarly, embodiments may include different and/or additional steps, or the steps may be performed in a different order.

管理ノード100は、ユーザモード235において実行されているプロセス225によって開始されたファイル操作要求300を検出する600。管理ノード100は、ファイル操作要求300に対応するファイルハンドルから、ファイル操作要求300が所定の操作に対応するかどうかを決定することによって、ファイル操作要求300を検出してよい。 The management node 100 detects 600 a file operation request 300 initiated by the process 225 executing in the user mode 235. The management node 100 may detect the file operation request 300 by determining from the file handle corresponding to the file operation request 300 whether the file operation request 300 corresponds to a predetermined operation.

管理ノード100は、検出されたファイル操作要求300に関連付けられたファイルバッファに関してマルウェア検出分析を行って605、マルウェアの存在を示す挙動を検出する。マルウェア検出分析は、カイ二乗、エントロピ決定、系列係数相関、およびモンテカルロパイ近似の組み合わせを含んでよい。 The management node 100 performs 605 malware detection analysis on the file buffer associated with the detected file operation request 300 to detect a behavior indicating the presence of malware. Malware detection analysis may include a combination of chi-square, entropy determination, sequence coefficient correlation, and Monte Carlo pie approximation.

マルウェアの存在を示す挙動を検出することに応答して、管理ノード100は、検出されたファイル操作要求300を開始することを担当するプロセス225を識別する610。 In response to detecting the behavior indicative of the presence of malware, the management node 100 identifies 610 the process 225 responsible for initiating the detected file operation request 300.

管理ノード100は、プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、識別されたプロセス225の検索を行って615、識別されたプロセス225が信頼されたプロセスであるかどうかを決定する。プログラムのブラックリストは、アクセスまたは実行する(実行)権限を与えられるべきではない知られている悪意のあるまたは疑わしいプログラムを含んでよい。プログラムのホワイトリストは、管理ノード100に対するアクセスを可能にされる許容可能なエンティティ(ソフトウェアアプリケーション、電子メールアドレス、ユーザ、プロセス、デバイスなど)のリストを含んでよい。 The management node 100 searches 615 the identified process 225 in one or more of the program blacklist and the program whitelist to determine whether the identified process 225 is a trusted process. decide. A program blacklist may include known malicious or suspicious programs that should not be authorized to access or execute (execute). The program white list may include a list of acceptable entities (software applications, email addresses, users, processes, devices, etc.) that are allowed access to the management node 100.

識別されたプロセス225が信頼されたプロセスではないと決定することに応答して、管理ノード100は、識別されたプロセス225に対してマルウェア修正アクションを実行し620、マルウェアを記述する情報をクライアントデバイスに送信する。マルウェア修正アクションは、検出されたファイル操作要求に関連付けられた書き込み操作を終了することを含んでよい。マルウェア修正アクションは、検出されたファイル操作要求をメモリから削除することによって、検出されたファイル操作要求を終了することを含んでよい。マルウェア修正アクションは、識別されたプロセスに関連付けられたディスクファイルイメージを隔離することを含んでよい。 In response to determining that the identified process 225 is not a trusted process, the management node 100 performs 620 a malware remediation action on the identified process 225, providing information describing the malware to the client device. Send to. The malware modification action may include terminating the write operation associated with the detected file operation request. The malware modification action may include terminating the detected file manipulation request by deleting the detected file manipulation request from memory. The malware remediation action may include quarantining the disk file image associated with the identified process.

ステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のためのポータブル実行可能(PE)ファイル
図7は、実施形態に従う、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための例示的なポータブル実行可能(PE)ファイルのコンポーネントを示す。PEフォーマットは、実行ファイル、オブジェクトコード、DLL、FONフォントファイル、ならびにWindowsオペレーティングシステムの32ビットおよび64ビット版で使用される他のもののためのファイルフォーマットである。PEフォーマットは、Windows OSローダがラップされた実行可能コードを管理するために必要な情報をカプセル化するデータ構造である。
Portable Executable (PE) File for Real-time Steganography Detection and Protection from Steganography FIG. 7 illustrates an exemplary portable executable (PE) for real-time steganography detection and protection from steganography in kernel mode, according to an embodiment. ) Indicates the components of the file. The PE format is a file format for executable files, object code, DLLs, FON font files, and others used in 32-bit and 64-bit versions of the Windows operating system. The PE format is a data structure that encapsulates the information needed by the Windows OS loader to manage the wrapped executable code.

PEヘッダ765は、複数のセグメントが任意のメモリアドレスでロードされるのを可能にする再配置情報を含むDOS実行可能ヘッダ700を含む。DOSスタブ705は、MS−DOSにおいて実行される有効なアプリケーションである。それは、EXEイメージの先頭に配置される。セクションテーブルの各行(たとえば、715、720、および725)はセクションヘッダである。セクションヘッダはNULL730ターミネータを有してよい。各セクション(たとえば、735、745、および755)がNULLターミネータを有してもよい。 The PE header 765 includes a DOS executable header 700 that contains relocation information that allows multiple segments to be loaded at any memory address. The DOS stub 705 is a valid application executed in MS-DOS. It is placed at the beginning of the EXE image. Each row of the section table (eg, 715, 720, and 725) is a section header. The section header may have a NULL 730 terminator. Each section (eg, 735, 745, and 755) may have a NULL terminator.

本明細書に開示されている実施形態は、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための図7に示されたPEファイルフォーマットを使用する方法に関する。ステガノグラフィは、コンテナ内部にマルウェアを隠すために使用されてよい。コンテナは、ピクチャ、映画、音声ファイル、または実行ファイルであってよい。ステガノグラフィは、ピクチャ、mp3、またはexeファイル内に情報を隠すために使用されてよい。たとえば、128バイトテキストメッセージが4MBピクチャ内に隠されてよい。exeファイルが別のexeファイル内部に隠されてよい(パック)。マルウェアファイルはpkzipファイル内に隠されてよい。ユーザがウェブサイトを訪問しているとき、ウイルスのドライブバイダウンロードが発生することがある。マルウェアがユーザに送られることもある。次いで、それは、ユーザのメーリングリストなどにおいて、たとえば、パーソナライズされたクリスマスカードで各友達へ行くことがある。マルウェアは、数ヶ月の期間にわたってファイルを暗号化し、暗号化キーを除去することがある。従来のエッジファイアウォールは、添付ファイルがファイアウォールを通じて進むことを可能にされるので、ステガノグラフィを使用して隠されている隠れピクチャ、メッセージ、またはマルウェアを含むファイルを通常は検出できない。 The embodiments disclosed herein relate to methods of using the PE file format shown in FIG. 7 for real-time steganographic detection and protection from steganography in kernel mode. Steganography may be used to hide malware inside the container. The container may be a picture, movie, audio file, or executable file. Steganography may be used to hide information in picture, mp3, or exe files. For example, a 128 byte text message may be hidden within a 4MB picture. An exe file may be hidden inside another exe file (pack). Malware files may be hidden within pkzip files. A virus drive-by download may occur when a user is visiting a website. Malware may also be sent to users. It may then go to each friend on the user's mailing list, etc., for example with a personalized Christmas card. Malware may encrypt files and remove encryption keys over a period of months. Traditional edge firewalls typically cannot detect files with hidden pictures, messages, or malware that are hidden using steganography because attachments are allowed to pass through the firewall.

ファイアウォール、オペレーティングシステム、または電子メールシステムを介するファイルの送信が検出される。一実施形態において、PEはパースされる。PEを読み取りおよびパースする間に、Windows EXE、DLL、フォント、システムドライバ、およびオブジェクトコードの構造が、疑わしいAPI使用について分析される。例は、悪意のあるプログラムがメモリセクションにコピーされ実行されることを可能にすることがある読み取り、書き込み、および実行許可を有するメモリセクションの割り当てである。一実施形態において、WindowsAPIは、GetModuleFileNameEx()およびCreateFile()を呼び出すことによって提供されるプロセスの完全修飾名(FQFN)を使用してファイルを開くために使用される。ディスク上のイメージに対するハンドルが呼び出し元に返される。 Detects sending files through a firewall, operating system, or email system. In one embodiment, PE is parsed. While reading and parsing the PE, the structure of Windows EXE, DLLs, fonts, system drivers, and object code is analyzed for suspicious API usage. An example is the allocation of memory sections with read, write, and execute permissions that may allow a malicious program to be copied into the memory sections and executed. In one embodiment, the Windows API is used to open the file using the fully qualified name of the process (FQFN) provided by calling GetModuleFileNameEx() and CreateFile(). A handle to the image on disk is returned to the caller.

一実施形態において、PEファイルのサイズが決定され、記憶されたファイルのファイルサイズと比較される。この実施形態は、悪意のあるzipファイルまたは添付された実行ファイルなどの許可されていないデータをイメージが含むかどうかを検出するために使用されてよい。この実施形態において、PEファイルフォーマットの最後に記憶された隠された情報(たとえば、EXE、DLL、SCR、SYS、DRV、ACM、CPL、SCRなど)が識別されてよい。PEファイルのサイズを決定するために、ファイルがパースおよび分析される。ファイルは、ファイルの完全修飾ファイル名を使用して開かれる。ファイルのDOSヘッダ700がストレージデバイス155から読み取られる。ファイルが実行可能ファイルであるかどうかを決定するために、DOSヘッダ700が「MZ」で始まるかどうかが決定される。マジックナンバーがDOSヘッダ700から取り出される。マジックナンバーが検証されて、ファイルのセクションヘッダに対するポインタを取得する。セクションヘッダで始まるファイルの各セクションについて、セクションの名前および属性が検証される。セクションのサイズが決定される。ファイルのサイズを決定し、マルウェアによってしばしば利用される非標準的なセクション名を識別するために、ファイルの各セクションの名前およびサイズが決定される。 In one embodiment, the size of the PE file is determined and compared to the file size of the stored file. This embodiment may be used to detect whether an image contains unauthorized data such as malicious zip files or attached executables. In this embodiment, the last stored hidden information of the PE file format (eg, EXE, DLL, SCR, SYS, DRV, ACM, CPL, SCR, etc.) may be identified. The file is parsed and analyzed to determine the size of the PE file. The file is opened using the file's fully qualified file name. The DOS header 700 of the file is read from the storage device 155. To determine if the file is an executable file, it is determined whether the DOS header 700 begins with "MZ". The magic number is retrieved from the DOS header 700. The magic number is verified to get a pointer to the section header of the file. For each section of the file that begins with the section header, the section name and attributes are verified. The size of the section is determined. The name and size of each section of the file is determined to determine the size of the file and identify non-standard section names that are often used by malware.

一実施形態において、Winnt.h SDKヘッダファイルにおけるIMAGE_DOS_HEADER構造がストレージデバイス155から読み取られる。DOSヘッダ700はファイルの第1の部分である。このステップは、DOSヘッダ700がMZ「xx xx xx」で開始するかどうかを決定する。DOSヘッダ700がMZで始まる場合、それはDOSまたはWindowsプログラムである可能性がある。DOSヘッダ700がMZで始まらない場合、それは、実行ファイルでない(たとえば、JPG、GIFなどである可能性がある)。この区別が、どの分析を適用するかを決定する。DOSヘッダ700を読み取る目的は、ファイルが適切に形成されたことを確認することである。プロセスは、不正なヘッダの作成を探している。DOSヘッダ700は、静的(不変)であり、日付およびタイムスタンプを含む。DOSヘッダ700をパースする目的は、知られている優良なヘッダの既存のリストにない不正なヘッダの作成を検出することである。不正なヘッダ(PEヘッダ)は、マルウェアコード(不正な命令)を伴うセクションに対するポインタを有する。本明細書に開示されている実施形態は、マルウェアが実行可能ファイルにおける圧縮されたペイロードとして隠される可能性があるため、実行可能ファイルと非実行可能ファイルを区別する。ファイルの種類の決定は、ファイルにおけるステガノグラフィを検出するために使用される特定の分析を決定するために使用される。 In one embodiment, Winnt. The IMAGE_DOS_HEADER structure in the h SDK header file is read from the storage device 155. The DOS header 700 is the first part of the file. This step determines whether the DOS header 700 starts with MZ "xx xx xx". If the DOS header 700 starts with MZ, it may be a DOS or Windows program. If the DOS header 700 does not start with MZ, it is not an executable (eg, it could be JPG, GIF, etc.). This distinction determines which analysis is applied. The purpose of reading the DOS header 700 is to verify that the file was properly formed. The process is looking for incorrect header creation. The DOS header 700 is static (immutable) and contains a date and a time stamp. The purpose of parsing the DOS header 700 is to detect the creation of bad headers that are not in the existing list of known good headers. The illegal header (PE header) has a pointer to the section with the malware code (illegal instruction). The embodiments disclosed herein distinguish between executable and non-executable files because malware can be hidden as a compressed payload in the executable file. File type determination is used to determine the particular analysis used to detect steganography in the file.

数「MZ」(ファイルの最初の数バイト)はマジックナンバーである。マジックナンバーを検証することによって取得されたポインタは、情報が配置されているファイルにおける部分につながる。ファイルが有効なPEファイル、たとえばJPEGまたはGIFでない場合、それはマルウェアである可能性がある。一実施形態において、マジックナンバーは、IMAGE_DOS_HEADERにおけるe_magic memberから取り出される。マジックナンバーを検証するために、DOSヘッダ700における値「xx xx xx」が使用される。見つけられた値は、値0x5A4D(「MZ」)を有するMicrosoft DOS IMAGE_DOS_SIGNATUREと比較される。値がDOS署名と一致しない場合、ファイルはDOSまたはWindows実行ファイルではない。ファイルのフォーマットが何であってよいか、たとえば、DOC、DOCX、PPT、PPTX、XLS、XLSX、MP3、GIF、JPG、PNGなどを決定するために、追加の命令が実行されてよい。マジックナンバーが検証されると、セクションヘッダに対するポインタが取得される。DOSマジックナンバーが検証されたので、Windows PEヘッダに対するポインタを作成するためにe_lfanewメンバーが使用されてよい。IMAGE_NT_HEADERS32ポインタは、e_lfanew値にメモリバッファのサイズを加えることによって計算される。PEヘッダに対するポインタは「01 00h」であるはずである。この場所は、番号「50 45 00h」であるはずのPE署名を含む。この場所が「50 45 00」でない場合、ファイルは疑わしいファイルである可能性がある。 The number "MZ" (first few bytes of the file) is the magic number. The pointer obtained by verifying the magic number leads to the part in the file where the information is located. If the file is not a valid PE file, eg JPEG or GIF, it may be malware. In one embodiment, the magic number is retrieved from the e_magic member in IMAGE_DOS_HEADER. The value “xx xx xx” in the DOS header 700 is used to verify the magic number. The value found is compared to Microsoft DOS IMAGE_DOS_SIGNATURE with the value 0x5A4D ("MZ"). If the value does not match the DOS signature, then the file is not a DOS or Windows executable. Additional instructions may be executed to determine what the format of the file may be, eg, DOC, DOCX, PPT, PPTX, XLS, XLSX, MP3, GIF, JPG, PNG, etc. When the magic number is verified, a pointer to the section header is obtained. Now that the DOS magic number has been verified, the e_lfanew member may be used to create a pointer to the Windows PE header. The IMAGE_NT_HEADERS32 pointer is calculated by adding the size of the memory buffer to the e_lfanew value. The pointer to the PE header should be "01 00h". This location contains the PE signature, which should be the number "50 4500h". If this location is not "50 4500" then the file may be suspicious.

一実施形態において、ポインタは逆参照され、IMAGE_NT_SIGNATURE(0x00004550)と比較されてよい。逆参照されたポインタの値がIMAGE_NT_SIGNATURE署名と一致しない場合、ファイルはWindows実行ファイルではない。ファイルフォーマットが何であってよいか、たとえば、DOC、DOCX、PPT、PPTX、XLS、XLSX、MP3、GIF、JPG、PNGなどを決定するために、追加の命令が実行されてよい。 In one embodiment, the pointer may be dereferenced and compared to IMAGE_NT_SIGNATURE (0x00004550). If the value of the dereferenced pointer does not match the IMAGE_NT_SIGNATURE signature, then the file is not a Windows executable. Additional instructions may be executed to determine what the file format may be, eg, DOC, DOCX, PPT, PPTX, XLS, XLSX, MP3, GIF, JPG, PNG, etc.

一実施形態において、IMAGE_SECTION_HEADERの位置が、IMAGE_NT_HEADERS32のサイズを使用して決定される。PEイメージにおけるセクションの数を含むIMAGE_FILE_HEADERにアクセスするために、IMAGE_NT_HEADERメンバーFileHeaderが逆参照される。各セクションが分析されることができるように、カウンタ変数がゼロに初期化される。プロセスは、セクションの数が予想されているかどうかを決定する。追加のセクションについては疑わしく、マルウェアを含む可能性がある。各セクションについて、セクションの名前および属性が検証される。ファイルのサイズが、セクションのSizeOfRawDataメンバー、およびポインタのサイズとして決定される。このプロセスは、各セクションについて繰り返されてよい。最後のセクションのサイズは、SizeOfRawDataメンバーにおけるバイトの数である。この結果は、PEイメージがストレージデバイス上で占有するはずのバイトの数である。セクション分析によるセクションは、ファイルの全体のサイズを計算するために使用される。 In one embodiment, the location of IMAGE_SECTION_HEADER is determined using the size of IMAGE_NT_HEADERS32. The IMAGE_NT_HEADER member FileHeader is dereferenced to access the IMAGE_FILE_HEADER containing the number of sections in the PE image. A counter variable is initialized to zero so that each section can be analyzed. The process determines if the number of sections is expected. The additional sections are suspicious and may contain malware. For each section, the section name and attributes are verified. The size of the file is determined as the size of the SizeOfRawData member of the section and the pointer. This process may be repeated for each section. The size of the last section is the number of bytes in the SizeOfRawData member. The result is the number of bytes that the PE image should occupy on the storage device. The section by section analysis is used to calculate the overall size of the file.

ファイルシステムから、ファイルの記憶されたファイルサイズが取り出される。一実施形態において、オペレーティングシステムは、ファイルシステムから、GetFileSize() APIを使用して、ディスク上に記憶されたファイルサイズを取り出す。 The stored file size of the file is retrieved from the file system. In one embodiment, the operating system retrieves the file size stored on the disk from the file system using the GetFileSize() API.

ファイルの決定されたサイズは、ファイルの記憶されたファイルサイズと比較される。一実施形態において、ファイルの決定されたサイズが記憶されたファイルサイズよりも大きい場合、データはPEファイルの最後に付加されてよい。戻りコードが、付加されるデータがないことを示す場合、PEサイズと記憶されたファイルサイズとが等しい(PEファイルに付加されるデータがない)。決定されたファイルサイズが記憶されたファイルサイズよりも大きいとき、これは追加のデータの存在を示す。 The determined size of the file is compared to the stored file size of the file. In one embodiment, the data may be appended to the PE file if the determined size of the file is larger than the stored file size. If the return code indicates that there is no data to append, then the PE size is equal to the stored file size (no data to append to the PE file). This indicates the presence of additional data when the determined file size is larger than the stored file size.

ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、ファイルに関してステガノグラフィ検出分析が実行される。一実施形態において、付加されたデータは、そのファイルフォーマットと、それが暗号化されているかどうかとを決定するために分析される。戻りコードが、データが付加されていることを示し、したがって、付加されたデータの隔離、削除、または除去などの定義されたポリシが実行されてよい。ステガノグラフィ検出分析は、ファイルに関して統計関数(エントロピ、カイ二乗など)を実行することを含む。行われる分析は、ファイル種類に依存する。GIFファイルの場合、ZIPファイルに隠されている隠れデータが検索される。EXEファイルの場合、異なる分析が行われてよい。exeファイルの最後を超えた情報が、エントロピ計算、カイ二乗計算、メジアン、および標準偏差計算を実行して暗号化を検出するために使用される。 Steganographic detection analysis is performed on the file in response to the determined size of the file being greater than the stored file size of the file. In one embodiment, the appended data is analyzed to determine its file format and whether it is encrypted. The return code indicates that the data has been added, so a defined policy such as quarantine, delete, or remove the added data may be enforced. Steganographic detection analysis involves performing statistical functions (entropy, chi-square, etc.) on a file. The analysis performed depends on the file type. In the case of a GIF file, hidden data hidden in the ZIP file is searched. For EXE files, different analyzes may be performed. Information beyond the end of the exe file is used to perform entropy, chi-square, median, and standard deviation calculations to detect encryption.

一実施形態において、静的分析アルゴリズムが、ステガノグラフィを検出するために使用される。この手法の利益および利点は、署名スキャンを使用することなくステガノグラフィ検出が行われてよいことである。隠された情報の存在が、インバウンドデータまたはアウトバウンドデータのいずれかにおいて検出される。ファイルの決定されたサイズと記憶されたファイルサイズとの間の比較が、より高価な分析を行うかどうかを決定するために使用される。ファイルサイズ比較は、付加されたペイロードがあるかどうかを決定する。ファイルサイズ比較が、ファイルサイズが通常であることを示すとき、高価な分析は行われない。したがって、デバイス上でファイアウォールとインラインでステガノグラフィを検出することによって、危険なファイルが、それらの秘密のペイロードを放出できる前に、検出、隔離、および除去されることが可能である。他の実施形態において、ステガノグラフィ検出は、ファイアウォール135または電子メールと統合されてよい。 In one embodiment, static analysis algorithms are used to detect steganography. The benefit and advantage of this approach is that steganographic detection may be performed without using signature scanning. The presence of hidden information is detected in either inbound or outbound data. A comparison between the determined size of the file and the stored file size is used to determine if a more expensive analysis should be done. The file size comparison determines if there is an attached payload. No expensive analysis is done when the file size comparison shows that the file size is normal. Thus, by detecting steganography in-line with the firewall on the device, dangerous files can be detected, quarantined, and removed before they can release their secret payload. In other embodiments, steganographic detection may be integrated with firewall 135 or email.

ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、ステガノグラフィ修正アクションが実行される。ステガノグラフィを記述する情報がクライアントデバイスに送信される。 Steganographic correction actions are performed in response to the steganographic detection analysis indicating the presence of steganography in the file. Information describing steganography is sent to the client device.

実施形態のさらなる利益および利点は、方法がファイアウォールにおいてステガノグラフィおよびランサムウェア検出を統合して各パケットをチェックすることである。方法の電子メールシステムとの統合により、各電子メールおよび添付ファイルのコンテンツをスキャンする。本発明は、署名ではなく、疑わしい命令セット、たとえば、マシンまたはアセンブリレベル言語のインジケーションを探す。一実施形態において、方法は、部分的にファイルを逆アセンブルし、そのような疑わしい命令セットを探す。 A further benefit and advantage of the embodiment is that the method integrates steganography and ransomware detection at the firewall to check each packet. The method integrates with the email system to scan the content of each email and attachment. The present invention looks for suspicious instruction sets, eg, machine or assembly level language indications, rather than signatures. In one embodiment, the method partially disassembles the file and looks for such suspicious instruction sets.

カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のためのプロセス
図8は、実施形態に従う、カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための例示的なプロセスを示す。一実施形態において、図8のプロセスは管理ノード100によって行われる。他のエンティティ(たとえばマルウェア分析モジュール140)が、他の実施形態においてプロセスのステップの一部または全部を行ってよい。同様に、実施形態は、異なるおよび/もしくは追加のステップ含み、または異なる順序でステップを行ってよい。
Processes for Steganography Real-Time Detection and Steganography Protection in Kernel Mode FIG. 8 illustrates an exemplary process for steganography real-time detection and steganography protection in kernel mode, according to an embodiment. In one embodiment, the process of FIG. 8 is performed by management node 100. Other entities (eg, malware analysis module 140) may perform some or all of the steps of the process in other embodiments. Similarly, embodiments may include different and/or additional steps or perform steps in a different order.

管理ノード100は、ファイアウォール、オペレーティングシステム、または電子メールシステムを介するファイルの送信を検出する800。一実施形態において、PEはパースされる。PEを読み取りおよびパースする間に、Windows EXE、DLL、フォント、システムドライバ、およびオブジェクトコードの構造が、疑わしいAPI使用について分析される。 The management node 100 detects 800 the transmission of a file through a firewall, operating system, or email system. In one embodiment, PE is parsed. While reading and parsing the PE, the structure of Windows EXE, DLLs, fonts, system drivers, and object code is analyzed for suspicious API usage.

管理ノード100は、ファイルのサイズを決定する805。ファイルサイズ決定は、付加された悪意のあるzipファイルまたは実行ファイルなどの許可されていないデータをイメージが含むかどうかを検出するために使用されてよい。たとえば、PEファイルフォーマットの最後に記憶された隠された情報(たとえば、EXE、DLL、SCR、SYS、DRV、ACM、CPL、SCRなど)が識別されてよい。 The management node 100 determines 805 the size of the file. File sizing may be used to detect if the image contains unauthorized data such as an attached malicious zip file or executable. For example, the last stored hidden information of the PE file format (eg, EXE, DLL, SCR, SYS, DRV, ACM, CPL, SCR, etc.) may be identified.

管理ノード100は、ファイルシステムからファイルの記憶されたファイルサイズを取り出す810。一実施形態において、オペレーティングシステムは、ファイルシステムから、GetFileSize() APIを使用して、ディスク上に記憶されたファイルサイズを取り出す。 The management node 100 retrieves 810 the stored file size of the file from the file system. In one embodiment, the operating system retrieves the file size stored on the disk from the file system using the GetFileSize() API.

管理ノード100は、ファイルの決定されたサイズをファイルの記憶されたファイルサイズと比較する815。一実施形態において、ファイルの決定されたサイズが記憶されたファイルサイズよりも大きい場合、データはPEファイルの最後に付加されてよい。戻りコードが、付加されるデータがないことを示す場合、PEサイズと記憶されたファイルサイズとが等しい(PEファイルに付加されるデータがない)。決定されたファイルサイズが記憶されたファイルサイズよりも大きいとき、これは追加のデータの存在を示す。 The management node 100 compares 815 the determined size of the file to the stored file size of the file. In one embodiment, the data may be appended to the PE file if the determined size of the file is larger than the stored file size. If the return code indicates that there is no data to append, then the PE size is equal to the stored file size (no data to append to the PE file). This indicates the presence of additional data when the determined file size is larger than the stored file size.

ファイルの決定されたサイズがファイルの記憶されたファイルサイズよりも大きいことに応答して、管理ノード100は、ファイルに関してステガノグラフィ検出分析を実行する820。ステガノグラフィ検出分析は、ファイルに関して統計関数(エントロピ、カイ二乗など)を実行することを含む。行われる分析は、ファイル種類に依存する。GIFファイルの場合、ZIPファイルに隠されている隠れデータが検索される。EXEファイルの場合、異なる分析が行われてよい。exeファイルの最後を超えた情報が、エントロピ計算、カイ二乗計算、メジアン、および標準偏差計算を実行して暗号化を検出するために使用される。 In response to the determined size of the file being greater than the stored file size of the file, management node 100 performs 820 a steganographic detection analysis on the file. Steganographic detection analysis involves performing statistical functions (entropy, chi-square, etc.) on a file. The analysis performed depends on the file type. In the case of a GIF file, hidden data hidden in the ZIP file is searched. For EXE files, different analyzes may be performed. Information beyond the end of the exe file is used to perform entropy, chi-square, median, and standard deviation calculations to detect encryption.

ステガノグラフィ検出分析がファイルにおけるステガノグラフィの存在を示すことに応答して、管理ノード100は、ステガノグラフィ修正アクションを実行し825、ステガノグラフィを記述する情報をクライアントデバイスに送信する。ステガノグラフィ修正アクションは、ファイアウォールを通過しようと試みているファイルの処理および送信を終了することを含んでよい。ステガノグラフィ修正アクションは、ファイルを隔離することを含んでよい。
代替的実施形態
代替的実施形態において、本明細書に開示されている方法およびシステムは、管理ノード100上にローカルにまたはクラウド(たとえばクラウドホスト105)に記憶された機密データについての保護およびプライバシを強化するために使用されてよい。これらの代替的実施形態を使用して、予め設定された地理的境界を横切る機密データの許可されていないエクスポートが検出および/または防止されてよい。たとえば、実施形態は、特定の地理的領域に機密データをタグ付けし、データをその位置にロックするように使用され、その地理的領域からのデータの許可されていないエクスポートおよび/またはアクセスが監視および防止されるようにしてよい。したがって、代替的実施形態は、データ主体の個人データ、個人を識別できる情報のエクスポートに、ユーザにより大きな制御を提供してよい。また、代替的実施形態は、規制によって指定された合法的基準で行われない限りデータ処理を防止するための方法、およびデータ漏洩の効率的な報告を、企業に提供する。
加えて、代替的実施形態は、データが記憶されるときの仮名化および/または完全なデータ匿名化を企業が提供することを可能にする。一実施形態において、記憶された個人データが暗号化されて、結果の個人暗号化データは、正しい復号キーなしに特定のデータ主体に帰せられないようにされてよい。一実施形態において、トークン化が実装されてよく、それにより、機密データを、外因的なまたは悪用可能な意味または価値を有しない非機密代用物(トークン)に置き換える。トークン化は、データの種類または長さを変更せず、すなわち、それは、データの長さおよび種類に敏感なことがあるデータベースなどのレガシシステムによって処理されることが可能である。この手法の利点および利益は、従来の暗号化されたデータよりも少ない計算リソースおよび小さい記憶スペースで済むことである。保護されたデータに対するマルウェアまたはステガノグラフィ攻撃は、検出されたファイル操作要求に関連付けられたファイルに対するマルウェアまたはステガノグラフィ検出分析を行うことを含めて、開示されている実施形態を使用して、検出および防止されることが可能である。
In response to the steganographic detection analysis indicating the presence of steganography in the file, the management node 100 performs steganographic correction actions 825 and sends information describing the steganography to the client device. Steganographic correction actions may include terminating the processing and transmission of files attempting to pass through the firewall. Steganographic modification actions may include quarantining the file.
Alternative Embodiments In an alternative embodiment, the methods and systems disclosed herein provide protection and privacy for sensitive data stored locally on the management node 100 or in the cloud (eg, cloud host 105). It may be used to strengthen. These alternative embodiments may be used to detect and/or prevent unauthorized export of sensitive data across preset geographical boundaries. For example, embodiments may be used to tag sensitive data in a particular geographic area and lock the data in place to monitor unauthorized export and/or access of data from that geographic area. And may be prevented. Accordingly, alternative embodiments may provide the user with greater control over the data subject's personal data, the export of personally identifiable information. Alternate embodiments also provide companies with methods to prevent data processing unless done on a legal basis specified by regulation, and efficient reporting of data breaches.
In addition, alternative embodiments allow businesses to provide pseudonymization and/or complete data anonymization when data is stored. In one embodiment, the stored private data may be encrypted such that the resulting private encrypted data cannot be attributed to a particular data subject without the correct decryption key. In one embodiment, tokenization may be implemented, which replaces sensitive data with non-confidential surrogates (tokens) that have no extrinsic or exploitable meaning or value. Tokenization does not change the type or length of data, that is, it can be handled by legacy systems such as databases, which can be sensitive to the length and type of data. The advantage and benefit of this approach is that it requires less computational resources and less storage space than traditional encrypted data. Malware or steganographic attacks on protected data are detected and prevented using the disclosed embodiments, including performing malware or steganographic detection analysis on the files associated with the detected file manipulation request. It is possible to

例示的なマシン
図9は、マシン可読媒体から命令を読み取ってそれらをプロセッサまたはコントローラにおいて実行することができる例示的なマシンのコンポーネントを示すブロック図である。具体的には、図9は、コンピュータシステム900の例示的な形態においてマシンの概略図を示す。コンピュータシステム900は、本明細書に説明されている方法論(またはプロセス)の任意の1つまたは複数をマシンに行わせるための命令924(たとえば、プログラムコードまたはソフトウェア)を実行するために使用されることが可能である。代替的実施形態において、スタンドアロンデバイス、または他のマシンに接続する接続(たとえばネットワーク化)されたデバイスとして動作する。ネットワーク化された配置において、マシンは、サーバ/クライアントネットワーク環境におけるサーバマシンもしくはクライアントマシンとして、またはピアツーピア(または分散された)ネットワーク環境におけるピアマシンとして動作してよい。
Exemplary Machine FIG. 9 is a block diagram illustrating components of an exemplary machine capable of reading instructions from a machine-readable medium and executing them on a processor or controller. Specifically, FIG. 9 shows a schematic diagram of a machine in the exemplary form of computer system 900. Computer system 900 is used to execute instructions 924 (eg, program code or software) to cause a machine to perform any one or more of the methodologies (or processes) described herein. It is possible. In alternative embodiments, it operates as a stand-alone device or a connected (eg, networked) device that connects to other machines. In a networked arrangement, the machines may operate as server or client machines in a server/client network environment or as peer machines in a peer-to-peer (or distributed) network environment.

一実施形態において、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたときに本明細書に説明されている動作をプロセッサに行わせる命令を記憶する。マシンは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、スマートフォン、モノのインターネット(IoT)機器、ネットワークルータ、スイッチもしくはブリッジ、または、そのマシンによって行われるアクションを指定する命令924(順次または他の形式)を実行することができる任意のマシンであってよい。さらに、単一のマシンのみが示されているが、用語「マシン」は、本明細書に論じられている方法論の任意の1つまたは複数を実施する命令924を個別または共同で実行するマシンの任意の集合も含むように捉えられるべきである。 In one embodiment, a non-transitory computer-readable medium stores instructions that, when executed by at least one processor, cause the processor to perform the operations described herein. The machine is a server computer, a client computer, a personal computer (PC), a tablet PC, a set top box (STB), a smartphone, an Internet of Things (IoT) device, a network router, a switch or bridge, or an action performed by the machine. May be any machine capable of executing the instructions 924 (sequential or other form) specifying Further, although only a single machine is shown, the term “machine” refers to a machine that individually or jointly executes instructions 924 implementing any one or more of the methodologies discussed herein. It should be considered to include any set.

例示的なコンピュータシステム900は、1つまたは複数の処理ユニット(一般にプロセッサ902)を含む。プロセッサ902は、たとえば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、デジタルシグナルプロセッサ(DSP)、コントローラ、状態機械、1つもしくは複数の特定用途向け集積回路(ASIC)、1つもしくは複数の無線周波数集積回路(RFIC)、またはこれらの任意の組み合わせである。コンピュータシステム900はまた、メインメモリ904を含む。コンピュータシステムは、ストレージユニット916を含んでよい。プロセッサ902、メモリ904、およびストレージユニット916は、バス908を介して通信する。 Exemplary computer system 900 includes one or more processing units (typically processor 902). The processor 902 may be, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a state machine, one or more application specific integrated circuits (ASIC), one or more. Multiple Radio Frequency Integrated Circuits (RFICs), or any combination thereof. Computer system 900 also includes a main memory 904. The computer system may include a storage unit 916. Processor 902, memory 904, and storage unit 916 communicate via bus 908.

加えて、コンピュータシステム900は、静的メモリ906、ディスプレイドライバ910(たとえば、プラズマディスプレイパネル(PDP)、液晶ディスプレイ(LCD)、またはプロジェクタを駆動する)を含むことができる。コンピュータシステム900はまた、英数字入力デバイス912(たとえばキーボード)、カーソル制御デバイス914(たとえば、マウス、トラックボール、ジョイスティック、モーションセンサ、または他のポインティング機器)、信号生成デバイス918(たとえばスピーカ)、および、やはりバス908を介して通信するように構成されたネットワークインターフェースデバイス920を含んでよい。 In addition, computer system 900 can include static memory 906, display driver 910 (eg, driving a plasma display panel (PDP), liquid crystal display (LCD), or projector). Computer system 900 also includes alphanumeric input device 912 (eg, keyboard), cursor control device 914 (eg, mouse, trackball, joystick, motion sensor, or other pointing device), signal generating device 918 (eg, speaker), and , And may also include a network interface device 920 configured to communicate via bus 908.

ストレージユニット916は、本明細書に説明されている方法論または機能の任意の1つまたは複数を具現する命令924(たとえばソフトウェア)が記憶されるマシン可読媒体922を含む。命令924はまた、コンピュータシステム900によるその実行中にメインメモリ904内またはプロセッサ902内(たとえば、プロセッサのキャッシュメモリ内)に完全にまたは少なくとも一部に存在してよく、メインメモリ904およびプロセッサ902もマシン可読媒体を構成する。命令924は、ネットワークインターフェースデバイス920を介してネットワーク926上で送信または受信されてよい。 Storage unit 916 includes a machine-readable medium 922 having instructions 924 (eg, software) stored thereon embodying any one or more of the methodologies or features described herein. Instructions 924 may also reside entirely or at least partially in main memory 904 or processor 902 (eg, in the processor's cache memory) during its execution by computer system 900, and main memory 904 and processor 902 also. Configure a machine-readable medium. The instructions 924 may be sent or received over the network 926 via the network interface device 920.

マシン可読媒体922は例示的実施形態において単一の媒体として示されているが、用語「マシン可読媒体」は、命令924を記憶することができる単一の媒体または複数の媒体(たとえば、集中化もしくは分散されたデータベースまたは関連付けられたキャッシュおよびサーバ)を含むように捉えられるべきである。用語「マシン可読媒体」はまた、マシンによって実行するための命令924を記憶することができ、本明細書に開示されている方法論の任意の1つまたは複数をマシンに実施させる、任意の媒体を含むように捉えられるべきである。用語「マシン可読媒体」は、固体メモリ、光媒体、および磁気媒体の形態でデータリポジトリを含むがそれらに限定されない。 Although machine-readable medium 922 is shown as a single medium in the exemplary embodiment, the term “machine-readable medium” refers to a single medium or multiple media (eg, centralized media) in which instructions 924 may be stored. Or should be considered to include distributed databases or associated caches and servers). The term “machine-readable medium” also refers to any medium that can store instructions 924 for execution by a machine, causing the machine to perform any one or more of the methodologies disclosed herein. Should be taken to include. The term "machine-readable medium" includes, but is not limited to, data repositories in the form of solid state memory, optical media, and magnetic media.

追加の考慮事項
本明細書を通じて、複数のインスタンスが、単一のインスタンスとして説明されたコンポーネント、動作、または構造を実施してよい。1つまたは複数の方法の個々の動作が別個の動作として示され説明されているが、個々の動作の1つまたは複数が同時に行われてよく、動作が示された順序で行われる必要はない。例示的な構成において別個のコンポーネントとして提示された構造および機能性は、結合された構造またはコンポーネントとして実施されてよい。同様に、単一のコンポーネントとして提示された構造および機能性は、別個のコンポーネントとして実施されてよい。これらおよび他の変形、修正、追加、および改良は、本明細書の主題の範囲内に入る。
Additional Considerations Throughout this specification, multiple instances may implement the components, acts, or structures described as a single instance. Although individual acts of the one or more methods are shown and described as separate acts, one or more of the individual acts may occur simultaneously, and the acts need not occur in the order shown. .. Structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements are within the scope of the subject matter herein.

本明細書では、特定の実施形態は、たとえば、図1ないし4、6ないし7、および9で示され説明されたように、論理もしくはいくつかのコンポーネント、モジュール、または機構を含むものとして説明されている。モジュールは、ソフトウェアモジュール(たとえば、マシン可読媒体に組み込まれたコード)またはハードウェアモジュールのいずれかを構成してよい。ハードウェアモジュールは、特定の動作を行うことができる有形のユニットであり、特定の方式で構成または配置されてよい。例示的な実施形態において、1つもしくは複数のコンピュータシステム(たとえば、スタンドアロン、クライアント、もしくはサーバコンピュータシステム)、またはコンピュータシステムの1つもしくは複数のハードウェアモジュール(たとえば、プロセッサもしくはプロセッサのグループ)が、本明細書に説明されているような特定の動作を行うように動作するハードウェアモジュールとして、ソフトウェア(たとえば、アプリケーションまたはアプリケーション部分)によって構成されてよい。 Certain embodiments are described herein as including logic or some component, module, or mechanism, as illustrated and described in FIGS. 1-4, 6-7, and 9, for example. ing. Modules may comprise either software modules (eg, code embodied in a machine-readable medium) or hardware modules. A hardware module is a tangible unit that can perform a specific operation, and may be configured or arranged in a specific manner. In an exemplary embodiment, one or more computer systems (eg, stand-alone, client, or server computer systems), or one or more hardware modules (eg, a processor or group of processors) of a computer system are It may be configured by software (eg, an application or application part) as a hardware module that operates to perform a particular operation as described herein.

種々の実施形態において、ハードウェアモジュールは機械的または電子的に実装されてよい。たとえば、ハードウェアモジュールは、特定の動作を行うために、たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)のような専用プロセッサとして、永続的に構成された専用回路または論理を含んでよい。また、ハードウェアモジュールは、特定の動作を行うために、ソフトウェアによって一時的に構成された(たとえば、汎用プロセッサまたは他のプログラマブルプロセッサ内に含まれる)プログラマブル論理または回路を含んでもよい。ハードウェアモジュールを、機械的に実装するか、専用の永続的に構成された回路で実装するか、または一時的に構成された(たとえばソフトウェアによって構成された)回路で実装するかは、コストおよび時間を考慮して決定されてよいことは理解されよう。 In various embodiments, hardware modules may be implemented mechanically or electronically. For example, a hardware module is a dedicated circuit or logic permanently configured as a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC), to perform a particular operation. May be included. A hardware module may also include programmable logic or circuits (eg, contained within a general purpose processor or other programmable processor) temporarily configured by software to perform certain operations. Whether the hardware module is implemented mechanically, in a dedicated permanently configured circuit, or in a temporarily configured circuit (eg, configured by software) costs and It will be appreciated that it may be time sensitive.

本明細書に説明されている例示的な方法の様々な動作は、該当する動作を行うように一時的に(たとえばソフトウェアによって)構成されまたは永続的に構成された1つまたは複数のプロセッサ、たとえばプロセッサ902によって、少なくとも部分的に行われてよい。一時的に構成されるか永続的に構成されるかにかかわらず、そのようなプロセッサは、1つまたは複数の動作または機能を実行するように動作するプロセッサで実施されるモジュールを構成してよい。本明細書で言及されるモジュールは、いくつかの例示的な実施形態において、プロセッサで実施されるモジュールを含む。 Various operations of the exemplary methods described herein may be performed by one or more processors, temporarily (e.g., software) or permanently configured (eg, by software) or permanently configured to perform the operations. At least in part by processor 902. Such a processor, whether configured temporarily or permanently, may constitute a module implemented in a processor that operates to perform one or more operations or functions. .. Modules referred to herein include processor-implemented modules, in some example embodiments.

1つまたは複数のプロセッサは、「クラウドコンピューティング」環境において、または「サービスとしてのソフトウェア)(SaaS)として、該当する動作の実行をサポートするように動作してもよい。たとえば、少なくとも一部の動作は、(プロセッサを含むマシンの例としての)コンピュータのグループによって行われてよく、これらの動作は、ネットワーク(たとえばインターネット)を介して、および1つまたは複数の適切なインターフェース(たとえばアプリケーションプログラムインターフェース(API))を介してアクセス可能である。 One or more processors may operate in a “cloud computing” environment or as “software as a service” (SaaS) to support performing the applicable operations, eg, at least some of them. The acts may be performed by a group of computers (as an example of a machine that includes a processor) over the network (eg, the Internet) and at one or more suitable interfaces (eg, an application program interface). (API)).

特定の動作の実行は、単一のマシン内に存在するだけでなくいくつかのマシンにわたって配置された1つまたは複数のプロセッサの間で分散されてよい。いくつかの例示的実施形態において、1つまたは複数のプロセッサまたはプロセッサで実施されるモジュールは、単一の地理的位置(たとえば、家庭環境、オフィス環境、またはサーバファーム内)に配置されてよい。他の例示的実施形態において、1つまたは複数のプロセッサまたはプロセッサで実施されるモジュールは、いくつかの地理的位置にわたって分散されてよい。 Execution of a particular operation may be distributed among one or more processors not only residing in a single machine, but distributed across several machines. In some exemplary embodiments, one or more processors or modules implemented with processors may be located in a single geographical location (eg, in a home environment, office environment, or server farm). In other exemplary embodiments, one or more processors or modules implemented in processors may be distributed over several geographic locations.

本明細書のいくつかの部分は、マシンメモリ(たとえばコンピュータメモリ)内にビットまたはバイナリデジタル信号として記憶されたデータに対する操作のアルゴリズムまたは記号表現の観点で提示されている。これらのアルゴリズムまたは記号表現は、データ処理分野の当業者によって彼らの成果の内容を他の当業者に伝えるために使用される技法の例である。本明細書で使用される場合、「アルゴリズム」は、所望の結果に導く一貫した操作のシーケンスまたは同様の処理である。この文脈において、アルゴリズムおよび操作は物理量の物理的操作を含む。必須でないが典型的には、そのような量は、マシンによって記憶、アクセス、転送、組み合わせ、比較、または他の操作がされることが可能な電気、磁気、または光信号の形態を取ってよい。主に一般的な使用の理由から、「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「シンボル」、「文字」、「用語」、「数」、または「数値」などの単語を使用して、そのような信号に言及することが便利な場合がある。しかしながら、これらの単語は便利なラベルに過ぎず、適切な物理量に関連付けられることになる。 Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bit or binary digital signals in machine memory (eg, computer memory). These algorithms or symbolic representations are examples of techniques used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an "algorithm" is a consistent sequence of operations or similar process that leads to a desired result. In this context, algorithms and operations include physical manipulations of physical quantities. Typically, though not necessarily, such quantities may take the form of electrical, magnetic, or optical signals that may be stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. .. "Data", "Content", "Bits", "Values", "Elements", "Symbols", "Characters", "Terms", "Numbers", or "Numbers", mainly for reasons of common usage It may be convenient to refer to such signals using words such as. However, these words are only convenient labels and will be associated with the appropriate physical quantity.

特に明記されない限り、「処理」、「コンピューティング」、「計算」、「決定」、「提示」、または「表示」などの言葉を使用する本明細書の説明は、1つもしくは複数のメモリ(たとえば、揮発性メモリ、不揮発性メモリ、もしくはこれらの組み合わせ)、レジスタ、または情報を受信、記憶、送信、もしくは表示する他のマシンコンポーネント内で、物理的(たとえば、電子的、磁気的、または光学的)量として表されるデータを操作または変換するマシン(たとえばコンピュータ)のアクションまたはプロセスを指してよい。 Unless stated otherwise, the description herein using terms such as "process," "compute," "calculate," "determine," "present," or "display" refers to one or more memory ( For example, physically (eg, electronically, magnetically, or optically) within volatile memory, non-volatile memory, or combinations thereof, registers, or other machine components that receive, store, send, or display information. ) May refer to a machine (eg, computer) action or process that manipulates or transforms data expressed as a quantity.

本明細書で使用される場合、「一実施形態」または「実施形態」に対する言及は、実施形態に関連して説明される特定の要素、特徴、構造、または特性が少なくとも1つの実施形態に含まれることを意味する。本明細書における様々な箇所での「一実施形態において」という表現の出現は、必ずしもすべてが同じ実施形態を指すものではない。 As used herein, a reference to "one embodiment" or "an embodiment" is included in at least one embodiment in which a particular element, feature, structure, or characteristic described in connection with the embodiment is included. Means to be The appearances of the phrase "in one embodiment" in various places in this specification are not necessarily all referring to the same embodiment.

いくつかの実施形態は、「結合された」および「接続された」という表現をそれらの派生語と共に使用して説明されることがある。たとえば、いくつかの実施形態は、直接的な物理的または電気的接触をした2つ以上の要素を指すために「結合された」という用語を使用して説明されてよい。しかしながら、「結合された」という用語は、2つ以上の要素は互いに直接接触していないが互いに協働または相互作用することを意味してもよい。実施形態は、この文脈に限定されない。 Some embodiments may be described using the expressions "coupled" and "connected" with their derivatives. For example, some embodiments may be described using the term "coupled" to refer to two or more elements that are in direct physical or electrical contact. However, the term “coupled” may mean that two or more elements are not in direct contact with each other but cooperate or interact with each other. Embodiments are not limited to this context.

本明細書で使用される場合、用語「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」またはこれらの任意の他の変形は、非排他的包含を含むことが意図されている。たとえば、要素のリストを含むプロセス、方法、物品、または装置は、必ずしもそれらの要素のみに限定されず、明示的に挙げられない、またはそのようなプロセス、方法、物品、もしくは装置に固有である他の要素を含んでよい。さらに、逆に明示されていない限り、「または」は包含的論理和を指し、排他的論理和を指すものではない。たとえば、条件AまたはBは、Aが真であり(または存在し)Bが偽である(または存在しない)、Aが偽であり(または存在せず)Bが真である(または存在する)、およびAとBの両方が真である(または存在する)のうちのいずれか1つによって満足される。 As used herein, the terms "comprising," "comprising," "including," "including," "having," "having," or any other variation thereof, refer to It is intended to include non-exclusive inclusion. For example, a process, method, article, or device that includes a list of elements is not necessarily limited to only those elements, is not explicitly listed, or is unique to such process, method, article, or device. It may include other elements. Further, unless stated to the contrary, "or" refers to inclusive or, not exclusive or. For example, condition A or B is A is true (or present) B is false (or not present), A is false (or not present) B is true (or present) , And both A and B are true (or present).

また、本明細書の実施形態の要素およびコンポーネントを説明するために「a」または「an」の使用が採用される。これは、単に便宜のため、および請求される発明の一般的な意味を与えるために行われる。この説明は、1つまたは少なくとも1つを含むように読まれるべきであり、単数形は、それが別様に意味されることが明らかでない限り複数形も含む。 Also, the use of "a" or "an" is employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the claimed invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.

当業者は、本開示を読めば、本明細書の開示された原理を通じてマルウェアを検出するためのシステムおよびプロセスに関するさらに追加の代替的構造および機能設計を理解するであろう。したがって、特定の実施形態および用途が図示および説明されているが、開示された実施形態は、本明細書に開示された正確な構成およびコンポーネントに限定されないことは理解されたい。本明細書に開示された方法および装置の配置、動作、および詳細において、当業者に明らかとなる様々な修正、変更、および変形が、添付の特許請求の範囲に規定された趣旨および範囲から逸脱することなく行われてよい。 Those of skill in the art will understand, upon reading this disclosure, still additional alternative structure and functional designs for systems and processes for detecting malware through the principles disclosed herein. Thus, while particular embodiments and applications have been shown and described, it should be understood that the disclosed embodiments are not limited to the precise constructions and components disclosed herein. Various modifications, changes, and variations in the arrangement, operation, and details of the methods and devices disclosed herein that become apparent to those skilled in the art depart from the spirit and scope defined by the appended claims. May be done without doing.

Claims (40)

カーネルモードにおけるマルウェアのリアルタイム検出およびマルウェアからの保護のための方法であって、
ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求を検出するステップと、
前記検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析を行って、マルウェアの存在を示す挙動を検出するステップと、
前記マルウェアの前記存在を示す前記挙動を検出することに応答して、前記検出されたファイル操作要求を開始することを担当する前記プロセスを識別するステップと、
プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、前記識別されたプロセスの検索を行って、前記識別されたプロセスが信頼されたプロセスであるかどうかを決定するステップと、
前記識別されたプロセスが信頼されたプロセスではないと決定することに応答して、
前記識別されたプロセスに対してマルウェア修正アクションを実行するステップと、
前記マルウェアを記述する情報をクライアントデバイスに送信するステップと
を含むことを特徴とする方法。
A method for real-time detection and protection from malware in kernel mode, comprising:
Detecting a file operation request initiated by a process running in user mode,
Performing a malware detection analysis on a file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware;
Identifying the process responsible for initiating the detected file manipulation request in response to detecting the behavior indicative of the presence of the malware;
Performing a search for the identified process in one or more of a program blacklist and a program whitelist to determine if the identified process is a trusted process;
In response to determining that the identified process is not a trusted process,
Performing a malware remediation action on the identified process;
Sending information describing the malware to a client device.
前記ファイル操作要求を検出する前記ステップは、
前記ファイル操作要求に対応するファイルハンドルから、前記ファイル操作要求が所定の動作に対応するかどうかを決定するステップと、
前記ファイル操作要求が所定の動作に対応すると決定することに応答して、前記ファイル操作要求をインターセプトするステップと
を含むことを特徴とする請求項1に記載の方法。
The step of detecting the file operation request comprises:
Determining from the file handle corresponding to the file operation request whether the file operation request corresponds to a predetermined operation;
Intercepting the file manipulation request in response to determining that the file manipulation request corresponds to a predetermined action.
前記ファイル操作要求を前記インターセプトする前記ステップは、
フィルタマネージャによって、ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されているかどうかを決定するステップと、
ファイル操作要求をインターセプトするために前記ミニフィルタドライバが登録されていると決定することに応答して、前記フィルタマネージャによって、前記ファイル操作要求を前記ミニフィルタドライバに送信するステップと
を含むことを特徴とする請求項2に記載の方法。
The step of intercepting the file operation request comprises:
Determining by the filter manager whether the mini filter driver is registered to intercept file operation requests;
Sending the file operation request to the minifilter driver by the filter manager in response to determining that the minifilter driver is registered to intercept the file operation request. The method according to claim 2, wherein
前記マルウェア検出分析を行う前記ステップは、モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、前記ファイルバッファ内のデータが暗号化されているかどうかを決定するステップを含むことを特徴とする請求項1に記載の方法。 The step of performing the malware detection analysis performs one or more of Monte Carlo approximation, entropy determination, sequence coefficient analysis, arithmetic mean determination, chi-square determination, and standard deviation determination to ensure that the data in the file buffer is The method of claim 1 including the step of determining if it is encrypted. 前記識別されたプロセスが信頼されたプロセスではないと前記決定するステップは、
プログラムの前記ブラックリスト上において前記識別されたプロセスを特定するステップをさらに含み、
前記マルウェア修正アクションを実行する前記ステップは、
前記検出されたファイル操作要求に関連付けられた書き込み操作を終了するステップと、
前記検出されたファイル操作要求をメモリから削除することによって、前記検出されたファイル操作要求を終了するステップと、
前記識別されたプロセスに関連付けられたディスクファイルイメージを隔離するステップと
をさらに含むことを特徴とする請求項1に記載の方法。
The step of determining that the identified process is not a trusted process comprises:
Further comprising identifying the identified process on the blacklist of programs,
The steps of performing the malware remediation action include:
Terminating the write operation associated with the detected file operation request;
Terminating the detected file operation request by deleting the detected file operation request from memory;
Quarantining the disk file image associated with the identified process.
プログラムの前記ホワイトリスト上において前記識別されたプロセスを特定することに応答して、ミニフィルタドライバによって、前記検出されたファイル操作要求を無視するステップをさらに含むことを特徴とする請求項1に記載の方法。 The method of claim 1, further comprising ignoring the detected file manipulation request by a minifilter driver in response to identifying the identified process on the whitelist of programs. the method of. 前記識別されたプロセスが信頼されたプロセスであるかどうかを決定する前記ステップは、プログラムの前記ブラックリストまたはプログラムの前記ホワイトリスト上において前記プロセスを特定しないことに応答して、前記クライアントデバイスに前記識別されたプロセスを許可することを求める要求を送信するステップをさらに含むことを特徴とする請求項1に記載の方法。 The step of determining whether the identified process is a trusted process may be performed by the client device in response to not identifying the process on the blacklist of programs or the whitelist of programs. The method of claim 1, further comprising sending a request to authorize the identified process. 前記識別されたプロセスが信頼されたプロセスではないと前記決定するステップは、前記クライアントデバイスに前記識別されたプロセスを許可することを求める前記要求を前記送信することに応答して、前記識別されたプロセスが許可されないというメッセージを前記クライアントデバイスから受信するステップをさらに含むことを特徴とする請求項7に記載の方法。 The step of determining that the identified process is not a trusted process is responsive to the sending the request to authorize the identified process to the client device. The method of claim 7, further comprising receiving a message that a process is not allowed from the client device. 前記識別されたプロセスをプログラムの前記ブラックリストに追加するステップをさらに含むことを特徴とする請求項8に記載の方法。 9. The method of claim 8, further comprising adding the identified process to the blacklist of programs. 前記識別されたプロセスが許可されたというメッセージを前記クライアントデバイスから受信することに応答して、前記識別されたプロセスをプログラムの前記ホワイトリストに追加するステップをさらに含むことを特徴とする請求項1に記載の方法。 The method of claim 1, further comprising adding the identified process to the whitelist of programs in response to receiving a message from the client device that the identified process is authorized. The method described in. 命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
ユーザモードにおいて実行されているプロセスによって開始されたファイル操作要求を検出することと、
前記検出されたファイル操作要求に関連付けられたファイルバッファに関してマルウェア検出分析を行って、マルウェアの存在を示す挙動を検出することと、
前記マルウェアの前記存在を示す前記挙動を検出することに応答して、前記検出されたファイル操作要求を開始することを担当する前記プロセスを識別することと、
プログラムのブラックリストおよびプログラムのホワイトリストのうちの1つまたは複数において、前記識別されたプロセスの検索を行って、前記識別されたプロセスが信頼されたプロセスであるかどうかを決定することと、
前記識別されたプロセスが信頼されたプロセスではないと決定することに応答して、
前記識別されたプロセスに対してマルウェア修正アクションを実行することと、
前記マルウェアを記述する情報をクライアントデバイスに送信することと
を行わせることを特徴とする非一時的コンピュータ可読媒体。
A non-transitory computer readable medium having instructions stored therein, when the instructions are executed by at least one processor:
Detecting file operation requests initiated by processes running in user mode;
Performing a malware detection analysis on a file buffer associated with the detected file manipulation request to detect behavior indicative of the presence of malware;
Identifying the process responsible for initiating the detected file manipulation request in response to detecting the behavior indicative of the presence of the malware;
Performing a search for the identified process in one or more of a program blacklist and a program whitelist to determine whether the identified process is a trusted process;
In response to determining that the identified process is not a trusted process,
Performing malware remediation actions on the identified process;
A non-transitory computer-readable medium for causing information describing the malware to be transmitted to a client device.
前記ファイル操作要求を検出することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイル操作要求に対応するファイルハンドルから、前記ファイル操作要求が所定の動作に対応するかどうかを決定することと、
前記ファイル操作要求が所定の動作に対応すると決定することに応答して、前記ファイル操作要求をインターセプトすることと
を行わせる命令をさらに含むことを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to detect the file manipulation request cause the at least one processor to:
Determining from the file handle corresponding to the file operation request whether the file operation request corresponds to a predetermined operation;
The non-transitory computer of claim 11, further comprising instructions for intercepting the file operation request in response to determining that the file operation request corresponds to a predetermined operation. A readable medium.
前記ファイル操作要求をインターセプトすることを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
フィルタマネージャによって、ファイル操作要求をインターセプトするためにミニフィルタドライバが登録されているかどうかを決定することと、
ファイル操作要求をインターセプトするために前記ミニフィルタドライバが登録されていると決定することに応答して、前記フィルタマネージャによって、前記ファイル操作要求を前記ミニフィルタドライバに対して送信することと
を行わせる命令をさらに含むことを特徴とする請求項12に記載の非一時的コンピュータ可読媒体。
The instruction causing the at least one processor to intercept the file operation request causes the at least one processor to:
Determining by the filter manager whether the mini filter driver is registered to intercept file operation requests;
Causing the filter manager to send the file operation request to the minifilter driver in response to determining that the minifilter driver is registered to intercept the file operation request. The non-transitory computer readable medium of claim 12, further comprising instructions.
前記マルウェア検出分析を行うことを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、前記ファイルバッファ内のデータが暗号化されているかどうかを決定することを行わせる命令をさらに含むことを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。
The instructions that cause the at least one processor to perform the malware detection analysis cause the at least one processor to:
Performing one or more of Monte Carlo approximation, entropy determination, sequence coefficient analysis, arithmetic mean determination, chi-square determination, and standard deviation determination to determine whether the data in the file buffer is encrypted. The non-transitory computer readable medium of claim 11, further comprising instructions for causing:
前記識別されたプロセスが信頼されたプロセスではないと決定することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
プログラムの前記ブラックリスト上において前記識別されたプロセスを特定することを行わせる命令をさらに含み、
前記マルウェア修正アクションを実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記検出されたファイル操作要求に関連付けられた書き込み操作を終了することと、
前記検出されたファイル操作要求をメモリから削除することによって、前記検出されたファイル操作要求を終了することと、
前記識別されたプロセスに関連付けられたディスクファイルイメージを隔離することと
を行わせる命令をさらに含むことを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to determine that the identified process is not a trusted process include:
Further comprising instructions causing identification of the identified process on the blacklist of programs,
The instructions causing the at least one processor to perform the malware modifying action cause the at least one processor to:
Terminating the write operation associated with the detected file operation request;
Terminating the detected file operation request by deleting the detected file operation request from memory;
The non-transitory computer readable medium of claim 11, further comprising instructions for causing a disk file image associated with the identified process to be isolated.
前記少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
プログラムの前記ホワイトリスト上において前記識別されたプロセスを特定することに応答して、ミニフィルタドライバによって、前記検出されたファイル操作要求を無視することを行わせる命令をさらに記憶することを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。
Said at least one processor, when executed by said at least one processor,
Further storing instructions causing a minifilter driver to ignore the detected file manipulation request in response to identifying the identified process on the whitelist of programs. The non-transitory computer readable medium of claim 11.
前記識別されたプロセスが信頼されたプロセスであるかどうかを決定することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、 プログラムの前記ブラックリストまたはプログラムの前記ホワイトリスト上において前記プロセスを特定しないことに応答して、前記クライアントデバイスに前記識別されたプロセスを許可することを求める要求を送信することを行わせる命令をさらに含むことを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。 The instructions causing the at least one processor to determine whether the identified process is a trusted process may cause the at least one processor on the blacklist of programs or the whitelist of programs. 13. The method of claim 11, further comprising instructions for causing the client device to send a request to authorize the identified process in response to not identifying the process in. Non-transitory computer-readable medium. 前記識別されたプロセスが信頼されたプロセスではないと決定することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記クライアントデバイスに前記識別されたプロセスを許可することを求める前記要求を送信することに応答して、前記識別されたプロセスが許可されないというメッセージを前記クライアントデバイスから受信することを行わせる命令をさらに含むことを特徴とする請求項17に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to determine that the identified process is not a trusted process include:
And further instructing the client device to receive a message from the client device that the identified process is not authorized in response to sending the request to authorize the identified process. 18. The non-transitory computer readable medium of claim 17, comprising:
前記少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
前記識別されたプロセスをプログラムの前記ブラックリストに追加することを行わせる命令をさらに記憶することを特徴とする請求項18に記載の非一時的コンピュータ可読媒体。
Said at least one processor, when executed by said at least one processor,
The non-transitory computer readable medium of claim 18, further storing instructions that cause the identified process to be added to the blacklist of programs.
前記少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
前記識別されたプロセスが許可されたというメッセージを前記クライアントデバイスから受信することに応答して、前記識別されたプロセスをプログラムの前記ホワイトリストに追加することを行わせる命令をさらに記憶することを特徴とする請求項11に記載の非一時的コンピュータ可読媒体。
Said at least one processor, when executed by said at least one processor,
Storing further instructions in response to receiving a message from the client device that the identified process has been authorized to cause the identified process to be added to the whitelist of programs. A non-transitory computer-readable medium as recited in claim 11.
カーネルモードにおけるステガノグラフィのリアルタイム検出およびステガノグラフィからの保護のための方法であって、
ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出するステップと、
前記ファイルのサイズを決定するステップと、
ファイルシステムから前記ファイルの記憶されたファイルサイズを取り出すステップと、
前記ファイルの前記決定されたサイズを前記ファイルの前記記憶されたファイルサイズと比較するステップと、
前記ファイルの前記決定されたサイズが前記ファイルの前記記憶されたファイルサイズよりも大きいことに応答して、前記ファイルに関してステガノグラフィ検出分析を実行するステップと、
前記ステガノグラフィ検出分析が前記ファイルにおけるステガノグラフィの存在を示すことに応答して、
ステガノグラフィ修正アクションを実行するステップ、および
前記ステガノグラフィを記述する情報をクライアントデバイスに対して送信するステップと
を含むことを特徴とする方法。
A method for real-time detection of steganography and protection from steganography in kernel mode, comprising:
Detecting the sending of the file through a firewall, operating system, or email system;
Determining the size of the file,
Retrieving the stored file size of said file from a file system;
Comparing the determined size of the file with the stored file size of the file;
Performing steganographic detection analysis on the file in response to the determined size of the file being greater than the stored file size of the file;
In response to the steganographic detection analysis indicating the presence of steganography in the file,
Performing steganographic correction actions, and sending information describing said steganography to a client device.
前記ファイルの前記サイズを決定する前記ステップは、
前記ファイルのセクションヘッダについてポインタを取得するステップであって、前記セクションヘッダは前記ファイルの複数のセクションに関連付けられている、該ステップと、
前記ファイルの前記複数のセクションの各セクションについて、前記セクションのサイズを決定するステップと、
前記ファイルの前記複数のセクションの各セクションの前記サイズを合計して、前記ファイルの前記サイズを決定するステップと
を含むことを特徴とする請求項21に記載の方法。
The step of determining the size of the file comprises:
Obtaining a pointer for a section header of the file, the section header being associated with a plurality of sections of the file;
Determining, for each section of the plurality of sections of the file, a size of the section;
22. Summing the sizes of each section of the plurality of sections of the file to determine the size of the file.
前記ファイルの前記セクションヘッダに対する前記ポインタを取得する前記ステップは、
前記ファイルのファイル名または前記ファイルのパスを使用して前記ファイルを開くステップと、
前記ファイルのヘッダを読み取るステップと、
前記ヘッダからマジックナンバーを取り出すステップと、
前記マジックナンバーを検証して、前記ファイルの前記セクションヘッダについてポインタを取得するステップと
を含むことを特徴とする請求項22に記載の方法。
The step of obtaining the pointer to the section header of the file comprises:
Opening the file using the file name of the file or the path of the file;
Reading the header of the file,
Extracting the magic number from the header,
23. Validating the magic number to obtain a pointer for the section header of the file.
前記ファイルに対して前記ステガノグラフィ検出分析を実行する前記ステップは、
前記ファイルにおける付加されたペイロードを識別するステップと、
前記付加されたペイロードを分析して、前記付加されたペイロードのファイルフォーマットを決定するステップと、
前記付加されたペイロードの前記ファイルフォーマットに基づいて、前記ステガノグラフィ検出分析を実行するステップと
を含むことを特徴とする請求項21に記載の方法。
The step of performing the steganographic detection analysis on the file comprises:
Identifying the added payload in the file,
Analyzing the appended payload to determine a file format for the appended payload;
Performing the steganographic detection analysis based on the file format of the appended payload.
前記ファイルに対して前記ステガノグラフィ検出分析を実行する前記ステップは、
前記ファイルにおける付加されたペイロードを識別するステップと、
モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、前記付加されたペイロード内のデータが暗号化されているかどうかを決定するステップと
を含むことを特徴とする請求項21に記載の方法。
The step of performing the steganographic detection analysis on the file comprises:
Identifying the added payload in the file,
Perform one or more of Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision to determine if the data in the appended payload is encrypted. 22. The method of claim 21, comprising the step of:
前記ファイルに対して前記ステガノグラフィ検出分析を実行する前記ステップは、
前記ファイルにおける付加されたペイロードを識別するステップと、
前記付加されたペイロード内の許可されていないデータの存在を識別するステップと
を含むことを特徴とする請求項21に記載の方法。
The step of performing the steganographic detection analysis on the file comprises:
Identifying the added payload in the file,
22. Identifying the presence of unauthorized data in the appended payload.
前記ファイルに対して前記ステガノグラフィ検出分析を実行する前記ステップは、
前記ファイルにおける付加されたペイロードを識別するステップと、
前記付加されたペイロード内のアセンブリレベル命令またはマシンレベル命令の存在を識別するステップと
を含むことを特徴とする請求項21に記載の方法。
The step of performing the steganographic detection analysis on the file comprises:
Identifying the added payload in the file,
22. Identifying the presence of assembly-level or machine-level instructions within the appended payload.
前記ステガノグラフィ修正アクションを実行する前記ステップは、
前記ファイルの処理および送信を終了するステップと、
前記ファイルを隔離するステップと
を含むことを特徴とする請求項21に記載の方法。
The steps of performing the steganographic correction action include:
Terminating the processing and transmission of the file,
22. Quarantining the file.
命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、少なくとも1つのプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出することと、
前記ファイルのサイズを決定することと、
ファイルシステムから前記ファイルの記憶されたファイルサイズを取り出すことと、
前記ファイルの前記決定されたサイズを、前記ファイルの前記記憶されたファイルサイズと比較することと、
前記ファイルの前記決定されたサイズが前記ファイルの前記記憶されたファイルサイズよりも大きいことに応答して、前記ファイルについてステガノグラフィ検出分析を実行することと、
前記ステガノグラフィ検出分析が前記ファイルにおけるステガノグラフィの存在を示すことに対し応答して、
ステガノグラフィ修正アクションを実行すること、および
前記ステガノグラフィを記述する情報をクライアントデバイスに送信することと
を行わせることを特徴とする非一時的コンピュータ可読媒体。
A non-transitory computer readable medium having instructions stored therein, when the instructions are executed by at least one processor:
Detecting the sending of files through a firewall, operating system, or email system;
Determining the size of the file;
Retrieving the stored file size of said file from the file system;
Comparing the determined size of the file with the stored file size of the file;
Performing steganographic detection analysis on the file in response to the determined size of the file being greater than the stored file size of the file;
In response to the steganographic detection analysis indicating the presence of steganography in the file,
A non-transitory computer-readable medium that causes a steganographic modifying action to be performed and information describing the steganography to be transmitted to a client device.
前記ファイルの前記サイズを決定することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルのセクションヘッダについてポインタを取得することであって、前記セクションヘッダは前記ファイルの複数のセクションに関連付けられている、該取得することと、
前記ファイルの前記複数のセクションの各セクションについて、前記セクションのサイズを決定することと、
前記ファイルの前記複数のセクションの各セクションの前記サイズを合計して、前記ファイルの前記サイズを決定することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to determine the size of the file cause the at least one processor to:
Obtaining a pointer for a section header of the file, the section header being associated with a plurality of sections of the file;
Determining, for each section of the plurality of sections of the file, a size of the section;
30. The non-transitory computer readable medium of claim 29, further comprising instructions for summing the sizes of each section of the plurality of sections of the file to determine the size of the file. Medium.
前記ファイルの前記セクションヘッダについて前記ポインタを取得することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルのファイル名または前記ファイルのパスを使用して前記ファイルを開くことと、
前記ファイルのヘッダを読み取ることと、
前記ヘッダからマジックナンバーを取り出すことと、
前記マジックナンバーを検証して、前記ファイルの前記セクションヘッダについてポインタを取得することと
を行わせる命令を含むことを特徴とする請求項30に記載の非一時的コンピュータ可読媒体。
The instruction causing the at least one processor to obtain the pointer for the section header of the file causes the at least one processor to:
Opening the file using the file name of the file or the path of the file;
Reading the header of the file,
Extracting the magic number from the header,
31. The non-transitory computer-readable medium of claim 30, comprising instructions for verifying the magic number and obtaining a pointer for the section header of the file.
前記ファイルに関して前記ステガノグラフィ検出分析を実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルにおける付加されたペイロードを識別することと、
前記付加されたペイロードを分析して、前記付加されたペイロードのファイルフォーマットを決定することと、
前記付加されたペイロードの前記ファイルフォーマットに基づいて、前記ステガノグラフィ検出分析を実行することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to perform the steganographic detection analysis on the file cause the at least one processor to:
Identifying an added payload in the file;
Analyzing the appended payload to determine a file format for the appended payload;
30. The non-transitory computer readable medium of claim 29, including instructions for performing the steganographic detection analysis based on the file format of the appended payload.
前記ファイルに関して前記ステガノグラフィ検出分析を実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルにおける付加されたペイロードを識別することと、
モンテカルロ近似、エントロピ決定、系列係数分析、算術平均決定、カイ二乗決定、および標準偏差決定のうちの1つまたは複数を行って、前記付加されたペイロード内のデータが暗号化されているかどうかを決定することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to perform the steganographic detection analysis on the file cause the at least one processor to:
Identifying an added payload in the file;
Perform one or more of Monte Carlo approximation, entropy decision, sequence coefficient analysis, arithmetic mean decision, chi-square decision, and standard deviation decision to determine if the data in the appended payload is encrypted. 30. The non-transitory computer readable medium of claim 29, including instructions for causing the:.
前記ファイルに関して前記ステガノグラフィ検出分析を実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルにおける付加されたペイロードを識別することと、
前記付加されたペイロード内の許可されていないデータの存在を識別することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to perform the steganographic detection analysis on the file cause the at least one processor to:
Identifying an added payload in the file;
30. The non-transitory computer readable medium of claim 29, comprising instructions for causing the presence of unauthorized data in the appended payload to be identified.
前記ファイルに関して前記ステガノグラフィ検出分析を実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルにおける付加されたペイロードを識別することと、
前記付加されたペイロード内のアセンブリレベル命令またはマシンレベル命令の存在を識別することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to perform the steganographic detection analysis on the file cause the at least one processor to:
Identifying an added payload in the file;
30. The non-transitory computer-readable medium of claim 29, comprising instructions for identifying the presence of assembly-level instructions or machine-level instructions in the appended payload.
前記ステガノグラフィ修正アクションを実行することを前記少なくとも1つのプロセッサに行わせる前記命令は、前記少なくとも1つのプロセッサに、
前記ファイルの処理および送信を終了することと、
前記ファイルを隔離することと
を行わせる命令を含むことを特徴とする請求項29に記載の非一時的コンピュータ可読媒体。
The instructions causing the at least one processor to perform the steganographic correction action cause the at least one processor to:
Terminating the processing and transmission of the file,
30. The non-transitory computer readable medium of claim 29, including instructions for causing the file to be quarantined.
コンピュータシステムであって、
少なくとも1つのコンピュータプロセッサと、
命令を記憶する非一時的コンピュータ可読媒体と
を備え、
前記命令は、前記少なくとも1つのコンピュータプロセッサによって実行されたとき、前記少なくとも1つのプロセッサに、
ファイアウォール、オペレーティングシステム、または電子メールシステムを介して、ファイルの送信を検出することと、
前記ファイルのサイズを決定することと、
ファイルシステムから前記ファイルの記憶されたファイルサイズを取り出すことと、
前記ファイルの前記決定されたサイズを前記ファイルの前記記憶されたファイルサイズと比較することと、
前記ファイルの前記決定されたサイズが前記ファイルの前記記憶されたファイルサイズよりも大きいことに応答して、前記ファイルに関してステガノグラフィ検出分析を実行することと、
前記ステガノグラフィ検出分析が前記ファイルにおけるステガノグラフィの存在を示すことに応答して、
ステガノグラフィ修正アクションを実行すること、および
前記ステガノグラフィを記述する情報をクライアントデバイスに送信することと
を行わせることを特徴とするコンピュータシステム。
A computer system,
At least one computer processor,
A non-transitory computer-readable medium storing instructions,
The instructions, when executed by the at least one computer processor, cause the at least one processor to:
Detecting the sending of files through a firewall, operating system, or email system;
Determining the size of the file;
Retrieving the stored file size of said file from the file system;
Comparing the determined size of the file with the stored file size of the file;
Performing steganographic detection analysis on the file in response to the determined size of the file being greater than the stored file size of the file;
In response to the steganographic detection analysis indicating the presence of steganography in the file,
A computer system that causes a steganographic correction action to be performed and to send information describing the steganography to a client device.
前記ファイルの前記サイズを決定することを前記少なくとも1つのコンピュータプロセッサに行わせる前記命令は、前記少なくとも1つのコンピュータプロセッサに、
前記ファイルのセクションヘッダについてポインタを取得することであって、前記セクションヘッダは前記ファイルの複数のセクションに関連付けられている、取得することと、
前記ファイルの前記複数のセクションの各セクションについて、前記セクションのサイズを決定することと、
前記ファイルの前記複数のセクションの各セクションの前記サイズを合計して、前記ファイルの前記サイズを決定することと
を行わせる命令を含むことを特徴とする請求項37に記載のコンピュータシステム。
The instructions causing the at least one computer processor to determine the size of the file cause the at least one computer processor to:
Obtaining a pointer for a section header of the file, the section header being associated with a plurality of sections of the file;
Determining, for each section of the plurality of sections of the file, a size of the section;
38. The computer system of claim 37, including instructions to sum the sizes of each section of the plurality of sections of the file to determine the size of the file.
前記ファイルの前記セクションヘッダについて前記ポインタを取得することを前記少なくとも1つのコンピュータプロセッサに行わせる前記命令は、前記少なくとも1つのコンピュータプロセッサに、
前記ファイルのファイル名または前記ファイルのパスを使用して前記ファイルを開くことと、
前記ファイルのヘッダを読み取ることと、
前記ヘッダからマジックナンバーを取り出すことと、
前記マジックナンバーを検証して、前記ファイルの前記セクションヘッダについてポインタを取得することと
を行わせる命令を含むことを特徴とする請求項38に記載のコンピュータシステム。
The instructions causing the at least one computer processor to obtain the pointer for the section header of the file cause the at least one computer processor to:
Opening the file using the file name of the file or the path of the file;
Reading the header of the file,
Extracting the magic number from the header,
39. The computer system of claim 38, including instructions for verifying the magic number and obtaining a pointer for the section header of the file.
前記ファイルに関して前記ステガノグラフィ検出分析を実行することを前記少なくとも1つのコンピュータプロセッサに行わせる前記命令は、前記少なくとも1つのコンピュータプロセッサに、
前記ファイルにおける付加されたペイロードを識別することと、
前記付加されたペイロードを分析して、前記付加されたペイロードのファイルフォーマットを決定することと、
前記付加されたペイロードの前記ファイルフォーマットに基づいて、前記ステガノグラフィ検出分析を実行することと
を行わせる命令を含むことを特徴とする請求項37に記載のコンピュータシステム。
The instructions causing the at least one computer processor to perform the steganographic detection analysis on the file cause the at least one computer processor to:
Identifying an added payload in the file;
Analyzing the appended payload to determine a file format for the appended payload;
38. The computer system of claim 37, including instructions for performing the steganographic detection analysis based on the file format of the appended payload.
JP2019566622A 2017-05-30 2018-05-30 Real-time detection of malware and steganography in kernel mode and protection from malware and steganography Pending JP2020522808A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022110573A JP7460696B2 (en) 2017-05-30 2022-07-08 Real-time detection and protection from malware and steganography in kernel mode

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762512659P 2017-05-30 2017-05-30
US62/512,659 2017-05-30
PCT/US2018/035205 WO2018222766A1 (en) 2017-05-30 2018-05-30 Real-time detection of and protection from malware and steganography in a kernel mode

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022110573A Division JP7460696B2 (en) 2017-05-30 2022-07-08 Real-time detection and protection from malware and steganography in kernel mode

Publications (2)

Publication Number Publication Date
JP2020522808A true JP2020522808A (en) 2020-07-30
JP2020522808A5 JP2020522808A5 (en) 2021-07-26

Family

ID=64455580

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019566622A Pending JP2020522808A (en) 2017-05-30 2018-05-30 Real-time detection of malware and steganography in kernel mode and protection from malware and steganography
JP2022110573A Active JP7460696B2 (en) 2017-05-30 2022-07-08 Real-time detection and protection from malware and steganography in kernel mode

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022110573A Active JP7460696B2 (en) 2017-05-30 2022-07-08 Real-time detection and protection from malware and steganography in kernel mode

Country Status (6)

Country Link
US (3) US11082444B2 (en)
EP (1) EP3635603A4 (en)
JP (2) JP2020522808A (en)
CN (2) CN117171743A (en)
CA (1) CA3065306A1 (en)
WO (1) WO2018222766A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210294910A1 (en) * 2020-03-18 2021-09-23 Veritas Technologies Llc Systems and methods for protecting a folder from unauthorized file modification

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US10909239B2 (en) * 2017-06-29 2021-02-02 Webroot, Inc. Advanced file modification heuristics
US10885211B2 (en) * 2017-09-12 2021-01-05 Sophos Limited Securing interprocess communications
US10733290B2 (en) * 2017-10-26 2020-08-04 Western Digital Technologies, Inc. Device-based anti-malware
US11755758B1 (en) * 2017-10-30 2023-09-12 Amazon Technologies, Inc. System and method for evaluating data files
US10990975B2 (en) * 2017-11-08 2021-04-27 Paypal, Inc. Detecting malware by monitoring client-side memory stacks
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11416612B2 (en) * 2018-03-16 2022-08-16 Acronis International Gmbh Protecting against malware code injections in trusted processes
US10846403B2 (en) * 2018-05-15 2020-11-24 International Business Machines Corporation Detecting malicious executable files by performing static analysis on executable files' overlay
RU2708355C1 (en) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Method of detecting malicious files that counteract analysis in isolated environment
JP7151219B2 (en) * 2018-07-05 2022-10-12 株式会社リコー Embedded device, virus scan program execution method, program
US11010469B2 (en) * 2018-09-13 2021-05-18 Palo Alto Networks, Inc. Preventing ransomware from encrypting files on a target machine
US10996990B2 (en) * 2018-11-15 2021-05-04 International Business Machines Corporation Interrupt context switching using dedicated processors
US11200316B2 (en) * 2019-01-14 2021-12-14 Dell Products L.P. System and method for malicious code purification of portable network graphics files
US11681801B2 (en) 2019-01-14 2023-06-20 Dell Products L.P. Malicious code purification in graphics files
US11228910B2 (en) * 2019-01-25 2022-01-18 V440 Spó£Ka Akcyjna Mobile communication device and method of determining security status thereof
CN110069936A (en) * 2019-03-29 2019-07-30 合肥高维数据技术有限公司 A kind of wooden horse steganography method and detection method
RU2716735C1 (en) 2019-03-29 2020-03-16 Акционерное общество "Лаборатория Касперского" System and method of deferred authorization of a user on a computing device
JP7180765B2 (en) * 2019-05-24 2022-11-30 日本電信電話株式会社 Learning device, determination device, learning method, determination method, learning program and determination program
CN110232261B (en) * 2019-06-03 2021-05-11 浙江大华技术股份有限公司 Operation method of package file, file processing device and device with storage function
US11693963B2 (en) 2019-08-13 2023-07-04 International Business Machines Corporation Automatic ransomware detection with an on-demand file system lock down and automatic repair function
US11328064B2 (en) 2019-08-13 2022-05-10 International Business Machines Corporation Automatic ransomware detection with an on-demand file system lock down and automatic repair function
US11409868B2 (en) * 2019-09-26 2022-08-09 At&T Intellectual Property I, L.P. Ransomware detection and mitigation
CN111049724B (en) * 2019-10-16 2022-06-17 中国平安财产保险股份有限公司 Mail security check method, device, computer equipment and storage medium
US11113393B2 (en) * 2019-11-04 2021-09-07 Dell Products L.P. Providing security features in write filter environments
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11625481B2 (en) * 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720714B2 (en) * 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11341236B2 (en) * 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US20210383010A1 (en) * 2019-11-22 2021-12-09 Pure Storage, Inc. Measurement Interval Anomaly Detection-based Generation of Snapshots
US11657155B2 (en) * 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11645162B2 (en) * 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11520876B2 (en) * 2020-02-03 2022-12-06 Dell Products L.P. Efficiently authenticating an application during I/O request handling
WO2021181391A1 (en) * 2020-03-09 2021-09-16 Greenberg Netanel System and method for finding, tracking, and capturing a cyber-attacker
WO2021187996A1 (en) * 2020-03-19 2021-09-23 Айкьюпи Текнолоджи, Элтиди Method and system for blocking potentially unwanted software
US20220050938A1 (en) * 2020-08-12 2022-02-17 Microsoft Technology Licensing, Llc Predictive modeling for cloud capacity management
CN112434285B (en) * 2020-12-03 2023-12-29 深信服科技股份有限公司 File management method, device, electronic equipment and storage medium
CN112487466A (en) * 2020-12-16 2021-03-12 厦门市美亚柏科信息股份有限公司 Featureless encrypted file detection method, terminal equipment and storage medium
US20220200996A1 (en) * 2020-12-23 2022-06-23 Acronis International Gmbh Systems and methods for protecting web conferences from intruders
US11914724B2 (en) * 2020-12-24 2024-02-27 Acronis International Gmbh Systems and methods for adjusting data protection levels based on system metadata
US11765188B2 (en) * 2020-12-28 2023-09-19 Mellanox Technologies, Ltd. Real-time detection of network attacks
CN112347499B (en) * 2021-01-08 2021-04-30 北京东方通软件有限公司 Program self-protection method
US20220360594A1 (en) * 2021-05-05 2022-11-10 Sophos Limited Mitigating threats associated with tampering attempts
US20220394051A1 (en) * 2021-06-08 2022-12-08 Microsoft Technology Licensing, Llc Detecting potential malicious use of a resource management agent using a resource management log
US11361075B1 (en) * 2021-06-18 2022-06-14 Citrix Systems, Inc. Image steganography detection
CN114553811B (en) * 2022-01-07 2023-04-28 中国人民解放军战略支援部队信息工程大学 High-capacity behavior steganography method based on timestamp modulation and carrier selection
US20230259615A1 (en) * 2022-02-15 2023-08-17 Palo Alto Networks, Inc. Prevention of container escape-based attacks of a host system
EP4246351A1 (en) * 2022-03-17 2023-09-20 AO Kaspersky Lab Detecting a harmful file using a database of vulnerable drivers
US11831542B2 (en) * 2022-04-13 2023-11-28 Microsoft Technology Licensing, Llc Platform for routing internet protocol packets using flow-based policy
CN117131497A (en) * 2023-02-28 2023-11-28 荣耀终端有限公司 Software detection method and electronic equipment
CN116127461B (en) * 2023-04-04 2023-07-25 阿里巴巴(中国)有限公司 Data protection method and system, storage server and client

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150058987A1 (en) * 2013-08-22 2015-02-26 F-Secure Corporation Detecting File Encrypting Malware
JP5996145B1 (en) * 2016-07-14 2016-09-21 三井物産セキュアディレクション株式会社 Program, information processing apparatus, and information processing method
JP2017068822A (en) * 2015-09-30 2017-04-06 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for detecting malicious data encryption programs

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090038011A1 (en) 2004-10-26 2009-02-05 Rudra Technologies Pte Ltd. System and method of identifying and removing malware on a computer system
US7441153B1 (en) * 2005-03-28 2008-10-21 Network Appliance Inc. Method and system for secure and reliable event logging
US9055093B2 (en) 2005-10-21 2015-06-09 Kevin R. Borders Method, system and computer program product for detecting at least one of security threats and undesirable computer files
US8918427B1 (en) 2006-12-29 2014-12-23 Symantec Operating Corporation Virtualization of file input/output operations
US8069484B2 (en) 2007-01-25 2011-11-29 Mandiant Corporation System and method for determining data entropy to identify malware
US8621610B2 (en) * 2007-08-06 2013-12-31 The Regents Of The University Of Michigan Network service for the detection, analysis and quarantine of malicious and unwanted files
US8621628B2 (en) * 2010-02-25 2013-12-31 Microsoft Corporation Protecting user mode processes from improper tampering or termination
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8656465B1 (en) * 2011-05-09 2014-02-18 Google Inc. Userspace permissions service
US8650638B2 (en) * 2011-10-18 2014-02-11 Mcafee, Inc. System and method for detecting a file embedded in an arbitrary location and determining the reputation of the file
CN102646173A (en) * 2012-02-29 2012-08-22 成都新云软件有限公司 Safety protection control method and system based on white and black lists
US9021589B2 (en) * 2012-06-05 2015-04-28 Los Alamos National Security, Llc Integrating multiple data sources for malware classification
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
CN103116724B (en) * 2013-03-14 2015-08-12 北京奇虎科技有限公司 The method of locator(-ter) sample hazardous act and device
US9197655B2 (en) * 2013-07-16 2015-11-24 Bank Of America Corporation Steganography detection
CN103679031B (en) * 2013-12-12 2017-10-31 北京奇虎科技有限公司 A kind of immune method and apparatus of file virus
US9386034B2 (en) 2013-12-17 2016-07-05 Hoplite Industries, Inc. Behavioral model based malware protection system and method
US10230739B2 (en) 2015-06-26 2019-03-12 Board Of Regents, The University Of Texas System System and device for preventing attacks in real-time networked environments
WO2017023775A1 (en) 2015-07-31 2017-02-09 Digital Guardian, Inc. Systems and methods of protecting data from malware processes
US20170091482A1 (en) * 2015-09-30 2017-03-30 Symantec Corporation Methods for data loss prevention from malicious applications and targeted persistent threats
US20170359306A1 (en) * 2016-06-10 2017-12-14 Sophos Limited Network security
US10191789B2 (en) 2016-08-18 2019-01-29 Crowdstrike, Inc. Tracing system operations across remote procedure linkages to identify request originators
US10609066B1 (en) 2016-11-23 2020-03-31 EMC IP Holding Company LLC Automated detection and remediation of ransomware attacks involving a storage device of a computer network
US9734337B1 (en) 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
US11960603B2 (en) * 2017-04-25 2024-04-16 Druva Inc. Multi-step approach for ransomware detection
US10586043B2 (en) 2017-05-03 2020-03-10 Samsung Electronics Co., Ltd. System and method for detecting malicious software in NVME over fabrics devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150058987A1 (en) * 2013-08-22 2015-02-26 F-Secure Corporation Detecting File Encrypting Malware
JP2017068822A (en) * 2015-09-30 2017-04-06 エーオー カスペルスキー ラボAO Kaspersky Lab System and method for detecting malicious data encryption programs
JP5996145B1 (en) * 2016-07-14 2016-09-21 三井物産セキュアディレクション株式会社 Program, information processing apparatus, and information processing method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
安藤 類央 ほか2名: "Windows OS上でのフィルタドライバを用いたセキュアアクセス制御機構の構築 An implementation", コンピュータセキュリティシンポジウム2009 論文集, vol. 2009, no. 11, JPN6021037387, 19 October 2009 (2009-10-19), JP, pages 123 - 128, ISSN: 0004601387 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210294910A1 (en) * 2020-03-18 2021-09-23 Veritas Technologies Llc Systems and methods for protecting a folder from unauthorized file modification

Also Published As

Publication number Publication date
US11082444B2 (en) 2021-08-03
CA3065306A1 (en) 2018-12-06
US20230231872A1 (en) 2023-07-20
US20180351969A1 (en) 2018-12-06
CN111095250A (en) 2020-05-01
JP2022133461A (en) 2022-09-13
JP7460696B2 (en) 2024-04-02
US20180351968A1 (en) 2018-12-06
CN117171743A (en) 2023-12-05
EP3635603A4 (en) 2021-03-03
EP3635603A1 (en) 2020-04-15
WO2018222766A1 (en) 2018-12-06
US11575704B2 (en) 2023-02-07

Similar Documents

Publication Publication Date Title
JP7460696B2 (en) Real-time detection and protection from malware and steganography in kernel mode
US11843631B2 (en) Detecting triggering events for distributed denial of service attacks
US10691824B2 (en) Behavioral-based control of access to encrypted content by a process
US10657277B2 (en) Behavioral-based control of access to encrypted content by a process
US11165797B2 (en) Detecting endpoint compromise based on network usage history
US9846776B1 (en) System and method for detecting file altering behaviors pertaining to a malicious attack
US10868821B2 (en) Electronic mail security using a heartbeat
US10986109B2 (en) Local proxy detection
US10972483B2 (en) Electronic mail security using root cause analysis
US9251343B1 (en) Detecting bootkits resident on compromised computers
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
GB2551813A (en) Mobile device policy enforcement
US11929992B2 (en) Encrypted cache protection
GB2570543A (en) Detecting triggering events for distributed denial of service attacks
US11829467B2 (en) Dynamic rules engine in a cloud-based sandbox
US11636208B2 (en) Generating models for performing inline malware detection
Deng et al. Lexical analysis for the webshell attacks
KR101558054B1 (en) Anti-malware system and packet processing method in same
WO2019122832A1 (en) Electronic mail security using a user-based inquiry
WO2022208045A1 (en) Encrypted cache protection
US20220245249A1 (en) Specific file detection baked into machine learning pipelines
US20240028707A1 (en) In-memory scan for threat detection with binary instrumentation backed generic unpacking, decryption, and deobfuscation
US20230259612A1 (en) Exploit detection in a cloud-based sandbox
Jayarathna et al. Hypervisor-based Security Architecture to Protect Web Applications.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210531

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210531

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20210531

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220308