JP5700675B2 - コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム - Google Patents
コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム Download PDFInfo
- Publication number
- JP5700675B2 JP5700675B2 JP2011199060A JP2011199060A JP5700675B2 JP 5700675 B2 JP5700675 B2 JP 5700675B2 JP 2011199060 A JP2011199060 A JP 2011199060A JP 2011199060 A JP2011199060 A JP 2011199060A JP 5700675 B2 JP5700675 B2 JP 5700675B2
- Authority
- JP
- Japan
- Prior art keywords
- condition
- validator
- path
- pass
- target method
- 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
- 238000000034 method Methods 0.000 title claims description 175
- 238000004590 computer program Methods 0.000 title claims description 56
- 238000013500 data storage Methods 0.000 claims description 8
- 230000005764 inhibitory process Effects 0.000 claims 3
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 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
-
- 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/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
Claims (20)
- イリーガル・パターンとターゲット・メソッドを有するコンピュータ・プログラムとをプロセッサによって受け取るステップであって、前記ターゲット・メソッドは1つ又は複数個のリターン・ステートメント及び複数個の基本ブロックを有する、前記受け取るステップと、
前記イリーガル・パターンに関連する前記ターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを前記プロセッサによって正規化するステップと、
1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対する第1のパス条件を前記プロセッサによって決定するステップと、
単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性を前記プロセッサによって決定するステップであって、前記第1のパス条件の不充足可能性は、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を常に返送するかどうかを判断し、前記第1のパス条件の不充足可能性が偽であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を必ずしも返送するとは限らないということを意味し、前記第1のパス条件の不充足可能性が真であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を返送しないということを意味する、前記決定するステップと、
前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータではないということを前記プロセッサによって報告するステップと
を含む方法。 - バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項1に記載の方法。
- 前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項1に記載の方法。
- 前記1つ又は複数個の対応する基本ブロックが偽の一定のブール値を返送するように、前記正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対する第2のパス条件を前記プロセッサによって決定するステップと、
前記第2のパス条件の不充足可能性を、前記M2L技法を使って前記プロセッサによって決定するステップと
を更に含む、請求項1に記載の方法。 - 前記第2のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが無益なバリデータでないということを前記プロセッサによって報告するステップを更に含む、請求項4に記載の方法。
- 前記第2のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが無益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項5に記載の方法。
- 前記第1のパス条件の不充足可能性を決定するステップは、
前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は、前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、前記決定するステップ
を含む、請求項1に記載の方法。 - 前記第1のパス条件の不充足可能性を決定するステップは、
1つ又は複数個のパス条件を使って前記変数を抑制するステップ
を更に含む、請求項7に記載の方法。 - 前記第1のパス条件の不充足可能性を決定するステップは、
前記パス条件によって抑制された変数及び当該変数に対する決定された可能なストリングのセットに対応する前記第1のパス条件の不充足可能性を、前記M2L技法を使って決定するステップ
を更に含む、請求項8に記載の方法。 - コンピュータ可読記憶媒体に格納され、プロセッサによって実行されることにより1つの方法を遂行するコンピュータ・プログラムであって、前記方法は、
イリーガル・パターンとターゲット・メソッドを有するターゲット・コンピュータ・プログラムとを受け取るステップであって、前記ターゲット・メソッドは複数個の基本ブロックを有する、前記受け取るステップと、
前記イリーガル・パターンに関連する前記ターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを正規化するステップと、
正規化された前記ターゲット・メソッドの1つ又は複数個の対応する第1のパス条件及び第2のパス条件を、1つ又は複数個の対応する基本ブロックが前記第1のパス条件に対して真の一定のブール値を返送するように及び前記第2のパス条件に対して偽の一定のブール値を返送するように、決定するステップと、
単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性及び前記第2のパス条件の不充足可能性を決定するステップであって、前記第1のパス条件の不充足可能性は、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を常に返送するかどうかを判断し、前記第1のパス条件の不充足可能性が偽であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を必ずしも返送するとは限らないということを意味し、前記第1のパス条件の不充足可能性が真であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を返送しないということを意味し、前記第2のパス条件の不充足可能性は、当該第2のパス条件が、イリーガル・パターンを含む入力ストリングに関して偽のブール値を常に返送するかどうかを判断し、前記第2のパス条件の不充足可能性が偽であることは、当該第2のパス条件が、イリーガル・パターンを含む入力ストリングに関して偽の一定のプール値を必ずしも返送するとは限らないということを意味し、前記第2のパス条件の不充足可能性が真であることは、当該第2のパス条件が、イリーガル・パターンを含む入力ストリングに関して偽の一定のプール値を返送しないということを意味する、前記決定するステップと、
前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータではないということを報告するステップと、
前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを報告するステップと、
前記第2のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが無益なバリデータでないということを報告するステップと、
前記第2のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが無益なバリデータであるということを報告するステップと
を含む、コンピュータ・プログラム。 - 前記バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項10に記載のコンピュータ・プログラム。
- 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、
前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は、前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、前記決定するステップ
を含む、請求項10に記載のコンピュータ・プログラム。 - 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、
1つ又は複数個のパス条件を使って前記変数を抑制するステップ
を更に含む、請求項12に記載のコンピュータ・プログラム。 - 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、
前記パス条件によって抑制された変数及び当該変数に対する決定された可能なストリングのセットに対応するパス条件の不充足可能性を、前記M2L技法を使って決定するステップ
を更に含む、請求項13に記載のコンピュータ・プログラム。 - プロセッサと、
イリーガル・パターンと、複数個の基本ブロックを有するターゲット・メソッドを持ったターゲット・コンピュータ・プログラムとを格納するコンピュータ可読データ記憶装置と、
少なくともハードウェアによって具現化されたバリデータ決定コンポーネントであって、
(a)前記イリーガル・パターンに関連するターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを正規化し、
(b)1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対して第1のパス条件を決定し、
(c)単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性を決定し、前記第1のパス条件の不充足可能性は、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を常に返送するかどうかを判断し、前記第1のパス条件の不充足可能性が偽であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を必ずしも返送するとは限らないということを意味し、前記第1のパス条件の不充足可能性が真であることは、当該第1のパス条件が、イリーガル・パターンを含む入力ストリングに関して真の一定のブール値を返送しないということを意味し、
(d)前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータでないということを報告する、
前記バリデータ決定コンポーネントと、
を含むシステム。 - 前記バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブ・オペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項15に記載のシステム。
- 前記バリデータ決定コンポーネントは、前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを報告するものである、請求項15に記載のシステム。
- 前記バリデータ決定コンポーネントは、前記1つ又は複数個の対応するパスにおける変数に対する可能なストリングのセットを決定することによって前記第1のパス条件の不充足可能性を決定するものであり、
前記変数は、前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑止され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、請求項15に記載のシステム。 - 前記バリデータ決定コンポーネントは、1つ又は複数個のパス条件を使って前記変数を抑制することによって前記第1のパス条件の不充足可能性を決定するものである、請求項18に記載のシステム。
- 前記バリデータ決定コンポーネントは、前記パス条件によって抑制された変数及び当該変数に対する決定された可能なストリングのセットに対応する前記第1のパス条件の不充足可能性を、前記M2L技法を使って決定することにより、前記パス条件の不充足可能性を決定するものである、請求項19に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/950,432 US8365281B2 (en) | 2010-11-19 | 2010-11-19 | Determining whether method of computer program is a validator |
US12/950432 | 2010-11-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012113693A JP2012113693A (ja) | 2012-06-14 |
JP5700675B2 true JP5700675B2 (ja) | 2015-04-15 |
Family
ID=46065695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011199060A Expired - Fee Related JP5700675B2 (ja) | 2010-11-19 | 2011-09-13 | コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8365281B2 (ja) |
JP (1) | JP5700675B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102326437B (zh) * | 2009-02-24 | 2015-06-24 | 夏普株式会社 | 无线通信系统、基站装置、移动台装置、无线通信方法和程序 |
US20100299654A1 (en) * | 2009-05-21 | 2010-11-25 | Microsoft Corporation | Approach for root causing regression bugs |
US8667584B2 (en) | 2010-12-15 | 2014-03-04 | International Business Machines Corporation | Formal analysis of the quality and conformance of information flow downgraders |
US8769696B2 (en) | 2011-09-29 | 2014-07-01 | International Business Machines Corporation | Automated detection of flaws and incompatibility problems in information flow downgraders |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5186443B2 (ja) * | 2009-06-30 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 文字列の妥当性を判定するシステム、方法及びプログラム |
US8381199B2 (en) * | 2010-10-19 | 2013-02-19 | International Business Machines Corporation | Modular and/or demand-driven string analysis of a computer program |
-
2010
- 2010-11-19 US US12/950,432 patent/US8365281B2/en not_active Expired - Fee Related
-
2011
- 2011-09-13 JP JP2011199060A patent/JP5700675B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8365281B2 (en) | 2013-01-29 |
US20120131669A1 (en) | 2012-05-24 |
JP2012113693A (ja) | 2012-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042647B1 (en) | Software assurance system for runtime environments | |
CN109255234B (zh) | 机器学习模型的处理方法、装置、介质及电子设备 | |
US8881300B2 (en) | Automated detection of flaws and incompatibility problems in information flow downgraders | |
WO2017049800A1 (zh) | 检测应用漏洞代码的方法和装置 | |
US8701186B2 (en) | Formal analysis of the quality and conformance of information flow downgraders | |
US10742666B2 (en) | System and method for static detection and categorization of information-flow downgraders | |
CN104137076A (zh) | 用于图形处理单元的应用的验证 | |
US20120131668A1 (en) | Policy-Driven Detection And Verification Of Methods Such As Sanitizers And Validators | |
US20190361788A1 (en) | Interactive analysis of a security specification | |
JP5700675B2 (ja) | コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム | |
US10902151B2 (en) | Cognitive API policy manager | |
US8650546B2 (en) | Static analysis based on observed string values during execution of a computer-based software application | |
JP5077455B2 (ja) | 脆弱性監査プログラム、脆弱性監査装置、脆弱性監査方法 | |
Munir et al. | Pre-deployment Analysis of Smart Contracts--A Survey | |
US9098623B2 (en) | Static analysis of validator routines | |
Reynolds | Modeling the java bytecode verifier | |
Malik | Threat Modeling Through Detection, Prevention & Classification of Leading-to-Vulnerability Code Smells (LVCs) | |
CN116796334A (zh) | 一种源代码缺陷静态审计检测系统 | |
CN118051920A (zh) | 一种漏洞验证请求包生成方法、装置、设备及存储介质 | |
Ufuktepe | Measurement of JavaScript applications' readiness to untrusted data using Bayesian Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140409 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20140718 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20140828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140902 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141105 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20141105 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20141105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20141107 |
|
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: 20150127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20150128 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20150128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5700675 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |