JP2018522359A - コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法 - Google Patents

コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法 Download PDF

Info

Publication number
JP2018522359A
JP2018522359A JP2018504900A JP2018504900A JP2018522359A JP 2018522359 A JP2018522359 A JP 2018522359A JP 2018504900 A JP2018504900 A JP 2018504900A JP 2018504900 A JP2018504900 A JP 2018504900A JP 2018522359 A JP2018522359 A JP 2018522359A
Authority
JP
Japan
Prior art keywords
computing
computing process
vulnerability
computing environment
telemetry data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018504900A
Other languages
English (en)
Other versions
JP6680437B2 (ja
Inventor
チェン・ジョセフ
クリスチャン レスレシアン・レイ
クリスチャン レスレシアン・レイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of JP2018522359A publication Critical patent/JP2018522359A/ja
Application granted granted Critical
Publication of JP6680437B2 publication Critical patent/JP6680437B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

開示される、コンピューティングプロセス内の未知の脆弱性を検出するためのコンピュータ実行方法は、(1)コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視することと、(2)コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定することと、(3)コンピューティングプロセスを、コンピューティング環境内で作動している間にクラッシュに導いた可能性があるあらゆる脆弱性の証拠に関してテレメトリデータを検索することと、(4)テレメトリデータを検索している間に、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別することと、次いで、コンピューティングプロセスの脆弱性の証拠の識別に応答して、(5)コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施することと、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体も開示される。

Description

コンピュータセキュリティシステムは、しばしば、潜在的なセキュリティ脅威に関してコンピューティングデバイスを監視する。例えば、コンピューティングデバイスは、潜在的なセキュリティ脅威から保護するために従来のコンピュータセキュリティシステムを実装することができる。この例では、従来のコンピュータセキュリティシステムは、よく知られたセキュリティ脅威の存在を検出することができ得る。残念ながら、この従来のコンピュータセキュリティシステムはよく知られたセキュリティ脅威の存在を検出することができ得る一方で、従来のコンピュータセキュリティシステムは、未知のセキュリティ脅威(例えば、ゼロデイ攻撃及び/又はコンピュータセキュリティシステムのユーザーベース内の1台のコンピュータ上でのみ遭遇するファイル)の存在を検出するのが苦手であり得る。
セキュリティ脅威は、しばしば、これらのコンピューティングデバイス上で作動するコンピューティングプロセス内に存在する脆弱性によりコンピューティングデバイスに潜入する。例えば、コンピューティングデバイスは、新たに公開されたコンピューティングプロセス(オペレーティングシステムの更新、ソフトウェアアプリケーション、及び/又は開発ツールなど)をインストール及び/又は起動する場合がある。残念ながら、このような新たに公開されたコンピューティングプロセスは、実行中に発生する特定の例外及び/又はエラーをとらえることができない場合がある。これらの例外及び/又はエラーは、コンピューティングデバイスを汚染、攻撃、及び/又は支配する目的のために悪意ある攻撃者がエクスプロイトすることができるコンピューティングプロセスの脆弱性を表し得る。
したがって、本開示は、コンピューティングプロセス内の未知の脆弱性を検出するために付加的かつ改善されたシステム及び方法に対するニーズを特定し、それに対処する。
より詳細に後述するように、本開示は、コンピューティングプロセス内の未知の脆弱性を、そのようなコンピューティングプロセスがクラッシュした後に収集されたテレメトリデータ内に特定のパターンを探すことにより、検出するための様々なシステム及び方法を記載する。
一実施例では、コンピューティングプロセス内の未知の脆弱性を検出するためのコンピュータ実行方法は、(1)コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視することと、(2)コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定することと、(3)コンピューティングプロセスを、コンピューティング環境内で作動している間にクラッシュに導いた可能性があるあらゆる脆弱性の証拠に関してテレメトリデータを検索することと、(4)テレメトリデータを検索している間に、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別することと、次いで、コンピューティングプロセスの脆弱性の証拠の識別に応答して、(5)コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施することと、を含み得る。
一実施例では、本方法はまた、アプリケーションプログラミングインターフェース(API)フック、パケット捕捉構成要素、ファイルシステムモニタ、及び/又はネットワークスイッチでテレメトリデータをログ記録することも含み得る。この実施例では、本方法は、悪意ある攻撃中に通常呼び出されるAPI内にフックを挿入することを更に含み得る。それに加えて、又は別の方法として、本方法は、悪意ある攻撃中に通常呼び出されるAPIへ至るコード経路内にフックを挿入することを含み得る。
一実施例では、本方法はまた、コンピューティングプロセスがコンピューティング環境内で作動している間にコンピューティング環境内の呼び出しスタックのオーバーフローを検出することも含み得る。それに加えて、又は別の方法として、本方法は、コンピューティングプロセスがコンピューティング環境内で作動している間に例外をスローしたことを判定することを含み得る。
一実施例では、本方法はまた、コンピューティングプロセスがコンピューティング環境内で作動している間にコンピューティング環境内の呼び出しスタック上の例外ハンドラーが上書きされたことを、テレメトリデータに少なくとも部分的に基づいて判定することも含み得る。それに加えて、又は別の方法として、本方法は、コンピューティングプロセスがコンピューティング環境内で作動している間にコンピューティング環境内の呼び出しスタック上のコンピューティングプロセスの仮想アドレスが上書きされたことを、テレメトリデータに少なくとも部分的に基づいて判定することを含み得る。
一実施例では、本方法はまた、脆弱性がコンピューティングプロセス内に存在することがまだ知られていないことを判定することも含み得る。例えば、本方法は、特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースにクエリすることと、次いで、データベースがコンピューティングプロセスを脆弱性を有するとして識別していないことを、クエリに少なくとも部分的に基づいて判定することと、を含み得る。
テレメトリデータの例としては、非限定的に、クラッシュダンプ、コンピューティング環境の呼び出しスタック(コンピューティングプロセスのクラッシュに関与した呼び出しスタックなど)、APIトレース、環境コンテキスト情報、それらの1つ以上の変形、それらの1つ以上の組み合わせ、又は他の任意の好適なテレメトリデータが挙げられる。セキュリティ動作の例としては、非限定的に、コンピューティングプロセスの脆弱性についてコンピューティングプロセスのベンダに通知すること、コンピューティングプロセスの脆弱性の記録を、特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースに追加すること、コンピューティングプロセスの脆弱性をエクスプロイトするあらゆる試みを監視するようにコンピュータセキュリティシステムを修正すること、それらの1つ以上の変形、それらの1つ以上の組み合わせ、又は他の任意の好適なセキュリティ動作が挙げられる。
別の実施例として、上記方法を実装するためのシステムは、(1)メモリに格納された、監視モジュールであって、(A)コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視し、(B)コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定する、監視モジュールと、(2)メモリに格納された、分析モジュールであって、(A)コンピューティングプロセスをコンピューティング環境内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータを検索し、(B)テレメトリデータを検索している間に、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別する、分析モジュールと、(3)メモリに格納された、セキュリティモジュールであって、証拠の識別に応答して、コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施する、セキュリティモジュールと、(4)監視モジュール、分析モジュール、及びセキュリティモジュールを実行する、少なくとも1つの物理プロセッサと、を含み得る。
いくつかの実施例では、上述の方法は、非一時的コンピュータ可読媒体上のコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ以上のコンピュータ実行可能命令であって、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、(1)コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視させ得、(2)コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定させ得、(3)コンピューティングプロセスをコンピューティング環境内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータを検索させ得、(4)テレメトリデータを検索している間に、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別させ得、次いで、コンピューティングプロセスの脆弱性の証拠の識別に応答して、(5)コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施させ得る、1つ以上のコンピュータ実行可能命令、を含み得る。
上述の実施形態のいずれかによる特徴は、本明細書に記載される一般原理に従って、互いに組み合わせて使用されてもよい。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
添付の図面は、いくつかの例示的な実施形態を図示するものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
コンピューティングプロセス内の未知の脆弱性を検出するための例示的なシステムのブロック図である。 コンピューティングプロセス内の未知の脆弱性を検出するための追加の例示的なシステムのブロック図である。 コンピューティングプロセス内の未知の脆弱性を検出するための例示的な方法の流れ図である。 本明細書で説明及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステムのブロック図である。 本明細書で説明及び/又は図示される実施形態のうちの1つ以上を実装できる例示的なコンピューティングネットワークのブロック図である。
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書で説明される例示的実施形態は、様々な修正物及び代替的な形態が可能であるが、特定の実施形態が例として図面に示されており、本明細書に詳細に記載される。しかしながら、本明細書に記載される例示的実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の特許請求の範囲内にある全ての修正物、等価物、及び代替物を網羅する。
本開示は、一般に、コンピューティングプロセス内の未知の脆弱性を検出するシステム及び方法を対象とする。より詳細に後述するように、プロセスのクラッシュ後にコンピューティングデバイスから収集されたテレメトリデータ(例えば、クラッシュダンプ、呼び出しスタック、APIトレース、及び/又は環境コンテキスト情報)を分析することにより、本明細書に記載のシステム及び方法は、脆弱性を表すテレメトリデータ内の特定のパターンを識別することができ得る。本明細書に記載のシステム及び方法はまた、コンピューティングデバイス上でクラッシュしたプロセス内にそのような脆弱性が存在することが知られているかどうかを判定し得る。
脆弱性がクラッシュしたプロセス内に存在することが知られていない場合、本明細書に記載のシステム及び方法は、悪意ある攻撃者がコンピューティングデバイスを汚染、攻撃、及び/又は支配する目的のためにそれらの脆弱性のうちいずれをエクスプロイトするのも防止するためのセキュリティ動作を実施することができる。それゆえに、本明細書に記載のシステム及び方法は、未知の脆弱性(時として「ゼロデイ脆弱性」とも呼ばれる)を、それらの脆弱性が悪意ある攻撃者により検出及び/又は発見される前に、検出及び/又は発見することを容易にし得る。結果として、本明細書に記載のシステム及び方法は、それらの脆弱性に事前に対処して、それらの脆弱性をエクスプロイトしようと試みる悪意ある攻撃者による将来のゼロデイ攻撃を防ぐことができ得る。
以下、図1〜図2を参照して、コンピューティングプロセス内の未知の脆弱性を検出するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実行方法の詳細な説明は、図3に関連して提供される。更に、本明細書で説明される実施形態のうちの1つ以上を実装できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、それぞれ、図4及び図5と関連して提供されることになる。
図1は、コンピューティングプロセス内の未知の脆弱性を検出するための例示的なシステム100のブロック図である。この図に図示されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含んでもよい。例えば、より詳細に後述するように、例示的なシステム100は、監視モジュール104であって、(1)コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視し、(2)コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定する、監視モジュール104、を含み得る。
それに加えて、より詳細に後述するように、例示的なシステム100は、分析モジュール106であって、(1)コンピューティングプロセスをコンピューティング環境内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータを検索し、(2)テレメトリデータを検索している間に、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別する、分析モジュール106、を含み得る。例示的なシステム100はまた、証拠の識別に応答して、コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施する、セキュリティモジュール108を含み得る。別々の要素として図示されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの部分を表してもよい。
特定の実施形態では、図1のモジュール102のうち1つ以上は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに1つ以上のタスクを実施させ得る、1つ以上のソフトウェアアプリケーション又はプログラムを表し得る。例えば、より詳細に後述するように、モジュール102のうち1つ以上は、図2に示されるデバイス(例えば、コンピューティングデバイス202及び/又はサーバ206)、図4のコンピューティングシステム410、並びに/あるいは図5の例示的なネットワークアーキテクチャ500の部分など、1つ以上のコンピューティングデバイスに格納され、その上で動くように構成された、ソフトウェアモジュールを表してもよい。図1のモジュール102のうち1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の専用コンピュータの全て又は一部を表し得る。
図1の例示的なシステム100は、様々な方法で実装され得る。例えば、例示的なシステム100の全て又は一部は、図2における例示的なシステム200の部分を表してもよい。図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含んでもよい。一実施例では、コンピューティングデバイス202は、モジュール102のうち1つ以上でプログラムされてもよい。この実施例では、コンピューティングデバイス202は、コンピューティングプロセス210の実行を容易にするコンピューティング環境208を含んでもよく、かつ/又は表してもよい。それに加えて、又は別の方法として、コンピューティングデバイス202は、コンピューティング環境208及び/又はコンピューティングプロセス210に関連してテレメトリデータ214をログ記録及び/又は収集する監視構成要素212を含んでもよく、かつ/又は維持してもよい。
コンピューティング環境208は図2ではコンピューティングデバイス202とは別個であるとして図示されているものの、コンピューティングデバイス202は、別の方法として、コンピューティング環境208を構成してもよく、かつ/又は表してもよい。同様に、監視構成要素212は図2ではコンピューティング環境208とは別個であるとして図示されているものの、監視構成要素212は、別の方法として、図2のコンピューティング環境208の部分及び/又はコンピューティング環境208に特有の構成要素若しくはコンピューティング環境208に関係する構成要素を構成してもよく、かつ/又は表してもよい。
その上、図2はただ1つの監視構成要素を図示しているものの、システム200は、別の方法として、テレメトリデータ214の部分をログ記録、収集、及び/又は記録する多数の監視構成要素を含んでもよく、かつ/又は伴ってもよい。同様に、図2はコンピューティング環境208内で作動するただ1つのコンピューティングプロセスを図示しているものの、システム200は、別の方法として、コンピューティング環境208内で同時に作動する多数のコンピューティングプロセスを含んでもよく、かつ/又は伴ってもよい。
一実施例では、サーバ206は、モジュール102のうち1つ以上でプログラムされてもよい。この実施例では、サーバ206は、コンピューティングデバイス202からネットワーク204を介してテレメトリデータ214を取得することができる。それに加えて、又は別の方法として、サーバ206は、テレメトリデータ214を分析して、コンピューティングプロセス210内に存在することがまだ知られていないいずれかの脆弱性に少なくとも部分的に起因してコンピューティングプロセス210がクラッシュしたのかどうかを判定してもよい。
一実施形態では、図1によるモジュール102のうち1つ以上は、コンピューティングデバイス202及び/又はサーバ206のうちの少なくとも1つのプロセッサによって実行されると、コンピューティングデバイス202及び/又はサーバ206がコンピューティングプロセス内の未知の脆弱性を検出することを可能にすることができる。例えば、より詳細に後述するように、モジュール102のうち1つ以上は、コンピューティングデバイス202及び/又はサーバ206に、(1)コンピューティングプロセス210の実行を容易にするコンピューティング環境208を、コンピューティングプロセス210がコンピューティング環境208内で作動している間コンピューティングプロセス210に関連するテレメトリデータ214をログ記録することにより、監視させ得、(2)コンピューティングプロセス210がコンピューティング環境208内で作動している間にクラッシュしたことを判定させ得、(3)コンピューティングプロセス210をコンピューティング環境208内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータ214を検索させ得、(4)テレメトリデータ214を検索している間に、コンピューティングプロセス210内に存在することがまだ知られていないコンピューティングプロセス210の少なくとも1つの脆弱性の証拠を識別させ得、次いで、コンピューティングプロセスの脆弱性の証拠の識別に応答して、(5)コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施させ得る。
コンピューティングデバイス202は、一般に、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを表す。コンピューティングデバイス202の例としては、非限定的に、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末(PDA)、ネットワークデバイス、マルチメディアプレーヤー、埋め込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、ゲーム機、それらの1つ以上の組み合わせ、図4の例示的なコンピューティングシステム410、あるいは他の任意の好適なコンピューティングデバイスが挙げられる。
コンピューティング環境208は、一般に、コンピューティングプロセスの実行及び/又は起動を容易にする任意のタイプ又は形態の物理的若しくは仮想的コンピューティング環境、ツール、プラットフォーム、及び/又はエンジンを表す。コンピューティング環境208の例としては、非限定的に、ソフトウェアアプリケーション、オペレーティングシステム、サンドボックス、実行時環境、仮想マシン、物理的コンピューティングデバイス(コンピューティングデバイス202など)、それらの1つ以上の変形、それらの1つ以上の組み合わせ、又は他の任意の好適なコンピューティング環境が挙げられる。
コンピューティングプロセス210は、一般に、コンピューティング環境内で、かつ/又はコンピューティング環境に関連して作動することができる任意のタイプ又は形態のアプリケーション、プログラム、及び/又はプロセスを表す。一実施例では、コンピューティングプロセス210は、最近ユーザーに公開された新しいアプリケーション、更新、及び/又はパッチを含んでもよく、かつ/又は表してもよい。例えば、コンピューティングプロセス210は、オペレーティングシステムのベータ版を含んでもよく、かつ/又は表してもよい。コンピューティングプロセス210の例としては、非限定的に、ソフトウェアアプリケーション、オペレーティングシステム、アプレット、コンピュータゲーム、通信ソフトウェア、ネットワーキングソフトウェア、それらの1つ以上の変形、それらの1つ以上の更新、それらの1つ以上の組み合わせ、又は他の任意の好適なコンピューティングプロセスが挙げられる。
監視構成要素212は、一般に、コンピューティング環境内で作動するコンピューティングプロセスに関連してコンピューティング活動及び/又はテレメトリデータを監視、観察、及び/又はログ記録する任意のタイプ又は形態のデバイス、プログラム、コード、及び/又はメカニズムを表す。一実施例では、監視構成要素212は、監視モジュール104の部分を表してもよい。別の実施例では、監視構成要素212は、監視モジュール104とは別個であり個別であってもよい。例えば、監視モジュール104は、監視構成要素212を悪意ある攻撃中に通常呼び出されるAPI内に、かつ/又はそのようなAPIへ至るコード経路内に挿入してもよく、かつ/又は埋め込んでもよい。監視構成要素212の例としては、非限定的に、フック、パケット捕捉構成要素、ファイルシステムモニタ、ネットワークスイッチ、それらの1つ以上の変形、それらの1つ以上の組み合わせ又は他の任意の好適な監視構成要素が挙げられる。
「フック」という用語は、本明細書で使用するとき、一般に、APIへの呼び出しを傍受及び/又は記録することを容易にする任意のタイプ又は形態のコードの修正及び/又は拡張を指す。一実施例では、フックは、元のバージョンのAPIから別のメモリ位置及び/又は代替的コードに実行フローを少なくとも一時的に移動させる、APIに対する修正及び/又は拡張を含んでもよく、かつ/又は表してもよい。例えば、フックは、APIの始まり又はエントリポイントに挿入されたコード(例えば、ジャンプ命令)を含んでもよく、かつ/又は表してもよい。この実施例では、コード(時として「トランポリン」と呼ばれる)は、APIから別のメモリ位置に実行フローを一時的に移動又は迂回させることができ、追加のコードは、APIへの呼び出しを開始したコンピューティングプロセスに関連するテレメトリデータをログ記録するように構成される。テレメトリデータをこのような方法でログ記録することにより、追加のコードは、API呼び出しを開始したコンピューティングプロセスが最終的に、かつ/又は突然にクラッシュした場合、このようなテレメトリデータを分析のために収集及び/又は維持することができ得る。このようなフックの例としては、非限定的に、APIフック、ユーザーモードフック、カーネルモードフック、物理的修正フック、実行時修正フック、イベントフック、仮想フック、ネットフィルタフック、それらの1つ以上の変形、それらの1つ以上の組み合わせ、又は他の任意の好適なフックが挙げられる。
テレメトリデータ214は、一般に、コンピューティングプロセスに関連する任意のタイプ又は形態のデータ、統計、及び/又は情報を表す。一実施例では、テレメトリデータ214は、コンピューティングプロセス210が脆弱性の結果としてクラッシュしたのかどうかに関連する洞察を提供することができる。それに加えて、又は別の方法として、テレメトリデータ214は、コンピューティング環境208及び/又はコンピューティングデバイス202により観察された、クラッシュに至るまでの特定のコンピューティング活動を識別及び/又は指摘してもよい。テレメトリデータ214の例としては、非限定的に、クラッシュダンプ、メモリダンプ、呼び出しスタック(プロセスのクラッシュに関与した呼び出しスタックなど)、APIトレース、環境コンテキスト情報、それらの1つ以上の変形、それらの1つ以上の組み合わせ、又は他の任意の好適なテレメトリデータが挙げられる。
サーバ206は、一般に、テレメトリデータに対して脆弱性分析を実施し、かつ/又はマルウェア分析に関連してコンピューティング活動を観察することができる任意のタイプ又は形態のコンピューティングデバイスを表す。サーバ206の例としては、非限定的に、特定のソフトウェアアプリケーションを実行する、並びに/あるいは様々なセキュリティサービス、ウェブサービス、ストレージサービス、重複排除サービス、及び/又はデータベースサービスを提供するように構成された、アプリケーションサーバ、セキュリティサーバ、ウェブサーバ、ストレージサーバ、重複排除サーバ、及び/又はデータベースサーバが挙げられる。
ネットワーク204は、一般に、通信若しくはデータ転送を容易にすることが可能な、任意の媒体又はアーキテクチャを表す。ネットワーク204の例としては、非限定的に、イントラネット、広域ネットワーク(Wide Area Network)(WAN)、ローカルエリアネットワーク(Local Area Network)(LAN)、パーソナルエリアネットワーク(Personal Area Network)(PAN)、インターネット、電力線通信(PLC)、セルラーネットワーク(例えば、Global System for Mobile Communications(GSM(登録商標))ネットワーク)、図5の例示的なネットワークアーキテクチャ500などが挙げられる。ネットワーク204は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にしてもよい。一実施形態では、ネットワーク204は、コンピューティングデバイス202とサーバ206との間の通信を容易にしてもよい。
図3は、コンピューティングプロセス内の未知の脆弱性を検出するための例示的なコンピュータ実行方法300の流れ図である。図3に示されるステップは、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態では、図3に示すステップは、図1のシステム100、図2のシステム200、図4のコンピューティングシステム410、及び/又は図5の例示的なネットワークアーキテクチャ500の部分の構成要素のうち1つ以上によって実行されてもよい。
図3に示すように、ステップ302において、本明細書に記載の1つ以上のシステムは、コンピューティングプロセスの実行を容易にするコンピューティング環境を、コンピューティングプロセスがコンピューティング環境内で作動している間コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視し得る。例えば、監視モジュール104は、図2のコンピューティングデバイス202及び/又はサーバ206の一部として、コンピューティングプロセス210の実行を容易にするコンピューティング環境208を監視してもよい。この実施例では、監視モジュール104は、コンピューティングプロセス210がコンピューティング環境208内で作動している間コンピューティングプロセス210に関連するテレメトリデータ214をログ記録することができる。
本明細書に記載するシステムは、様々な方法及び/又は文脈でステップ302を実施してもよい。一実施例では、監視モジュール104は、テレメトリデータ214の少なくとも一部を監視構成要素212でログ記録することにより、コンピューティング環境208を監視し得る。例えば、監視構成要素212がフックを表す場合、監視モジュール104は、エクスプロイト攻撃中に通常呼び出されるAPI内にフックを挿入してもよい。それに加えて、又は別の方法として、監視モジュール104は、エクスプロイト攻撃中に通常呼び出されるAPIへ至るコード経路内にフックを挿入してもよい。
一実施例では、監視モジュール104は、クラッシュダンプ及び/又はメモリダンプを作成することによりテレメトリデータ214の少なくとも一部をログ記録し得る。別の実施例では、監視モジュール104は、コンピューティング環境208の呼び出しスタックを記録、コピー、及び/又は複製することにより、テレメトリデータ214の少なくとも一部をログ記録し得る。例えば、監視モジュール104は、コンピューティング環境208のどの呼び出しスタックがコンピューティングプロセス210のクラッシュに関与したのかを識別し、クラッシュに至るまでの呼び出しスタックの内容を記録し得る。さらなる実施例では、監視モジュール104は、コンピューティングプロセス210により呼び出されたAPIをトレースすることによりテレメトリデータ214の少なくとも一部をログ記録し得る。
一実施例では、監視モジュール104は、コンピューティング環境208内で作動するコンピューティングプロセスによりなされた特定のAPI呼び出しを傍受することによりコンピューティング環境208を監視し得る。例えば、監視モジュール104は、エクスプロイト攻撃中にマルウェアにより通常呼び出されるAPIへの全ての呼び出しを傍受し得る。それに加えて、又は別の方法として、監視モジュール104は、エクスプロイト攻撃中にマルウェアにより通常呼び出されるAPIの呼び出しにつながり得、及び/又は引き起こし得る別のAPIへの全ての呼び出しを傍受し得る。換言すれば、監視モジュール104は、通常標的とされるAPI自体及び/又は通常標的とされるAPIに至る任意のコード経路を監視し得る。
図3に戻ると、ステップ304において、本明細書に記載の1つ以上のシステムは、コンピューティングプロセスがコンピューティング環境内で作動している間にクラッシュしたことを判定し得る。例えば、監視モジュール104は、図2のコンピューティングデバイス202及び/又はサーバ206の一部として、コンピューティングプロセス210がコンピューティング環境208内で作動している間にクラッシュしたことを判定し得る。「クラッシュ」という用語又は「クラッシュする」という文言は、本明細書でコンピューティングプロセスに関連して使用するとき、一般に、コンピューティングプロセスが正常に機能しなくなる結果をもたらす任意のタイプ又は形態の異常終了及び/又はエラーを指す。
本明細書に記載するシステムは、様々な方法及び/又は文脈でステップ304を実施してもよい。一実施例では、監視モジュール104は、クラッシュを検出するコード片をコンピューティングプロセス210に追加することにより、コンピューティングプロセス210がクラッシュしたことを判定し得る。例えば、コンピューティングプロセス210がコンピューティング環境208内で作動し始める前に、監視モジュール104は、コード片をコンピューティングプロセス210に追加してもよい。この実施例では、コード片は、任意の異常終了及び/又は特定のエラーを検出し、次いで、それらを監視モジュール104及び/又はコンピューティング環境208に報告するように構成されてもよい。次いで、監視モジュール104は、コンピューティングプロセス210がクラッシュしたことを、コンピューティングプロセス210に追加されたコード片に少なくとも部分的に基づいて判定し得る。
それに加えて、又は別の方法として、監視モジュール104は、コンピューティング環境208内の呼び出しスタック及び/又はバッファのオーバーフローを検出することにより、コンピューティングプロセス210がクラッシュしたことを判定し得る。例えば、監視モジュール104は、コンピューティング環境208内で作動している間にコンピューティングプロセス210により使用される呼び出しスタック及び/又はバッファを監視し得る。この実施例では、監視モジュール104は、呼び出しスタック及び/又はバッファのオーバーフローを検出し得る。次いで、監視モジュール104は、コンピューティングプロセス210がコンピューティング環境208内で作動している間に呼び出しスタック及び/又はバッファがオーバーフローしたため、コンピューティングプロセス210がクラッシュしたことを判定し得る。
それに加えて、又は別の方法として、監視モジュール104は、コンピューティングプロセス210がクラッシュしたことを、コンピューティング環境208内で作動している間にコンピューティングプロセス210によりスロー及び/又は送出された例外に少なくとも部分的に基づいて判定し得る。「例外」という用語は、本明細書で使用するとき、一般に、実行中にコンピューティングプロセスにより遭遇及び/又は経験される任意のタイプ又は形態の異常な、突然の、及び/又は予期しない状況及び/又はコンピューティング状態を指す。例えば、監視モジュール104は、コンピューティング環境208内で作動している間にコンピューティングプロセス210から生じるコンピューティング活動を監視し得る。コンピューティングプロセス210から生じるコンピューティング活動を監視している間、監視モジュール104は、コンピューティングプロセス210によりスロー及び/又は送出された例外を検出し得る。次いで、監視モジュール104は、コンピューティングプロセス210が例外をスロー及び/又は送出したため、コンピューティングプロセス210がクラッシュしたことを判定し得る。
図3に戻ると、ステップ306において、本明細書に記載の1つ以上のシステムは、コンピューティングプロセスをコンピューティング環境内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータを検索し得る。例えば、分析モジュール106は、図2のコンピューティングデバイス202及び/又はサーバ206の一部として、コンピューティングプロセス210をコンピューティング環境208内で作動している間にクラッシュに導いた可能性がある脆弱性の証拠に関してテレメトリデータ214を検索し得る。この実施例では、分析モジュール106は、コンピューティングプロセス210がクラッシュしたという判定に応答してこの検索を開始し得る。
「証拠」という用語は、本明細書で使用するとき、一般に、脆弱性の存在を指摘又は示唆する任意のタイプ又は形態の活動、挙動、出来事、観察、データ、及び/又は情報を指す。「脆弱性」という用語は、本明細書で使用するとき、一般に、コンピューティングプロセス内の任意のタイプ又は形態の欠点、弱点、易感染性、及び/又は欠陥を指す。一実施例では、脆弱性は、悪意ある攻撃者によりエクスプロイトされる可能性があるソフトウェアのバグを含んでもよく、かつ/又は表してもよい。それに加えて、及び/又は別の方法として、脆弱性は、コンピューティングプロセスのコード内に存在するコーディング上の見落としを含んでもよく、かつ/又は表してもよい。
本明細書に記載するシステムは、様々な方法及び/又は文脈でステップ306を実施してもよい。一部の実施例では、分析モジュール106は、特定の脆弱性を指摘及び/又は示唆する特定のパターンがないかテレメトリデータ214を検索し得る。一例として、テレメトリデータ214がクラッシュダンプを含む場合、分析モジュール106は、コンピューティング環境208内の呼び出しスタックがオーバーフローし、呼び出しスタック上の例外ハンドラーが上書きされたことを指摘及び/又は示唆するパターンがないかクラッシュダンプを検索し得る。例えば、分析モジュール106は、クラッシュダンプを分析して、コンピューティングプロセス210の例外ハンドラーを含む呼び出しスタックがオーバーフローし、例外ハンドラーが上書きされたかどうかを判定し得る。
それに加えて、又は別の方法として、分析モジュール106は、コンピューティング環境208内の呼び出しスタックがオーバーフローし、呼び出しスタック上の仮想アドレスが上書きされたことを指摘及び/又は示唆するパターンがないかクラッシュダンプを検索し得る。例えば、分析モジュール106は、クラッシュダンプを分析して、コンピューティングプロセス210の仮想アドレスを含む呼び出しスタックがオーバーフローし、仮想アドレスが上書きされたかどうかを判定し得る。
図3に戻ると、ステップ308において、本明細書に記載の1つ以上のシステムは、コンピューティングプロセス内に存在することがまだ知られていないコンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別し得る。例えば、分析モジュール106は、図2のコンピューティングデバイス202及び/又はサーバ206の一部として、テレメトリデータ214を検索している間に、コンピューティングプロセス210の少なくとも1つの脆弱性の証拠を識別し得る。この実施例では、脆弱性は、分析モジュール106が未知の脆弱性の証拠を識別する前には、及び/又は識別したときには、コンピューティングプロセス210内に存在することがまだ知られていない場合がある。「未知の脆弱性」及び「ゼロデイ脆弱性」という用語は、コンピューティングプロセスに関連して本明細書で使用するとき、一般に、現在知られていない、開示されていない、及び/又は訂正されていないコンピューティングプロセス内の任意のタイプ又は形態の脆弱性を指す。
本明細書に記載するシステムは、様々な方法及び/又は文脈でステップ308を実施してもよい。一部の実施例では、分析モジュール106は、テレメトリデータ214内の特定のパターンを識別することにより、コンピューティングプロセス210が未知の脆弱性を有することを判定し得る。例えば、分析モジュール106は、コンピューティングプロセス210の例外ハンドラーを含む呼び出しスタックがオーバーフローし、例外ハンドラーが上書きされたことを指摘及び/又は示唆するパターンを識別し得る。次いで、分析モジュール106は、コンピューティングプロセス210が特定の脆弱性を有することを、テレメトリデータ214内のこのパターンの識別に少なくとも部分的に基づいて判定し得る。
それに加えて、又は別の方法として、分析モジュール106は、コンピューティングプロセス210の仮想アドレスを含む呼び出しスタックがオーバーフローし、仮想アドレスが上書きされたことを指摘及び/又は示唆するパターンを識別し得る。次いで、分析モジュール106は、コンピューティングプロセス210が特定の脆弱性を有することを、テレメトリデータ214内のこのパターンの識別に少なくとも部分的に基づいて判定し得る。
一部の実施例では、分析モジュール106は、識別した脆弱性がコンピューティングプロセス210内に存在することがまだ知られていないことを判定し得る。換言すれば、分析モジュール106は、コンピューティングプロセスの脆弱性が未知及び/又はゼロデイであることを判定し得る。一実施例では、分析モジュール106は、特定のコンピューティングプロセスの既知の脆弱性を識別するデータベース(図2には図示せず)にクエリし得る。この実施例では、データベースは、膨大な数のコンピューティングプロセスに現在影響を与えているか、又は以前に影響を与えたと知られている脆弱性の現行リストを含んでもよく、かつ/又は表してもよい。次いで、分析モジュール106は、データベースがコンピューティングプロセスを識別された脆弱性を有するとして識別していないことを、クエリに少なくとも部分的に基づいて判定し得る。結果として、分析モジュール106は、コンピューティングプロセスの脆弱性が未知及び/又はゼロデイであることを判定し得る。
図3に戻ると、ステップ310において、本明細書に記載の1つ以上のシステムは、コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施し得る。例えば、セキュリティモジュール108は、図2のコンピューティングデバイス202及び/又はサーバ206の一部として、コンピューティングプロセス210の識別された脆弱性に対処するための少なくとも1つのセキュリティ動作を実施し得る。セキュリティ動作をこのような方法で実施することにより、セキュリティモジュール108は、コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを効果的に妨げることができ得る。換言すれば、セキュリティ動作をこのような方法で実施することにより、セキュリティモジュール108は、悪意ある攻撃者が、コンピューティングプロセス210を実行しているあらゆるコンピューティングデバイスを汚染、攻撃、及び/又は支配する目的のために脆弱性をエクスプロイトするのも防止することができ得る。
本明細書に記載するシステムは、様々な方法及び/又は文脈でステップ310を実施してもよい。一実施例では、セキュリティモジュール108は、コンピューティングプロセスの脆弱性についてコンピューティングプロセス210の開発者及び/又はベンダに通知し得る。別の実施例では、セキュリティモジュール108は、コンピューティングプロセスの脆弱性の記録を、特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースに追加し得る。それに加えて、又は別の方法として、セキュリティモジュール108は、コンピューティングプロセスの脆弱性をエクスプロイトするあらゆる試みを監視し、かつ/又はそのような試みを遮断するように、コンピュータセキュリティシステム(例えば、アンチウイルス及び/又はアンチマルウェアの解決策)を修正し得る。
図1〜3に関連して上記で説明したように、本明細書に記載のシステム及び方法は、コンピューティングプロセス内の未知の脆弱性及び/又はゼロデイ脆弱性を検出することができ得る。このような脆弱性を検出することにより、本明細書に記載のシステム及び方法は、それらの脆弱性をエクスプロイトするゼロデイ攻撃を阻止することができ得る。一例として、コンピューティングデバイスは、新たに公開されたコンピューティングプロセス(オペレーティングシステムの更新、ソフトウェアアプリケーション、及び/又は開発ツールなど)をインストール及び/又は起動し得る。残念ながら、このような新たに公開されたコンピューティングプロセスは、実行中に発生する特定の例外及び/又はエラーについて責任をとらない場合がある。これらの例外及び/又はエラーは、悪意ある攻撃者により知られ、及び/又は発見された場合、コンピューティングデバイスを汚染、攻撃、及び/又は支配する目的のためのエクスプロイトとして働く可能性があるコンピューティングプロセスの脆弱性を表し得る。
このようなエクスプロイトを阻止及び/又は防止するための取り組みとして、コンピュータセキュリティシステムは、コンピューティングデバイスにより実行されるコンピューティングプロセスを監視し得る。例えば、コンピューティングデバイスにインストールされたセキュリティエージェントは、脆弱性をエクスプロイトするために通常使用されるAPIのコード経路内にフックを挿入し得る。この実施例では、フックは、特定のテレメトリデータを収集及び/又はログ記録し得る。新たに公開されたコンピューティングプロセスがコンピューティングデバイス上で作動している間にクラッシュを経験した場合、セキュリティエージェントは、分析のためにテレメトリデータをセキュリティサーバに送信し得る。
テレメトリデータを受信すると、セキュリティサーバは、脆弱性の存在を示唆及び/又は指摘する特定のパターンがないかテレメトリデータを分析し得る。例えば、セキュリティサーバは、テレメトリデータを分析して、コンピューティングプロセスの例外ハンドラーを含む呼び出しスタックがオーバーフローし、例外ハンドラーが上書きされたかどうかを判定し得る。それに加えて、又は別の方法として、セキュリティサーバは、テレメトリデータを分析して、コンピューティングプロセスの仮想アドレスを含む呼び出しスタックがオーバーフローし、仮想アドレスが上書きされたかどうかを判定し得る。分析が脆弱性の存在を指摘する場合、セキュリティサーバは、悪意ある攻撃者が、新たに公開されたコンピューティングプロセスを実行するあらゆるコンピューティングデバイスを汚染、攻撃、及び/又は支配する目的のために脆弱性をエクスプロイトするのも防止するための是正措置を講じ得る。
図4は、本明細書に記載及び/又は図示される実施形態のうち1つ以上を実装できる例示的なコンピューティングシステム410のブロック図である。例えば、コンピューティングシステム410の全て又は一部は、単独で又は他の要素と組み合わせて、(図3に示されるステップのうち1つ以上等の)本明細書に記載されるステップのうち1つ以上を実施してもよく、及び/又はそれを実施するための手段であってもよい。コンピューティングシステム410の全て又は一部は、また、本明細書に記載及び/又は図示される他の任意のステップ、方法、若しくは処理を実施し、及び/又はそれを実施するための手段となり得る。
コンピューティングシステム410は、コンピュータ可読命令を実行することが可能な任意のシングル若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム410の例としては、非限定的に、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム410は、少なくとも1つのプロセッサ414及びシステムメモリ416を含んでもよい。
プロセッサ414は、データの処理又は命令の解釈及び実行が可能な任意のタイプ若しくは形式の物理的処理ユニット(例えば、ハードウェア実装型中央処理ユニット)を、一般に表す。特定の実施形態では、プロセッサ414は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ414に、本明細書において記載及び/又は図示される例示的な実施形態のうちの1つ以上の機能を実施させてもよい。
システムメモリ416は、一般に、データ及び/又は他のコンピュータ可読命令を記憶することができる任意のタイプ若しくは形態の揮発性又は不揮発性記憶デバイスを表す。システムメモリ416の例としては、非限定的に、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、又は他の任意の好適なメモリデバイスが挙げられる。必須ではないが、特定の実施形態では、コンピューティングシステム410は、揮発性メモリユニット(例えば、システムメモリ416など)、及び不揮発性記憶デバイス(例えば、詳細に後述するような、一次記憶デバイス432など)の両方を含み得る。一実施例では、図1のモジュール102のうち1つ以上がシステムメモリ416にロードされ得る。
特定の実施形態では、例示的なコンピューティングシステム410は、また、プロセッサ414及びシステムメモリ416に加えて、1つ以上の構成要素又は要素を含んでもよい。例えば、図4に示されるように、コンピューティングシステム410は、メモリコントローラ418、入力/出力(I/O)コントローラ420、及び通信インターフェース422を含んでもよいが、それらはそれぞれ通信基盤412を介して相互接続されてもよい。通信基盤412は、一般に、コンピューティングデバイスの1つ以上の構成要素間の通信を容易にすることができる、任意のタイプ又は形態の基盤を表す。通信基盤412の例としては、非限定的に、通信バス(産業標準アーキテクチャ(ISA)、周辺装置相互接続(PCI)、PCIエクスプレス(PCIe)、又は類似のバスなど)、及びネットワークが挙げられる。
メモリコントローラ418は、一般に、メモリ若しくはデータを扱うこと、又はコンピューティングシステム410の1つ以上の構成要素間の通信を制御することが可能な、任意のタイプ又は形態のデバイスを表す。例えば、特定の実施形態では、メモリコントローラ418は、通信基盤412を介して、プロセッサ414、システムメモリ416、及びI/Oコントローラ420の間の通信を制御してもよい。
I/Oコントローラ420は、一般に、コンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な、任意のタイプ又は形態のモジュールを表す。例えば、特定の実施形態では、I/Oコントローラ420は、プロセッサ414、システムメモリ416、通信インターフェース422、ディスプレイアダプタ426、入力インターフェース430、及び記憶インターフェース434など、コンピューティングシステム410の1つ以上の要素間におけるデータの転送を制御し、又はそれを容易にし得る。
通信インターフェース422は、例示的なコンピューティングシステム410と1つ以上の追加のデバイスとの間の通信を容易にすることができる、任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態では、通信インターフェース422は、コンピューティングシステム410と、追加のコンピューティングシステムを含む私設又は公衆ネットワークとの間の通信を容易にし得る。通信インターフェース422の例としては、非限定的に、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び他の任意の好適なインターフェースが挙げられる。少なくとも1つの実施形態では、通信インターフェース422は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供し得る。通信インターフェース422はまた、例えば、ローカルエリアネットワーク(イーサネット(登録商標)ネットワークなど)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラー電話接続、衛星データ接続、又は他の任意の好適な接続を通して、リモートサーバへの接続を間接的に提供し得る。
特定の実施形態では、通信インターフェース422はまた、外部バス又は通信チャネルを介して、コンピューティングシステム410と1つ以上の追加のネットワーク又は記憶デバイスとの間の通信を容易にするように構成された、ホストアダプタを表し得る。ホストアダプタの例としては、非限定的に、小型コンピュータシステムインターフェース(SCSI)ホストアダプタ、ユニバーサルシリアルバス(USB)ホストアダプタ、米国電気電子学会(IEEE)1394ホストアダプタ、アドバンストテクノロジーアタッチメント(ATA)、パラレルATA(PATA)、シリアルATA(SATA)、及び外部SATA(eSATA)ホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタなどが挙げられる。通信インターフェース422はまた、コンピューティングシステム410が分散型又はリモートコンピューティングに関与することを可能にし得る。例えば、通信インターフェース422は、実行のためにリモートデバイスから命令を受信、又はリモートデバイスに命令を送信し得る。
図4に示すように、コンピューティングシステム410はまた、ディスプレイアダプタ426を介して通信基盤412に連結される少なくとも1つのディスプレイデバイス424を含み得る。ディスプレイデバイス424は、ディスプレイアダプタ426によって転送される情報を視覚的に表示することができる、任意のタイプ若しくは形態のデバイスを、一般に表す。同様に、ディスプレイアダプタ426は、ディスプレイデバイス424に表示するために、通信基盤412から(又は当該技術分野において既知であるように、フレームバッファから)グラフィックス、テキスト、及び他のデータを転送するように構成された、任意のタイプ若しくは形態のデバイスを、一般に表す。
図4に示すように、例示的なコンピューティングシステム410はまた、入力インターフェース430を介して通信基盤412に連結される少なくとも1つの入力デバイス428を含み得る。入力デバイス428は、コンピュータ又は人間のいずれかが生成した入力を、例示的なコンピューティングシステム410に提供することができる、任意のタイプ若しくは形態の入力デバイスを、一般に表す。入力デバイス428の例としては、限定されないが、キーボード、ポインティングデバイス、音声認識デバイス、又は他の任意の入力デバイスが挙げられる。
図4に示すように、例示的なコンピューティングシステム410はまた、記憶インターフェース434を介して通信基盤412に連結される、一次記憶デバイス432及びバックアップ記憶デバイス433を含み得る。記憶デバイス432及び433は、一般に、データ及び/又は他のコンピュータ可読命令を格納することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を表す。例えば、記憶デバイス432及び433は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであり得る。記憶インターフェース434は、一般に、記憶デバイス432及び433とコンピューティングシステム410の他の構成要素との間でデータを転送するための、任意のタイプ若しくは形態のインターフェース又はデバイスを表す。
特定の実施形態では、記憶デバイス432及び433は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取外し可能な記憶ユニットから読み取る、及び/又はそれに書き込むように構成され得る。好適な取外し可能な記憶ユニットの例としては、非限定的に、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。記憶デバイス432及び433はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム410にロードされることを可能にする、他の同様の構造体又はデバイスを含み得る。例えば、記憶デバイス432及び433は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取るように、及びこれを書き込むように構成され得る。記憶デバイス432及び433はまた、コンピューティングシステム410の一部であってもよく、又は他のインターフェースシステムを介してアクセスされる別個のデバイスであってもよい。
他の多くのデバイス又はサブシステムが、コンピューティングシステム410に接続され得る。反対に、図4に示す構成要素及びデバイスの全てが、本明細書に記載及び/又は図示される実施形態を実践するために存在する必要があるわけではない。上記で言及したデバイス及びサブシステムはまた、図4に示されるのとは異なる方法で相互接続され得る。コンピューティングシステム410はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェアの構成を用い得る。例えば、本明細書で開示する例示的な実施形態の1つ以上は、コンピュータ可読媒体上で、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化されてもよい。「コンピュータ可読媒体」という用語は、本明細書で使用するとき、一般に、コンピュータ可読命令を格納又は保有することができる、任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、非限定的に、搬送波などの伝送型媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光学記憶媒体(例えば、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及びブルーレイ(BLU-RAY(登録商標))ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュメディア)、及び他の分散システムなどの非一時的媒体が挙げられる。
コンピュータプログラムを包含するコンピュータ可読媒体は、コンピューティングシステム410にロードされ得る。コンピュータ可読媒体に格納されたコンピュータプログラムの全て又は一部は、次に、システムメモリ416に、及び/又は記憶デバイス432及び433の様々な部分に格納され得る。プロセッサ414によって実行されると、コンピューティングシステム410にロードされたコンピュータプログラムは、プロセッサ414に、本明細書に記載及び/又は図示される例示的な実施形態のうち1つ以上の機能を実施させ、及び/又はそれらを実施するための手段となり得る。追加的に又は代替案として、本明細書に記載及び/又は図示される例示的な実施形態の1つ以上は、ファームウェア及び/又はハードウェアに実装されてもよい。例えば、コンピューティングシステム410は、本明細書に開示される例示的な実施形態のうち1つ以上を実装するように適合された特定用途向け集積回路(ASIC)として構成され得る。
図5は、クライアントシステム510、520、及び530、並びにサーバ540及び545がネットワーク550に連結され得る、例示的なネットワークアーキテクチャ500のブロック図である。上記に詳述したように、ネットワークアーキテクチャ500の全て又は一部は、単独で又は他の要素と組み合わせて、本明細書に開示されるステップのうちの1つ以上(図3に示されるステップのうちの1つ以上等)を実施し得るが、及び/又はそれを実施するための手段となり得る。ネットワークアーキテクチャ500の全て又は一部はまた、本開示に記載される他のステップ及び特徴を実施するのに使用され得るか、及び/又はそれを実施するための手段となり得る。
クライアントシステム510、520、及び530は、一般に、図4の例示的なコンピューティングシステム410など、任意のタイプ若しくは形態のコンピューティングデバイス又はシステムを表す。同様に、サーバ540及び545は、様々なデータベースサービスを提供し、及び/又は特定のソフトウェアアプリケーションを実行するように構成された、アプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを、一般に表す。ネットワーク550は、例えばイントラネット、WAN、LAN、PAN、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを、一般に表す。一実施例では、クライアントシステム510、520、及び/若しくは530、並びに/又はサーバ540及び/若しくは545は、図1からのシステム100の全て、又は一部を含み得る。
図5に示すように、1つ以上の記憶デバイス560(1)〜(N)はサーバ540に直接取り付けられてもよい。同様に、1つ以上の記憶デバイス570(1)〜(N)は、サーバ545に直接取り付けられ得る。記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)は、データ及び/又は他のコンピュータ可読命令を格納することができる、任意のタイプ若しくは形態の記憶デバイス又は媒体を、一般に表す。特定の実施形態では、記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)は、ネットワークファイルシステム(NFS)、サーバメッセージブロック(SMB)、又は共通インターネットファイルシステム(CIFS)などの様々なプロトコルを使用して、サーバ540及び545と通信するように構成されたネットワーク接続ストレージ(NAS)デバイスを表し得る。
サーバ540及び545はまた、ストレージエリアネットワーク(SAN)ファブリック580に接続され得る。SANファブリック580は、一般に、複数の記憶デバイス間の通信を容易にすることができる、任意のタイプ若しくは形態のコンピュータネットワーク又はアーキテクチャを表す。SANファブリック580は、サーバ540及び545と、複数の記憶デバイス590(1)〜(N)及び/又はインテリジェント記憶アレイ595との間の通信を容易にし得る。SANファブリック580はまた、記憶デバイス590(1)〜(N)及びインテリジェント記憶アレイ595が、クライアントシステム510、520、及び530にローカルで取り付けられたデバイスとして現れるような方式で、ネットワーク550並びにサーバ540及び545を介して、クライアントシステム510、520、及び530と、記憶デバイス590(1)〜(N)及び/又はインテリジェント記憶アレイ595との間の通信を容易にし得る。記憶デバイス560(1)〜(N)及び記憶デバイス570(1)〜(N)と同様に、記憶デバイス590(1)〜(N)及びインテリジェント記憶アレイ595は、データ及び/又は他のコンピュータ可読命令を格納することができる任意のタイプ若しくは形態の記憶デバイス又は媒体を、一般に表す。
特定の実施形態では、また図4の例示的なコンピューティングシステム410を参照すると、図4の通信インターフェース422などの通信インターフェースは、それぞれのクライアントシステム510、520、及び530とネットワーク550との間の接続を提供するために使用され得る。クライアントシステム510、520、及び530は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ540又は545上の情報にアクセスすることが可能であり得る。かかるソフトウェアは、クライアントシステム510、520、及び530が、サーバ540、サーバ545、記憶デバイス560(1)〜(N)、記憶デバイス570(1)〜(N)、記憶デバイス590(1)〜(N)、又はインテリジェント記憶アレイ595によってホストされるデータにアクセスすることを可能にし得る。図5は、データを交換するために(インターネットなどの)ネットワークを使用することを示しているが、本明細書に記載及び/又は図示される実施形態は、インターネット又は任意の特定のネットワークベースの環境に限定されない。
少なくとも1つの実施形態では、本明細書に開示される例示的な実施形態のうち1つ以上の全て又は一部は、コンピュータプログラムとしてコード化され、サーバ540、サーバ545、記憶デバイス560(1)〜(N)、記憶デバイス570(1)〜(N)、記憶デバイス590(1)〜(N)、インテリジェント記憶アレイ595、又はこれらの任意の組み合わせ上にロードされ、これらによって実行され得る。本明細書に開示される例示的な実施形態のうち1つ以上の全て又は一部はまた、コンピュータプログラムとしてコード化され、サーバ540に記憶され、サーバ545によって作動し、ネットワーク550上でクライアントシステム510、520、及び530に配信されてもよい。
上で詳述されたように、コンピューティングシステム410及び/又はネットワークアーキテクチャ500の1つ以上の構成要素は、それぞれ単独で、又は他の要素と組み合わせて、未知の脆弱性を検出する例示的な方法の1つ以上のステップを実施し得るか、及び/又は実施するための手段であり得る。
前述の開示は、特定のブロック図、フローチャート、及び実施例を使用して様々な実施形態を記載しているが、本明細書に記載及び/又は図示されるそれぞれのブロック図の構成要素、フローチャートのステップ、動作、及び/又は構成要素は、個別にかつ/又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア(若しくはそれらの任意の組み合わせ)の構成を使用して実現されてもよい。それに加えて、同じ機能性を達成するように他の多くのアーキテクチャを実現することができるので、他の構成要素内に包含される構成要素のあらゆる開示は、本質的に例示と見なされるべきである。
一部の実施例では、図1の例示的なシステム100の全て又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表してもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供してもよい。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしての基盤など)は、ウェブブラウザ又は他のリモートインターフェースを通してアクセス可能であってもよい。本明細書に記載する様々な機能は、リモートデスクトップ環境又は他の任意のクラウドベースのコンピューティング環境を通して提供されてもよい。
様々な実施形態では、図1の例示的なシステム100の全て又は一部は、クラウドベースのコンピューティング環境内におけるマルチテナンシーを容易にしてもよい。換言すれば、本明細書に記載するソフトウェアモジュールは、本明細書に記載する機能の1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成してもよい。例えば、本明細書に記載するソフトウェアモジュールの1つ以上は、2つ以上のクライアント(例えば、顧客)がサーバ上で作動しているアプリケーションを共有するのを可能にするように、サーバをプログラムしてもよい。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)の間で、アプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有してもよい。本明細書に記載するモジュールの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は設定情報にアクセスできないように、顧客ごとにマルチテナントアプリケーションのデータ及び/又は設定情報を分割してもよい。
様々な実施形態によれば、図1の例示的なシステム100の全て又は一部は仮想環境内で実現されてもよい。例えば、本明細書に記載するモジュール及び/又はデータは、仮想機械内で常駐及び/又は実行してもよい。本明細書で使用するとき、「仮想機械」という用語は、一般に、仮想機械マネージャ(例えば、ハイパーバイザ)によってコンピューティングハードウェアから抽出される、任意のオペレーティングシステム環境を指す。それに加えて、又は別の方法として、本明細書に記載するモジュール及び/又はデータは、仮想化層内で常駐及び/又は実行してもよい。本明細書で使用するとき、「仮想化層」という用語は、一般に、オペレーティングシステム環境にオーバーレイする、並びに/あるいはそこから抽出される、任意のデータ層及び/又はアプリケーション層を指す。仮想化層は、基礎となる基本オペレーティングシステムの一部であるかのように仮想化層を提示する、ソフトウェア仮想化ソリューション(例えば、ファイルシステムフィルタ)によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションは、最初に基本ファイルシステム及び/又はレジストリ内の場所に方向付けられる呼び出しを、仮想化層内の場所にリダイレクトしてもよい。
一部の実施例では、図1の例示的なシステム100の全て又は一部は、モバイルコンピューティング環境の一部を表してもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子ブックリーダー、携帯情報端末、ウェアラブルコンピューティングデバイス(例えば、ヘッドマウントディスプレイを備えたコンピューティングデバイス、スマートウォッチなど)などを含む、広範なモバイルコンピューティングデバイスによって実現されてもよい。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間での1つのみのフォアグラウンドアプリケーションの提示、リモート管理特性、タッチスクリーン特性、位置及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を限定する制限されたプラットフォーム、アプリケーションのインストールを(例えば、認可されたアプリケーションストアからのみ生じるように)制限する制御などを含む、1つ以上の個別の特性を有することができる。本明細書で説明される様々な機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
それに加えて、図1の例示的なシステム100の全て又は一部は、情報管理のための1つ以上のシステムの部分を表してもよく、それと相互作用してもよく、それによって生成されるデータを消費してもよく、かつ/又はそれによって消費されるデータを生成してもよい。本明細書で使用するとき、「情報管理」という用語は、データの保護、組織化、及び/又は記憶を指してもよい。情報管理のためのシステムの例としては、非限定的に、記憶システム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどを挙げることができる。
一部の実施形態では、図1の例示的なシステム100の全て又は一部は、情報セキュリティのための1つ以上のシステムの部分を表してもよく、それによって保護されるデータを生成してもよく、かつ/又はそれと通信してもよい。本明細書で使用するとき、「情報セキュリティ」という用語は、保護されたデータに対するアクセスの制御を指してもよい。情報セキュリティのためのシステムの例としては、非限定的に、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子証拠開示システムなどを挙げることができる。
一部の実施例によれば、図1の例示的なシステム100の全て又は一部は、エンドポイントセキュリティのための1つ以上のシステムの部分を表してもよく、それと通信してもよく、かつ/又はそれから保護を受けてもよい。本明細書で使用するとき、「エンドポイントセキュリティ」という用語は、不正及び/若しくは違法な使用、アクセス、並びに/又は制御からのエンドポイントシステムの保護を指してもよい。エンドポイント保護のためのシステムの例としては、非限定的に、アンチマルウェアシステム、ユーザー認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどを挙げることができる。
本明細書に記載及び/又は図示されるプロセスパラメータ及びステップの順序は、単なる例として与えられるものであり、所望に応じて変更することができる。例えば、本明細書に図示及び/又は記載されるステップは特定の順序で図示又は考察されることがあるが、これらのステップは、必ずしも図示又は考察される順序で実施される必要はない。本明細書に記載及び/又は図示される様々な例示的な方法はまた、本明細書に記載若しくは図示されるステップの1つ以上を省略するか、又は開示されるものに加えて追加のステップを含んでもよい。
様々な実施形態を、完全に機能的なコンピューティングシステムの文脈で本明細書に記載及び/又は図示してきたが、これらの例示的な実施形態の1つ以上は、実際に配布を実施するのに使用されるコンピュータ可読媒体の特定のタイプにかかわらず、様々な形態のプログラム製品として配布されてもよい。本明細書に開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実現されてもよい。これらのソフトウェアモジュールは、コンピュータ可読記憶媒体又はコンピューティングシステムに格納されてもよい、スクリプト、バッチ、若しくは他の実行可能ファイルを含んでもよい。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示される例示的な実施形態の1つ以上を実施するようにコンピューティングシステムを構成してもよい。
それに加えて、本明細書に記載するモジュールの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスの表現を、1つの形態から別の形態へと変換してもよい。例えば、本明細書に列挙されるモジュールの1つ以上は、変換されるべきテレメトリデータを受信し、テレメトリデータを変換し、変換の結果を出力してコンピューティングプロセスが脆弱性を有するかどうかを判定し、脆弱性に対処するために変換の結果を使用し、将来の使用及び/又は参照のために変換の結果を格納してもよい。それに加えて、又は別の方法として、本明細書に列挙されるモジュールの1つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイスにデータを格納し、並びに/あるいは別の方法でコンピューティングデバイスと相互作用することによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び/又は物理的コンピューティングデバイスの他の任意の部分を、1つの形態から別の形態へと変換してもよい。
上述の記載は、本明細書に開示される例示的な実施形態の様々な態様を他の当業者が最良に利用するのを可能にするために提供されてきた。この例示的な記載は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの修正及び変形が可能である。本明細書に開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範を決定する際に、添付の特許請求の範囲及びそれらの等価物を参照するべきである。
別途記載のない限り、「〜に接続される」及び「〜に連結される」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用するとき、直接的接続及び間接的接続(即ち、他の要素若しくは構成要素を介する)の両方を許容するものとして解釈されるものである。それに加えて、「a」又は「an」という用語は、本明細書及び特許請求の範囲で使用するとき、「〜のうち少なくとも1つ」を意味するものとして解釈されるものである。最後に、簡潔にするため、「含む」及び「有する」という用語(並びにそれらの派生語)は、本明細書及び特許請求の範囲で使用するとき、「備える」という単語と互換性があり、同じ意味を有する。

Claims (20)

  1. コンピューティングプロセス内の未知の脆弱性を検出するためのコンピュータ実行方法であって、前記方法の少なくとも一部が少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実行され、前記方法が、
    コンピューティングプロセスの実行を容易にするコンピューティング環境を、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間前記コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視することと、
    前記コンピューティングプロセスが前記コンピューティング環境内で作動している間にクラッシュしたことを判定することと、
    前記コンピューティングプロセスがクラッシュしたという判定に応答して、前記コンピューティングプロセスを、前記コンピューティング環境内で作動している間にクラッシュに導いた可能性があるあらゆる脆弱性の証拠に関して前記テレメトリデータを検索することと、
    前記テレメトリデータを検索している間に、前記コンピューティングプロセス内に存在することがまだ知られていない前記コンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別することと、
    前記コンピューティングプロセスの脆弱性の前記証拠の識別に応答して、前記コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施することと、を含む、方法。
  2. 前記コンピューティング環境を監視することが、
    アプリケーションプログラミングインターフェース(API)フックと、
    パケット捕捉構成要素と、
    ファイルシステムモニタと、
    ネットワークスイッチと、のうちの少なくとも1つで前記テレメトリデータをログ記録することにより前記コンピューティング環境を監視することを含む、請求項1に記載の方法。
  3. 前記APIフックで前記テレメトリデータをログ記録することが、
    悪意ある攻撃中に通常呼び出されるAPI内にフックを挿入することと、
    悪意ある攻撃中に通常呼び出されるAPIへ至るコード経路内にフックを挿入することと、少なくとも1つを含む、請求項2に記載の方法。
  4. 前記テレメトリデータをログ記録することが、
    クラッシュダンプを作成することと、
    前記コンピューティング環境の呼び出しスタックを記録することと、
    前記コンピューティングプロセスにより呼び出された少なくとも1つのAPIをトレースすることと、
    前記コンピューティング環境のどの呼び出しスタックが前記コンピューティングプロセスの前記クラッシュに関与したのかを識別することと、のうちの少なくとも1つを含む、請求項1に記載の方法。
  5. 前記コンピューティングプロセスが前記コンピューティング環境内で作動している間にクラッシュしたことを判定することが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタックのオーバーフローを検出することを含む、請求項1に記載の方法。
  6. 前記コンピューティングプロセスが前記コンピューティング環境内で作動している間にクラッシュしたことを判定することが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に例外をスローしたことを判定することを含む、請求項1に記載の方法。
  7. 前記コンピューティングプロセスの脆弱性の前記証拠を識別することが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタック上の例外ハンドラーが上書きされたことを、前記テレメトリデータに少なくとも部分的に基づいて判定することを含む、請求項1に記載の方法。
  8. 前記コンピューティングプロセスの脆弱性の前記証拠を識別することが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタック上の前記コンピューティングプロセスの仮想アドレスが上書きされたことを、前記テレメトリデータに少なくとも部分的に基づいて判定することを含む、請求項1に記載の方法。
  9. 前記コンピューティングプロセスの脆弱性の前記証拠を識別することが、
    特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースにクエリすることと、
    前記データベースが前記コンピューティングプロセスを、前記脆弱性を有するとして識別していないことを、前記クエリに少なくとも部分的に基づいて判定することと、により、前記脆弱性が前記コンピューティングプロセス内に存在することがまだ知られていないことを判定することを含む、請求項1に記載の方法。
  10. 前記コンピューティングプロセスの脆弱性の前記証拠の識別に応答して前記セキュリティ動作を実施することが、
    前記コンピューティングプロセスの脆弱性について前記コンピューティングプロセスのベンダに通知することと、
    前記コンピューティングプロセスの脆弱性の記録を、特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースに追加することと、
    前記コンピューティングプロセスの脆弱性をエクスプロイトするあらゆる試みを監視するようにコンピュータセキュリティシステムを修正することと、のうちの少なくとも1つを含む、請求項1に記載の方法。
  11. コンピューティングプロセス内の未知の脆弱性を検出するためのシステムであって、
    メモリに格納された、監視モジュールであって、
    コンピューティングプロセスの実行を容易にするコンピューティング環境を、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間前記コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視し、
    前記コンピューティングプロセスが前記コンピューティング環境内で作動している間にクラッシュしたことを判定する、監視モジュールと、
    メモリに格納された、分析モジュールであって、
    前記コンピューティングプロセスを、前記コンピューティング環境内で作動している間にクラッシュに導いた可能性があるあらゆる脆弱性の証拠に関して前記テレメトリデータを検索し、
    前記テレメトリデータを検索している間に、前記コンピューティングプロセス内に存在することがまだ知られていない前記コンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別する、分析モジュールと、
    メモリに格納された、セキュリティモジュールであって、前記証拠の前記識別に応答して、前記コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施する、セキュリティモジュールと、
    前記監視モジュール、前記分析モジュール、及び前記セキュリティモジュールを実行する、少なくとも1つの物理プロセッサと、を備えた、システム。
  12. 前記監視モジュールが、
    アプリケーションプログラミングインターフェース(API)フックと、
    パケット捕捉構成要素と、
    ファイルシステムモニタと、
    ネットワークスイッチと、のうちの少なくとも1つで前記テレメトリデータをログ記録する、請求項11に記載のシステム。
  13. 前記監視モジュールが、
    悪意ある攻撃中に通常呼び出されるAPI内にフックを挿入することと、
    悪意ある攻撃中に通常呼び出されるAPIへ至るコード経路内にフックを挿入することと、少なくとも1つにより前記APIフックで前記テレメトリデータをログ記録する、請求項12に記載のシステム。
  14. 前記監視モジュールが、
    クラッシュダンプを作成することと、
    前記コンピューティング環境の呼び出しスタックを記録することと、
    前記コンピューティングプロセスにより呼び出された少なくとも1つのAPIをトレースすることと、
    前記コンピューティング環境のどの呼び出しスタックが前記コンピューティングプロセスの前記クラッシュに関与したのかを識別することと、のうちの少なくとも1つにより前記テレメトリデータをログ記録する、請求項11に記載のシステム。
  15. 前記監視モジュールが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタックのオーバーフローを検出することにより、前記コンピューティングプロセスがクラッシュしたことを判定する、請求項11に記載のシステム。
  16. 前記監視モジュールが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に例外をスローしたことを判定することにより、前記コンピューティングプロセスがクラッシュしたことを判定する、請求項11に記載のシステム。
  17. 前記分析モジュールが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタック上の例外ハンドラーが上書きされたことを、前記テレメトリデータに少なくとも部分的に基づいて判定することにより、前記コンピューティングプロセスの脆弱性の前記証拠を識別する、請求項11に記載のシステム。
  18. 前記分析モジュールが、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間に前記コンピューティング環境内の呼び出しスタック上の前記コンピューティングプロセスの仮想アドレスが上書きされたことを、前記テレメトリデータに少なくとも部分的に基づいて判定することにより、前記コンピューティングプロセスの脆弱性の前記証拠を識別する、請求項11に記載のシステム。
  19. 前記分析モジュールが、
    特定のコンピューティングプロセスの既知の脆弱性を識別するデータベースにクエリすることと、
    前記データベースが前記コンピューティングプロセスを、前記脆弱性を有するとして識別していないことを、前記クエリに少なくとも部分的に基づいて判定することと、により、前記脆弱性が前記コンピューティングプロセス内に存在することがまだ知られていないと判定する、請求項11に記載のシステム。
  20. 非一時的コンピュータ可読媒体であって、1つ以上のコンピュータ実行可能命令を含み、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されると、前記コンピューティングデバイスに、
    コンピューティングプロセスの実行を容易にするコンピューティング環境を、前記コンピューティングプロセスが前記コンピューティング環境内で作動している間前記コンピューティングプロセスに関連するテレメトリデータをログ記録することにより、監視させ、
    前記コンピューティングプロセスが前記コンピューティング環境内で作動している間にクラッシュしたと判定させ、
    前記コンピューティングプロセスがクラッシュしたという判定に応答して、前記コンピューティングプロセスを、前記コンピューティング環境内で作動している間にクラッシュに導いた可能性があるあらゆる脆弱性の証拠に関して前記テレメトリデータを検索させ、
    前記テレメトリデータを検索している間に、前記コンピューティングプロセス内に存在することがまだ知られていない前記コンピューティングプロセスの少なくとも1つの脆弱性の証拠を識別させ、
    前記コンピューティングプロセスの脆弱性の前記証拠の識別に応答して、前記コンピューティングプロセスの脆弱性のあらゆる潜在的に悪意のあるエクスプロイトを妨げるための少なくとも1つのセキュリティ動作を実施させる、1つ以上のコンピュータ実行可能命令、を含む、非一時的コンピュータ可読媒体。
JP2018504900A 2015-08-11 2016-06-20 コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法 Active JP6680437B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/822,930 US10176329B2 (en) 2015-08-11 2015-08-11 Systems and methods for detecting unknown vulnerabilities in computing processes
US14/822,930 2015-08-11
PCT/US2016/038299 WO2017027103A1 (en) 2015-08-11 2016-06-20 Systems and methods for detecting unknown vulnerabilities in computing processes

Publications (2)

Publication Number Publication Date
JP2018522359A true JP2018522359A (ja) 2018-08-09
JP6680437B2 JP6680437B2 (ja) 2020-04-15

Family

ID=56511870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018504900A Active JP6680437B2 (ja) 2015-08-11 2016-06-20 コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法

Country Status (5)

Country Link
US (1) US10176329B2 (ja)
EP (1) EP3335146B1 (ja)
JP (1) JP6680437B2 (ja)
CN (1) CN107864676A (ja)
WO (1) WO2017027103A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020202436A (ja) * 2019-06-06 2020-12-17 日本電信電話株式会社 通信装置及び通信方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264009B2 (en) * 2016-07-26 2019-04-16 Booz Allen Hamilton Inc. Automated machine learning scheme for software exploit prediction
US20180211046A1 (en) * 2017-01-26 2018-07-26 Intel Corporation Analysis and control of code flow and data flow
US20200233677A2 (en) * 2018-04-11 2020-07-23 Smart Enterprises, Inc. Dynamically-Updatable Deep Transactional Monitoring Systems and Methods
CN111291368B (zh) * 2018-12-07 2024-06-18 北京奇虎科技有限公司 Cpu漏洞的防御方法及系统
CN111382440B (zh) * 2018-12-27 2024-05-10 北京奇虎科技有限公司 基于虚拟机实现的cpu漏洞检测方法及系统
CN111444508B (zh) * 2018-12-27 2024-06-18 北京奇虎科技有限公司 基于虚拟机实现的cpu漏洞检测装置及方法
US11151009B2 (en) 2019-07-25 2021-10-19 Deepfactor, Inc. Systems, methods, and computer-readable media for processing telemetry events related to operation of an application
US11750640B2 (en) 2019-07-25 2023-09-05 Deepfactor, Inc. Systems, methods, and computer-readable media for executing a web application scan service
US20210374229A1 (en) * 2020-05-28 2021-12-02 Mcafee, Llc Methods and apparatus to improve detection of malware in executable code
US20220159029A1 (en) * 2020-11-13 2022-05-19 Cyberark Software Ltd. Detection of security risks based on secretless connection data
CN112527681B (zh) * 2020-12-24 2024-03-12 中国银联股份有限公司 一种程序的漏洞检测方法及装置
US12010517B1 (en) * 2021-05-10 2024-06-11 Zimperium, Inc. Dynamic detection for mobile device security
US20230208870A1 (en) * 2021-12-28 2023-06-29 SecureX.AI, Inc. Systems and methods for predictive analysis of potential attack patterns based on contextual security information
US20230208871A1 (en) * 2021-12-28 2023-06-29 SecureX.AI, Inc. Systems and methods for vulnerability assessment for cloud assets using imaging methods

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182775A (ja) * 2003-12-10 2005-07-07 Microsoft Corp カーネルモードシミングのためのドライバ固有コンテキスト
US20060070130A1 (en) * 2004-09-27 2006-03-30 Microsoft Corporation System and method of identifying the source of an attack on a computer network
JP2006185233A (ja) * 2004-12-28 2006-07-13 Hitachi Ltd セキュリティ向上のためのプログラム変換方法及びこれを用いたコンパイラプログラム
JP2006338246A (ja) * 2005-06-01 2006-12-14 Mitsubishi Electric Corp サーバ診断装置及びサーバ監視装置及びサーバ診断プログラム
US20070162975A1 (en) * 2006-01-06 2007-07-12 Microssoft Corporation Efficient collection of data
JP2007334536A (ja) * 2006-06-14 2007-12-27 Securebrain Corp マルウェアの挙動解析システム
US20090320136A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Identifying exploitation of vulnerabilities using error report
JP2010102454A (ja) * 2008-10-22 2010-05-06 Fuji Xerox Co Ltd 情報処理装置、情報処理プログラム
JP2010515177A (ja) * 2006-12-29 2010-05-06 マイクロソフト コーポレーション 自動的脆弱性検出および応答
JP2013522750A (ja) * 2010-03-15 2013-06-13 アーム・リミテッド 例外イベントを取り扱うための装置および方法
WO2014050424A1 (ja) * 2012-09-25 2014-04-03 三菱電機株式会社 シグニチャ検証装置及びシグニチャ検証方法及びプログラム
US9158915B1 (en) * 2013-05-24 2015-10-13 Symantec Corporation Systems and methods for analyzing zero-day attacks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006504178A (ja) * 2002-10-22 2006-02-02 ウンホ チェ Itインフラにおける総合侵害事故対応システムおよびその動作方法
US20070180509A1 (en) 2005-12-07 2007-08-02 Swartz Alon R Practical platform for high risk applications
US8528087B2 (en) 2006-04-27 2013-09-03 Robot Genius, Inc. Methods for combating malicious software
US8528090B2 (en) * 2010-07-02 2013-09-03 Symantec Corporation Systems and methods for creating customized confidence bands for use in malware detection
US8990634B2 (en) * 2010-11-03 2015-03-24 Microsoft Technology Licensing, Llc Reporting of intra-device failure data
US9135405B2 (en) * 2011-05-26 2015-09-15 Carnegie Mellon University Automated exploit generation
US9021587B2 (en) * 2011-10-27 2015-04-28 Microsoft Technology Licensing, Llc Detecting software vulnerabilities in an isolated computing environment
CN102929614A (zh) * 2012-10-16 2013-02-13 南京大学 一种用于漏洞检测的可调对象程序特征提取方法
US9900299B2 (en) * 2015-04-03 2018-02-20 Oracle International Corporation Aggregated computing infrastructure analyzer
US9712418B2 (en) * 2015-05-26 2017-07-18 Microsoft Technology Licensing, Llc Automated network control

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182775A (ja) * 2003-12-10 2005-07-07 Microsoft Corp カーネルモードシミングのためのドライバ固有コンテキスト
US20060070130A1 (en) * 2004-09-27 2006-03-30 Microsoft Corporation System and method of identifying the source of an attack on a computer network
JP2006185233A (ja) * 2004-12-28 2006-07-13 Hitachi Ltd セキュリティ向上のためのプログラム変換方法及びこれを用いたコンパイラプログラム
JP2006338246A (ja) * 2005-06-01 2006-12-14 Mitsubishi Electric Corp サーバ診断装置及びサーバ監視装置及びサーバ診断プログラム
US20070162975A1 (en) * 2006-01-06 2007-07-12 Microssoft Corporation Efficient collection of data
JP2007334536A (ja) * 2006-06-14 2007-12-27 Securebrain Corp マルウェアの挙動解析システム
JP2010515177A (ja) * 2006-12-29 2010-05-06 マイクロソフト コーポレーション 自動的脆弱性検出および応答
US20090320136A1 (en) * 2008-06-24 2009-12-24 Microsoft Corporation Identifying exploitation of vulnerabilities using error report
JP2010102454A (ja) * 2008-10-22 2010-05-06 Fuji Xerox Co Ltd 情報処理装置、情報処理プログラム
JP2013522750A (ja) * 2010-03-15 2013-06-13 アーム・リミテッド 例外イベントを取り扱うための装置および方法
WO2014050424A1 (ja) * 2012-09-25 2014-04-03 三菱電機株式会社 シグニチャ検証装置及びシグニチャ検証方法及びプログラム
US9158915B1 (en) * 2013-05-24 2015-10-13 Symantec Corporation Systems and methods for analyzing zero-day attacks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020202436A (ja) * 2019-06-06 2020-12-17 日本電信電話株式会社 通信装置及び通信方法

Also Published As

Publication number Publication date
JP6680437B2 (ja) 2020-04-15
WO2017027103A1 (en) 2017-02-16
CN107864676A (zh) 2018-03-30
US20170046518A1 (en) 2017-02-16
US10176329B2 (en) 2019-01-08
EP3335146A1 (en) 2018-06-20
EP3335146B1 (en) 2020-08-05

Similar Documents

Publication Publication Date Title
JP6680437B2 (ja) コンピューティングプロセス内の未知の脆弱性を検出するためのシステム及び方法
JP6756933B2 (ja) 悪意のあるコンピューティングイベントを検出するためのシステム及び方法
EP3411825B1 (en) Systems and methods for modifying file backups in response to detecting potential ransomware
JP6335315B2 (ja) 不審な挙動の検出に応答してパックされたプログラムをスキャンするためのシステム及び方法
JP6703616B2 (ja) セキュリティ脅威を検出するためのシステム及び方法
US9619649B1 (en) Systems and methods for detecting potentially malicious applications
EP3039609B1 (en) Systems and methods for identifying private keys that have been compromised
US9703956B1 (en) Systems and methods for categorizing virtual-machine-aware applications for further analysis
JP6247405B2 (ja) インストール前にモバイルデバイス上でマルウェアを検出するためのシステム及び方法
EP3308313A1 (en) Systems and methods for determining malicious-download risk based on user behavior
US9953158B1 (en) Systems and methods for enforcing secure software execution
US9813443B1 (en) Systems and methods for remediating the effects of malware
US9934378B1 (en) Systems and methods for filtering log files
US9800590B1 (en) Systems and methods for threat detection using a software program update profile
US9894085B1 (en) Systems and methods for categorizing processes as malicious
CA2915068C (en) Systems and methods for directing application updates
JP2019500712A (ja) ドメイン名サービストラフィック分析を介してマルウェア感染を検出するためのシステム及び方法
WO2019070460A1 (en) Bait monitoring systems and methods for protecting users against security threats
US9942268B1 (en) Systems and methods for thwarting unauthorized attempts to disable security managers within runtime environments
US9811659B1 (en) Systems and methods for time-shifted detection of security threats
US9330254B1 (en) Systems and methods for preventing the installation of unapproved applications
US9552481B1 (en) Systems and methods for monitoring programs
US10360371B1 (en) Systems and methods for protecting automated execution environments against enumeration attacks
US10114947B1 (en) Systems and methods for logging processes within containers
US10043013B1 (en) Systems and methods for detecting gadgets on computing devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180130

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190903

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200117

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200317

R150 Certificate of patent or registration of utility model

Ref document number: 6680437

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250