JP5766648B2 - 制御監視装置、制御監視方法及び制御監視プログラム - Google Patents
制御監視装置、制御監視方法及び制御監視プログラム Download PDFInfo
- Publication number
- JP5766648B2 JP5766648B2 JP2012101753A JP2012101753A JP5766648B2 JP 5766648 B2 JP5766648 B2 JP 5766648B2 JP 2012101753 A JP2012101753 A JP 2012101753A JP 2012101753 A JP2012101753 A JP 2012101753A JP 5766648 B2 JP5766648 B2 JP 5766648B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- control
- address
- value
- memory
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
まず、第1の実施形態に係る制御監視装置の概要について説明する。図1は、第1の実施形態に係る制御監視装置100の概要を説明するための図である。図1に示すように、第1の実施形態に係る制御監視装置100は、OS(Operating System)がインストールされたハードウェア上で防御対象プログラム及び制御監視プログラムが動作する。防御対象プログラムは、攻撃者からの攻撃に対して防御の対象となるプログラムであり、再配置可能である。ここで、再配置とは、プログラムがロードされる位置に応じて、プログラム内に出現するアドレスの値を調整することである。これによりプログラムを任意の位置にロードすることが可能となる。すなわち、防御対象プログラムは、調整対象となるアドレスがプログラム内のどこに存在するかという情報が実行ファイル内に付加されている。
上述したように、第1の実施形態によれば、アドレス変換部101は、メモリ上の任意の位置に存在する命令を次に実行する命令として指定する制御遷移の指定先となりうるメモリアドレスを所定の条件に従うように変換する。そして、アドレス判定部102は、制御遷移の命令が実行される前に、当該制御遷移によって指定される命令のメモリアドレスが所定の条件に従っているか否かを判定し、従っていない場合に、制御遷移の命令が不正な命令であると判定する。従って、第1の実施形態に係る制御監視装置100は、特定のアドレスが攻撃者に対して漏洩したとしても、結びつけによって別の命令を一意に指定することを困難にすることができ、アドレスの結びつけを利用した攻撃に対する安全性を向上させることを可能にする。さらに、第1の実施形態に係る制御監視装置100は、ASLRと同様に、特定の命令のアドレスを直接指定することを困難にすることも可能である。その結果、第1の実施形態に係る制御監視装置100は、アドレス漏洩を利用した攻撃やPartial Overwrite攻撃を含む、不正な制御遷移に基づいた攻撃を防御することを可能にする。
上述した第1に実施形態においては、遷移先のアドレスを補正することによりコードが存在するセグメントに遷移させる場合について説明した。第2の実施形態では、プログラムイメージをセグメントにコピーすることにより、遷移先のアドレスを補正することなく、コードが存在するセグメントに遷移させる場合について説明する。
上述した第2の実施形態によれば、プログラムイメージ複製部104は、メモリが所定の領域に分割された分割領域に、メモリ上の任意の位置に存在する命令を複製する。従って、第2の実施形態に係る制御監視装置100は、アドレスを実際にコードが存在するアドレスへ書き換えることなく、制御遷移を実行させることを可能にする。これにより、第2の実施形態に係る制御監視装置100は、プログラムロード時に発生するオーバーヘッドの増加と引き換えに、プログラム実行中のオーバーヘッドを減らすことができ、アプリケーションによっては有益な効果が得られる。
これまで第1の実施形態及び第2の実施形態について説明したが、本願に係る技術は第1の実施形態及び第2の実施形態に限定されるものではない。すなわち、第1の実施形態及び第2の実施形態は、その他の様々な形態で実施されることが可能であり、種々の省略、置き換え、変更を行うことができる。
例えば、各装置の分散・統合の具体的形態(例えば、図2の形態)は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合することができる。一例を挙げると、アドレス判定部102とアドレス補正部103とを一つの処理部として統合してもよく、一方、アドレス判定部102を、ビットの値を算出する算出部と、ビットの値を比較して判定する判定部とに分散してもよい。
上記実施形態で説明した制御監視装置100は、あらかじめ用意されたプログラムをコンピュータで実行することで実現することもできる。そこで、以下では、図1に示した制御監視装置100と同様の機能を実現する制御監視プログラムを実行するコンピュータの一例を説明する。
101 アドレス変換部
102 アドレス判定部
103 アドレス補正部
104 プログラムイメージ複製部
Claims (6)
- メモリ上の任意の位置に存在する命令を次に実行する命令として指定する制御遷移の指定先となりうるメモリアドレスの第1のビット位置の値から所定の計算により算出された第1の値を、当該メモリアドレスの第2のビット位置の値となるように変換する変換部と、
前記制御遷移の命令が実行される前に、当該制御遷移によって指定される命令のメモリアドレスの前記第1の値が前記第2のビット位置の値と一致するか否かを判定し、一致しない場合に、前記制御遷移の命令が不正な命令であると判定する判定部と、
を備えたことを特徴とする制御監視装置。 - 前記判定部によって前記制御遷移によって指定される命令のメモリアドレスの前記第1の値が前記第2のビット位置の値と一致すると判定された場合に、当該メモリアドレスを前記変換部による変換前の値に補正する補正部をさらに備えたことを特徴とする請求項1に記載の制御監視装置。
- 前記メモリが所定の領域に分割された分割領域に、前記メモリ上の任意の位置に存在する命令を複製する複製部をさらに備えたことを特徴とする請求項1又は2に記載の制御監視装置。
- 前記複製部は、仮想メモリにおける前記分割領域に、前記メモリ上の任意の位置に存在する命令を複製した場合に、当該分割領域全てを単一の物理メモリに対応させることを特徴とする請求項3に記載の制御監視装置。
- メモリ上の任意の位置に存在する命令を次に実行する命令として指定する制御遷移の制御を監視する制御監視装置によって実行される制御監視方法であって、
前記制御遷移の指定先となりうるメモリアドレスの第1のビット位置の値から所定の計算により算出された第1の値を、当該メモリアドレスの第2のビット位置の値となるように変換する変換工程と、
前記制御遷移の命令が実行される前に、当該制御遷移によって指定される命令のメモリアドレスの前記第1の値が前記第2のビット位置の値と一致するか否かを判定し、一致しない場合に、前記制御遷移の命令が不正な命令であると判定する判定工程と、
を含んだことを特徴とする制御監視方法。 - メモリ上の任意の位置に存在する命令を次に実行する命令として指定する制御遷移の指定先となりうるメモリアドレスの第1のビット位置の値から所定の計算により算出された第1の値を、当該メモリアドレスの第2のビット位置の値となるように変換する変換手順と、
前記制御遷移の命令が実行される前に、当該制御遷移によって指定される命令のメモリアドレスの前記第1の値が前記第2のビット位置の値と一致するか否かを判定し、一致しない場合に、前記制御遷移の命令が不正な命令であると判定する判定手順と、
をコンピュータに実行させることを特徴とする制御監視プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012101753A JP5766648B2 (ja) | 2012-04-26 | 2012-04-26 | 制御監視装置、制御監視方法及び制御監視プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012101753A JP5766648B2 (ja) | 2012-04-26 | 2012-04-26 | 制御監視装置、制御監視方法及び制御監視プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013228957A JP2013228957A (ja) | 2013-11-07 |
JP5766648B2 true JP5766648B2 (ja) | 2015-08-19 |
Family
ID=49676499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012101753A Active JP5766648B2 (ja) | 2012-04-26 | 2012-04-26 | 制御監視装置、制御監視方法及び制御監視プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5766648B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056120A1 (ja) * | 2014-10-10 | 2016-04-14 | 株式会社日立製作所 | 情報処理装置、及び情報処理方法 |
KR101851330B1 (ko) | 2016-10-11 | 2018-04-23 | 서울대학교산학협력단 | 코드 재사용 공격 탐지 장치 및 그 방법 |
JP7495371B2 (ja) * | 2021-03-29 | 2024-06-04 | 株式会社日立製作所 | 制御装置、不正命令検知方法及びプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048257A (ja) * | 2004-08-03 | 2006-02-16 | Hitachi Ltd | 戻り先を限定するコンパイラ |
EP2256659A1 (en) * | 2009-05-27 | 2010-12-01 | NTT DoCoMo, Inc. | Method and apparatus for preventing modification of a program execution flow |
-
2012
- 2012-04-26 JP JP2012101753A patent/JP5766648B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013228957A (ja) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163911B2 (en) | Secure public cloud with protected guest-verified host control | |
US10325118B2 (en) | Cryptographic cache lines for a trusted execution environment | |
Kil et al. | Address space layout permutation (ASLP): Towards fine-grained randomization of commodity software | |
Davi et al. | Isomeron: Code Randomization Resilient to (Just-In-Time) Return-Oriented Programming. | |
CN112149152A (zh) | 使用加密的基地址和用于多租户环境的以密码方式的计算 | |
CN112149149A (zh) | 基于指针的数据加密 | |
Seshadri et al. | Pioneer: verifying code integrity and enforcing untampered code execution on legacy systems | |
US8904189B1 (en) | System and method for validating program execution at run-time using control flow signatures | |
US9535855B2 (en) | Reorganization of virtualized computer programs | |
Jackson et al. | Compiler-generated software diversity | |
Younan et al. | PAriCheck: an efficient pointer arithmetic checker for C programs | |
US8595510B2 (en) | Methods, apparatus and systems to improve security in computer systems | |
US9165138B2 (en) | Mitigation of function pointer overwrite attacks | |
US9250937B1 (en) | Code randomization for just-in-time compilers | |
Portokalidis et al. | Fast and practical instruction-set randomization for commodity systems | |
US8181035B1 (en) | Methods, apparatus and systems to improve security in computer systems | |
EP4089556A1 (en) | Code pointer authentication for hardware flow control | |
Mashtizadeh et al. | Cryptographically enforced control flow integrity | |
US20120331308A1 (en) | Methods, apparatus and systems to improve security in computer systems | |
JP2015537274A (ja) | 低電力状態の間にメモリ領域を保護する方法及び装置 | |
Gens et al. | Lazarus: Practical side-channel resilient kernel-space randomization | |
US11947663B2 (en) | Control flow protection based on phantom addressing | |
JP5766648B2 (ja) | 制御監視装置、制御監視方法及び制御監視プログラム | |
JP6068325B2 (ja) | セキュアなアプリケーションの実行を提供するプロセッサ | |
Ziad et al. | Using Name Confusion to Enhance Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140711 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150414 |
|
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: 20150616 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150617 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 5766648 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |