JP6419337B2 - 正当なメモリアクセスの検知方法及び装置 - Google Patents

正当なメモリアクセスの検知方法及び装置 Download PDF

Info

Publication number
JP6419337B2
JP6419337B2 JP2017526733A JP2017526733A JP6419337B2 JP 6419337 B2 JP6419337 B2 JP 6419337B2 JP 2017526733 A JP2017526733 A JP 2017526733A JP 2017526733 A JP2017526733 A JP 2017526733A JP 6419337 B2 JP6419337 B2 JP 6419337B2
Authority
JP
Japan
Prior art keywords
memory
access
buffer
address information
valid
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.)
Active
Application number
JP2017526733A
Other languages
English (en)
Other versions
JP2017523544A (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.)
ZTE Corp
Original Assignee
ZTE 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 ZTE Corp filed Critical ZTE Corp
Publication of JP2017523544A publication Critical patent/JP2017523544A/ja
Application granted granted Critical
Publication of JP6419337B2 publication Critical patent/JP6419337B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータプログラム分野に関し、特に、正当なメモリアクセスの検知方法及び装置に関する。
配列のオーバーフロー・境界外、不正なポインタの操作、エラーメモリブロックのアドレス情報のリリース等のメモリの不正なアクセスは、ずっとソフトウェア開発において最も発生しやすく、害が最も大きく、最も解決しにくい問題の一つであった。
現在、よく利用されているC/C++メモリアクセス正当性の検出ツールとして主に、計装式メモリチェックツールと動的二進法分析ツールとの2種類がある。
計装式メモリチェックツールの具体的な方法は、C/C++ソースファイルをコンパイルする際、メモリ割り当てとアクセスポイントに插入監視関数ポイルを挿入し、アクセスされたメモリブロックのアドレス情報と今回のアクセス範囲に基づいてアクセスが正当か否かを識別する。
大型のソフトウェアのメモリアクセスを検出する際、計装式メモリチェックツールが大量のメモリ情報と、排他的に保護する全体ソースと、保守ツールの各種データを検索しなければならないので、一回の正当なメモリアクセスの検知の性能は比較的に低い。一方、通常のソフトウェアのメモリアクセスは非常に頻繁であって、アクセスするたびに正当性を検査しなければならないので、プログラムの性能に大きい影響を与えてしまい、計装式メモリチェックツールを商業レベルのソフトウェアに応用することができなくなった。
上記のように、計装式メモリチェックツールの検出性能が低下し、通常のソフトウェアの殆どのメモリアクセスが正当なアクセスである事実に鑑み、本発明は、既存のメモリアクセス正当性の検出技術によるとメモリにアクセスするたびに計装式メモリチェックツールによる正当性検査が必要であることで性能が低下する技術課題を効果的に解決できる正当なメモリアクセスの検知方法を提供することを主な目的とする。
本発明の実施例において、
バッファを作成して初期化することと、
検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算することと、
プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出すことができるか否かを判断することと、
YESであると、今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断することと、
NOであると、計装式メモリチェックツールを用いて今回のアクセスが正当か否かを判断し、アクセスが正当の場合に階層バッファユニットにメモリブロックのアドレス情報を書き込みすることと、を含む正当なメモリアクセスの検知方法を提供する。
前記検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算するステップは、
メモリブロックサイズに基づいて、バッファ階層を選択することと、
検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算することと、
前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得ることと、を含む。
前記今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断するステップが、
実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判定し、検出されたプログラムを継続して運行することと、
実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判定できず、計装式メモリチェックツールによって今回のアクセスが正当か否かの判断を行うことと、を含む。
上記方法は、
メモリブロックがリリースされる時、階層バッファユニット中のメモリ情報を整理することを更に含む。
本発明の実施例において、
バッファを作成して初期化するように構成される階層バッファ作成手段と、
検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算するように構成されるバッファインデックス計算手段と、
プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出すことができるか否かを判断するように構成されるアドレス情報読取手段と、
階層バッファユニットからメモリブロックのアドレス情報を読み出すことができる場合、今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断するように構成される第1の正当性判断手段と、
階層バッファユニットからメモリブロックのアドレス情報を読み出すことができなかった場合、計装式メモリチェックツールによって今回のアクセスが正当か否かを判断するように構成される第2の正当性判断手段と、
計装式メモリチェックツールによって今回のアクセスが正当と判断された場合、階層バッファユニットにメモリブロックのアドレス情報を書き込みするように構成されるアドレス情報書き込み手段と、を含む正当なメモリアクセスの検知装置を提供する。
前記バッファインデックス計算手段は、
メモリブロックサイズに基づいて、バッファ階層を選択し、
検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算し、
前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得るように構成される。
前記第1の正当性判断手段は、
実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判断し、検出されたプログラムを継続して運行し、
実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判断できず、第2の正当性判断手段に動作するように通知するように構成される。
上記装置は、
メモリブロックがリリースされる場合、階層バッファユニット中のメモリ情報を整理するように構成されるバッファ整理手段を更に含む。
本発明の実施例によると、プログラムの局部性原理を利用して、一定区間のメモリに一番目の正当なアクセス検査を行った後、メモリアドレス情報をバッファリングし、その後に当該区間のメモリを再びアクセスする際に直接、バッファからメモリアドレス情報を読み出すことで、正当なメモリアクセスに対する判断が高速に完成でき、既存のメモリアクセス正当性の検出技術によるとメモリにアクセスするたびに計装式メモリチェックツールによって正当性検査を行わなければならないことを回避し、メモリアクセス正当性の検出効率やソフトウェア性能を向上させる。
本発明の一好適な実施例における正当なメモリアクセスの検知方法のプロセスを示す図である。 本発明の一好適な実施例における検出対象のメモリブロックのサイズとアドレスに基づいてバッファ総位置インデックスを計算するステップを示す図である。 本発明の一好適な実施例における正当なメモリアクセスの検知装置の構造を示す図である。 本発明の他の一好適な実施例における正当なメモリアクセスの検知装置の構造を示す図である。
本発明の目的の実現、機能特徴、メリットを、実施例を結合しつつ図面を参照して詳しく説明する。
尚、以下で説明する具体的な実施例は本発明を解釈するものであって、本発明を限定するものではない。
本発明において正当なメモリアクセスの検知方法を提供し、図1を参照すると、本発明の一実施例において、該正当なメモリアクセスの検知方法は少なくとも以下のステップを含む。
バッファを作成して初期化し(S10)、例えば、通常のソフトウェアメモリの使用状況についての統計データに基づいて、7層のバッファを作成し、各階層のバッファの65536個のユニットはそれぞれ、サイズが1〜8、9〜128、129〜1K、1k以上〜8K、8k以上〜64K、64k以上〜1M、1M以上のバイトのメモリブロックに対応する。
検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算し(S20)、メモリ情報に基づいて、階層バッファインデックスを計算し、例えば、まず、メモリブロックサイズに基づいてバッファ階層を選択し、8バイト以下のメモリブロックは第1層のバッファに属し、サイズが8バイトを超えて128バイト未満のメモリブロックは第2層のバッファに属し、……、他のメモリブロックの選択方式も類似である。その後、検出対象メモリアドレスを右側へ幾つかバイト移動して0XFFFFと合致すると、得られた値がその階層のインデックスである。右側へ移動するバイト数は、位置するバッファ階層に関連付けられ、第1層から第7層まで順に、3、7、10、13、16、20、20バイト移動する。最後に、階層インデックスに位置する階層の開始位置を追加してバッファ総位置インデックスを得る。バッファ総位置インデックスはバッファ中の一つのバッファユニットを指す。
プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出しすることができるか否かを判断し(S30)、YESであると、ステップS40を実行し、NOであると、ステップS50を実行する。
今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきか否かを判断する(S40)。
計装式メモリチェックツールによって今回のアクセスが正当か否かを判断し、アクセスが正当の場合、階層バッファユニットにメモリブロックのアドレス情報を書き込みする(S50)。
本発明の実施例において、メモリブロックのアドレス情報は今回アクセスしたメモリブロックの開始アドレスと終了アドレスを指す。プログラムがメモリを初めてアクセスする場合、バッファユニットにメモリブロックのアドレス情報を予め記憶していないので、読み取り結果は空きである。この時、アクセスが正当か否か(例えば、配列が境界を超えているか否か等)は通常の手段(例えば、計装式メモリチェックツール等)によって完成する。計装式メモリチェックツールによってアクセスが正当と判断された場合、階層バッファユニットにメモリブロックのアドレス情報を書き込みする。プログラムが二回目及びその以降のアクセスを行う場合、階層バッファユニットから読み出したメモリブロックのアドレス情報に基づいて、今回のメモリアクセスの範囲を結合して、今回のアクセスが正当か否かを高速に判断できる。
本発明は、プログラムの局部性原理を利用して、一定区間のメモリに一番目の正当なアクセス検査を行った後、メモリアドレス情報をバッファリングし、その後に当該区間のメモリを再びアクセスする際に直接、バッファからメモリアドレス情報を読み出すことで、正当なメモリアクセスに対する判断が高速に完成でき、既存のメモリアクセス正当性の検出技術によるとメモリにアクセスするたびに計装式メモリチェックツールによって正当性検査を行わなければならないことを回避し、メモリアクセス正当性の検出効率やソフトウェア性能を向上させる。
図2に示すように、本発明の一実施例において、上述したステップS20は以下のステップを含む。
メモリブロックサイズに基づいて、バッファ階層を選択し(S21)、例えば、まず、メモリブロックサイズに基づいてバッファ階層を選択し、8バイト以下のメモリブロックは第1層のバッファに属し、サイズが8バイトを超えて128バイト未満のメモリブロックは第2層のバッファに属し、……、他のメモリブロックの選択方式も類似である。
検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算し(S22)、例えば、検出対象メモリアドレスを右側へ幾つかバイト移動して0XFFFFと合致すると、得られた値がその階層のインデックスである。右側へ移動するバイト数は、位置するバッファ階層に関連付けられ、第1層から第7層まで順に、3、7、10、13、16、20、20バイト移動する。
前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得る(S23)。例えば、階層インデックスに位置する階層の開始位置を追加してバッファ総位置インデックスを得る。バッファ総位置インデックスはバッファ中の一つのバッファユニットを指す。
本発明の一実施例において、上述したステップS40は以下のステップを含む。
実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判断し、検出されたプログラムを継続して運行し、
実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判定できず、ステップS50を実行する。
上述のように、メモリブロックのアドレス情報は今回アクセスしたメモリブロックの開始アドレスと終了アドレスを指し、開始アドレスと終了アドレスによってアクセスの範囲が限定される。実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、アクセスは境界を超えておらず、今回のアクセスが正当と判断し、計装式検出ツールをスケジューリングして検出する必要がなく、検出されたプログラムを継続して運行する。実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、アクセスは境界を超えていて、今回のアクセスが正当か否かを判断できず、計装式メモリチェックツールをスケジューリングして検出しなければならない。
メモリブロックがリリースされる時に前回の正当性判断プロセスでバッファユニットに記憶したアドレス情報によるアドレッシングエラーを回避するため、本発明の一実施例において、上述した方法は更に以下のステップを含む。
メモリブロックがリリースされる時、階層バッファユニット中のメモリ情報を整理する。メモリブロックがリリースされる時、対応するバッファユニット中のメモリ情報開始アドレスを極大アドレス値に、終了アドレスを0にセットする。
本発明において更に上記方法を実現するための正当なメモリアクセスの検知装置を提供し、図3に示すように、本発明の一実施例において、正当なメモリアクセスの検知装置は、
バッファを作成して初期化する階層バッファ作成手段10と、例えば、階層バッファ作成手段10は、通常のソフトウェアメモリの使用状況についての統計データに基づいて、7層のバッファを作成し、各階層のバッファの65536個のユニットはそれぞれ、サイズが1〜8、9〜128、129〜1K、1k以上〜8K、8k以上〜64K、64k以上〜1M、1M以上のバイトのメモリブロックに対応する;
検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算するように構成されるバッファインデックス計算手段20と、例えば、バッファインデックス計算手段20は、まず、メモリブロックサイズに基づいてバッファ階層を選択し、8バイト以下のメモリブロックは第1層のバッファに属し、サイズが8バイトを超えて128バイト未満のメモリブロックは第2層のバッファに属し、……、他のメモリブロックの選択方式も類似である。その後、検出対象メモリアドレスを右側へ幾つかバイト移動して0XFFFFと合致すると、得られた値がその階層のインデックスである。右側へ移動するバイト数は、位置するバッファ階層に関連付けられ、第1層から第7層まで順に、3、7、10、13、16、20、20バイト移動する。最後に、階層インデックスに位置する階層の開始位置を追加してバッファ総位置インデックスを得る。バッファ総位置インデックスはバッファ中の一つのバッファユニットを指す;
プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出しすることができるか否かを判断するように構成されるアドレス情報読取手段30と、
階層バッファユニットからメモリブロックのアドレス情報を読み出した場合、今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきか否かを判断するように構成される第1の正当性判断手段40と、
階層バッファユニットからメモリブロックのアドレス情報を読み出すことができない場合、計装式メモリチェックツールによって今回のアクセスが正当か否かを判断するように構成される第2の正当性判断手段50と、
計装式メモリチェックツールにより今回のアクセスが正当と判断された場合、階層バッファユニットにメモリブロックのアドレス情報を書き込みするように構成されるアドレス情報書き込み手段60と、を含む。
本発明の実施例において、メモリブロックのアドレス情報は今回アクセスしたメモリブロックの開始アドレスと終了アドレスを指す。プログラムがメモリを初めてアクセスする場合、バッファユニットにメモリブロックのアドレス情報を予め記憶していないので、アドレス情報読取手段30による読み取り結果は空きである。この時、アクセスが正当か否か(例えば、配列が境界を超えているか否か等)は第2の正当性判断手段50(例えば、計装式メモリチェックツール等)によって完成する。第2の正当性判断手段50によってアクセスが正当と判断された場合、アドレス情報書き込み手段60が階層バッファユニットにメモリブロックのアドレス情報を書き込みし、今回のアクセスが正当の場合、今回のアクセスが不正との判断情報を出力する。プログラムが二回目及びその以降のアクセスを行う場合、階層バッファユニットから読み出したメモリブロックのアドレス情報に基づいて、今回のメモリアクセスの範囲を結合して、今回のアクセスが正当か否かを高速に判断できる。
本発明の一実施例において、バッファインデックス計算手段20は、
メモリブロックサイズに基づいて、バッファ階層を選択し、
検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算し、
前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得るように構成される。
本発明の実施例において、第1の正当性判断手段40は、
実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判断し、検出されたプログラムを継続して運行し、
実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判断できず、第2の正当性判断手段50に動作するように通知するように構成される。
上述のように、メモリブロックのアドレス情報は今回アクセスしたメモリブロックの開始アドレスと終了アドレスを指し、開始アドレスと終了アドレスによってアクセスの範囲が限定される。実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、アクセスは境界を超えておらず、第1の正当性判断手段40が今回のアクセスが正当と判断し、計装式検出ツールをスケジューリングして検出する必要がなく、検出されたプログラムを継続して運行する。実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、アクセスは境界を超えていて、今回のアクセスが正当か否を判断できず、計装式メモリチェックツールをスケジューリングして検出しなければならず、第1の正当性判断手段40は第2の正当性判断手段50に動作するように通知する。
図4に示すように、一実施例において、上記装置は、
メモリブロックがリリースされる場合、階層バッファユニット中のメモリ情報を整理するように構成されるバッファ整理手段70を更に含む。例えば、メモリブロックがリリースされる場合、バッファ整理手段90は対応するバッファユニット中のメモリ情報の開始アドレスを極大アドレス値に、終了アドレスを0にセットする。
以上は本発明の好適な実施例であって、本発明の保護範囲がこれらに限定されることはなく、本発明の明細書及び図面に開示された内容に基づく等価構造又は等価プロセスの変換、あるいは他の関連する技術分野への直接又は間接的な応用は全て本発明の保護範囲に含まれる。
上述のように、本発明の実施例で提供する正当なメモリアクセスの検知方法及び装置によると、正当なメモリアクセスに対する判断が高速に完成でき、既存のメモリアクセス正当性の検出技術によるとメモリにアクセスするたびに計装式メモリチェックツールによって正当性検査を行わなければならないことを回避し、メモリアクセス正当性の検出効率やソフトウェア性能を向上させる効果を実現できる。

Claims (8)

  1. バッファを作成して初期化することと、
    検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算することと、
    プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出すことができるか否かを判断することと、
    YESであると、今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断することと、
    NOであると、計装式メモリチェックツールを用いて今回のアクセスが正当か否かを判断し、アクセスが正当の場合に階層バッファユニットにメモリブロックのアドレス情報を書き込みすることと、を含む正当なメモリアクセスの検知方法。
  2. 前記検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算するステップは、
    メモリブロックサイズに基づいて、バッファ階層を選択することと、
    検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算することと、
    前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得ることと、を含む請求項1に記載の正当なメモリアクセスの検知方法。
  3. 前記今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断するステップが、
    実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判定し、検出されたプログラムを継続して運行することと、
    実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判定できず、計装式メモリチェックツールによって今回のアクセスが正当か否かの判断を行うことと、を含む請求項1又は2に記載の正当なメモリアクセスの検知方法。
  4. メモリブロックがリリースされる時、階層バッファユニット中のメモリ情報を整理することを更に含む請求項3に記載の正当なメモリアクセスの検知方法。
  5. バッファを作成して初期化するように構成される階層バッファ作成手段と、
    検出対象のメモリブロックのサイズとアドレスに基づいて、バッファ総位置インデックスを計算するように構成されるバッファインデックス計算手段と、
    プログラムがメモリにアクセスする際、バッファ総位置インデックスに基づいて、階層バッファユニットのアドレッシングを行って、該階層バッファユニットからメモリブロックのアドレス情報を読み出すことができるか否かを判断するように構成されるアドレス情報読取手段と、
    階層バッファユニットからメモリブロックのアドレス情報を読み出すことができる場合、今回のメモリアクセスの範囲を結合して、今回のアクセスを計装式メモリチェックツールを用いて検出するべきかを判断するように構成される第1の正当性判断手段と、
    階層バッファユニットからメモリブロックのアドレス情報を読み出すことができなかった場合、計装式メモリチェックツールによって今回のアクセスが正当か否かを判断するように構成される第2の正当性判断手段と、
    計装式メモリチェックツールによって今回のアクセスが正当と判断された場合、階層バッファユニットにメモリブロックのアドレス情報を書き込みするように構成されるアドレス情報書き込み手段と、を含む正当なメモリアクセスの検知装置。
  6. 前記バッファインデックス計算手段は、
    メモリブロックサイズに基づいて、バッファ階層を選択し、
    検出対象のメモリブロックのアドレス情報に基づいて、本階層に対応する階層位置インデックスを計算し、
    前記階層位置インデックスを位置する階層の開始位置に追加してバッファ総位置インデックスを得るように構成される請求項5に記載の正当なメモリアクセスの検知装置。
  7. 前記第1の正当性判断手段は、
    実際にアクセスした範囲がアドレス情報に限定された範囲内である場合、今回のアクセスが正当と判断し、検出されたプログラムを継続して運行し、
    実際にアクセスした範囲がアドレス情報に限定された範囲を超える場合、今回のアクセスが正当と判断できず、第2の正当性判断手段に動作するように通知するように構成される請求項5又は6に記載の正当なメモリアクセスの検知装置。
  8. メモリブロックがリリースされる場合、階層バッファユニット中のメモリ情報を整理するように構成されるバッファ整理手段を更に含む請求項7に記載の正当なメモリアクセスの検知装置。
JP2017526733A 2014-08-08 2014-10-23 正当なメモリアクセスの検知方法及び装置 Active JP6419337B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410390874.2A CN105373488A (zh) 2014-08-08 2014-08-08 合法内存访问的探测方法及装置
CN201410390874.2 2014-08-08
PCT/CN2014/089325 WO2015154431A1 (zh) 2014-08-08 2014-10-23 合法内存访问的探测方法及装置

Publications (2)

Publication Number Publication Date
JP2017523544A JP2017523544A (ja) 2017-08-17
JP6419337B2 true JP6419337B2 (ja) 2018-11-07

Family

ID=54287195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017526733A Active JP6419337B2 (ja) 2014-08-08 2014-10-23 正当なメモリアクセスの検知方法及び装置

Country Status (6)

Country Link
US (1) US10210103B2 (ja)
EP (1) EP3179374A4 (ja)
JP (1) JP6419337B2 (ja)
KR (1) KR20170041837A (ja)
CN (1) CN105373488A (ja)
WO (1) WO2015154431A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289570B2 (en) * 2015-12-24 2019-05-14 Mcafee, Llc Detecting data corruption by control flow interceptions
EP3333714B1 (en) * 2016-12-07 2020-02-12 Commissariat A L'energie Atomique Et Aux Energies Alternatives A computer-implemented method and a system for encoding a stack application memory state using shadow memory
CN113918393B (zh) * 2021-09-16 2024-04-23 盾构及掘进技术国家重点实验室 一种功能安全系统内存检测方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US5581697A (en) * 1994-01-28 1996-12-03 Sun Microsystems, Inc. Method and apparatus for run-time error checking using dynamic patching
US5590329A (en) * 1994-02-04 1996-12-31 Lucent Technologies Inc. Method and apparatus for detecting memory access errors
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5761729A (en) * 1996-07-17 1998-06-02 Digital Equipment Corporation Validation checking of shared memory accesses
JP4131789B2 (ja) * 2001-10-25 2008-08-13 富士通株式会社 キャッシュ制御装置および方法
JP2004013556A (ja) * 2002-06-07 2004-01-15 Matsushita Electric Ind Co Ltd プロセッサ装置、コンパイル装置及びその方法
JP3876771B2 (ja) * 2002-06-12 2007-02-07 日本電気株式会社 情報処理装置及びそれに用いるキャッシュフラッシュ制御方法
US7721054B2 (en) * 2005-01-18 2010-05-18 Texas Instruments Incorporated Speculative data loading using circular addressing or simulated circular addressing
US8136091B2 (en) * 2007-01-31 2012-03-13 Microsoft Corporation Architectural support for software-based protection
US7861231B2 (en) * 2007-03-09 2010-12-28 International Business Machines Corporation System and method of identification of dangling pointers
US8539455B2 (en) 2007-03-26 2013-09-17 Rogue Wave Software, Inc. System for and method of capturing performance characteristics data from a computer system and modeling target system performance
US8478948B2 (en) * 2008-12-04 2013-07-02 Oracle America, Inc. Method and system for efficient tracing and profiling of memory accesses during program execution
CN101561775B (zh) * 2009-05-12 2010-09-15 华为技术有限公司 内存监控方法和装置
CN101996085A (zh) * 2009-08-27 2011-03-30 鸿富锦精密工业(深圳)有限公司 Acpi表处理系统及方法
US9471315B2 (en) * 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
CN102650959B (zh) * 2012-03-31 2014-06-04 华为技术有限公司 一种检测内存单元的方法及设备

Also Published As

Publication number Publication date
EP3179374A1 (en) 2017-06-14
US20170235684A1 (en) 2017-08-17
US10210103B2 (en) 2019-02-19
EP3179374A4 (en) 2017-08-16
KR20170041837A (ko) 2017-04-17
JP2017523544A (ja) 2017-08-17
CN105373488A (zh) 2016-03-02
WO2015154431A1 (zh) 2015-10-15

Similar Documents

Publication Publication Date Title
Ha et al. An integrated approach for managing read disturbs in high-density NAND flash memory
US11121853B2 (en) Techniques for preventing memory timing attacks
US9483350B1 (en) Flash memory codeword architectures
Li et al. Stochastic modeling of large-scale solid-state storage systems: Analysis, design tradeoffs and optimization
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
JP2019506670A (ja) アドレス変換レイテンシの測定
JP6419337B2 (ja) 正当なメモリアクセスの検知方法及び装置
Kim et al. SSD performance modeling using bottleneck analysis
Kim et al. Performance modeling and practical use cases for black-box ssds
KR101481898B1 (ko) Ssd의 명령어 큐 스케줄링 장치 및 방법
KR101634118B1 (ko) 메모리 관리 장치 및 방법
Yu et al. Enhancing oblivious ram performance using dynamic prefetching
Zhou et al. SCORE: A novel scheme to efficiently cache overlong ECCs in NAND flash memory
Yang et al. A shingle-aware persistent cache management scheme for DM-SMR disks
US9542318B2 (en) Temporary cache memory eviction
Yang et al. Hybrid storage with disk based write cache
KR101361670B1 (ko) 프로그램 정적 분석을 통한 플래시 메모리의 랜덤 쓰기 연산의 속도 향상 방법
CN104166583A (zh) 一种基于移动设备虚拟化环境的数据存储方法及装置
KR101335343B1 (ko) 메모리 관리 장치 및 방법
US20100257514A1 (en) Effective mapping of code sections to the same section of secondary memory to improve the security of computing systems
KR102172219B1 (ko) 객체의 메타데이터 처리 장치 및 방법
US20240320151A1 (en) Method for managing a cache memory
JP5440024B2 (ja) 記録装置、記録方法、及び記録プログラム
Joo et al. A Memory-Efficient Overwrite Detection Method for Ransomware-Proof SSDs
Cai et al. Understanding the behavior of solid state disk

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181009

R150 Certificate of patent or registration of utility model

Ref document number: 6419337

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250