Static analysis for discovery of timing attack vulnerabilities in a computer software application
AssigneeInternational Business Machines Corporation
InventorOMER TRIPP
Life of this patent
Estimating the term…
Abstract
Discovering timing attack vulnerabilities in a computer software application by statically analyzing instructions of a computer software application to identify multiple possible execution paths traversing any of the instructions, calculating, for each of the possible execution paths, a cost associated with the execution of the instructions traversed by the possible execution path, comparing the costs of at least two of the possible execution paths having inputs of the same size, and identifying as a timing attack vulnerability any of the compared possible execution paths whose cost differs, by at least a predetermined amount, from the cost of any other of the compared possible execution paths.
Claims14
1-7. (canceled)
A system for discovering timing attack vulnerabilities in a computer software application, the system comprising:
- a static analyzer configured to statically analyze instructions of a computer software application to identify a plurality of possible execution paths traversing any of the instructions;
- a cost calculator configured to calculate, for each of the possible execution paths, a cost associated with the execution of the instructions traversed by the possible execution path;
- a cost comparator configured to compare the costs of at least two of the possible execution paths having inputs of the same size;
- and
- a vulnerability identifier configured to identify as a timing attack vulnerability any of the compared possible execution paths whose cost differs, by at least a predetermined amount, from the cost of any other of the compared possible execution paths.
A computer program product for discovering timing attack vulnerabilities in a computer software application, the computer program product comprising:
- a computer-readable storage medium;
- and
- computer-readable program code embodied in the computer-readable storage medium, wherein the computer-readable program code is configured to
- statically analyze instructions of a computer software application to identify a plurality of possible execution paths traversing any of the instructions,
- calculate, for each of the possible execution paths, a cost associated with the execution of the instructions traversed by the possible execution path,
- compare the costs of at least two of the possible execution paths having inputs of the same size, and
- identify as a timing attack vulnerability any of the compared possible execution paths whose cost differs, by at least a predetermined amount, from the cost of any other of the compared possible execution paths.
Dependencies are inferred from the claim text.