US2019361788A1PendingUtilityA1

Interactive analysis of a security specification

Assignee: IBMPriority: Dec 7, 2011Filed: Aug 11, 2019Published: Nov 28, 2019
Est. expiryDec 7, 2031(~5.3 yrs left)· nominal 20-yr term from priority
G06F 8/43G06F 11/3604G06F 11/3684G06F 11/3672G06F 11/3688G06F 21/52G06F 9/44589G06F 21/562G06F 21/577
64
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A downgrader in a computer program under test can be identified. Testing on the downgrader can be performed in a first level of analysis. Responsive to the downgrader not passing the testing performed in the first level of analysis, a counter example for the downgrader can be automatically synthesized, a test unit for the downgrader can be created using the counter example as an input parameter to the downgrader, and the test unit can be executed to perform testing on the downgrader in a second level of analysis. Responsive to the downgrader passing the testing performed in the second level of analysis, a prompt that prompts a user to simplify a model of the downgrader can be presented to the user.

Claims

exact text as granted — not AI-modified
1 - 24 . (canceled) 
     
     
         25 . A method, comprising:
 identifying a downgrader in a computer program under test;   performing, using a processor, testing on the downgrader in a first level of analysis;   responsive to the downgrader not passing the testing performed in the first level of analysis:
 automatically synthesizing a counter example for the downgrader; 
 creating a test unit for the downgrader using the counter example as an input parameter to the downgrader; and 
 executing the test unit to perform testing on the downgrader in a second level of analysis; and 
   responsive to the downgrader passing the testing performed in the second level of analysis, presenting to a user a prompt that prompts the user to simplify a model of the downgrader.   
     
     
         26 . The method of  claim 25 , wherein the executing the test unit to perform testing on the downgrader in the second level of analysis comprises:
 receiving from the user a user input to initiate execution of the test unit.   
     
     
         27 . The method of  claim 25 , wherein the automatically synthesizing the counter example for the downgrader comprises:
 encoding as a first logical formula a complement of a regular pattern asserting a security property of a method corresponding to the downgrader;   encoding as a second logical formula instructions of the method corresponding to the downgrader within a call graph; and   feeding the first logical formula and the second logical formula into a string-analysis solver.   
     
     
         28 . The method of  claim 27 , further comprising determining whether the downgrader passed the testing performed in the second level of analysis by determining whether the string-analysis solver ran successfully using the first logical formula and the second logical formula. 
     
     
         29 . The method of  claim 28 , wherein the first logical formula is the counter example, the method further comprising:
 responsive to determining that the string-analysis solver ran successfully using the first logical formula and the second logical formula, determining that the first logical formula is valid as the counter example.   
     
     
         30 . The method of  claim 25 , wherein the performing testing on the downgrader in the first level of analysis comprises:
 building a call graph rooted at a method corresponding to the downgrader;   modeling instructions of the method corresponding to the downgrader within the call graph;   asserting a pattern with respect to return variables in the call graph having the modeled instructions; and   running a string-analysis solver on the pattern that is asserted.   
     
     
         31 . The method of  claim 30 , further comprising:
 determining whether the string-analysis solver ran successfully on the pattern that is asserted;   wherein the downgrader not passing the testing performed in the first level of analysis is determined by determining that the string-analysis solver did not run successfully on the pattern that is asserted.   
     
     
         32 . A system comprising:
 a hardware processor configured to initiate executable operations comprising:   identifying a downgrader in a computer program under test;   performing testing on the downgrader in a first level of analysis;   responsive to the downgrader not passing the testing performed in the first level of analysis:
 automatically synthesizing a counter example for the downgrader; 
 creating a test unit for the downgrader using the counter example as an input parameter to the downgrader; and 
 executing the test unit to perform testing on the downgrader in a second level of analysis; and 
   responsive to the downgrader passing the testing performed in the second level of analysis, presenting to a user a prompt that prompts the user to simplify a model of the downgrader.   
     
     
         33 . The system of  claim 32 , wherein the executing the test unit to perform testing on the downgrader in the second level of analysis comprises:
 receiving from the user a user input to initiate execution of the test unit.   
     
     
         34 . The system of  claim 32 , wherein the automatically synthesizing the counter example for the downgrader comprises:
 encoding as a first logical formula a complement of a regular pattern asserting a security property of a method corresponding to the downgrader;   encoding as a second logical formula instructions of the method corresponding to the downgrader within a call graph; and   feeding the first logical formula and the second logical formula into a string-analysis solver.   
     
     
         35 . The system of  claim 34 , the executable operations further comprising determining whether the downgrader passed the testing performed in the second level of analysis by determining whether the string-analysis solver ran successfully using the first logical formula and the second logical formula. 
     
     
         36 . The system of  claim 35 , wherein the first logical formula is the counter example, the executable operations further comprising:
 responsive to determining that the string-analysis solver ran successfully using the first logical formula and the second logical formula, determining that the first logical formula is valid as the counter example.   
     
     
         37 . The system of  claim 32 , wherein the performing testing on the downgrader in the first level of analysis comprises:
 building a call graph rooted at a method corresponding to the downgrader;   modeling instructions of the method corresponding to the downgrader within the call graph;   asserting a pattern with respect to return variables in the call graph having the modeled instructions; and   running a string-analysis solver on the pattern that is asserted.   
     
     
         38 . The system of  claim 37 , the executable operations further comprising:
 determining whether the string-analysis solver ran successfully on the pattern that is asserted;   wherein the downgrader not passing the testing performed in the first level of analysis is determined by determining that the string-analysis solver did not run successfully on the pattern that is asserted.   
     
     
         39 . A computer program product, comprising:
 a computer readable storage medium having program code stored thereon, wherein the computer-readable storage device is not a transitory, propagating signal per se, the program code executable by a data processing system to initiate operations including:   identifying a downgrader in a computer program under test;   performing testing on the downgrader in a first level of analysis;   responsive to the downgrader not passing the testing performed in the first level of analysis:
 automatically synthesizing a counter example for the downgrader; 
 creating a test unit for the downgrader using the counter example as an input parameter to the downgrader; and 
 executing the test unit to perform testing on the downgrader in a second level of analysis; and 
   responsive to the downgrader passing the testing performed in the second level of analysis, presenting to a user a prompt that prompts the user to simplify a model of the downgrader.   
     
     
         40 . The computer program product of  claim 39 , wherein the executing the test unit to perform testing on the downgrader in the second level of analysis comprises:
 receiving from the user a user input to initiate execution of the test unit.   
     
     
         41 . The computer program product of  claim 39 , wherein the automatically synthesizing the counter example for the downgrader comprises:
 encoding as a first logical formula a complement of a regular pattern asserting a security property of a method corresponding to the downgrader;   encoding as a second logical formula instructions of the method corresponding to the downgrader within a call graph; and   feeding the first logical formula and the second logical formula into a string-analysis solver.   
     
     
         42 . The computer program product of  claim 41 , the operations further comprising determining whether the downgrader passed the testing performed in the second level of analysis by determining whether the string-analysis solver ran successfully using the first logical formula and the second logical formula. 
     
     
         43 . The computer program product of  claim 42 , wherein the first logical formula is the counter example, the operations further comprising:
 responsive to determining that the string-analysis solver ran successfully using the first logical formula and the second logical formula, determining that the first logical formula is valid as the counter example.   
     
     
         44 . The computer program product of  claim 39 , wherein the performing testing on the downgrader in the first level of analysis comprises:
 building a call graph rooted at a method corresponding to the downgrader;   modeling instructions of the method corresponding to the downgrader within the call graph;   asserting a pattern with respect to return variables in the call graph having the modeled instructions; and   running a string-analysis solver on the pattern that is asserted.

Join the waitlist — get patent alerts

Track US2019361788A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.