JP6208761B2 - リターン・オリエンテッド・プログラミングの脅威検出 - Google Patents

リターン・オリエンテッド・プログラミングの脅威検出 Download PDF

Info

Publication number
JP6208761B2
JP6208761B2 JP2015531233A JP2015531233A JP6208761B2 JP 6208761 B2 JP6208761 B2 JP 6208761B2 JP 2015531233 A JP2015531233 A JP 2015531233A JP 2015531233 A JP2015531233 A JP 2015531233A JP 6208761 B2 JP6208761 B2 JP 6208761B2
Authority
JP
Japan
Prior art keywords
count
malicious activity
security
processes
computing device
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.)
Expired - Fee Related
Application number
JP2015531233A
Other languages
English (en)
Other versions
JP2015527680A (ja
Inventor
ヴィヘルスキー ゲオルグ
ヴィヘルスキー ゲオルグ
Original Assignee
クラウドストライク インコーポレイテッド
クラウドストライク インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クラウドストライク インコーポレイテッド, クラウドストライク インコーポレイテッド filed Critical クラウドストライク インコーポレイテッド
Publication of JP2015527680A publication Critical patent/JP2015527680A/ja
Application granted granted Critical
Publication of JP6208761B2 publication Critical patent/JP6208761B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本出願は、2012年9月7日出願の「Threat Detection for Return Oriented Programming」という名称の米国特許出願第13/607,155号の優先権を主張し、その全体を援用により本明細書に組み込む。
インターネットの使用が、日々の生活に占める割合が大きくなるにつれて、システムリソース、データ、及び個人情報を盗んだり、破壊したりするセキュリティエクスプロイト(security exploit)の問題も深刻化している。政府や企業は、これらのセキュリティエクスプロイトに関連した侵入や窃盗を防ぐことにかなりの資源を投入している。セキュリティエクスプロイトには、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、キーストロークロガー、アドウェア、ルートキット、および、シェルコードなど多くの形がある。これらのエクスプロイトは、スピアフィッシングメール、クリック可能なリンク、ドキュメント、実行ファイル、または、アーカイブなどの多くの機構の形で、または、それらを通して、配布される。セキュリティエクスプロイトによってもたらされる脅威には、非情に深刻なものもあり、サイバーテロリズムまたは産業スパイと呼ばれる。
リターン・オリエンテッド・プログラミング(Return Oriented Programming、ROP)として知られるシェルコードセキュリティエクスプロイトの変形は、検出が非常に難しいことが分かっている。ROPは、コンピュータ装置のセキュリティの脆弱性を利用して、そのコンピュータ装置のコールスタックに対してスプーフィング(なりすまし)や制御を行う。このセキュリティエクスプロイトは、コールスタックに対してスプーフィングまたは制御を行うことによって、正規のプロセスの命令の選択を利用して、シェルコードを有効に作成、実行することができる。正規の命令を利用することによって、シェルコードセキュリティエクスプロイトを停止させるために導入されているメモリ保護機能を回避する。一方で、ROPを検出し、それに対応するために開発されている技術は、多大な実施コストがかかる。
米国特許出願第13/492,672号 米国特許出願第13/538,439号
添付図面を参照しながら詳細を説明する。図面中、参照番号の一番左の数字は、その参照番号が最初に現れる図面を示す。異なる図面で同じ参照番号を使用している場合は、類似または同じ項目または機能を指す。
コールスタックの予測不一致に関するプロセッサパフォーマンスカウンタに基づいて、ROPに関連付けられたセキュリティエクスプロイトを検出する技術の概略を示す図である。 ROPセキュリティエクスプロイトに感染したコンピュータ装置のコンポーネントレベルを示す図である。 脆弱性を攻撃する敵と、その攻撃を受けたコンピュータ装置と、その攻撃を検出、および/または、その攻撃に対応するように構成された遠隔セキュリティサービスと、を接続する例示のネットワークを示す図である。 コールスタックに関連する予測不一致のカウントを読み出し、そのカウントが悪意のあるアクティビティを示すと判定し、それに応答して、少なくとも1つのセキュリティ応答アクションを行う例示のプロセスを示す図である。
(概要)
本開示は、一つには、ROPに関連するセキュリティエクスプロイトを検出する技術について記載する。この技術は、読み出されたカウントがROP等の悪意のあるアクティビティを示すと判定することを含む。コンピュータ装置のコールスタックとコンピュータ装置のプロセッサが保持するシャドーコールスタックとの比較によって生じる予測不一致のカウントを、プロセッサパフォーマンスカウンタから読み出してよい。この技術は、そのカウントが悪意のあるアクティビティを示すと判定されたことに応答して、少なくとも1つのセキュリティ応答アクションを行うことをさらに含む。
図1は、このような技術の概略を示す。図1に示すように、100Aにおいて、コンピュータ装置102は、メモリ破損脆弱性などの、敵に悪用(エクスプロイト)される脆弱性を有し得る。このような脆弱性によって、ROP(return oriented program)106を用いる敵は、コールスタック104に対して制御またはスプーフィングを行うことが可能になる。コールスタック104に対して制御またはスプーフィングを行うことによって、敵は、コンピュータ装置102の1つまたは複数のプロセスの正規の命令108(以下、「エクスプロイトされた命令108」)を悪用(エクスプロイト)して、コンピュータ装置102上で悪意のプログラムを有効に作成、実行することができる。シェルコードと同様、このような悪意のプログラムは、比較的小さく、数個の命令という場合もある。このセキュリティエクスプロイトの一部として供給されたROP106は、全て感染したコンピュータ装置102上で実行する場合もあり、例えば、コマンドシェルを通して、敵のシステムによって遠隔で操作される場合もある。
100Bにおいて、コンピュータ装置102のプロセッサに関連付けられたパフォーマンス監視ユニットは、シャドーコールスタック110または他の予測機構を用いて、コールスタック104の値を予測してよい。例えば、コンピュータ装置102は、コールスタック104をシャドーコールスタック110と比較してよく、比較の結果、不一致がある場合、プロセッサのフォーマンスカウンタ112をインクリメントしてよい。コンピュータ装置102は、プロセッサのキャッシュメモリにシャドーコールスタック110を保持し、コンピュータ装置102の分岐予測器と共同して、シャドーコールスタックを利用する。分岐予測器は、どの実行経路でプロセスのif−then構造または間接分岐が起こるかの推測を、その経路が分かる前に試みる。分岐予測器が用いる予測機構の1つは、リターンスタックバッファとも呼ばれるシャドーコールスタック110である。パフォーマンス監視ユニットは、シャドーコールスタック110と、コンピュータ装置102のシステムメモリに記憶されたコールスタック104を比較して、予測不一致を監視し、予測不一致に気付くと、コールスタックの予測不一致専用のパフォーマンスカウンタ112をインクリメントする。ROP106は、コールスタック104に対してだけ制御、スプーフィングを行うことができ、シャドーコールスタック110に対しては制御、スプーフィングを行わないので、これらの予測不一致は、ROP106のアクティビティなどの悪意のあるアクティビティを示し得る。この相違を示す結果は、予測不一致であることが多い。
100Cにおいて、検出モジュール114は、パフォーマンスカウンタ112から読み出したカウント116が悪意のあるアクティビティを示すと、判定する。検出モジュール114は、カウント116を閾値またはパターン118と比較して、この判定を行ってよい。このような閾値またはパターン118は、パフォーマンスカウンタ112の監視カウント116を経時的に監視することに基づいて決定されてよい。閾値またはパターン118は、また、プロセスまたはプロセスのクラスに固有であってよいので、予測不一致を典型的に登録するプロセスが、異なる閾値またはパターン118を有することを可能にし、そうすることによって、誤検出を回避する。プロセスまたはプロセスクラスに固有の閾値またはパターン118に関しては、検出モジュール114は、カウント116が読み出された時に実行している1つまたは複数のプロセスを示すものを読み出し、そのアクティブなプロセスが示すものに基づいて、適切な閾値またはパターン118を決定してもよい。
さらに、100Cに示すように、カウント116が閾値118を超える、または、パターン118と異なると、検出モジュール114が判定した場合、検出モジュール114は、応答モジュール120を呼び出す、または、応答モジュール120に通知してよい。応答モジュール120は、少なくとも1つのセキュリティ応答アクションを実行する。例えば、セキュリティ応答アクションは、コンピュータ装置102のユーザにグラフィック、聴覚、または、触覚による警告を提供してよい。さらに、または、その代わりに、セキュリティ応答アクションは、遠隔セキュリティ監視サーバに悪意のあるアクティビティを通知してもよい。さらに、セキュリティ応答アクションは、1つまたは複数のアクティブなプロセス(すなわち、カウント116に関連するプロセッサが実行中の1つまたは複数のプロセス)を中断するべきか否かをコンピュータ装置のユーザに尋ね、その1つまたは複数のプロセスを中断してよい。さらに、セキュリティ応答アクションは、1つまたは複数のアクティブなプロセスに関連付けられた情報を判定し、判定された情報を分析してよい。応答モジュール120は、その後、1つまたは複数のアクティブなプロセスに関連付けられた実行アクティビティを監視、または、別のコンポーネントに監視させてよい。
一部の実施形態においては、検出モジュール114および応答モジュール120は、コンピュータ装置102上で実施されてよい。他の実施形態においては、検出モジュール114および応答モジュール120は、遠隔セキュリティサービスによって実施されてよい。検出モジュール114を実施する時、遠隔セキュリティサービスは、パフォーマンスカウンタ112からカウント116を読み出すように構成されたコンピュータ装置102の論理と通信して、遠隔セキュリティサービスの検出モジュール114が、その論理からカウント116を読み出すことができるようにする。さらに別の実施形態においては、検出モジュール114および応答モジュール120は、一部をコンピュータ装置102によって実施し、一部を遠隔セキュリティサービスによって実施してよい。
(装置の例)
図2は、ROPセキュリティエクスプロイトに感染したコンピュータ装置のコンポーネントレベルを示す。図に示すように、コンピュータ装置102はプロセッサ202を備え、プロセッサ202は、パフォーマンス監視ユニット204とキャッシュメモリ206を備える。パフォーマンス監視ユニット204は、パフォーマンスカウンタ112等の、1つまたは複数のパフォーマンスカウンタを備えてよい。キャッシュメモリ206は、シャドーコールスタック110を記憶してよい。
コンピュータ装置102は、システムメモリ208も備えてよい。システムメモリ208は、コールスタック104、エクスプロイトされた命令108、セキュリティエージェント210、検出モジュール114、および、応答モジュール120を記憶してよい。応答モジュール120は、警告モジュール212、報告モジュール214、修正モジュール216、および、分析モジュール218を備えてよい。
さらに、コンピュータ装置102は、取り外し可能な記憶装置220、取り外しできない記憶装置222、1つまたは複数の入力装置224、1つまたは複数の出力装置226、および、他のコンピュータ装置230と通信するための通信接続228を備えてよい。
一部の実施形態においては、コンピュータ装置102は、サーバまたはサーバファーム、複数の分散サーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、埋め込みシステム、または、任意の他の種類の1つまたは複数の装置であってもよく、それらを含んでもよい。一実装においては、コンピュータ装置102は、クラウドコンピュータネットワークのノード等の、通信して動作する複数のコンピュータ装置を表す。一部の実装においては、コンピュータ装置102は、1つまたは複数の仮想マシンを備える。
様々な実施形態において、プロセッサ202は、8086アーキテクチャ(例えば、インテルi7(登録商標)プロセッサ)または68000アーキテクチャに関連付けられたプロセッサ等の中央処理装置(CPU)である。コンピュータ装置は、図2に示すグラフィックプロセッシングユニット(GPU)等の1つまたは複数の他のプロセッサも備えてよい。パフォーマンス監視ユニット204およびキャッシュメモリ206に加えて、プロセッサ202は、他のキャッシュメモリ、レジスタ、バッファ(例えば、トランスレーションルックアサイドバッファ)、テーブル、演算論理ユニット(ALU)、インタフェースバスなどを備えてよい。
パフォーマンス監視ユニット204(PMU204)は、プロセッサ202のパフォーマンスに関する情報と、プロセッサ202が実行中のアプリケーションまたはプロセスに関する情報を収集する。PMU204は、多くのレジスタとパフォーマンスカウンタを備えてよく、レジスタおよびパフォーマンスカウンタの数や種類は、プロセッサ202の種類によって異なる。さらに、PMU204は、パフォーマンス情報を集め、その情報に対してパフォーマンスカウンタ更新に必要な任意の処理を行い、パフォーマンスカウンタを更新する。例えば、PMU204は、コールスタック104をシャドーコールスタック110と比較して、予測不一致があるか否かを判定してよい。一部の実施形態においては、このパフォーマンス情報は、少なくとも部分的に、プロセッサ202の分岐予測ユニットからから取得してよい。予測不一致がある場合、PMU204は、パフォーマンスカウンタ112のカウントを更新する。図2は、パフォーマンスカウンタ112を備えるPMU204を示しているが、PMU204は、システムまたはプロセスのパフォーマンスの他の態様を測る他のパフォーマンスカウンタも備えてよい。
キャッシュメモリ206は、L1キャッシュメモリまたはL2キャッシュメモリ等のプロセッサ202の任意の種類のキャッシュメモリであってよい。上記のように、キャッシュメモリ206は、「リターンスタックバッファ」と呼ばれることもあるシャドーコールスタック110を記憶してよい。一部の実施形態においては、シャドーコールスタック110は、L1キャッシュメモリよりもプロセッサ202のCPUに近いキャッシュメモリ206に記憶されてよい。シャドーコールスタック110は、コールスタック104の状態の予測を試みる分岐予測に用いられる。動作中、シャドーコールスタック110は、コールスタック104をミラーリングすることが多い。
様々な実施形態において、システムメモリ208は、揮発性(例えば、RAM)、不揮発性(例えば、ROM、フラッシュメモリ等)、または、両方の組み合わせであってよい。図に示すように、システムメモリ208は、コールスタック104を含む。コールスタック104は、コンピュータ装置102のプロセスのアクティブなサブルーチンに関する情報を記憶するデータ構造である。例えば、コールスタック104は、サブルーチンが次の動作に制御を戻すべきメモリアドレスを記憶する。上記のように、このコールスタック104は、コンピュータ装置102または、そのアプリケーションの1つの脆弱性を利用したROP106によって制御またはスプーフィングされる場合がある。ROP106は、コールスタック104に対してスプーフィングまたは制御を行うことによって、制御を間違ったメモリアドレスに戻す。この間違ったメモリアドレスは、悪意のあるアクティビティを起こすように実行される1つまたは複数の正規のエクスプロイトされた命令108に関連付けられる。
様々な実施形態において、システムメモリ208は、セキュリティエージェント210も備えてよい。セキュリティエージェント210は、コンピュータ装置102の実行アクティビティを観察し、実行アクティビティに従って行動するカーネルレベルのセキュリティエージェントであってよい。セキュリティエージェント210は、遠隔セキュリティサービスによって構成可能であってよく、動作中に(while live)、セキュリティエージェント210のフィルタ、コンポーネント、モデル等の再構成を受信、適用する。観察された実行アクティビティに基づいて、セキュリティエージェント210はセキュリティ情報を生成してよい。このセキュリティ情報は、セキュリティエージェント210がその情報に従って行動してよく、および/または、遠隔セキュリティサービスに提供してよい情報である。検出モジュール114および応答モジュール120は、セキュリティエージェント210とは別個であるとして示されているが、他の実施形態においては、そのうちの1つまたは両方が、セキュリティエージェント210のコンポーネントであってよい。例示のセキュリティエージェント210は、2012年6月8日出願の「カーネルレベルセキュリティエージェント(Kernel−Level Security Agent)」という名称の特許文献1に詳細に記載されている。
上記のように、検出モジュール114は、悪意のあるアクティビティに関連付けられた閾値またはパターン118を判定してよく、パフォーマンスカウンタ112からカウント116を読み出してよく、かつ、カウント116を閾値またはパターン118と比較することによって、カウント116が悪意のあるアクティビティを示すか否かを判定してよい。一部の実施形態においては、検出モジュール114は、ある期間にわたってパフォーマンスカウンタ112を監視して、定期的にカウント116を読み出し、読みだされたカウント116を合成してよい。これらの合成されたカウント116は、パフォーマンスカウンタ112の典型的な値を記述し得る、また、検出モジュール114は、カウントおよび/または合成されたカウント116に少なくとも部分的に基づいて、閾値またはパターン118を設定してよい。さらなる実施形態においては、検出モジュール114は、パフォーマンスカウンタ112およびアクティブな1つまたは複数のプロセスを並行して監視することによって、各プロセス毎に、または、プロセスのクラスもしくは種類毎に、閾値またはパターン118を判定してよい。
検出モジュール114は、定期的に、または、1つまたは複数のトリガイベントの発生に応答して、パフォーマンスカウンタ112からカウント116をさらに読み出してよい。プロセッサ202は、アプリケーションプロセスまたはプラットフォームレベルプロセスがカウント116を取得するのを可能にするインタフェースを備えてよく、検出モジュール114は、そのインタフェースを利用してよい。カウント116を読み出すと、検出モジュール114は、カウント116を閾値またはパターン118と比較する。カウント116が閾値118を超える、または、パターン118と異なる場合、検出モジュール114は、カウント116は悪意のあるアクティビティを示すと判定し、それに応答して、応答モジュール120を呼び出す。閾値118が、プロセス、または、プロセスのクラスもしくは種類に固有の場合、検出モジュール114は、アクティブな1つまたは複数のプロセスを示すものを取得し、適切な閾値またはパターン118を選択してもよい。異なる閾値またはパターン118に関連付けられた複数のプロセスがアクティブな場合、検出モジュール114は、例えば、最高値の閾値またはパターン118を選択してよい。
様々な実施形態において、応答モジュール120は、検出モジュール114が検出した悪意のあるアクティビティに対する適切な応答を決定してよい。応答モジュール120は、警告モジュール212、報告モジュール214、修正モジュール216、および、分析モジュール218等、様々な応答に関連付けられた多くのモジュールを備えてよい。一部の実施形態においては、応答モジュール120はなくてもよく、モジュール212〜218が応答モジュール120の代わりをし、検出モジュール114に検出されて、呼び出される。応答モジュール120は、悪意のあるアクティビティに適切に対応するために、任意の1つまたは複数のモジュール212〜218を呼び出してよい。呼び出される1つまたは複数のモジュール212〜218は、応答モジュール120の設定または構成によって決まってよい。
警告モジュール212は、悪意のあるアクティビティに関して視覚、聴覚、または、触覚による警告をコンピュータ装置102のユーザに与えてよい。一部の実施形態においては、その警告は、単に、情報を提供するものである。他の実施形態においては、その警告は、報告モジュール214を呼び出す報告オプションや、修正モジュール216またはセキュリティエージェント210を呼び出す修正オプション等の、悪意のあるアクティビティに対応するための1つまたは複数オプションをユーザに提供してよい。
一部の実施形態においては、報告モジュール214は、悪意のあるアクティビティの報告を作成して、遠隔セキュリティサービスに送信してよい。報告モジュール214は、ユーザが報告オプションを選択したことに応答して、応答モジュール120または警告モジュール212によって呼び出されてよい。報告モジュール214が生成する報告は、カウント116、閾値もしくはパターン118、1つもしくは複数のアクティブなプロセスを示すもの、並びに/または、コールスタック104および/もしくはシャドーコールスタック110の状態に関する情報を含んでよい。
様々な実施形態において、修正モジュール216は、1つまたは複数のアクティブなプロセスを中断してよい。修正モジュール216は、ユーザが修正オプションを選択したことに応答して、応答モジュール120または警告モジュール212によって呼び出されてよい。一部の実施形態においては、1つまたは複数のアクティブなプロセスの中断に先立って、修正モジュール216は、ユーザが1つまたは複数のアクティブなプロセスを中断したいか否かをユーザに尋ねてよい。ユーザが1つまたは複数のアクティブなプロセスの中断を選択する場合、修正モジュール216は、そのプロセスを中断してよい。
さらなる実施形態においては、分析モジュール218は、1つまたは複数のアクティブなプロセスに関連付けられた情報を判定してよく、かつ、判定された情報を分析してよい。例えば、セキュリティエージェント210、または、他のコンピュータ装置のコンポーネントが、1つまたは複数のアクティブなプロセスの実行アクティビティのモデルを保持している場合、分析モジュール218は、そのアクティブな1つまたは複数のプロセスに関連付けられた情報を読み出して、その情報をモデルと比較してよい。このような分析によって、悪意のあるアクティビティが生じているという判定を確認し得る実行フローにおける相違を検出してよい。次に、分析モジュール218は、1つまたは複数のアクティブなプロセスの実行アクティビティを監視してもよく、監視を行うセキュリティエージェント210または他のコンピュータ装置のコンポーネントを呼び出してもよい。このような監視によって、コンピュータ装置102は、悪意のあるアクティビティの検出後、その悪意のあるアクティビティに関するさらなる情報の取得が可能になる。
コンピュータ装置102は、例えば、磁気ディスク、光ディスク、もしくは、テープなどの追加のデータ記憶装置(取り外し可能、および/または、取り外しできない)も備える。このような追加の記憶装置は、取り外し可能な記憶装置220および取り外しできない記憶装置222として図2に示される。有形のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または、他のデータなどの情報を記憶するための任意の方法または技術で実装される、揮発性および不揮発性、取り外し可能および取り外しできない媒体を含んでよい。システムメモリ208、取り外し可能な記憶装置220、および、取り外しできない記憶装置222は、全て、有形のコンピュータ可読媒体の例である。有形のコンピュータ可読媒体は、RAM、ROM、EEPROM、フラッシュメモリ、もしくは、他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)、もしくは、他の光記憶媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは、他の磁気記憶装置、または、所望の情報を記憶するのに用いることができ、かつ、コンピュータ装置102がアクセスできる任意の他の有形媒体を含むが、それらに限定されない。このような有形のコンピュータ可読媒体は、コンピュータ装置102の一部であってよい。
コンピュータ装置102は、キーボード、マウス、タッチディスプレイ、音声入力装置等の1つまたは複数の入力装置224と、ディスプレイ、スピーカ、プリンタ等の1つまたは複数の出力装置226も有する。これらの装置は、当分野では周知なので、ここで詳細に説明する必要はない。
コンピュータ装置102は、コンピュータ装置102が遠隔セキュリティサービスまたは敵のシステム等の他のコンピュータ装置230と通信するのを可能にする通信接続228も含む。
(ネットワークの例)
図3は、ROP106を用いて脆弱性を悪用(エクスプロイト)する敵304と、セキュリティエクスプロイトに感染したコンピュータ装置102と、セキュリティエクスプロイトを検出、監視、および/もしくは、それに対応するように構成された遠隔セキュリティサービス306と、を接続する例示のネットワーク302を示す。
一部の実施形態においては、ネットワーク302は、有線ネットワーク、無線ネットワーク、および、有線ネットワークと無線ネットワークの組み合わせ等の、任意の1つまたは複数のネットワークを含んでよい。さらに、ネットワーク302は、複数の異なる種類のパブリックもしくプライベートネットワーク(例えば、ケーブルネットワーク、インターネット、無線ネットワーク等)の任意の1つ、または、任意の組み合わせを含んでよい。一部の例においては、コンピュータ装置は、保護プロトコル(例えば、https)、並びに/または、任意の他のプロトコル、もしくは、伝送制御プロトコル/インターネットプロトコル(TCP/IP)等のプロトコルのセットを用いて、ネットワーク302を介して通信する。
様々な実施形態において、敵のシステム304および遠隔セキュリティサービス306はそれぞれ、サーバもしくはサーバファーム、複数の分散サーバファーム、メインフレーム、ワークステーション、パーソナルコンピュータ(PC)、ラップトップコンピュータ、タブレットコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、メディアセンタ、埋め込みシステム、または、任意の他の種類の1つもしくは複数の装置であってもよく、それらを含んでもよい。一実装においては、遠隔セキュリティサービス306のコンピュータ装置は、クラウドコンピュータネットワークのノード等、通信して動作する複数のコンピュータ装置を表す。複数のコンピュータ装置で実装されると、遠隔セキュリティサービス306は、その複数のコンピュータ装置間に検出モジュール114と応答モジュール120を分散してよい。一部の実装においては、1つまたは複数の敵のシステム304および遠隔セキュリティサービス306は、1つまたは複数のコンピュータ装置上で実装される1つまたは複数の仮想マシンを表す。
一部の実施形態においては、敵のシステム304は、メモリ破損脆弱性などの脆弱性を悪用(エクスプロイト)して敵のシステム304がコールスタック104に対して制御またはスプーフィングを行うのを可能にするROP106を用いるように構成された任意のコンピュータ装置であってよい。上記のように、ROP106は、全てコンピュータ装置102上で実行する場合もあり、敵のシステム304を通して遠隔で制御される場合もある。このような遠隔制御には、敵のシステム304が、そのユーザに提供したコマンドシェルまたは他のインタフェースを含み得る。
様々な実施形態において、遠隔セキュリティサービス306は、コンピュータ装置102に監視サービス、構成サービス、および、回復サービスを提供してよい。このようなサービスは、例えば、セキュリティエージェント210の構成もしくは再構成、セキュリティエージェント210のインストール、コンピュータ装置からの報告および警告の受信、並びに/または、回復、エージェントの再構成、もしくは、さらなる監視を行って、警告もしくは報告に対応することを含んでよい。一部の実施形態においては、図のように、遠隔セキュリティサービス306は、検出モジュール114および応答モジュール120の1つもしく両方の一部もしくは全てを含んでよく、上記の方法でその1つまたは複数のモジュールを実行してよい。検出モジュール114を実装する時、遠隔セキュリティサービス306は、パフォーマンスカウンタ112からカウント116を読み出すように構成されたコンピュータ装置102の論理と通信することによって、遠隔セキュリティサービス306の検出モジュール114は、その論理からカウント116を読み出すことができる。このような遠隔セキュリティサービス306の例は、特許文献1に詳細に記載されている。
さらなる実施形態においては、遠隔セキュリティサービス306は、同一のエンティティまたは種々のエンティティと関連付けられた複数のクライアントコンピュータ装置102を接続するコラボレーションサービスを提供してよい。このようなコラボレーションサービスは、受信した警告または報告を1つのコンピュータ装置102から他のコンピュータ装置102にリレーしてもよく、グループのメンバーの1人からの警告または報告に基づいて、新しい構成または監視プロセスを生成し、グループ全体に適用してよい。このようなコラボレーションサービスを提供する遠隔セキュリティサービス306の例は、2012年6月29日出願の「グループにおけるセキュリティ情報のソーシャルシェアリング(Social Sharing of Security Information in a Group)」という名称の特許文献2に詳細に記載されている。
(プロセスの例)
図4は、プロセス400の例を示す。このプロセスは、論理フローグラフとして示され、グラフの各動作は、ハードウェア、ソフトウェア、または、それらの組み合わせで実装できる一連の動作を表す。ソフトウェアという文脈において、動作とは、1つまたは複数のプロセッサによって実行されて記載された動作を行う、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を行ったり、特定の抽象データ型を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。動作が記載されている順番は、限定のためと解釈してはならない。プロセスを実装するにあたって、任意の数の記載した動作を、任意の順番で、および/または、並行して、組み合わせることができる。
図4は、コールスタックに関連する予測不一致のカウントを読み出し、そのカウントが悪意のあるアクティビティを示すと判定し、それに応答して、少なくとも1つのセキュリティ応答アクションを行う例示のプロセスを示す。プロセス400は、402において、予測不一致の閾値またはパターンを決定することを含む。予測不一致の閾値またはパターンは、コンピュータ装置のコールスタックと、コンピュータ装置のプロセッサのキャッシュメモリに実装されているシャドーコールスタックとの比較から生じると見込まれる予測不一致の数またはパターンを示すものであってよい。コンピュータ装置は、例えば、予測不一致に関するプロセッサパフォーマンスカウンタのカウントを経時的に監視することによって、閾値またはパターンを決定してよい。また、一部の実施形態においては、コンピュータ装置は、異なるプロセスまたはプロセスのクラス毎に、異なる閾値またはパターンを利用してよい。
404において、コンピュータ装置は、プロセッサパフォーマンスカウンタから予測不一致のカウントを読み出してよい。406において、コンピュータ装置は、次に、カウントと閾値またはパターンとの比較に少なくとも部分的に基づいて、そのカウントがROP等の悪意のあるアクティビティを示すか否かを判定してよい。
408において、カウントは悪意のあるアクティビティを示すという判定に応答して、コンピュータ装置は、1つまたは複数のセキュリティ応答アクションを決定してよい。410において、そのセキュリティ応答アクションは、グラフィック、聴覚、または、触覚による警告をコンピュータ装置のユーザに提供することを含んでよい。412において、セキュリティ応答アクションは、遠隔セキュリティ監視サーバに悪意のあるアクティビティを知らせることを含んでよい。414〜416において、セキュリティ応答アクションは、1つまたは複数のプロセスを中断すべきか否かをコンピュータ装置のユーザに尋ねること(414)と、1つまたは複数のプロセスを中断すること(416)を含んでよい。418〜422において、セキュリティ応答は、1つまたは複数のプロセスに関連付けられた情報を判定すること(418)と、判定した情報を分析すること(420)とを含んでよい。422において、コンピュータ装置は、次に、1つまたは複数のプロセスに関連付けられた実行アクティビティを監視してよい。
様々な実施形態において、ブロック402〜422に示す動作は、悪意のあるアクティビティに侵されたコンピュータ装置によって、遠隔セキュリティサービスによって、または、そのコンピュータ装置および遠隔セキュリティサービスのそれぞれによって部分的に、行われ得る。
(結論)
発明の内容は、構造的特徴、および/または、方法的行為に固有の言葉で記載したが、請求項で特定する発明の内容は、ここに記載した具体的な特徴、行為に必ずしも限定されないことは理解されたい。記載した具体的な特徴および行為は、請求項を実施する例示の形態として開示したものである。

Claims (20)

  1. コンピュータ装置のコールスタックと、前記コンピュータ装置のプロセッサに保持されたシャドーコールスタックとの比較から生じる予測不一致のカウントをプロセッサパフォーマンスカウンタから読み出すことと、
    前記カウントが悪意のあるアクティビティを示すか否かを判定することと、
    前記カウントが悪意のあるアクティビティを示すと判定されたことに応答して、少なくとも1つのセキュリティ応答アクションを実行することと、
    を含む、コンピュータ実施方法。
  2. 前記カウントが悪意のあるアクティビティを示すか否かを判定することは、前記カウントが、閾値を超えるか否か、または、パターンと異なるか否かを判定することを含む、請求項1に記載の方法。
  3. 前記閾値または前記パターンは、プロセス、または、プロセスのクラスに固有であってよい、請求項2に記載の方法。
  4. 前記カウントをある時間にわたって監視することに基づいて、前記閾値または前記パターンを判定することをさらに含む、請求項2に記載の方法。
  5. 前記少なくとも1つのセキュリティ応答アクションは、グラフィック、聴覚、または、触覚による警告を前記コンピュータ装置のユーザに提供することである、請求項1に記載の方法。
  6. 前記少なくとも1つのセキュリティ応答アクションは、前記悪意のあるアクティビティを遠隔セキュリティ監視サーバに知らせることである、請求項1に記載の方法。
  7. 前記少なくとも1つのセキュリティ応答アクションは、1つまたは複数のプロセスの実行を中断することである、請求項1に記載の方法。
  8. 中断の前に、前記1つまたは複数のプロセスを中断すべきか否かを前記コンピュータ装置のユーザに尋ねることと、ユーザの応答に基づくという条件で、前記中断を行うことと、をさらに含む、請求項1に記載の方法。
  9. 前記少なくとも1つのセキュリティ応答アクションは、1つまたは複数のプロセスに関連付けられた情報を判定し、前記判定した情報を分析することである、請求項1に記載の方法。
  10. 前記カウントが悪意のあるアクティビティを示すか否かを判定した後、前記1つまたは複数のプロセスに関連付けられた実行アクティビティを監視することをさらに含む、請求項9に記載の方法。
  11. 前記読み出すこと、判定すること、および、実行することは、前記コンピュータ装置よって、遠隔セキュリティサービスによって、または、前記コンピュータ装置と前記遠隔セキュリティサービスの両方によって部分的に、行われる、請求項1に記載の方法。
  12. 1つまたは複数の有形コンピュータ可読媒体であって、
    コンピュータ装置のコールスタックと、前記コンピュータ装置のプロセッサが保持するシャドーコールスタックとの比較から生じる予測不一致のカウントをプロセッサパフォーマンスカウンタから読み出すことと、
    前記カウントが悪意のあるアクティビティを示すか否かを判定することと、
    前記カウントが悪意のあるアクティビティを示すと判定されたことに応答して、少なくとも1つのセキュリティ応答アクションを行うことと、
    を含む動作を行うように1つまたは複数のコンピュータ装置をプログラムするように構成されたコンピュータ実行命令を記憶する、1つまたは複数の有形コンピュータ可読媒体。
  13. 前記コンピュータ装置は、前記1つまたは複数のコンピュータ装置の1つである、請求項12に記載の1つまたは複数の有形コンピュータ可読媒体。
  14. 前記少なくとも1つのセキュリティ応答アクションは、グラフィック、聴覚、または、触覚による警告を前記コンピュータ装置のユーザに提供することである、請求項12に記載の1つまたは複数の有形コンピュータ可読媒体。
  15. 前記少なくとも1つのセキュリティ応答アクションは、悪意のあるアクティビティを遠隔セキュリティ監視サーバに知らせることである、請求項12に記載の1つまたは複数の有形コンピュータ可読媒体。
  16. 前記少なくとも1つのセキュリティ応答アクションは、1つまたは複数のプロセスの実行を中断することである、請求項12に記載の1つまたは複数の有形コンピュータ可読媒体。
  17. 前記少なくとも1つのセキュリティ応答アクションは、1つまたは複数のプロセスに関連付けられた情報を判定し、前記判定された情報を分析することである、請求項12に記載の1つまたは複数の有形コンピュータ可読媒体。
  18. コンピュータ装置であって、
    プロセッサと、
    前記プロセッサによって操作されて、
    前記コンピュータ装置のコールスタックと、前記プロセッサが保持するシャドーコールスタックとの比較から生じる予測不一致のカウントをプロセッサパフォーマンスカウンタから読み出し、かつ、
    前記カウントが悪意のあるアクティビティを示すか否かを判定するように構成された
    検出モジュールと、
    前記カウントが悪意のあるアクティビティを示すと判定されたことに応答して、前記プロセッサによって操作されて、
    グラフィック、聴覚、または、触覚による警告を前記コンピュータ装置のユーザに提供すること、
    前記悪意のあるアクティビティを遠隔セキュリティ監視サーバに知らせること、
    1つまたは複数のプロセスの実行を中断すること、または、
    前記1つまたは複数のプロセスに関連付けられた情報を判定し、前記判定された情報を分析することの、少なくとも1つを行うように構成された、
    応答モジュールと、
    を備える、コンピュータ装置。
  19. 前記検出モジュールは、前記カウントが閾値を超えるか否か、または、パターンと異なるか否かを判定することによって、前記カウントが悪意のあるアクティビティを示すか否かを判定するように構成され、前記閾値または前記パターンは、ある時間にわたって前記カウントを監視することに基づいた、請求項18に記載のコンピュータ装置。
  20. 前記カウントが悪意のあるアクティビティを示すか否かを判定した後、前記1つまたは複数のプロセスに関連付けられた実行アクティビティを監視するように構成されたエージェントをさらに含む、請求項18に記載のコンピュータ装置。
JP2015531233A 2012-09-07 2013-09-06 リターン・オリエンテッド・プログラミングの脅威検出 Expired - Fee Related JP6208761B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/607,155 US9256730B2 (en) 2012-09-07 2012-09-07 Threat detection for return oriented programming
US13/607,155 2012-09-07
PCT/US2013/058496 WO2014039811A1 (en) 2012-09-07 2013-09-06 Threat detection for return oriented programming

Publications (2)

Publication Number Publication Date
JP2015527680A JP2015527680A (ja) 2015-09-17
JP6208761B2 true JP6208761B2 (ja) 2017-10-04

Family

ID=50234814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015531233A Expired - Fee Related JP6208761B2 (ja) 2012-09-07 2013-09-06 リターン・オリエンテッド・プログラミングの脅威検出

Country Status (10)

Country Link
US (1) US9256730B2 (ja)
EP (1) EP2893486B1 (ja)
JP (1) JP6208761B2 (ja)
AU (1) AU2013312388A1 (ja)
BR (1) BR112015004449A2 (ja)
CA (1) CA2881859A1 (ja)
IL (1) IL237385B (ja)
IN (1) IN2015DN01594A (ja)
SG (1) SG11201501083SA (ja)
WO (1) WO2014039811A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256730B2 (en) * 2012-09-07 2016-02-09 Crowdstrike, Inc. Threat detection for return oriented programming
US9177147B2 (en) * 2012-09-28 2015-11-03 Intel Corporation Protection against return oriented programming attacks
US9223979B2 (en) 2012-10-31 2015-12-29 Intel Corporation Detection of return oriented programming attacks
US9213831B2 (en) * 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline
US9305167B2 (en) 2014-05-21 2016-04-05 Bitdefender IPR Management Ltd. Hardware-enabled prevention of code reuse attacks
US9961102B2 (en) 2014-07-16 2018-05-01 Mcafee, Llc Detection of stack pivoting
US10049211B1 (en) 2014-07-16 2018-08-14 Bitdefender IPR Management Ltd. Hardware-accelerated prevention of code reuse attacks
US9904780B2 (en) * 2014-07-31 2018-02-27 Nec Corporation Transparent detection and extraction of return-oriented-programming attacks
EP2996034B1 (en) * 2014-09-11 2018-08-15 Nxp B.V. Execution flow protection in microcontrollers
US9646154B2 (en) * 2014-12-12 2017-05-09 Microsoft Technology Licensing, Llc Return oriented programming (ROP) attack protection
US20160253497A1 (en) * 2015-02-26 2016-09-01 Qualcomm Incorporated Return Oriented Programming Attack Detection Via Memory Monitoring
US20170091454A1 (en) * 2015-09-25 2017-03-30 Vadim Sukhomlinov Lbr-based rop/jop exploit detection
US9767292B2 (en) 2015-10-11 2017-09-19 Unexploitable Holdings Llc Systems and methods to identify security exploits by generating a type based self-assembling indirect control flow graph
EP3404572B1 (en) * 2016-02-24 2020-09-23 Nippon Telegraph And Telephone Corporation Attack code detection device, attack code detection method, and attack code detection program
CA3018368A1 (en) 2016-03-24 2017-09-28 Carbon Black, Inc. Systems and techniques for guiding a response to a cybersecurity incident
US10423777B2 (en) * 2016-04-14 2019-09-24 Endgame, Inc. Preventing execution of malicious instructions based on address specified in a branch instruction
US10044701B2 (en) * 2016-05-24 2018-08-07 Vantiv, Llc Technologies for token-based authentication and authorization of distributed computing resources
US10681059B2 (en) 2016-05-25 2020-06-09 CyberOwl Limited Relating to the monitoring of network security
EP3513352A1 (en) 2016-09-14 2019-07-24 Carbon Black, Inc. Cybersecurity incident detection based on unexpected activity patterns
US10437990B2 (en) 2016-09-30 2019-10-08 Mcafee, Llc Detection of return oriented programming attacks in a processor
WO2018066516A1 (ja) * 2016-10-06 2018-04-12 日本電信電話株式会社 攻撃コード検知装置、攻撃コード検知方法及び攻撃コード検知プログラム
EP3535681B1 (en) * 2016-11-07 2023-07-26 Perception Point Ltd System and method for detecting and for alerting of exploits in computerized systems
US9734337B1 (en) * 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
US10706180B2 (en) 2017-07-07 2020-07-07 Endgame, Inc. System and method for enabling a malware prevention module in response to a context switch within a certain process being executed by a processor
US10885183B2 (en) * 2017-09-28 2021-01-05 International Business Machines Corporation Return oriented programming attack protection
US11030302B2 (en) * 2018-04-12 2021-06-08 Webroot Inc. Restricting access to application programming interfaces (APIs)
US11023582B2 (en) * 2018-12-19 2021-06-01 EMC IP Holding Company LLC Identification and control of malicious users on a data storage system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604877A (en) * 1994-01-04 1997-02-18 Intel Corporation Method and apparatus for resolving return from subroutine instructions in a computer processor
US5949973A (en) * 1997-07-25 1999-09-07 Memco Software, Ltd. Method of relocating the stack in a computer system for preventing overrate by an exploit program
JP3552627B2 (ja) * 2000-02-04 2004-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション スタック保護システム、コンピュータシステム、コンパイラ、スタック保護方法および記憶媒体
US6971019B1 (en) * 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
US7853803B2 (en) * 2001-09-28 2010-12-14 Verizon Corporate Services Group Inc. System and method for thwarting buffer overflow attacks using encrypted process pointers
US6931632B2 (en) * 2001-11-08 2005-08-16 Hewlett-Packard Development Company, L.P. Instrumentation of code having predicated branch-call and shadow instructions
US20040168078A1 (en) * 2002-12-04 2004-08-26 Brodley Carla E. Apparatus, system and method for protecting function return address
US7594111B2 (en) * 2002-12-19 2009-09-22 Massachusetts Institute Of Technology Secure execution of a computer program
US7603704B2 (en) * 2002-12-19 2009-10-13 Massachusetts Institute Of Technology Secure execution of a computer program using a code cache
US7178010B2 (en) * 2003-01-16 2007-02-13 Ip-First, Llc Method and apparatus for correcting an internal call/return stack in a microprocessor that detects from multiple pipeline stages incorrect speculative update of the call/return stack
US7272748B1 (en) * 2004-03-17 2007-09-18 Symantec Corporation Method and apparatus to detect and recover from a stack frame corruption
KR100586500B1 (ko) * 2004-03-18 2006-06-07 학교법인고려중앙학원 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치
US7650640B1 (en) * 2004-10-18 2010-01-19 Symantec Corporation Method and system for detecting IA32 targeted buffer overflow attacks
US7607041B2 (en) * 2005-12-16 2009-10-20 Cisco Technology, Inc. Methods and apparatus providing recovery from computer and network security attacks
US8443442B2 (en) * 2006-01-31 2013-05-14 The Penn State Research Foundation Signature-free buffer overflow attack blocker
US7581089B1 (en) * 2006-04-20 2009-08-25 The United States Of America As Represented By The Director Of The National Security Agency Method of protecting a computer stack
US20090089564A1 (en) 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
US8751948B2 (en) * 2008-05-13 2014-06-10 Cyandia, Inc. Methods, apparatus and systems for providing and monitoring secure information via multiple authorized channels and generating alerts relating to same
US8117660B2 (en) * 2008-06-19 2012-02-14 Microsoft Corporation Secure control flows by monitoring control transfers
US8495587B2 (en) * 2009-01-13 2013-07-23 International Business Machines Corporation Method, apparatus or software for selectively activating a trace function
US8359450B2 (en) * 2009-02-13 2013-01-22 Opnet Technologies, Inc. Memory utilization analysis
US8490060B2 (en) * 2009-09-23 2013-07-16 International Business Machines Corporation Tracing memory updates and accesses for debugging computer programs
US9443085B2 (en) * 2011-07-19 2016-09-13 Elwha Llc Intrusion detection using taint accumulation
US8943313B2 (en) * 2011-07-19 2015-01-27 Elwha Llc Fine-grained security in federated data sets
US8839429B2 (en) * 2011-11-07 2014-09-16 Qualcomm Incorporated Methods, devices, and systems for detecting return-oriented programming exploits
US8776223B2 (en) * 2012-01-16 2014-07-08 Qualcomm Incorporated Dynamic execution prevention to inhibit return-oriented programming
US9256730B2 (en) * 2012-09-07 2016-02-09 Crowdstrike, Inc. Threat detection for return oriented programming

Also Published As

Publication number Publication date
EP2893486A1 (en) 2015-07-15
US9256730B2 (en) 2016-02-09
EP2893486A4 (en) 2016-03-02
US20140075556A1 (en) 2014-03-13
JP2015527680A (ja) 2015-09-17
CA2881859A1 (en) 2014-03-13
WO2014039811A1 (en) 2014-03-13
IL237385A0 (en) 2015-04-30
AU2013312388A1 (en) 2015-03-05
SG11201501083SA (en) 2015-05-28
IN2015DN01594A (ja) 2015-07-03
EP2893486B1 (en) 2018-11-28
BR112015004449A2 (pt) 2017-07-04
IL237385B (en) 2018-05-31

Similar Documents

Publication Publication Date Title
JP6208761B2 (ja) リターン・オリエンテッド・プログラミングの脅威検出
US10853491B2 (en) Security agent
US10311235B2 (en) Systems and methods for malware evasion management
CN106796639B (zh) 用于可信执行环境的数据挖掘算法
EP3391274B1 (en) Dual memory introspection for securing multiple network endpoints
US8683598B1 (en) Mechanism to evaluate the security posture of a computer system
EP2835948B1 (en) Method for processing a signature rule, server and intrusion prevention system
EP3531324A1 (en) Identification process for suspicious activity patterns based on ancestry relationship
EP3232358B1 (en) Correlation-based detection of exploit activity
Milosevic et al. Malware threats and solutions for trustworthy mobile systems design
US11599638B2 (en) Game engine-based computer security
Mehresh et al. Tamper-resistant monitoring for securing multi-core environments
Khraisat Intelligent Zero-Day Intrusion Detection Framework for Internet of Things

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170907

R150 Certificate of patent or registration of utility model

Ref document number: 6208761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees