JP7024792B2 - プログラム検証システム、方法およびプログラム - Google Patents
プログラム検証システム、方法およびプログラム Download PDFInfo
- Publication number
- JP7024792B2 JP7024792B2 JP2019533744A JP2019533744A JP7024792B2 JP 7024792 B2 JP7024792 B2 JP 7024792B2 JP 2019533744 A JP2019533744 A JP 2019533744A JP 2019533744 A JP2019533744 A JP 2019533744A JP 7024792 B2 JP7024792 B2 JP 7024792B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- verification
- function
- verified
- execution
- 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
- 238000000034 method Methods 0.000 title claims description 60
- 238000012795 verification Methods 0.000 claims description 254
- 230000006870 function Effects 0.000 claims description 244
- 230000007123 defense Effects 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 38
- 230000007246 mechanism Effects 0.000 claims description 35
- 230000002265 prevention Effects 0.000 claims description 24
- 230000010365 information processing Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 19
- 238000012790 confirmation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 241000287219 Serinus canaria Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013175 transesophageal echocardiography Methods 0.000 description 1
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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- 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
- G06F21/53—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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- 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/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
Description
以下、本発明の実施形態を図面を参照して説明する。図1は、第1の実施形態のプログラム検証システム10の構成例を示すブロック図である。図1に示すプログラム検証システム10は、悪意検証部11と、プログラム実行機能検証部12と、署名部2とを備える。
次に、本発明の第2の実施形態を説明する。図3は、第2の実施形態のプログラム検証システム10の構成例を示すブロック図である。図3に示すプログラム検証システム10は、悪意検証部11と、外部入力攻撃防御機能検証部13と、署名部2とを備える。
・起動ログに、“NX (Ececute Disable) protection:qctive”と記載されていることを確認する。
・“/proc/sys/kernerl/exec-shield”ファイルを参照して、“有効”となっていることを確認する。
次に、本発明の第3の実施形態を説明する。図6は、第3の実施形態のプログラム検証システム10の構成例を示すブロック図である。図6に示すプログラム検証システム10は、悪意検証部11と、プログラム実行機能検証部12と、外部入力攻撃防御機能検証部13と、署名部2とを備える。なお、本例は、第1の実施形態と第2の実施形態と組み合わせた例である。
10A プログラム検証部
11 悪意検証部
12 プログラム実行機能検証部
13 外部入力攻撃防御機能検証部
131 スタック保護機能検証部
132 外部コード実行防止機能検証部
2 署名部
300 プログラム実行端末
310 セキュア環境
3 配置・実行部
41 ソース入力部
42 判定部
43 外部入力攻撃防御機能付与部
44 ビルド部
45 実行コード出力部
1000 コンピュータ
1001 CPU
1002 主記憶装置
1003 補助記憶装置
1004 インタフェース
1005 ディスプレイ装置
1006 入力デバイス
50 プログラム検証システム
51 プログラム検証手段
511 プログラム実行機能検証手段
512 外部入力攻撃防御機能検証手段
52 署名手段
Claims (9)
- セキュア環境下で動作するプログラムとして入力された検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうか、および、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境へのデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証するプログラム検証手段と、
前記プログラム検証手段による検証の結果に基づいて、前記プログラムに署名を付与する署名手段とを備え、
前記プログラム検証手段は、
前記セキュア環境下で動作するプログラムとして入力された前記検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうかを検証するプログラム実行機能検証手段と、
前記検証対象のプログラムまたはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境への不正なデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証する外部入力攻撃防御機能検証手段とを含み、
前記署名手段は、前記プログラム実行機能検証手段による検証結果と、前記外部入力攻撃防御機能検証手段による検証結果に基づき、いずれの検証結果も検証OKであった場合に、署名を付与する
ことを特徴とするプログラム検証システム。 - 前記プログラム実行機能検証手段は、前記検証対象のプログラムに、前記同じ環境下に新たなプログラムを実行させるシステムコールが含まれていないことを確認する
請求項1に記載のプログラム検証システム。 - 前記外部入力攻撃防御機能検証手段は、前記検証対象のプログラムにスタック保護機能が含まれていること、または、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に、プログラムの動作中に書き換えが許可されている領域である動的領域内でのコードの実行を防止する機能である外部コード実行防止機能が含まれていることを確認する
請求項1に記載のプログラム検証システム。 - 前記外部入力攻撃防御機能検証手段は、前記スタック保護機能または前記外部コード実行防止機能が含まれている場合に、検証OKとする
請求項3に記載のプログラム検証システム。 - 前記スタック保護機能は、スタックへの外部入力に対する事後的な保護を含む
請求項3または請求項4に記載のプログラム検証システム。 - 前記プログラム検証手段は、少なくとも実行前のコード、ユースケースおよび/または運用方法に対する所定の検証によって安全性が確認されたプログラムを対象に前記検証を行う
請求項1から請求項5のうちのいずれかに記載のプログラム検証システム。 - 検証対象のプログラムのソースコードを入力するソース入力手段と、
前記ソースコードに対して、外部入力攻撃防御機能を付与する外部入力攻撃防御機能付与手段と、
前記ソースコードを、機械語である実行コードに変換するビルド手段とを備え、
前記プログラム検証手段は、前記ソースコードに対して検証を行い、
前記外部入力攻撃防御機能付与手段は、前記プログラム検証手段による検証の結果、前記ソースコードに外部入力攻撃防御機能が含まれていなかった場合に、外部入力攻撃防御機能を付与し、
前記署名手段は、前記プログラム検証手段による検証の結果に基づいて、プログラム実行機能が含まれていないという検証結果が得られた場合に、前記ビルド手段によるビルド後の実行コードに署名を付与する
請求項1から請求項6のうちのいずれかに記載のプログラム検証システム。 - 情報処理装置が、
セキュア環境下で動作するプログラムとして入力された検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうか、および、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境へのデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証し、
前記検証の結果に基づいて、前記プログラムに署名を付与し、
前記検証対象のプログラムにプログラム実行機能が含まれていないかどうか、および、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に外部入力攻撃防御機能が含まれているかどうかを検証するときに、
前記セキュア環境下で動作するプログラムとして入力された前記検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうかを検証し、
前記検証対象のプログラムまたはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境への不正なデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証し、
署名を付与するときに、
プログラム実行機能が含まれていないかどうかに関する検証結果と、外部入力攻撃防御機能が含まれているかどうかに関する検証結果に基づき、いずれの検証結果も検証OKであった場合に、署名を付与する
ことを特徴とするプログラム検証方法。 - コンピュータに、
セキュア環境下で動作するプログラムとして入力された検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうか、および、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境へのデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証する処理、および
前記検証の結果に基づいて、前記プログラムに署名を付与する処理を実行させ、
前記検証対象のプログラムにプログラム実行機能が含まれていないかどうか、および、前記検証対象のプログラムもしくはその動作元である前記セキュア環境の保護機構に外部入力攻撃防御機能が含まれているかどうかを検証する処理で、
前記セキュア環境下で動作するプログラムとして入力された前記検証対象のプログラムに、当該プログラム内の命令により、同じ環境下に新たなプログラムを実行させる機能であるプログラム実行機能が含まれていないかどうかを検証させ、
前記検証対象のプログラムまたはその動作元である前記セキュア環境の保護機構に、プログラム実行中の外部から前記セキュア環境への不正なデータ入力に起因する攻撃を防御する機能である外部入力攻撃防御機能が含まれているかどうかを検証させ、
署名を付与する処理で、
プログラム実行機能が含まれていないかどうかに関する検証結果と、外部入力攻撃防御機能が含まれているかどうかに関する検証結果に基づき、いずれの検証結果も検証OKであった場合に、署名を付与させる
ためのプログラム検証プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/027729 WO2019026137A1 (ja) | 2017-07-31 | 2017-07-31 | プログラム検証システム、方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019026137A1 JPWO2019026137A1 (ja) | 2020-07-02 |
JP7024792B2 true JP7024792B2 (ja) | 2022-02-24 |
Family
ID=65233569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019533744A Active JP7024792B2 (ja) | 2017-07-31 | 2017-07-31 | プログラム検証システム、方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11409886B2 (ja) |
JP (1) | JP7024792B2 (ja) |
WO (1) | WO2019026137A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220129542A1 (en) * | 2019-03-05 | 2022-04-28 | Intel Corporation | Deterministic trusted execution container through managed runtime language metadata |
CN110956280A (zh) * | 2019-10-25 | 2020-04-03 | 中国飞行试验研究院 | 一种民用飞机维修程序验证的方法 |
CN112182517A (zh) * | 2020-10-28 | 2021-01-05 | 北京智游网安科技有限公司 | 基于canary安全保护的检测方法、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032185A (ja) | 2003-07-11 | 2005-02-03 | Sony Corp | プログラム、セキュリティ保護装置およびその方法 |
JP2007122745A (ja) | 2006-12-20 | 2007-05-17 | Trend Micro Inc | ネットワークを介して通信端末に提供されるプログラムに対する伝送経路上でのセキュリティの確保 |
JP2008158686A (ja) | 2006-12-21 | 2008-07-10 | Toshiba Corp | プログラム検証装置及び方法、プログラム検証に基づく署名システム |
WO2012160760A1 (ja) | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | 情報処理装置および情報処理方法 |
JP2016534460A (ja) | 2013-08-28 | 2016-11-04 | アマゾン テクノロジーズ インク | 動的アプリケーションセキュリティ検証 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067575A (en) * | 1995-12-08 | 2000-05-23 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
US7398532B1 (en) * | 2000-03-02 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | System and method for establishing a secure execution environment for a software process |
US20040153644A1 (en) * | 2003-02-05 | 2004-08-05 | Mccorkendale Bruce | Preventing execution of potentially malicious software |
EP1934742A4 (en) * | 2005-08-25 | 2009-08-19 | Fortify Software Inc | DEVICE AND METHOD FOR ANALYZING AND COMPLEMENTING A PROGRAM FOR PROVIDING SAFETY |
US20070107057A1 (en) | 2005-11-10 | 2007-05-10 | Docomo Communications Laboratories Usa, Inc. | Method and apparatus for detecting and preventing unsafe behavior of javascript programs |
US8850428B2 (en) * | 2009-11-12 | 2014-09-30 | Trustware International Limited | User transparent virtualization method for protecting computer programs and data from hostile code |
US9210184B2 (en) * | 2009-12-29 | 2015-12-08 | International Business Machines Corporation | Determining the vulnerability of computer software applications to attacks |
JP2014089652A (ja) | 2012-10-31 | 2014-05-15 | Toshiba Corp | 情報処理装置 |
US10033747B1 (en) * | 2015-09-29 | 2018-07-24 | Fireeye, Inc. | System and method for detecting interpreter-based exploit attacks |
-
2017
- 2017-07-31 WO PCT/JP2017/027729 patent/WO2019026137A1/ja active Application Filing
- 2017-07-31 US US16/635,439 patent/US11409886B2/en active Active
- 2017-07-31 JP JP2019533744A patent/JP7024792B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032185A (ja) | 2003-07-11 | 2005-02-03 | Sony Corp | プログラム、セキュリティ保護装置およびその方法 |
JP2007122745A (ja) | 2006-12-20 | 2007-05-17 | Trend Micro Inc | ネットワークを介して通信端末に提供されるプログラムに対する伝送経路上でのセキュリティの確保 |
JP2008158686A (ja) | 2006-12-21 | 2008-07-10 | Toshiba Corp | プログラム検証装置及び方法、プログラム検証に基づく署名システム |
WO2012160760A1 (ja) | 2011-05-25 | 2012-11-29 | パナソニック株式会社 | 情報処理装置および情報処理方法 |
JP2016534460A (ja) | 2013-08-28 | 2016-11-04 | アマゾン テクノロジーズ インク | 動的アプリケーションセキュリティ検証 |
Also Published As
Publication number | Publication date |
---|---|
US20200184079A1 (en) | 2020-06-11 |
JPWO2019026137A1 (ja) | 2020-07-02 |
WO2019026137A1 (ja) | 2019-02-07 |
US11409886B2 (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9372699B2 (en) | System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device | |
US10496812B2 (en) | Systems and methods for security in computer systems | |
EP3779745B1 (en) | Code pointer authentication for hardware flow control | |
Marpaung et al. | Survey on malware evasion techniques: State of the art and challenges | |
EP2946330B1 (en) | Method and system for protecting computerized systems from malicious code | |
US8195953B1 (en) | Computer program with built-in malware protection | |
US9934380B2 (en) | Execution profiling detection of malicious objects | |
JP2008537224A (ja) | 安全な起動方法およびシステム | |
Liu et al. | Launching return-oriented programming attacks against randomized relocatable executables | |
JP7024792B2 (ja) | プログラム検証システム、方法およびプログラム | |
JP2010205270A (ja) | 取り外し可能な媒体に格納された実行可能なコードにタンパーエビデント性を提供する装置 | |
US20180004946A1 (en) | Regulating control transfers for execute-only code execution | |
Kellner et al. | False sense of security: A study on the effectivity of jailbreak detection in banking apps | |
CN107980133B (zh) | 暂时进程特权解除 | |
Wu et al. | An overview of mobile malware and solutions | |
Kuzminykh et al. | Analysis of security of rootkit detection methods | |
US11194899B2 (en) | Apparatus and methods for transitioning between a secure area and a less-secure area | |
Krishnan et al. | PAM: process authentication mechanism for protecting system services against malicious code attacks | |
Wang et al. | Kernel and application integrity assurance: Ensuring freedom from rootkits and malware in a computer system | |
Sarker et al. | MVAM: Multi-variant attacks on memory for IoT trust computing | |
KR101197182B1 (ko) | 컴퓨터 시스템에서의 해킹 방지 장치 및 방법 | |
Aquilino | Relevance of security features introduced in modern Windows OS | |
EP2919146A1 (en) | An apparatus for enforcing control flows | |
Wang et al. | Coprocessor-based hierarchical trust management for software integrity and digital identity protection | |
Rijah et al. | Security Issues and Challenges in Windows OS Level |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200115 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210921 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211025 |
|
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: 20220111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220124 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7024792 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |