EP2109821A2 - Procede et systeme de verification de proprietes d'un programme informatique - Google Patents
Procede et systeme de verification de proprietes d'un programme informatiqueInfo
- Publication number
- EP2109821A2 EP2109821A2 EP08708225A EP08708225A EP2109821A2 EP 2109821 A2 EP2109821 A2 EP 2109821A2 EP 08708225 A EP08708225 A EP 08708225A EP 08708225 A EP08708225 A EP 08708225A EP 2109821 A2 EP2109821 A2 EP 2109821A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- analyzer
- hypothesis
- program
- test
- centralizing module
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3604—Analysis of software for verifying properties of programs
- G06F11/3608—Analysis of software for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Definitions
- the present invention relates to a method and a system for checking properties of a computer program.
- test methods it is about running the program on a large number of inputs. Since there are too many different entries, we select a part hoping that this part is representative of all the behaviors of the program. These methods can therefore only give partial confidence in the program.
- static analysis methods it is a question of studying the source code without executing it.
- static analysis relies on formal modeling of the language used in the source program studied. This modeling may not take into account certain aspects of the language for technical reasons. Because of these choices in modeling, a given method of static analysis may be unable to process parts of the source program to be studied.
- An object of the invention is in particular to overcome the aforementioned drawbacks, in particular by improving the methods of static analysis.
- the subject of the invention is a method and a system as defined by the claims.
- FIG. 1 an illustration of the principle of operation of a static analysis method for the verification of a program
- FIG. 2 an illustration of a phase of operation of a system according to the invention corresponding to the issuance of an assumption by an analyzer, the hypothesis on the validity of a property
- Figure 1 illustrates the operating principle of a system implementing a static analysis method.
- a set of analyzers F1, Fk, B1, Bl is assigned to the analysis of properties of a computer program, at its source code 1.
- Two types of analyzers are used, at least one forward analyzer F1, Fk and at least one backward analyzer B1, B1.
- a forward analyzer F1, Fk starts with the initial state of program 1 analyzed and, by propagation into before in the control flow graph in starting from an entry point, calculates at points of the program the states that can take place. This calculation is done taking into account in particular the effects of the instructions of each step and reducing the states propagated in the presence of conditional tests, of the type "if", "then” or “else” for example, in the source program.
- the analyzer terminates either by encountering instructions that ensure that the P property at the program's Li point is verified, or when it has reached the entry point of the control flow graph. In the latter case, the remaining conditions form a precondition of the function and must be verified. These preconditions that remain to be verified can still highlight the limit of the analyzer, this time back.
- An F1 analyzer makes a hypothesis because it is limited, that is to say that it does not know whether this hypothesis is true.
- all the other analyzers F1, Fk, B1, B1 are used to analyze a hypothesis emitted by an analyzer, whether it is forward F1, Fk or backward B1, B1. Among all these other analyzers at least one may be able to indicate if the assumption is true or false. The invention thus makes it possible to make the best use of the performances and resources of the analyzers in the presence.
- FIG. 2 illustrates a phase of operation of a system according to the invention in the case of a hypothesis emission by an analyzer.
- the hypothesis is emitted by a forward analyzer. It could also be issued by a parser backwards.
- the system comprises, in addition to the analyzers F1, Fk, B1, B1, a centralizing module 21 and a base of the hypotheses 22.
- the forward analyzer F1 transmits to the centralizing module 21 assumptions necessary for its operation.
- the centralizing module 21 stores these hypotheses in the base of the hypotheses 22 with a status specifying that these hypotheses are to be verified. To indicate this status, the "to-do" attribute can be assigned to each of these assumptions.
- the forward analyzer F1 continues its work admitting that this assumption that it emitted is verified. Verification of this assumption will be done in a next phase of verification.
- the analyzer F1 can issue other hypotheses that will follow the same path, to the base 22 via the centralizing module 21.
- the source code 1 of the program whose operation is to be verified is provided by a external entity that has decided to use the F1 analyzer.
- This external entity can be a user or any other means of decision, automatic or not.
- the source code has program points L1, L2, Li, Lj to check. More particularly, an analyzer analyzes a property P at a program point Lj. A property P at a program point Lj can be noted later P @ Lj.
- the analyzer F1 in a second step (b), to analyze the source code beyond the program point L2, the analyzer F1 needs the property P to be true at point L1 of the source code. That is, P @ L1 is true, program point L1 being accessible from point L2 in the control flow graph of the source program being studied.
- the points L1 and L2 may possibly be equal.
- the analyzer F1 thus transmits to the centralizing module 21 a hypothesis coded for example in the form F1: P @ L1, L2.
- the analyzer F1 requires that the property P be true at the point L1 without relying on a hypothesis accessible from the point L2, L1 being accessible from L2 in the control flow graph.
- the centralizing module 21 stores the hypothesis F1: P @ L1, L2 in the base of the hypotheses with the status "to do".
- the centralizing module 21 can subsequently recognize, for the hypothesis thus stored, its origin, the analyzer F1, the property to be checked P and the points concerned, L1 and L2.
- the basis of the hypotheses thus comprises a set of hypotheses Bj: Pj @ Lj, Lj 'to verify, that is to say having the status "to do”.
- Figure 3 illustrates a next phase corresponding to the verification of the assumptions that are marked as "to be done” in the assumptions base. 22
- An analyzer has made an assumption because it is limited, in other words it does not have the ways to indicate if this hypothesis is true. According to the invention, all the other analyzers F1, Fk, B1, B1 are used, whether forwards or backwards, to test the hypothesis by a cooperation process.
- FIG. 3 illustrates the verification of a hypothesis by a backward analyzer B1, but this hypothesis could be verified by the other analyzers Fk, B1, B1.
- the analyzer B1 will therefore attempt to verify a hypothesis. "To do" stored in the base 22. If it manages to verify that the assumption is true, it is marked as valid. It can no longer be questioned.
- the B1 analyzer may have to ask questions of other analyzers.
- One question concerns for example the property P at the point L1.
- the question is then: is the property P checked at point L1 without relying on an assumption made at a point accessible from point P2.
- the answer may be true, that is, a positive answer to the question.
- the answer may also be "do not know", that is, the parser questioned does not know how to answer the question. This question can be noted later P @ L1, L2.
- the analyzer B1 is, for example, used to check the property Pk @ Lk on which the results of a certain analysis carried out by an analyzer Fk at points of the source code accessible from point L2 and having "to do" status in the basis of the assumptions 22.
- the analyzer B1 can possibly ask questions to the centralizing module 21 in the form P @ L1, L2, that is to say, the property P at the program point L1 is checked without the The answer to this question is based on a hypothesis marked "to do" in the base of hypotheses 22 and attached to a point accessible from point L2.
- the centralizing module 21 uses the basis of the hypotheses 22 to determine which analyzers can answer the question, that is to say without relying on a hypothesis marked "to do" and attached to a point accessible from point L2.
- the centralizing module 21 ensures the consistency of the verification process. It thus makes it possible to avoid the use in the verification chain of a hypothesis to verify this hypothesis itself.
- the centralizing module 21 interrogates only the analyzers which it can verify that they do not use this hypothesis.
- the basis of the hypotheses allows this verification because there is a link between each hypothesis and its original analyzer, as indicated above.
- a fourth step (d ') the basis of the hypotheses 22 refers to the centralizing module 21 a set of analyzers ⁇ Fi, ... Fj ⁇ responding to its request issued in the previous step (c').
- the base of the hypotheses answers by the singleton ⁇ F1 ⁇ .
- the centralizing module asks the question P @ L1, L2 to the analyzer F1.
- a sixth step (f) the analyzer responds "true” or "do not know” to the centralizer.
- a seventh step (g ') the centralizing module transmits this answer, "true” or "do not know", to the analyzer B1 which can use it to continue the verification of the hypothesis Pk.
- the analyzer can rest another question and start again at step (b ').
- a last step (h ') once the analyzer has verified the validity of the hypothesis transmitted in the first step (a'), it modifies its status in the base of the hypotheses by replacing the "to do” status. by the "valid" status.
- analyzer B1 The process described for analyzer B1 is iterated if necessary for other analyzers. The process is complete when all the assumptions of the base 22 are validated, that is to say they are all assigned the "valid" status. In this case, all assumptions can be considered as correct and therefore the source code 1 can be considered as meeting security requirements for example. If at least one hypothesis could not be verified by an analyzer F1, Fk, B1, Bl it remains assigned the status "to do". Source code 1 can not be considered as meeting security requirements. In other words, the system does not indicate whether the program is valid or not. In comparison with a system according to the prior art, there is nevertheless a great improvement in performance. In fact, by the collaboration of the analyzers and the centralizing module, the invention greatly reduces the number of unverified hypotheses.
- Figure 4 illustrates an example of an application.
- the source code 1 is in language C.
- the system comprises a single analyzer forward F1 and a single analyzer back B1.
- the forward analyzer F1 uses a value interval calculation by prior abstract interpretation. This calculation is in particular described in the document "Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fix points" by Patrick and Radhia Cousot, in Proc. 4th ACM Symposium on Principles of Programming Language, pp 238-252, 1977.
- This computation reduces the states of the source code in case of invalid C language operations and emits valid pointer and nonzero divisor assumptions.
- the analyzer F1 must in particular verify the following two properties P1, P2 at specific points Li of the source code of the program:
- the backward analyzer B1 uses a calculation by the method of weaker precondition notably described in the document "Assigning meaning to programs "by Robert W. Floyd in Mathematical Aspects of Computer Science, pp 19-32, 1967, and in the paper” An axiomatic basis for computer programming "by C. Antony and R. Hoare in Communications of the ACM, 12: 576 -580, 1969.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0700557A FR2911971B1 (fr) | 2007-01-26 | 2007-01-26 | Procede et systeme de verification de proprietes d'un programme informatique. |
| PCT/EP2008/050901 WO2008095799A2 (fr) | 2007-01-26 | 2008-01-25 | Procede et systeme de verification de proprietes d'un programme informatique |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP2109821A2 true EP2109821A2 (fr) | 2009-10-21 |
Family
ID=38226320
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP08708225A Ceased EP2109821A2 (fr) | 2007-01-26 | 2008-01-25 | Procede et systeme de verification de proprietes d'un programme informatique |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8352918B2 (fr) |
| EP (1) | EP2109821A2 (fr) |
| FR (1) | FR2911971B1 (fr) |
| WO (1) | WO2008095799A2 (fr) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8635602B2 (en) * | 2010-07-26 | 2014-01-21 | International Business Machines Corporation | Verification of information-flow downgraders |
| US8935674B2 (en) * | 2012-08-15 | 2015-01-13 | International Business Machines Corporation | Determining correctness conditions for use in static analysis |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6029002A (en) * | 1995-10-31 | 2000-02-22 | Peritus Software Services, Inc. | Method and apparatus for analyzing computer code using weakest precondition |
| US6275976B1 (en) * | 1996-03-15 | 2001-08-14 | Joseph M. Scandura | Automated method for building and maintaining software including methods for verifying that systems are internally consistent and correct relative to their specifications |
| US6381735B1 (en) * | 1998-10-02 | 2002-04-30 | Microsoft Corporation | Dynamic classification of sections of software |
| GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
| US7430670B1 (en) * | 1999-07-29 | 2008-09-30 | Intertrust Technologies Corp. | Software self-defense systems and methods |
| US7284274B1 (en) * | 2001-01-18 | 2007-10-16 | Cigital, Inc. | System and method for identifying and eliminating vulnerabilities in computer software applications |
| US7299458B2 (en) * | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
| US7051322B2 (en) * | 2002-12-06 | 2006-05-23 | @Stake, Inc. | Software analysis framework |
| ATE526628T1 (de) * | 2004-01-22 | 2011-10-15 | Nec Lab America Inc | System und verfahren zum modellieren, abstrahieren und analysieren von software |
| US7587708B2 (en) * | 2004-07-20 | 2009-09-08 | International Business Machines Corporation | Method for testing converted source code |
| US7793273B2 (en) * | 2004-11-23 | 2010-09-07 | National Instruments Corporation | Type propagation for automatic casting of output types in a data flow program |
| US7549144B2 (en) * | 2005-02-22 | 2009-06-16 | Microsoft Corporation | Custom API modeling for source code static analysis simulator |
| US7703075B2 (en) * | 2005-06-22 | 2010-04-20 | Microsoft Corporation | Programmable annotation inference |
| US7685572B1 (en) * | 2005-08-19 | 2010-03-23 | Sun Microsystems, Inc. | Method of static analysis for race condition detection |
| US7861226B1 (en) * | 2006-03-16 | 2010-12-28 | Avaya Inc. | Constraint solver to code based test data generation for improving software reliability and security |
-
2007
- 2007-01-26 FR FR0700557A patent/FR2911971B1/fr active Active
-
2008
- 2008-01-25 WO PCT/EP2008/050901 patent/WO2008095799A2/fr not_active Ceased
- 2008-01-25 EP EP08708225A patent/EP2109821A2/fr not_active Ceased
- 2008-01-25 US US12/524,467 patent/US8352918B2/en active Active
Non-Patent Citations (2)
| Title |
|---|
| None * |
| See also references of WO2008095799A2 * |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008095799A2 (fr) | 2008-08-14 |
| WO2008095799A3 (fr) | 2009-08-13 |
| FR2911971A1 (fr) | 2008-08-01 |
| US20100115493A1 (en) | 2010-05-06 |
| US8352918B2 (en) | 2013-01-08 |
| FR2911971B1 (fr) | 2009-04-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Zerouali et al. | On the impact of security vulnerabilities in the npm and rubygems dependency networks | |
| US8516449B2 (en) | Detecting and localizing security vulnerabilities in client-server application | |
| US9043761B2 (en) | Fault localization using condition modeling and return value modeling | |
| US9160762B2 (en) | Verifying application security vulnerabilities | |
| US8943478B2 (en) | Fault detection and localization in dynamic software applications | |
| Artzi et al. | Practical fault localization for dynamic web applications | |
| US8850405B2 (en) | Generating sound and minimal security reports based on static analysis of a program | |
| US10068093B2 (en) | Machine-checkable code-annotations for static application security testing | |
| Antunes et al. | Penetration testing for web services | |
| WO2010009996A1 (fr) | Procede de compilation de programme informatique | |
| CN111737150A (zh) | 面向Java EE程序SQLIA漏洞的污点分析和验证方法及装置 | |
| Pan et al. | EDEFuzz: A web API fuzzer for excessive data exposures | |
| CN115270139B (zh) | 一种IoT设备网络服务自动化漏洞分析方法及系统 | |
| Rodriguez et al. | Privacy settings of third-party libraries in android apps: A study of facebook sdks | |
| EP1593982B1 (fr) | Contrôle de la robustesse d'une modélisation d'un système physique | |
| EP2109821A2 (fr) | Procede et systeme de verification de proprietes d'un programme informatique | |
| CN112131573A (zh) | 安全漏洞的检测方法、装置及存储介质 | |
| EP3195113B1 (fr) | Procédé de vérification de traçabilité de premières instructions en un langage de programmation procédurale générées à partir de secondes instructions en un langage de modélisation | |
| de Poel et al. | Automated security review of PHP web applications with static code analysis | |
| FR2927436A1 (fr) | Procede de securisation d'un programme informatique, dispositif, procede de mise a jour et serveur de mise a jour correspondants. | |
| Zheng | In regression testing selection when source code is not available | |
| RU2697951C2 (ru) | Система и способ прекращения работы функционально ограниченного приложения, взаимосвязанного с веб-сайтом, запускаемого без установки | |
| Zaazaa et al. | Automatic Static Vulnerability Detection Approaches and Tools: State of the Art | |
| Tokos | Evaluating fuzzing tools for automated testing of rest apis using openapi specification | |
| Watanabe | Effectiveness of Inadequate Test Suites: A Case Study of Mutation Analysis |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20090722 |
|
| AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
| 17Q | First examination report despatched |
Effective date: 20100223 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: COMMISSARIAT A L'ENERGIE ATOMIQUE ET AUX ENERGIES |
|
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| REG | Reference to a national code |
Ref country code: DE Ref legal event code: R003 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
| 18R | Application refused |
Effective date: 20181206 |