JP2021005250A - 実行コード提供方法およびソフトウェア開発システム - Google Patents
実行コード提供方法およびソフトウェア開発システム Download PDFInfo
- Publication number
- JP2021005250A JP2021005250A JP2019119106A JP2019119106A JP2021005250A JP 2021005250 A JP2021005250 A JP 2021005250A JP 2019119106 A JP2019119106 A JP 2019119106A JP 2019119106 A JP2019119106 A JP 2019119106A JP 2021005250 A JP2021005250 A JP 2021005250A
- Authority
- JP
- Japan
- Prior art keywords
- intermediate representation
- execution
- code
- software development
- execution 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 claims description 78
- 230000008569 process Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 16
- 238000011156 evaluation Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis 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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
まず、本実施の形態に従うソフトウェア開発システム1における処理の概要を説明する。本実施の形態においては、ソースコード10から生成される中間表現20自体を検証し、その検証結果が適切であることを条件に、対応する実行コード30の生成、あるいは、生成された実行コード30の実行を許容する。中間表現20に対する検証において、中間表現20が所定の規定あるいは規約を満たす場合に適切と判断される。
次に、本実施の形態に従うソフトウェア開発システム1を構成する主要装置のハードウェア構成例について説明する。
ソフトウェア開発装置100は、典型的には汎用コンピュータで実現される。
検証サーバ200についても、典型的には汎用コンピュータで実現される。
次に、本実施の形態に従うソフトウェア開発システム1における検証処理について説明する。
(2)コード中に未定義動作が存在しないこと
(3)エラー処理構文が欠如していないこと(エラー処理構文が適切に含まれていること)
(4)無秩序なエラー処理が含まれていないこと
上記(1)の安全性が確認できないメモリ操作(あるいは、危険なメモリ操作)は、システム領域やセキュア領域に対するメモリアクセスや、メモリ領域に対するブロック消去やブロック書き込みなどのメモリ操作を含む。
上記(4)の無秩序なエラー処理は、例外が発生した場合の過度なエラー処理などを含む。
次に、本実施の形態に従うソフトウェア開発システム1における処理手順について説明する。
本実施の形態に従うソフトウェア開発システム1において生成された実行コード30は、配布先のコントローラ300を構成するプロセッサあるいはマイクロコンピュータのセキュア領域に格納されることが好ましい。すなわち、中間表現20に対する認証を条件として生成された実行コード30に対して、何らかの改ざん行為が行われないように、実行環境において何らかの対処を行うことが好ましい。
ソフトウェア開発装置100から検証サーバ200へ中間表現20の検証を依頼する際には、対象の中間表現20を暗号化してもよい。これによって、ソフトウェア開発装置100と検証サーバ200との間で遣り取りされる中間表現20に対する改ざんなどを防止できる。
本実施の形態においては、ソースコード10ではなく中間表現20に対する検証を行うことで、ソースコード10に含まれるノウハウなどを秘匿化した状態で、アプリケーションプログラムに含まれる安全性についてのリスクをより効率的に発見できる。また、中間表現20に対する検証を行うことで、ソースコード10の記述に用いられたプログラミング言語の種類に応じた複数の検証ルールセットなどを用意する必要がなく、効率的な検証を実現できる。
Claims (7)
- ユーザ操作に従ってソースコードを作成するステップと、
前記ソースコードから中間表現を生成するステップと、
前記中間表現が所定の規定あるいは規約を満たしているか否かを検証するステップと、
前記中間表現が前記所定の規定あるいは規約を満たしている場合に、前記中間表現から生成される実行コードの実行を実現するステップとを備える、実行コード提供方法。 - 前記実行コードの実行を実現するステップは、前記中間表現が前記所定の規定あるいは規約を満たしていることを条件として、前記中間表現から前記実行コードを生成するステップを含む、請求項1に記載の実行コード提供方法。
- 前記実行コードの実行を実現するステップは、前記中間表現が前記所定の規定あるいは規約を満たしていることを条件として、前記中間表現から生成された前記実行コードの実行を許可するステップを含む、請求項1に記載の実行コード提供方法。
- 前記検証するステップは、前記中間表現が前記所定の規定あるいは規約を満たしている場合に、前記中間表現に関連付けられる証明書を発行するステップを含み、
前記中間表現から生成された前記実行コードの実行を許可するステップは、前記証明書に基づいて実行の可否を判断するステップを含む、請求項3に記載の実行コード提供方法。 - 前記実行コードが実行されるコントローラの起動時に、当該実行コードを生成した中間表現に関連付けて発行された証明書に基づいて、当該実行コードの正当性を評価するステップをさらに備える、請求項3または4に記載の実行コード提供方法。
- 前記検証するステップは、前記中間表現が前記所定の規定あるいは規約を満たしていない場合に、前記所定の規定あるいは規約を満たしていない内容をユーザに通知するステップを含む、請求項1〜5のいずれか1項に記載の実行コード提供方法。
- ソフトウェア開発システムであって、
ソースコードの作成を支援するソフトウェア開発装置と、
前記ソフトウェア開発装置からアクセス可能な検証サーバとを備え、
前記ソフトウェア開発装置は、前記ソースコードから中間表現を生成する手段を備え、
前記検証サーバは、前記中間表現が所定の規定あるいは規約を満たしているか否かを検証する手段を備え、
前記中間表現が前記所定の規定あるいは規約を満たしている場合に、前記中間表現から生成される実行コードの実行が実現される、ソフトウェア開発システム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019119106A JP2021005250A (ja) | 2019-06-26 | 2019-06-26 | 実行コード提供方法およびソフトウェア開発システム |
PCT/JP2020/024799 WO2020262456A1 (ja) | 2019-06-26 | 2020-06-24 | 実行コード提供方法およびソフトウェア開発システム |
US17/622,573 US20220269773A1 (en) | 2019-06-26 | 2020-06-24 | Execution code provision method and software development system |
TW109121560A TWI842920B (zh) | 2019-06-26 | 2020-06-24 | 執行碼提供方法以及軟體開發系統 |
EP20833083.7A EP3992777A4 (en) | 2019-06-26 | 2020-06-24 | METHOD OF DEPLOYING EXECUTION CODES AND SOFTWARE DEVELOPMENT SYSTEM |
JP2023219029A JP2024023911A (ja) | 2019-06-26 | 2023-12-26 | 実行コード提供方法およびソフトウェア開発システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019119106A JP2021005250A (ja) | 2019-06-26 | 2019-06-26 | 実行コード提供方法およびソフトウェア開発システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023219029A Division JP2024023911A (ja) | 2019-06-26 | 2023-12-26 | 実行コード提供方法およびソフトウェア開発システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021005250A true JP2021005250A (ja) | 2021-01-14 |
Family
ID=74060407
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019119106A Pending JP2021005250A (ja) | 2019-06-26 | 2019-06-26 | 実行コード提供方法およびソフトウェア開発システム |
JP2023219029A Pending JP2024023911A (ja) | 2019-06-26 | 2023-12-26 | 実行コード提供方法およびソフトウェア開発システム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023219029A Pending JP2024023911A (ja) | 2019-06-26 | 2023-12-26 | 実行コード提供方法およびソフトウェア開発システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220269773A1 (ja) |
EP (1) | EP3992777A4 (ja) |
JP (2) | JP2021005250A (ja) |
WO (1) | WO2020262456A1 (ja) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04312130A (ja) * | 1991-04-10 | 1992-11-04 | Nec Corp | 言語処理プログラム |
JP2001075814A (ja) * | 1999-08-19 | 2001-03-23 | Internatl Business Mach Corp <Ibm> | コンパイル装置およびその方法 |
JP2003122730A (ja) * | 2001-10-12 | 2003-04-25 | Ntt Comware Corp | 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体 |
JP2003248637A (ja) * | 2002-02-22 | 2003-09-05 | Canon Inc | 画像処理装置、画像処理装置の制御方法、プログラム、及びコンピュータ読み取り可能な記憶媒体 |
JP2004021336A (ja) * | 2002-06-12 | 2004-01-22 | Internatl Business Mach Corp <Ibm> | コンパイラ、レジスタ割当装置、プログラム、記録媒体、コンパイル方法、及びレジスタ割当方法 |
JP2004303114A (ja) * | 2003-04-01 | 2004-10-28 | Hitachi Ltd | インタープリタおよびネイティブコード実行方法 |
JP2006522972A (ja) * | 2003-04-14 | 2006-10-05 | ジェムプリュス | リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6128774A (en) * | 1997-10-28 | 2000-10-03 | Necula; George C. | Safe to execute verification of software |
US6560774B1 (en) * | 1999-09-01 | 2003-05-06 | Microsoft Corporation | Verifier to check intermediate language |
US7966610B2 (en) * | 2005-11-17 | 2011-06-21 | The Mathworks, Inc. | Application of optimization techniques to intermediate representations for code generation |
US7934197B2 (en) * | 2006-12-19 | 2011-04-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Maintaining code integrity in a central software development system |
US8037466B2 (en) * | 2006-12-29 | 2011-10-11 | Intel Corporation | Method and apparatus for merging critical sections |
JP5867088B2 (ja) * | 2012-01-05 | 2016-02-24 | 富士電機株式会社 | 組込み機器用ソフトウェア作成支援装置およびプログラム |
JP5941859B2 (ja) | 2013-03-05 | 2016-06-29 | 株式会社エヌ・ティ・ティ・データ | 検証装置、検証方法、及びプログラム |
US20160004517A1 (en) * | 2014-07-01 | 2016-01-07 | Bank Of America Corporation | SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW |
US10423518B2 (en) * | 2016-04-27 | 2019-09-24 | The Mathworks, Inc. | Systems and methods for analyzing violations of coding rules |
US10740470B2 (en) * | 2017-05-31 | 2020-08-11 | Shiftleft Inc. | System and method for application security profiling |
-
2019
- 2019-06-26 JP JP2019119106A patent/JP2021005250A/ja active Pending
-
2020
- 2020-06-24 WO PCT/JP2020/024799 patent/WO2020262456A1/ja unknown
- 2020-06-24 US US17/622,573 patent/US20220269773A1/en active Pending
- 2020-06-24 EP EP20833083.7A patent/EP3992777A4/en active Pending
-
2023
- 2023-12-26 JP JP2023219029A patent/JP2024023911A/ja active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04312130A (ja) * | 1991-04-10 | 1992-11-04 | Nec Corp | 言語処理プログラム |
JP2001075814A (ja) * | 1999-08-19 | 2001-03-23 | Internatl Business Mach Corp <Ibm> | コンパイル装置およびその方法 |
JP2003122730A (ja) * | 2001-10-12 | 2003-04-25 | Ntt Comware Corp | 情報処理方法、エージェントシステム、エージェントシステムプログラム及びエージェントシステムプログラムが記録された記録媒体 |
JP2003248637A (ja) * | 2002-02-22 | 2003-09-05 | Canon Inc | 画像処理装置、画像処理装置の制御方法、プログラム、及びコンピュータ読み取り可能な記憶媒体 |
JP2004021336A (ja) * | 2002-06-12 | 2004-01-22 | Internatl Business Mach Corp <Ibm> | コンパイラ、レジスタ割当装置、プログラム、記録媒体、コンパイル方法、及びレジスタ割当方法 |
JP2004303114A (ja) * | 2003-04-01 | 2004-10-28 | Hitachi Ltd | インタープリタおよびネイティブコード実行方法 |
JP2006522972A (ja) * | 2003-04-14 | 2006-10-05 | ジェムプリュス | リプログラマブル・オンボード・システムにダウンロードされた実行可能コードを管理するための方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2024023911A (ja) | 2024-02-21 |
TW202101200A (zh) | 2021-01-01 |
EP3992777A1 (en) | 2022-05-04 |
US20220269773A1 (en) | 2022-08-25 |
WO2020262456A1 (ja) | 2020-12-30 |
EP3992777A4 (en) | 2023-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5748905B2 (ja) | サンドボックスにリファレンスを保存するシステム及び方法 | |
US9871821B2 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US7734549B2 (en) | Methods and apparatus for managing secured software for a wireless device | |
Jung et al. | Repackaging attack on android banking applications and its countermeasures | |
JP6061364B2 (ja) | アプリケーションのセキュリティ検証のためのクラウド支援された方法及びサービス | |
CA3087858C (en) | Authentication and authorization using tokens with action identification | |
US9098680B2 (en) | Application security framework | |
EP3047375B1 (en) | Virtual machine manager facilitated selective code integrity enforcement | |
WO2015150391A9 (en) | Software protection | |
JP2013513880A (ja) | 非同期クライアント・サーバ・トランザクションを保護するための方法、システム、およびコンピュータ使用可能プログラム製品 | |
JP2014526101A (ja) | ソフトウェア・ランタイムの起源 | |
CN114175027A (zh) | 基于经验证的主要资产访问的相关资产访问 | |
CA2951914A1 (en) | Restricted code signing | |
Mili et al. | Transformation-based approach to security verification for cyber-physical systems | |
WO2011096162A1 (ja) | 機密性分析支援システム、方法及びプログラム | |
WO2020262456A1 (ja) | 実行コード提供方法およびソフトウェア開発システム | |
CN112528243A (zh) | 用于通过数据处理加速器处理数据的系统和方法 | |
KR101751316B1 (ko) | 연산 리소스 실행의 안전 보호 | |
TWI842920B (zh) | 執行碼提供方法以及軟體開發系統 | |
JP2021176043A (ja) | ソフトウェア検証方法およびソフトウェア開発システム | |
KR101473430B1 (ko) | 서비스 보안기능 강화 방법 | |
JP7335591B2 (ja) | コンピューティングシステムおよび情報処理方法 | |
WO2022270626A1 (ja) | ソフトウェア利用システムおよびソフトウェア利用方法 | |
Qian et al. | Research on Remote Attestation Technology Based on Formal Software Behavior Measurement | |
JP2010113566A (ja) | 情報処理装置、アクセス制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20231003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231226 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20240112 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20240315 |