JP2012113693A - コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム - Google Patents
コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2012113693A JP2012113693A JP2011199060A JP2011199060A JP2012113693A JP 2012113693 A JP2012113693 A JP 2012113693A JP 2011199060 A JP2011199060 A JP 2011199060A JP 2011199060 A JP2011199060 A JP 2011199060A JP 2012113693 A JP2012113693 A JP 2012113693A
- Authority
- JP
- Japan
- Prior art keywords
- validator
- condition
- target method
- unsatisfiability
- computer program
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 178
- 238000004590 computer program Methods 0.000 title claims abstract description 60
- 238000013500 data storage Methods 0.000 claims description 8
- 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
- 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)
Abstract
【解決手段】イリーガル・パターンと、メソッドを有するコンピュータ・プログラムとを受取る(102)。イリーガル・パターンに関連した各リターン・ステートメントが一定のブール値を返送するようにターゲットメソッドを正規化する(104)。1つ又は複数の対応する基本ブロックが第1のパス条件に対して真の一定のブール値を返送し、第2のパス条件に対して偽の一定のブール値を返送するように、1つ又は複数の対応するパスに対する第1のパス条件及び第2のパス条件を決定する(106、114)。いずれのパス条件の不充足可能性も偽である場合、メソッドは、バリデータではないとして報告する(110、118)。いずれのパス条件の不充足可能性も真である場合、メソッドは、バリデータであるとして報告する(112、120)。
【選択図】図1
Description
Claims (20)
- イリーガル・パターンとターゲット・メソッドを有するコンピュータ・プログラムとをプロセッサによって受け取るステップであって、前記ターゲット・メソッドは1つ又は複数個のリターン・ステートメント及び複数個の基本ブロックを有する、ステップと、
前記イリーガル・パターンに関連する前記ターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを前記プロセッサによって正規化するステップと、
1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対する第1のパス条件を前記プロセッサによって決定するステップと、
単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性を前記プロセッサによって決定するステップと、
前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータではないということを前記プロセッサによって報告するステップと、
を含む方法。 - バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項1に記載の方法。
- 前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項1に記載の方法。
- 前記1つ又は複数個の対応する基本ブロックが偽の一定のブール値を返送するように、前記正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対する第2のパス条件を前記プロセッサによって決定するステップと、
前記M2L技法を使って前記第2のパス条件の不充足可能性を前記プロセッサによって決定するステップと、
を更に含む、請求項1に記載の方法。 - 前記第2のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが無益なバリデータでないということを前記プロセッサによって報告するステップを更に含む、請求項4に記載の方法。
- 前記第2のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが無益なバリデータであるということを前記プロセッサによって報告するステップを更に含む、請求項5に記載の方法。
- 前記第1のパス条件の不充足可能性を決定するステップは、
前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、ステップを含む、請求項1に記載の方法。 - 前記第1のパス条件の不充足可能性を決定するステップは、
前記1つ又は複数個のパス条件を使って前記変数を抑制するステップを更に含む、請求項7に記載の方法。 - 前記第1のパス条件の不充足可能性を決定するステップは、
抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するM2L式を使って前記第1のパス条件の不充足可能性を決定するステップを更に含む、請求項8に記載の方法。 - コンピュータ可読記憶媒体に格納され、プロセッサによって実行されることにより1つの方法を遂行するコンピュータ・プログラムであって、前記方法は、
イリーガル・パターンとターゲット・メソッドを有するターゲット・コンピュータ・プログラムとを受け取るステップであって、前記ターゲット・メソッドは複数個の基本ブロックを有する、ステップと、
前記イリーガル・パターンに関連する前記ターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを正規化するステップと、
正規化された前記ターゲット・メソッドの1つ又は複数個の対応する第1のパス条件及び第2のパス条件を、1つ又は複数個の対応する基本ブロックが前記第1のパス条件に対して真の一定のブール値を返送するように及び前記第2のパス条件に対して偽の一定のブール値を返送するように、決定するステップと、
単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性及び前記第2のパス条件の不充足可能性を決定するステップと、
前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータではないということを報告するステップと、
前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを報告するステップと、
前記第2のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが無益なバリデータでないということを報告するステップと、
前記第2のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが無益なバリデータであるということを報告するステップと、
を含む、コンピュータ・プログラム。 - 前記バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブなオペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項10に記載のコンピュータ・プログラム。
- 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、
前記1つ又は複数個の対応するパスにおける変数に対して可能なストリングのセットを決定するステップであって、前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑制され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、ステップを含む、請求項10に記載のコンピュータ・プログラム。 - 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、前記パス条件を使って前記変数を抑制するステップを更に含む、請求項12に記載のコンピュータ・プログラム。
- 前記第1のパス条件及び前記第2のパス条件の不充足可能性を決定するステップは、
抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するパス条件の不充足可能性を、M2L式を使って決定するステップを更に含む、請求項13に記載のコンピュータ・プログラム。 - プロセッサと、
イリーガル・パターンと、複数個の基本ブロックを有するターゲット・メソッドを持ったターゲット・コンピュータ・プログラムとを格納するコンピュータ可読データ記憶装置と、
少なくともハードウェアによって具現化されたバリデータ決定コンポーネントであって、
(a)前記イリーガル・パターンに関連するターゲット・メソッドの各リターン・ステートメントが一定のブール値を返送するように、前記ターゲット・メソッドを正規化し、
(b)1つ又は複数個の対応する基本ブロックが真の一定のブール値を返送するように、正規化されたターゲット・メソッドの1つ又は複数個の対応するパスに対して第1のパス条件を決定し、
(c)単項2階ロジック(M2L)技法を使って前記第1のパス条件の不充足可能性を決定し、
(d)前記第1のパス条件の不充足可能性が偽である場合、前記ターゲット・メソッドが有益なバリデータでないということを報告する、
バリデータ決定コンポーネントと、
を含むシステム。 - 前記バリデータは、入力ストリングが前記コンピュータ・プログラムにおけるセキュリティ・センシティブ・オペレーションに関連して安全に使用され得るか否かを判断するためのプロセスである、請求項15に記載のシステム。
- 前記バリデータ決定コンポーネントは、前記第1のパス条件の不充足可能性が真である場合、前記ターゲット・メソッドが有益なバリデータであるということを報告するものである、請求項15に記載のシステム。
- 前記バリデータ決定コンポーネントは、前記1つ又は複数個の対応するパスにおける変数に対する可能なストリングのセットを決定することによって前記第1のパス条件の不充足可能性を決定するものであり、
前記変数は前記1つ又は複数個の対応するパスにおけるブランチ条件によって抑止され、前記ターゲット・メソッドの入力パラメータは前記イリーガル・パターンにマッチするストリングであると仮定される、請求項15に記載のシステム。 - 前記バリデータ決定コンポーネントは、前記第1パス条件を使って前記変数を抑制することによって前記第1のパス条件の不充足可能性を決定するものである、請求項18に記載のシステム。
- 前記バリデータ決定コンポーネントは、抑制された変数及び前記変数に対する決定された可能なストリングのセットに対応するM2L式を使って前記第1のパス条件の不充足可能性を決定することにより、前記パス条件の不充足可能性を決定するものである、請求項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 true JP2012113693A (ja) | 2012-06-14 |
JP5700675B2 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 |
---|---|---|---|---|
JP4975188B2 (ja) * | 2009-02-24 | 2012-07-11 | シャープ株式会社 | 無線通信システム、基地局装置、移動局装置、無線通信方法及びプログラム |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011013810A (ja) * | 2009-06-30 | 2011-01-20 | Internatl Business Mach Corp <Ibm> | 文字列の妥当性を判定するシステム、方法及びプログラム |
US20120096440A1 (en) * | 2010-10-19 | 2012-04-19 | Takaaki Tateishi | 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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011013810A (ja) * | 2009-06-30 | 2011-01-20 | Internatl Business Mach Corp <Ibm> | 文字列の妥当性を判定するシステム、方法及びプログラム |
US20120096440A1 (en) * | 2010-10-19 | 2012-04-19 | Takaaki Tateishi | Modular and/or demand-driven string analysis of a computer program |
Also Published As
Publication number | Publication date |
---|---|
US8365281B2 (en) | 2013-01-29 |
US20120131669A1 (en) | 2012-05-24 |
JP5700675B2 (ja) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042647B1 (en) | Software assurance system for runtime environments | |
US11042645B2 (en) | Auto-remediation workflow for computer security testing utilizing pre-existing security controls | |
CN109255234B (zh) | 机器学习模型的处理方法、装置、介质及电子设备 | |
WO2017049800A1 (zh) | 检测应用漏洞代码的方法和装置 | |
US8769696B2 (en) | Automated detection of flaws and incompatibility problems in information flow downgraders | |
US10742666B2 (en) | System and method for static detection and categorization of information-flow downgraders | |
US8701186B2 (en) | Formal analysis of the quality and conformance of information flow downgraders | |
US8572747B2 (en) | Policy-driven detection and verification of methods such as sanitizers and validators | |
CN104137076A (zh) | 用于图形处理单元的应用的验证 | |
US20190361788A1 (en) | Interactive analysis of a security specification | |
US9298926B2 (en) | Remediation of security vulnerabilities in computer software | |
JP5700675B2 (ja) | コンピュータ・プログラムのメソッドがバリデータであるかどうかを判断する方法、システム、及びコンピュータ・プログラム | |
US10902151B2 (en) | Cognitive API policy manager | |
US20130007529A1 (en) | Static analysis based on observed string values during execution of a computer-based software application | |
KR101324691B1 (ko) | 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법 | |
US9037916B2 (en) | Dynamic concolic execution of an application | |
US20140053140A1 (en) | Static analysis of validator routines | |
WO2022271339A1 (en) | Detection of supply chain-related security threats to software applications | |
CN116796334A (zh) | 一种源代码缺陷静态审计检测系统 |
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 |