JP5944520B2 - リターン指向プログラミングエクスプロイトを検出するための方法、デバイス、およびシステム - Google Patents
リターン指向プログラミングエクスプロイトを検出するための方法、デバイス、およびシステム Download PDFInfo
- Publication number
- JP5944520B2 JP5944520B2 JP2014540222A JP2014540222A JP5944520B2 JP 5944520 B2 JP5944520 B2 JP 5944520B2 JP 2014540222 A JP2014540222 A JP 2014540222A JP 2014540222 A JP2014540222 A JP 2014540222A JP 5944520 B2 JP5944520 B2 JP 5944520B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- instruction
- miss
- instruction fetch
- code
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
- Passenger Equipment (AREA)
- Fishing Rods (AREA)
- Measurement Of Radiation (AREA)
Description
本開示は、スタック内の脆弱性が悪用されていることを検出して、そのような悪用が検出された場合は是正措置を実行するための装置、方法、およびコンピュータ可読媒体を指す。
攻撃者は、コンピューティングシステムに悪意のあるコードを挿入する方法を発見した。それに応じて、多くのコンピューティングシステム設計者は、データ実行防止(DEP)およびアドレス空間配置のランダム化(ASLR)などのシステムを実装することによって、コンピューティングシステムを攻撃者にとってより困難にした。
図4は、キャッシュメモリシステム404を含む処理システム100の例を示している。処理システム100は、1つまたは複数のプロセッサ402、キャッシュメモリシステム404、およびメインメモリ104を含み得る。様々な通信インターフェース424、および入力/出力(I/O)インターフェース426も含まれ得る。
図6は、リターン指向プログラミング(ROP)エクスプロイトを形成するためにつなげられたガジェットを含む、悪意のあるコードシーケンスを生成するための呼出しスタック600の例を示している。破損した呼出しスタック600は、攻撃者が破損した呼出しスタック上のリターンアドレスのうちの1つまたは複数を変更しているために、破損した形式である。命令キャッシュ406の一部およびメインメモリ104の一部も図6に示されている。
102 処理装置
104 メインメモリ
106 永続記憶装置
200 呼出しスタック
202A フレーム
202B フレーム
202C フレーム
204 フレームポインタ
206 スタックポインタ
300 コードシーケンス
302 リターン命令
304 ガジェット
306 ガジェット
402 プロセッサ
404 キャッシュメモリシステム
406 命令キャッシュ
408 データキャッシュ
410 統合されたキャッシュ
412 複数のレベルのキャッシュメモリ
414 キャッシュモニタ
416 バス
418 バス
420 是正措置ユニット
422 バス
424 通信インターフェース
426 入力/出力(I/O)インターフェース
428 処理装置
502 インデックス部
504 データ部
600 呼出しスタック
602 コード断片
604 コード断片
606 コード断片
608 コード断片
Claims (37)
- キャッシュメモリを含む処理回路内で動作可能な方法であって、
実行可能なコードシーケンスの少なくとも一部を前記キャッシュメモリにロードするステップと、
前記キャッシュメモリから前記実行可能なコードシーケンスの命令フェッチを実行するステップと、
前記命令フェッチに応答して1つまたは複数の命令フェッチキャッシュミスを検出するステップであって、個々の命令フェッチキャッシュミスが、前記実行可能なコードシーケンスの対応する命令フェッチについてキャッシュメモリにはないフェッチされた命令を表す、ステップと、
異常な命令フェッチキャッシュミス動作を動的に検出するために、前記1つまたは複数の命令フェッチキャッシュミスに関連する前記命令フェッチを監視するステップと、
前記異常な命令フェッチキャッシュミス動作を報告するステップと、
前記報告に応じて、前記実行可能なコードシーケンスを終了する是正措置を実行するステップと
を備える、方法。 - キャッシュミスに関連する前記命令フェッチを監視するステップが、
前記命令フェッチに応答して、1つまたは複数の命令フェッチキャッシュヒットを検出するステップと、
前記検出された命令フェッチキャッシュヒットおよび前記命令フェッチキャッシュミスに応じて、命令フェッチキャッシュヒット/ミス率を決定し、
有効なコードシーケンスを示す有効なヒット/ミス比率に対して選択されたしきい値よりも低いヒット/ミス比率を検出することによって、異常な命令フェッチキャッシュミス動作を検出するステップとを含む、請求項1に記載の方法。 - 前記有効なヒット/ミス比率が、前記監視中に、リターン指向プログラミングエクスプロイトを含まない前記実行可能なコードシーケンスのうちの複数から、命令フェッチキャッシュヒット/ミス比率を監視することで決定される、請求項2に記載の方法。
- 選択された動作期間中は前記監視が中断される、請求項1に記載の方法。
- 前記選択された動作期間が新しい処理の起動段階を含む、請求項4に記載の方法。
- 前記異常なミス動作が、あらかじめ定義された数の先行命令にわたって、またはあらかじめ定義された時間にわたって判定される、請求項1に記載の方法。
- 前記異常な命令フェッチキャッシュミス動作があらかじめ定められたオペレーティングコンテキスト内で判定される、請求項1に記載の方法。
- 実行可能なコードシーケンスをフェッチして実行するように構成された処理回路と、
前記処理回路に動作可能に結合され、少なくとも1つのキャッシュメモリを含むキャッシュメモリシステムと、
命令フェッチに応答して1つまたは複数の命令フェッチキャッシュミスを検出するように構成されたキャッシュモニタであって、個々の命令フェッチキャッシュミスが、前記実行可能なコードシーケンスの対応する命令フェッチについてキャッシュメモリにはないフェッチされた命令を表し、異常な命令フェッチキャッシュミス動作を動的に検出するために、前記1つまたは複数の命令フェッチキャッシュミスに関連する命令フェッチを監視するようにさらに構成されたキャッシュモニタと、
前記キャッシュモニタが前記異常なミス動作を報告すると、前記実行可能なコードシーケンスのうちの1つまたは複数の実行を終了するように構成された是正措置ユニットとを備える、処理装置。 - 前記キャッシュモニタ、前記是正措置ユニット、前記処理回路、またはそれらの組合せが、
前記命令フェッチに応答して、1つまたは複数の命令フェッチキャッシュヒットを検出し、
前記検出された命令フェッチキャッシュヒットおよび前記命令フェッチキャッシュミスに応じて、命令フェッチキャッシュヒット/ミス率を決定し、
有効なコードシーケンスを示す有効なヒット/ミス比率に対して選択されたしきい値よりも低いヒット/ミス比率を検出することによって、異常な命令フェッチキャッシュミス動作を検出するように構成される、請求項8に記載の処理装置。 - 前記キャッシュメモリシステムが、データキャッシュおよび命令キャッシュを含み、前記キャッシュモニタが前記命令キャッシュから命令ローディングプロファイルを展開するように構成される、請求項8に記載の処理装置。
- 前記キャッシュメモリシステムが複数のレベルのキャッシュを含み、前記キャッシュモニタが、前記複数のレベルのキャッシュのうちの少なくとも1つについての命令ローディングプロファイルを展開するように構成される、請求項8に記載の処理装置。
- 前記キャッシュモニタが、選択された動作期間中は監視するステップを中断するように構成される、請求項8に記載の処理装置。
- 前記選択された動作期間が新しい処理の起動段階を含む、請求項12に記載の処理装置。
- 前記キャッシュモニタが、前記異常な命令フェッチキャッシュミス動作をあらかじめ定義された数の先行命令にわたって、またはあらかじめ定義された時間にわたって検出する、請求項12に記載の処理装置。
- 実行可能なコードシーケンスの少なくとも一部をキャッシュメモリにロードするための手段と、
前記キャッシュメモリから前記実行可能なコードシーケンスの命令フェッチを実行するための手段と、
前記命令フェッチに応答して1つまたは複数の命令フェッチキャッシュミスを検出するための手段であって、個々の命令フェッチキャッシュミスが、前記実行可能なコードシーケンスの対応する命令フェッチについてキャッシュメモリにはないフェッチされた命令を表す、手段と、
異常な命令フェッチキャッシュミス動作を動的に検出するために、前記1つまたは複数の命令フェッチキャッシュミスに関連する前記命令フェッチを監視するための手段と、
前記異常な命令フェッチキャッシュミス動作を報告するための手段と、
前記報告に応じて、前記実行可能なコードシーケンスの実行を終了する是正措置を実行するための手段と
を備える、処理装置。 - 前記異常なミス動作を、あらかじめ定義された数の先行命令にわたって、またはあらかじめ定義された時間にわたって判定するための手段をさらに備える、請求項15に記載の処理装置。
- 命令を記憶した機械可読記憶媒体であって、前記命令が処理回路によって実行されると、前記処理回路に、
実行可能なコードシーケンスの少なくとも一部をキャッシュメモリにロードさせ、
前記キャッシュメモリから前記実行可能なコードシーケンスの命令フェッチを実行させ、
前記命令フェッチに応答して1つまたは複数の命令フェッチキャッシュミスを検出させ、個々の命令フェッチキャッシュミスが、前記実行可能なコードシーケンスの対応する命令フェッチについてキャッシュメモリにはないフェッチされた命令を表し、
異常な命令フェッチキャッシュミス動作を動的に検出するために、前記1つまたは複数の命令フェッチキャッシュミスに関連する前記命令フェッチを監視させ、
前記異常な命令フェッチキャッシュミス動作を報告させ、
前記報告に応じて、前記実行可能なコードシーケンスの実行を終了する是正措置を実行させる、機械可読記憶媒体。 - 前記命令が、前記処理回路に、
前記命令フェッチに応答して、1つまたは複数の命令フェッチキャッシュヒットを検出させ、
前記検出された命令フェッチキャッシュヒットおよび前記命令フェッチキャッシュミスに応じて、命令フェッチキャッシュヒット/ミス率を決定させ、
有効なコードシーケンスを示す有効な命令フェッチキャッシュヒット/ミス比率に対して選択されたしきい値よりも低い命令フェッチキャッシュヒット/ミス比率を検出することによって、異常な命令フェッチキャッシュミス動作を検出させる、請求項17に記載の機械可読記憶媒体。 - キャッシュメモリに結合された処理回路内のコード断片の意図しないシーケンスを実行するステップであって、各コード断片が、制御転送命令を含む少なくとも1つの実行可能命令を含み、前記コード断片のうちの1つまたは複数が、元々意図した制御転送命令とは異なる変更された制御転送命令を含み、前記複数のうちの少なくとも1つのコード断片が、前記キャッシュメモリ内では見つからないキャッシュされていないコード断片であるステップと、
キャッシュミスに関連する命令フェッチを監視することによって命令ローディングプロファイルを展開するステップであって、前記キャッシュミスが、前記命令フェッチの前記キャッシュメモリにはないフェッチされた命令であるステップと、
前記命令ローディングプロファイルが、前記意図しないシーケンスの前記コード断片のうちのいくつかの実行を示す場合、前記意図しないシーケンスの少なくとも1つのコード断片の実行を終了するステップとを備える、方法。 - コード断片の前記意図しないシーケンスを実行するステップが、マルチレベルキャッシュを前記キャッシュメモリとして利用するステップを含み、キャッシュされた命令が、前記処理回路により近いキャッシュレベル内の命令であり、キャッシュされていない命令が、前記処理回路からより離れているメインメモリまたはキャッシュレベル内の命令である、請求項19に記載の方法。
- 前記命令ローディングプロファイルを、有効なコードシーケンスを示す有効なヒット/ミス比率に対して選択されたしきい値よりも低い、キャッシュされていない命令に対するキャッシュされた命令のフェッチのヒット/ミス比率として展開するステップをさらに備える、請求項19に記載の方法。
- 前記監視中に、リターン指向プログラミングエクスプロイトを含まないとして知られる複数の実行可能なコードシーケンスからヒット/ミス比率を監視することで、前記有効なヒット/ミス比率を決定するステップをさらに備える、請求項21に記載の方法。
- 実行可能なコードシーケンスをフェッチして実行するように構成された処理回路であって、前記実行可能なコードシーケンスがコード断片の意図しないシーケンスを含み、各コード断片が制御転送命令を含む少なくとも1つの実行可能命令を含み、前記コード断片のうちの1つまたは複数が、元々意図した制御転送命令とは異なる変更された制御転送命令を含む処理回路と、
前記処理回路に動作可能に結合され、少なくとも1つのキャッシュメモリを含むキャッシュメモリシステムであって、前記意図しないシーケンスの少なくとも1つのコード断片が、前記キャッシュメモリ内では見つからないキャッシュされていないコード断片であるキャッシュメモリシステムと、
キャッシュミスに関連する命令フェッチを監視することによって命令ローディングプロファイルを展開するように構成されたキャッシュモニタであって、前記キャッシュミスが、前記命令フェッチの前記キャッシュメモリにはないフェッチされた命令であるキャッシュモニタと、
前記命令ローディングプロファイルが、前記意図しないシーケンスの前記コード断片のうちのいくつかの実行を示す場合、前記意図しないシーケンスの少なくとも1つのコード断片の実行を終了するように構成された是正措置ユニットとを備える、処理装置。 - 前記キャッシュメモリシステムがデータキャッシュおよび命令キャッシュを含み、前記キャッシュモニタが前記命令キャッシュから前記命令ローディングプロファイルを展開するためのものである、請求項23に記載の処理装置。
- 前記キャッシュメモリシステムが複数のレベルのキャッシュを含み、前記キャッシュモニタが、前記複数のレベルのキャッシュのうちの少なくとも1つについての前記命令ローディングプロファイルを展開するためのものである、請求項23に記載の処理装置。
- 前記是正措置ユニットは、前記命令ローディングプロファイルがコード断片の前記意図しないシーケンスを示す場合、前記実行可能なコードシーケンスに対して是正措置を実行するようにさらに構成され、前記キャッシュモニタ、前記是正措置ユニット、前記処理回路、またはそれらの組合せが、前記命令ローディングプロファイルを、有効なコードシーケンスを示す有効なヒット/ミス比率に対して選択されたしきい値よりも低い、キャッシュされていない命令に対するキャッシュされた命令のフェッチのヒット/ミス比率として展開するように構成される、請求項23に記載の処理装置。
- 前記キャッシュモニタ、前記是正措置ユニット、前記処理回路、またはそれらの組合せが、前記監視中に、リターン指向プログラミングエクスプロイトを含まないとして知られる複数の実行可能なコードシーケンスから前記ヒット/ミス比率を監視することで、前記有効なヒット/ミス比率を決定するように構成される、請求項26に記載の処理装置。
- 前記キャッシュモニタが、選択された動作期間中は監視するステップを中断するように構成される、請求項23に記載の処理装置。
- キャッシュメモリに結合された処理回路内のコード断片の意図しないシーケンスを実行するための手段であって、各コード断片が、制御転送命令を含む少なくとも1つの実行可能命令を含み、前記コード断片のうちの1つまたは複数が、元々意図した制御転送命令とは異なる変更された制御転送命令を含み、前記複数のうちの少なくとも1つのコード断片が、前記キャッシュメモリ内では見つからないキャッシュされていないコード断片である手段と、
キャッシュミスに関連する命令フェッチを監視することによって命令ローディングプロファイルを展開するための手段であって、前記キャッシュミスが、前記命令フェッチの前記キャッシュメモリにはないフェッチされた命令である手段と、
前記命令ローディングプロファイルが、前記意図しないシーケンスの前記コード断片のうちのいくつかの実行を示す場合、前記意図しないシーケンスの少なくとも1つのコード断片の実行を終了するための手段とを備える、処理装置。 - 前記命令ローディングプロファイルを、有効なコードシーケンスを示す有効なヒット/ミス比率に対して選択されたしきい値よりも低い、キャッシュされていない命令に対するキャッシュされた命令のフェッチのヒット/ミス比率として展開するための手段をさらに備える、請求項29に記載の処理装置。
- 命令を記憶した機械可読記憶媒体であって、前記命令がキャッシュメモリに結合された処理回路によって実行されると、前記処理回路に、
各コード断片が制御転送命令を含む少なくとも1つの実行可能命令を含むコード断片であって、前記コード断片のうちの1つまたは複数が、元々意図した制御転送命令とは異なる変更された制御転送命令を含み、前記複数のうちの少なくとも1つのコード断片が、前記キャッシュメモリ内では見つからないキャッシュされていないコード断片である、コード断片の意図しないシーケンスを実行させるとともに、
キャッシュミスに関連する命令フェッチを監視することによって命令ローディングプロファイルを展開させ、前記キャッシュミスが、前記命令フェッチの前記キャッシュメモリにはないフェッチされた命令であり、
前記命令ローディングプロファイルが、前記意図しないシーケンスの前記コード断片のうちのいくつかの実行を示す場合、前記意図しないシーケンスの少なくとも1つのコード断片の実行を終了させる、機械可読記憶媒体。 - 前記キャッシュメモリは、命令キャッシュを含み、前記方法のステップが前記命令キャッシュを使用して実行される、請求項1に記載の方法。
- 前記キャッシュメモリは、命令キャッシュを含み、前記ロードするための手段と、前記命令フェッチを実行するための手段と、前記1つまたは複数の命令フェッチキャッシュミスを検出するための手段と、前記監視するための手段とが、前記命令キャッシュを使用する、請求項15に記載の処理装置。
- 前記キャッシュメモリは、命令キャッシュを含み、前記命令は、前記処理回路に、前記命令キャッシュを使用して、前記ロードの動作を実行させ、命令フェッチを実行させ、1つまたは複数の命令フェッチキャッシュミスを検出させ、前記命令フェッチを監視させる、請求項17に記載の機械可読記憶媒体。
- 前記キャッシュメモリは、命令キャッシュを含み、前記方法のステップが前記命令キャッシュを使用して実行される、請求項19に記載の方法。
- 前記キャッシュメモリは、命令キャッシュを含み、前記処理回路内のコード断片の前記意図しないシーケンスを実行するための前記手段と、キャッシュミスに関連する命令フェッチを監視することによって前記命令ローディングプロファイルを展開するための手段とは、前記命令キャッシュを使用する、請求項29に記載の処理装置。
- 前記キャッシュメモリは、命令キャッシュを含み、前記命令は、前記処理回路に、前記命令キャッシュを使用して、前記コード断片の意図しないシーケンスを実行する動作を実行させ、キャッシュミスに関連する命令フェッチを監視することによって前記命令ローディングプロファイルを展開させる、請求項31に記載の機械可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/290,932 | 2011-11-07 | ||
US13/290,932 US8839429B2 (en) | 2011-11-07 | 2011-11-07 | Methods, devices, and systems for detecting return-oriented programming exploits |
PCT/US2012/063953 WO2013070773A2 (en) | 2011-11-07 | 2012-11-07 | Methods, devices, and systems for detecting return-oriented programming exploits |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014532944A JP2014532944A (ja) | 2014-12-08 |
JP5944520B2 true JP5944520B2 (ja) | 2016-07-05 |
Family
ID=47428964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014540222A Expired - Fee Related JP5944520B2 (ja) | 2011-11-07 | 2012-11-07 | リターン指向プログラミングエクスプロイトを検出するための方法、デバイス、およびシステム |
Country Status (6)
Country | Link |
---|---|
US (2) | US8839429B2 (ja) |
EP (2) | EP2776971B1 (ja) |
JP (1) | JP5944520B2 (ja) |
CN (1) | CN103946855B (ja) |
IN (1) | IN2014CN03071A (ja) |
WO (1) | WO2013070773A2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268945B2 (en) * | 2010-03-19 | 2016-02-23 | Contrast Security, Llc | Detection of vulnerabilities in computer systems |
US8839429B2 (en) | 2011-11-07 | 2014-09-16 | Qualcomm Incorporated | Methods, devices, and systems for detecting return-oriented programming exploits |
EP2802988A1 (en) * | 2012-01-10 | 2014-11-19 | Telcordia Technologies, Inc. | Adaptive-diversity for compressible return oriented programs |
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 |
US10114643B2 (en) | 2013-05-23 | 2018-10-30 | Intel Corporation | Techniques for detecting return-oriented programming |
US10310863B1 (en) * | 2013-07-31 | 2019-06-04 | Red Hat, Inc. | Patching functions in use on a running computer system |
US9292684B2 (en) | 2013-09-06 | 2016-03-22 | Michael Guidry | Systems and methods for security in computer systems |
US9465936B2 (en) | 2013-11-06 | 2016-10-11 | Bitdefender IPR Management Ltd. | Systems and methods for detecting return-oriented programming (ROP) exploits |
CA2944578C (en) * | 2014-03-31 | 2023-12-12 | Cfph, Llc | Resource allocation |
US9390264B2 (en) | 2014-04-18 | 2016-07-12 | Qualcomm Incorporated | Hardware-based stack control information protection |
US20160196427A1 (en) * | 2014-07-08 | 2016-07-07 | Leviathan, Inc. | System and Method for Detecting Branch Oriented Programming Anomalies |
US9904780B2 (en) | 2014-07-31 | 2018-02-27 | Nec Corporation | Transparent detection and extraction of return-oriented-programming attacks |
US9589133B2 (en) * | 2014-08-08 | 2017-03-07 | International Business Machines Corporation | Preventing return-oriented programming exploits |
CN104268471B (zh) * | 2014-09-10 | 2017-04-26 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
EP2996034B1 (en) * | 2014-09-11 | 2018-08-15 | Nxp B.V. | Execution flow protection in microcontrollers |
US9519773B2 (en) | 2014-09-12 | 2016-12-13 | Intel Corporation | Returning to a control transfer instruction |
US10867032B2 (en) * | 2014-09-17 | 2020-12-15 | Irdeto B.V. | Generating and executing protected items of software |
US9465938B2 (en) * | 2014-09-22 | 2016-10-11 | Qualcomm Incorporated | Integrated circuit and method for detection of malicious code in a first level instruction cache |
US9501637B2 (en) * | 2014-09-26 | 2016-11-22 | Intel Corporation | Hardware shadow stack support for legacy guests |
US9646154B2 (en) * | 2014-12-12 | 2017-05-09 | Microsoft Technology Licensing, Llc | Return oriented programming (ROP) attack protection |
US9940484B2 (en) * | 2014-12-23 | 2018-04-10 | Intel Corporation | Techniques for detecting false positive return-oriented programming attacks |
CN104732139A (zh) * | 2015-02-04 | 2015-06-24 | 深圳市中兴移动通信有限公司 | 一种内存监控方法及终端 |
SG10201500921QA (en) * | 2015-02-06 | 2016-09-29 | Huawei Internat Pte Ltd | Method for obfuscation of code using return oriented programming |
US9842209B2 (en) * | 2015-05-08 | 2017-12-12 | Mcafee, Llc | Hardened event counters for anomaly detection |
SG10201504066QA (en) * | 2015-05-25 | 2016-12-29 | Huawei Internat Pte Ltd | Method and system for defense against return oriented programming (rop) based attacks |
WO2017030805A1 (en) | 2015-08-18 | 2017-02-23 | The Trustees Of Columbia University In The City Of New York | Inhibiting memory disclosure attacks using destructive code reads |
US10019572B1 (en) * | 2015-08-27 | 2018-07-10 | Amazon Technologies, Inc. | Detecting malicious activities by imported software packages |
US10032031B1 (en) | 2015-08-27 | 2018-07-24 | Amazon Technologies, Inc. | Detecting unknown software vulnerabilities and system compromises |
US10282224B2 (en) | 2015-09-22 | 2019-05-07 | Qualcomm Incorporated | Dynamic register virtualization |
US20170091454A1 (en) * | 2015-09-25 | 2017-03-30 | Vadim Sukhomlinov | Lbr-based rop/jop exploit detection |
US9576138B1 (en) | 2015-09-30 | 2017-02-21 | International Business Machines Corporation | Mitigating ROP attacks |
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 |
US10437998B2 (en) * | 2015-10-26 | 2019-10-08 | Mcafee, Llc | Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection |
US10419423B2 (en) | 2015-10-30 | 2019-09-17 | Mcafee, Llc | Techniques for identification of location of relevant fields in a credential-seeking web page |
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 |
US10423792B2 (en) | 2016-09-23 | 2019-09-24 | Red Hat, Inc. | Identifying exploitable code sequences |
US10437990B2 (en) | 2016-09-30 | 2019-10-08 | Mcafee, Llc | Detection of return oriented programming attacks in a processor |
US10489592B1 (en) * | 2017-03-21 | 2019-11-26 | Symantec Corporation | Creating an execution safety container for unreliable exploits |
DE102017124805B4 (de) * | 2017-10-24 | 2019-05-29 | Infineon Technologies Ag | Speicheranordnung und verfahren zum zwischenspeichern von speicherinhalten |
CN112395598B (zh) * | 2019-08-15 | 2024-04-19 | 奇安信安全技术(珠海)有限公司 | 指令执行序列被破坏的防护方法、装置及设备 |
US11445225B2 (en) * | 2020-10-27 | 2022-09-13 | Akamai Technologies, Inc. | Measuring and improving origin offload and resource utilization in caching systems |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956477A (en) * | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US6134710A (en) * | 1998-06-26 | 2000-10-17 | International Business Machines Corp. | Adaptive method and system to minimize the effect of long cache misses |
EP1331539B1 (en) | 2002-01-16 | 2016-09-28 | Texas Instruments France | Secure mode for processors supporting MMU and interrupts |
US7086088B2 (en) * | 2002-05-15 | 2006-08-01 | Nokia, Inc. | Preventing stack buffer overflow attacks |
US7954102B2 (en) | 2002-11-13 | 2011-05-31 | Fujitsu Limited | Scheduling method in multithreading processor, and multithreading processor |
WO2004044745A1 (ja) * | 2002-11-13 | 2004-05-27 | Fujitsu Limited | マルチスレッディングプロセッサにおけるスケジューリング方法およびマルチスレッディングプロセッサ |
GB0226875D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Control of access to a memory by a device |
US7134029B2 (en) | 2003-11-06 | 2006-11-07 | International Business Machines Corporation | Computer-component power-consumption monitoring and control |
US7392370B2 (en) | 2004-01-14 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for autonomically initiating measurement of secondary metrics based on hardware counter values for primary metrics |
KR100586500B1 (ko) | 2004-03-18 | 2006-06-07 | 학교법인고려중앙학원 | 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치 |
FR2877118B1 (fr) * | 2004-10-22 | 2007-01-19 | Oberthur Card Syst Sa | Protection contre les attaques par generation de fautes sur les instructions de saut |
US7730531B2 (en) | 2005-04-15 | 2010-06-01 | Microsoft Corporation | System and method for detection of artificially generated system load |
US7818747B1 (en) | 2005-11-03 | 2010-10-19 | Oracle America, Inc. | Cache-aware scheduling for a chip multithreading processor |
US20070150881A1 (en) * | 2005-12-22 | 2007-06-28 | Motorola, Inc. | Method and system for run-time cache logging |
JP4915774B2 (ja) | 2006-03-15 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
US20080263324A1 (en) * | 2006-08-10 | 2008-10-23 | Sehat Sutardja | Dynamic core switching |
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
JP2009217385A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | プロセッサ及びマルチプロセッサ |
US8490061B2 (en) * | 2009-05-07 | 2013-07-16 | International Business Machines Corporation | Profiling application performance according to data structure |
US8689201B2 (en) * | 2010-01-27 | 2014-04-01 | Telcordia Technologies, Inc. | Automated diversity using return oriented programming |
CN101924761B (zh) | 2010-08-18 | 2013-11-06 | 北京奇虎科技有限公司 | 一种依据白名单进行恶意程序检测的方法 |
US8997218B2 (en) * | 2010-12-22 | 2015-03-31 | F-Secure Corporation | Detecting a return-oriented programming exploit |
US8839429B2 (en) | 2011-11-07 | 2014-09-16 | Qualcomm Incorporated | Methods, devices, and systems for detecting return-oriented programming exploits |
-
2011
- 2011-11-07 US US13/290,932 patent/US8839429B2/en not_active Expired - Fee Related
-
2012
- 2012-11-07 EP EP12805807.0A patent/EP2776971B1/en not_active Not-in-force
- 2012-11-07 CN CN201280054578.4A patent/CN103946855B/zh active Active
- 2012-11-07 EP EP16163454.8A patent/EP3062259A1/en not_active Withdrawn
- 2012-11-07 IN IN3071CHN2014 patent/IN2014CN03071A/en unknown
- 2012-11-07 WO PCT/US2012/063953 patent/WO2013070773A2/en active Application Filing
- 2012-11-07 JP JP2014540222A patent/JP5944520B2/ja not_active Expired - Fee Related
-
2014
- 2014-08-29 US US14/473,736 patent/US9262627B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014532944A (ja) | 2014-12-08 |
WO2013070773A3 (en) | 2013-12-12 |
EP2776971A2 (en) | 2014-09-17 |
WO2013070773A2 (en) | 2013-05-16 |
IN2014CN03071A (ja) | 2015-07-31 |
US8839429B2 (en) | 2014-09-16 |
EP2776971B1 (en) | 2019-01-16 |
CN103946855A (zh) | 2014-07-23 |
US20130117843A1 (en) | 2013-05-09 |
US20140372701A1 (en) | 2014-12-18 |
CN103946855B (zh) | 2017-03-08 |
EP3062259A1 (en) | 2016-08-31 |
US9262627B2 (en) | 2016-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5944520B2 (ja) | リターン指向プログラミングエクスプロイトを検出するための方法、デバイス、およびシステム | |
JP5769891B2 (ja) | リターン指向プログラミングを抑制するための動的実行防止 | |
Schwarz et al. | Javascript zero: Real javascript and zero side-channel attacks | |
JP5908132B2 (ja) | プログラムの脆弱点を用いた攻撃の探知装置および方法 | |
CN109508536B (zh) | 一种篡改程序流攻击的检测方法和装置 | |
JP6494744B2 (ja) | リターン指向プログラミング攻撃の透過的な検出及び抽出 | |
US10984096B2 (en) | Systems, methods, and apparatus for detecting control flow attacks | |
JP5699213B2 (ja) | 不正なモード変更の操作 | |
US10565379B2 (en) | System, apparatus and method for instruction level behavioral analysis without binary instrumentation | |
US9740864B2 (en) | System and method for emulation of files using multiple images of the emulator state | |
US20140344932A1 (en) | Systems, methods, and media for detecting return-oriented programming payloads | |
US10210331B2 (en) | Executing full logical paths for malware detection | |
US20220335135A1 (en) | Vulnerability analysis and reporting for embedded systems | |
US10706180B2 (en) | System and method for enabling a malware prevention module in response to a context switch within a certain process being executed by a processor | |
Schwarzl et al. | Dynamic process isolation | |
US10885184B1 (en) | Rearranging executables in memory to prevent rop attacks | |
KR102225838B1 (ko) | 안드로이드 앱 보호를 위한 안티 에뮬레이션 방법 및 장치 | |
WO2018058414A1 (en) | Overflow detection | |
Sehrawat et al. | Strengthening Software Diversity Through Targeted Diversification | |
EP2866167A1 (en) | System and method for preserving and subsequently restoring emulator state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150615 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150915 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151221 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160316 |
|
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: 20160425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160525 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5944520 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |